From 9618f0ebbf4b88045247c01ce8c8f58203508ebf Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Tue, 12 May 2015 16:19:40 -0400 Subject: Imported Upstream version 3.0.6 --- Plugins/CsvExport/CsvExport_sk.ts | 2 +- Plugins/CsvExport/csvexport.json | 2 +- Plugins/CsvImport/CsvImport_sk.ts | 2 +- Plugins/CsvImport/csvimport.json | 2 +- Plugins/DbSqlite2/dbsqlite2.json | 2 +- Plugins/DbSqlite2/dbsqlite2instance.cpp | 5 + Plugins/DbSqlite2/dbsqlite2instance.h | 2 + Plugins/HtmlExport/HtmlExport_sk.ts | 2 +- Plugins/JsonExport/JsonExport_sk.ts | 2 +- Plugins/PdfExport/PdfExport_sk.ts | 2 +- .../DsvFormatsTest/tst_dsvformatstesttest.cpp | 9 + SQLiteStudio3/Tests/TestUtils/dbmanagermock.cpp | 4 + SQLiteStudio3/Tests/TestUtils/dbmanagermock.h | 1 + .../UpdateSQLiteStudio/UpdateSQLiteStudio.pro | 2 + SQLiteStudio3/coreSQLiteStudio/ChangeLog.txt | 27 + SQLiteStudio3/coreSQLiteStudio/TODO.txt | 29 +- .../coreSQLiteStudio/common/utils_sql.cpp | 2 +- SQLiteStudio3/coreSQLiteStudio/csvformat.cpp | 5 + SQLiteStudio3/coreSQLiteStudio/csvformat.h | 3 + SQLiteStudio3/coreSQLiteStudio/csvserializer.cpp | 54 +- SQLiteStudio3/coreSQLiteStudio/datatype.cpp | 4 +- SQLiteStudio3/coreSQLiteStudio/db/abstractdb2.h | 3 +- SQLiteStudio3/coreSQLiteStudio/db/abstractdb3.h | 4 +- .../coreSQLiteStudio/db/queryexecutor.cpp | 18 +- SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.h | 2 +- .../queryexecutorsteps/queryexecutoraddrowids.cpp | 40 +- .../db/queryexecutorsteps/queryexecutoraddrowids.h | 4 +- .../db/queryexecutorsteps/queryexecutorexecute.cpp | 28 + .../db/queryexecutorsteps/queryexecutorexecute.h | 3 + .../queryexecutorreplaceviews.cpp | 7 +- .../coreSQLiteStudio/db/stdsqlite3driver.h | 1 + SQLiteStudio3/coreSQLiteStudio/importworker.cpp | 2 +- .../coreSQLiteStudio/parser/ast/sqliteexpr.cpp | 2 +- .../coreSQLiteStudio/parser/ast/sqliterollback.cpp | 3 +- SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp | 42 +- SQLiteStudio3/coreSQLiteStudio/selectresolver.h | 2 +- .../coreSQLiteStudio/services/impl/configimpl.cpp | 51 +- .../coreSQLiteStudio/services/impl/configimpl.h | 2 +- .../services/impl/dbmanagerimpl.cpp | 42 - .../services/impl/pluginmanagerimpl.cpp | 4 +- .../coreSQLiteStudio/services/updatemanager.cpp | 14 +- .../coreSQLiteStudio/services/updatemanager.h | 7 +- SQLiteStudio3/coreSQLiteStudio/sqlitestudio.cpp | 8 +- SQLiteStudio3/coreSQLiteStudio/sqlitestudio.h | 6 + SQLiteStudio3/coreSQLiteStudio/tablemodifier.cpp | 9 + .../translations/coreSQLiteStudio_de.ts | 156 +-- .../translations/coreSQLiteStudio_es.ts | 156 +-- .../translations/coreSQLiteStudio_fr.ts | 156 +-- .../translations/coreSQLiteStudio_pl.ts | 156 +-- .../translations/coreSQLiteStudio_pt_BR.ts | 156 +-- .../translations/coreSQLiteStudio_ru.ts | 156 +-- .../translations/coreSQLiteStudio_sk.qm | Bin 3538 -> 4601 bytes .../translations/coreSQLiteStudio_sk.ts | 158 +-- .../translations/coreSQLiteStudio_zh_CN.ts | 156 +-- SQLiteStudio3/create_win32_portable.bat | 4 +- .../guiSQLiteStudio/common/extactioncontainer.cpp | 30 +- .../guiSQLiteStudio/common/extactioncontainer.h | 3 + .../guiSQLiteStudio/completer/completerwindow.cpp | 8 + .../guiSQLiteStudio/completer/completerwindow.h | 1 + SQLiteStudio3/guiSQLiteStudio/configmapper.cpp | 12 +- .../guiSQLiteStudio/datagrid/sqlquerymodel.cpp | 30 +- .../guiSQLiteStudio/datagrid/sqlquerymodel.h | 1 + SQLiteStudio3/guiSQLiteStudio/dataview.cpp | 47 + SQLiteStudio3/guiSQLiteStudio/dataview.h | 6 +- SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.cpp | 3 + SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.ui | 6 + .../guiSQLiteStudio/dbtree/dbtreemodel.cpp | 10 +- .../guiSQLiteStudio/dialogs/configdialog.cpp | 29 +- .../guiSQLiteStudio/dialogs/configdialog.h | 2 + .../guiSQLiteStudio/dialogs/configdialog.ui | 523 ++++++--- .../guiSQLiteStudio/dialogs/cssdebugdialog.cpp | 50 + .../guiSQLiteStudio/dialogs/cssdebugdialog.h | 32 + .../guiSQLiteStudio/dialogs/cssdebugdialog.ui | 67 ++ SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp | 3 +- .../guiSQLiteStudio/dialogs/importdialog.cpp | 11 + .../guiSQLiteStudio/dialogs/importdialog.h | 1 + .../guiSQLiteStudio/dialogs/indexdialog.cpp | 3 +- .../guiSQLiteStudio/dialogs/newversiondialog.cpp | 4 + .../guiSQLiteStudio/dialogs/newversiondialog.h | 3 + .../guiSQLiteStudio/dialogs/searchtextdialog.cpp | 9 + .../guiSQLiteStudio/dialogs/searchtextdialog.h | 1 + SQLiteStudio3/guiSQLiteStudio/formview.cpp | 20 +- SQLiteStudio3/guiSQLiteStudio/general.css | 15 + SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.pro | 18 +- SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.qrc | 3 + SQLiteStudio3/guiSQLiteStudio/iconmanager.h | 2 + SQLiteStudio3/guiSQLiteStudio/icons.qrc | 2 + .../guiSQLiteStudio/img/dock_layout_horizontal.png | Bin 0 -> 399 bytes .../guiSQLiteStudio/img/dock_layout_vertical.png | Bin 0 -> 386 bytes SQLiteStudio3/guiSQLiteStudio/mainwindow.cpp | 66 +- SQLiteStudio3/guiSQLiteStudio/mainwindow.h | 14 +- SQLiteStudio3/guiSQLiteStudio/mainwindow.ui | 15 + .../guiSQLiteStudio/multieditor/multieditor.cpp | 18 +- .../guiSQLiteStudio/multieditor/multieditor.h | 2 + SQLiteStudio3/guiSQLiteStudio/sqleditor.cpp | 44 +- SQLiteStudio3/guiSQLiteStudio/sqleditor.h | 4 + SQLiteStudio3/guiSQLiteStudio/statusfield.cpp | 3 + SQLiteStudio3/guiSQLiteStudio/statusfield.ui | 3 + SQLiteStudio3/guiSQLiteStudio/themetuner.cpp | 125 ++ SQLiteStudio3/guiSQLiteStudio/themetuner.h | 43 + .../translations/guiSQLiteStudio_de.ts | 1050 +++++++++-------- .../translations/guiSQLiteStudio_es.ts | 1050 +++++++++-------- .../translations/guiSQLiteStudio_fr.qm | Bin 144539 -> 142714 bytes .../translations/guiSQLiteStudio_fr.ts | 1075 +++++++++-------- .../translations/guiSQLiteStudio_pl.qm | Bin 140919 -> 139196 bytes .../translations/guiSQLiteStudio_pl.ts | 1075 +++++++++-------- .../translations/guiSQLiteStudio_pt_BR.ts | 1050 +++++++++-------- .../translations/guiSQLiteStudio_ru.qm | Bin 143567 -> 148822 bytes .../translations/guiSQLiteStudio_ru.ts | 1067 +++++++++-------- .../translations/guiSQLiteStudio_sk.qm | Bin 80073 -> 95716 bytes .../translations/guiSQLiteStudio_sk.ts | 1241 +++++++++++--------- .../translations/guiSQLiteStudio_zh_CN.qm | Bin 33741 -> 33797 bytes .../translations/guiSQLiteStudio_zh_CN.ts | 1054 +++++++++-------- SQLiteStudio3/guiSQLiteStudio/uiconfig.h | 10 + .../guiSQLiteStudio/windows/collationseditor.ui | 57 +- .../guiSQLiteStudio/windows/editorwindow.cpp | 8 + .../guiSQLiteStudio/windows/editorwindow.ui | 3 + .../guiSQLiteStudio/windows/functionseditor.ui | 82 +- .../guiSQLiteStudio/windows/tablewindow.cpp | 15 +- .../guiSQLiteStudio/windows/tablewindow.ui | 10 +- .../guiSQLiteStudio/windows/viewwindow.cpp | 8 + .../guiSQLiteStudio/windows/viewwindow.ui | 4 +- SQLiteStudio3/sqlitestudio/main.cpp | 5 + .../sqlitestudio/translations/sqlitestudio_de.ts | 28 +- .../sqlitestudio/translations/sqlitestudio_es.ts | 28 +- .../sqlitestudio/translations/sqlitestudio_fr.ts | 28 +- .../translations/sqlitestudio_pt_BR.ts | 28 +- .../sqlitestudio/translations/sqlitestudio_ru.ts | 28 +- .../sqlitestudio/translations/sqlitestudio_sk.ts | 28 +- .../translations/sqlitestudio_zh_CN.ts | 28 +- SQLiteStudio3/sqlitestudiocli/main.cpp | 2 + 131 files changed, 6992 insertions(+), 5083 deletions(-) create mode 100644 SQLiteStudio3/guiSQLiteStudio/dialogs/cssdebugdialog.cpp create mode 100644 SQLiteStudio3/guiSQLiteStudio/dialogs/cssdebugdialog.h create mode 100644 SQLiteStudio3/guiSQLiteStudio/dialogs/cssdebugdialog.ui create mode 100644 SQLiteStudio3/guiSQLiteStudio/general.css create mode 100644 SQLiteStudio3/guiSQLiteStudio/img/dock_layout_horizontal.png create mode 100644 SQLiteStudio3/guiSQLiteStudio/img/dock_layout_vertical.png create mode 100644 SQLiteStudio3/guiSQLiteStudio/themetuner.cpp create mode 100644 SQLiteStudio3/guiSQLiteStudio/themetuner.h diff --git a/Plugins/CsvExport/CsvExport_sk.ts b/Plugins/CsvExport/CsvExport_sk.ts index 54ab016..e283fc3 100644 --- a/Plugins/CsvExport/CsvExport_sk.ts +++ b/Plugins/CsvExport/CsvExport_sk.ts @@ -1,6 +1,6 @@ - + CsvExport diff --git a/Plugins/CsvExport/csvexport.json b/Plugins/CsvExport/csvexport.json index face150..cbb0ea7 100644 --- a/Plugins/CsvExport/csvexport.json +++ b/Plugins/CsvExport/csvexport.json @@ -2,6 +2,6 @@ "type": "ExportPlugin", "title": "CSV export", "description": "Provides CSV format for exporting", - "version": 10002, + "version": 10003, "author": "SalSoft" } diff --git a/Plugins/CsvImport/CsvImport_sk.ts b/Plugins/CsvImport/CsvImport_sk.ts index 5d915ac..3120bf9 100644 --- a/Plugins/CsvImport/CsvImport_sk.ts +++ b/Plugins/CsvImport/CsvImport_sk.ts @@ -1,6 +1,6 @@ - + CsvImport diff --git a/Plugins/CsvImport/csvimport.json b/Plugins/CsvImport/csvimport.json index 64f8e18..05d8b5d 100644 --- a/Plugins/CsvImport/csvimport.json +++ b/Plugins/CsvImport/csvimport.json @@ -2,6 +2,6 @@ "type": "ImportPlugin", "title": "CSV import", "description": "CSV format support for importing data", - "version": 10003, + "version": 10004, "author": "SalSoft" } diff --git a/Plugins/DbSqlite2/dbsqlite2.json b/Plugins/DbSqlite2/dbsqlite2.json index c1e1817..59a17e1 100644 --- a/Plugins/DbSqlite2/dbsqlite2.json +++ b/Plugins/DbSqlite2/dbsqlite2.json @@ -2,6 +2,6 @@ "type": "DbPlugin", "title": "SQLite 2", "description": "Provides support for SQLite 2.* databases", - "version": 10003, + "version": 10005, "author": "SalSoft" } diff --git a/Plugins/DbSqlite2/dbsqlite2instance.cpp b/Plugins/DbSqlite2/dbsqlite2instance.cpp index 905f6fe..35f1f9f 100644 --- a/Plugins/DbSqlite2/dbsqlite2instance.cpp +++ b/Plugins/DbSqlite2/dbsqlite2instance.cpp @@ -5,3 +5,8 @@ DbSqlite2Instance::DbSqlite2Instance(const QString& name, const QString& path, c { } + +QString DbSqlite2Instance::getEncoding() +{ + return "UTF-8"; +} diff --git a/Plugins/DbSqlite2/dbsqlite2instance.h b/Plugins/DbSqlite2/dbsqlite2instance.h index 83c54d3..08ea368 100644 --- a/Plugins/DbSqlite2/dbsqlite2instance.h +++ b/Plugins/DbSqlite2/dbsqlite2instance.h @@ -22,6 +22,8 @@ class DbSqlite2Instance : public AbstractDb2 * All values from this constructor are just passed to AbstractDb2 constructor. */ DbSqlite2Instance(const QString& name, const QString& path, const QHash& connOptions); + + QString getEncoding(); }; #endif // DBSQLITE2INSTANCE_H diff --git a/Plugins/HtmlExport/HtmlExport_sk.ts b/Plugins/HtmlExport/HtmlExport_sk.ts index 55dedbe..edcf4cc 100644 --- a/Plugins/HtmlExport/HtmlExport_sk.ts +++ b/Plugins/HtmlExport/HtmlExport_sk.ts @@ -1,6 +1,6 @@ - + HtmlExport diff --git a/Plugins/JsonExport/JsonExport_sk.ts b/Plugins/JsonExport/JsonExport_sk.ts index caade25..9049c29 100644 --- a/Plugins/JsonExport/JsonExport_sk.ts +++ b/Plugins/JsonExport/JsonExport_sk.ts @@ -1,6 +1,6 @@ - + JsonExportConfig diff --git a/Plugins/PdfExport/PdfExport_sk.ts b/Plugins/PdfExport/PdfExport_sk.ts index 9a8f3e2..6684b8b 100644 --- a/Plugins/PdfExport/PdfExport_sk.ts +++ b/Plugins/PdfExport/PdfExport_sk.ts @@ -1,6 +1,6 @@ - + PdfExport diff --git a/SQLiteStudio3/Tests/DsvFormatsTest/tst_dsvformatstesttest.cpp b/SQLiteStudio3/Tests/DsvFormatsTest/tst_dsvformatstesttest.cpp index be0204c..bd55d53 100644 --- a/SQLiteStudio3/Tests/DsvFormatsTest/tst_dsvformatstesttest.cpp +++ b/SQLiteStudio3/Tests/DsvFormatsTest/tst_dsvformatstesttest.cpp @@ -26,6 +26,7 @@ class DsvFormatsTestTest : public QObject void cleanupTestCase(); void testTsv1(); void testTsv2(); + void testCsv1(); }; DsvFormatsTestTest::DsvFormatsTestTest() @@ -96,6 +97,14 @@ void DsvFormatsTestTest::testTsv2() QVERIFY2(result == sampleDeserializedData, QString("Sample: %1\nGot: %2").arg(toString(sampleDeserializedData), toString(result)).toLocal8Bit().data()); } +void DsvFormatsTestTest::testCsv1() +{ + QList result = CsvSerializer::deserialize(QString("a,\"\""), CsvFormat::DEFAULT); + + QVERIFY(result.size() == 1); + QVERIFY(result.first().size() == 2); +} + QTEST_APPLESS_MAIN(DsvFormatsTestTest) #include "tst_dsvformatstesttest.moc" diff --git a/SQLiteStudio3/Tests/TestUtils/dbmanagermock.cpp b/SQLiteStudio3/Tests/TestUtils/dbmanagermock.cpp index 1bc5f7d..7d286c4 100644 --- a/SQLiteStudio3/Tests/TestUtils/dbmanagermock.cpp +++ b/SQLiteStudio3/Tests/TestUtils/dbmanagermock.cpp @@ -79,3 +79,7 @@ void DbManagerMock::notifyDatabasesAreLoaded() void DbManagerMock::scanForNewDatabasesInConfig() { } + +void DbManagerMock::rescanInvalidDatabasesForPlugin(DbPlugin*) +{ +} diff --git a/SQLiteStudio3/Tests/TestUtils/dbmanagermock.h b/SQLiteStudio3/Tests/TestUtils/dbmanagermock.h index 2f28487..045991e 100644 --- a/SQLiteStudio3/Tests/TestUtils/dbmanagermock.h +++ b/SQLiteStudio3/Tests/TestUtils/dbmanagermock.h @@ -25,6 +25,7 @@ class DbManagerMock : public DbManager public slots: void notifyDatabasesAreLoaded(); void scanForNewDatabasesInConfig(); + void rescanInvalidDatabasesForPlugin(DbPlugin*); }; #endif // DBMANAGERMOCK_H diff --git a/SQLiteStudio3/UpdateSQLiteStudio/UpdateSQLiteStudio.pro b/SQLiteStudio3/UpdateSQLiteStudio/UpdateSQLiteStudio.pro index 93a7a59..81819af 100644 --- a/SQLiteStudio3/UpdateSQLiteStudio/UpdateSQLiteStudio.pro +++ b/SQLiteStudio3/UpdateSQLiteStudio/UpdateSQLiteStudio.pro @@ -21,6 +21,8 @@ LIBS += -lcoreSQLiteStudio TEMPLATE = app +DEFINES += PORTABLE_CONFIG + linux|portable { QMAKE_LFLAGS += -Wl,-rpath,./lib } diff --git a/SQLiteStudio3/coreSQLiteStudio/ChangeLog.txt b/SQLiteStudio3/coreSQLiteStudio/ChangeLog.txt index 384fd8a..a94955a 100644 --- a/SQLiteStudio3/coreSQLiteStudio/ChangeLog.txt +++ b/SQLiteStudio3/coreSQLiteStudio/ChangeLog.txt @@ -1,3 +1,30 @@ +[3.0.6] + * [ADDED]: #2740 Option to configure whether bottom dock area (with status field) should extend to left border, or should it leave space for database list. + * [ADDED]: #2819 Introduced "compact layout" as an option (enabled by default) to minimize all margins on the interface. + * [ADDED]: CSS console for SQLiteStudio (under F11 key) to allow customizing all aspects UI look and feel at a low level. + * [ADDED]: #2805 The 'Save SQL' action in SQL editor now uses the same file if repeated, unless user picks 'select file to save' from drop-down menu. + * [ADDED]: #2801 Added option to select where to position the new inserted row - above/below selected row, or at the end of data view. + * [CHANGE]: Database list is by default from top to bottom, making the status field placed next to the database list, instead of being below it. + * [BUGFIX]: Fixed 'rows affected' counter when using transactions and executing everything at once. + * [BUGFIX]: Fixed importing from CSV with empty (NULL) values in last column of last data row. + * [BUGFIX]: #2853 Allow '$' character as a part of an identifier. + * [BUGFIX]: #2846 Fixed crash when executing query on a database after just removed other database from the list. + * [BUGFIX]: #2856 Fixed not working updates manual checking if automatic checking was disabled. + * [BUGFIX]: #2863 Fixed config dialog to honor DbTree presentation options (sorting, labels) immediately, no manual refreshing required. + * [BUGFIX]: #2862 Fixed loading SQL scripts into editor when using Chinese language. + * [BUGFIX]: #2855 Automatic updates are now enabled only for portable build and are disabled by default for other builds. + * [BUGFIX]: #2867 Fixed support for "ISNULL" in query execution. + * [BUGFIX]: Fixed synchronization bug in DbSqlite2 plugin causing random crashes. + * [BUGFIX]: Views are recreated after table modification only if they really need to be updated according to the table change. + * [BUGFIX]: Fixed querying selects with numerous subselects with '*' operators for result columns. + * [BUGFIX]: #2868 Global configuration directory is not created (even empty) when using portable configuration. + * [BUGFIX]: #2866 Fixed Search dialog in SQL editor to honor changes of the searched value during the single session of searching. + * [BUGFIX]: Fixed importing from data source that provides columns with special characters - they are no longer splitted to column name and datatype. + * [BUGFIX]: Fixed problem with keyboard focus for syntax completer under Gnome 3. + * [BUGFIX]: #2872 'Enter' key in table name of import dialog now triggers 'Next' action, not clearing the table name. + * [BUGFIX]: #2864 & #2791 Fixed synchronouse execution in QueryExecutor, which also fixes the misterious bug in export dialog, causing empty files being exported. + * [BUGFIX]: Fixed encoding detection and connection testing for SQLite2. + [3.0.5] * [ADDED]: #2831 Ported 'Erase table data' feature (in table's context menu) from version 2.1.5. * [CHANGE]: Data view has now a 'cover' with progress bar when commiting more changes at once. This eliminates weird GUI freeze when commiting lots of new/deleted rows. diff --git a/SQLiteStudio3/coreSQLiteStudio/TODO.txt b/SQLiteStudio3/coreSQLiteStudio/TODO.txt index d18c16a..e6f699e 100644 --- a/SQLiteStudio3/coreSQLiteStudio/TODO.txt +++ b/SQLiteStudio3/coreSQLiteStudio/TODO.txt @@ -1,21 +1,25 @@ * Outstanding features for 3.1: +- migrate updates engine to Qt Install Framework +- loadable extensions full support - BLOB preview engine based on plugins - ERD plugin - DB compare plugin - Foreign Key value suggestions in GridView -- code templates +- Foreign Key previews in subframes - executing query with bind params -- migrate updates engine to Qt Install Framework +- comments support in formatter * Next versions: - object names (columns, tables, etc) in dialogs should be validated against suffix/prefix whitespaces and if they appear, user should be asked for confirmation - small useful features: generating template queries from context menu for table/view, from data view. +- code templates - commiting DataView should be async - syntax checkers as services - per language - code assistants as services - per language - specialized validation of expressions for DEFAULT constraint. - "recovery" after failed startup - detecting if previous start crashed and if yes, propose cleaning of configuration. - tcl highlighter +- highlighting occurrences of the same object in the query when cursor is on it - plugin to do performance testing - plugins to generate artifacts - qtscript syntax checker @@ -54,24 +58,3 @@ UNIT TESTS: * Advanced syntax error checks: - many idxColumns are not allowed for column FK - autoincrement not allowed for not integer type - - - - - - - - - -Qt mingw: -Not an easy task. I got Perl, Python, Ruby and MinGw/bin in path and -use this line - -configure -opensource -confirm-license -platform win32-g++ -make libs --qt-libjpeg -qt-libpng -no-openssl -no-icu -qt-zlib -qt-pcre --no-iconv -nomake examples -nomake tests -qt-style-windowsxp --qt-style-windowsvista -opengl -desktop - -Qt linux: -./configure -no-icu -nomake examples -nomake tests -no-dbus -opensource -skip webkit -skip quickcontrols -prefix /home/spakowane/qt5.3.1/output diff --git a/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.cpp b/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.cpp index 20ac736..3ace551 100644 --- a/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.cpp @@ -10,7 +10,7 @@ #include #include -QString invalidIdCharacters = "[]()$\"'@*.,+-=/%&|:; \t\n<>"; +QString invalidIdCharacters = "[]()\"'@*.,+-=/%&|:; \t\n<>"; QHash > wrapperChars; QList sqlite3Wrappers; QList sqlite2Wrappers; diff --git a/SQLiteStudio3/coreSQLiteStudio/csvformat.cpp b/SQLiteStudio3/coreSQLiteStudio/csvformat.cpp index 2876b88..f5daa60 100644 --- a/SQLiteStudio3/coreSQLiteStudio/csvformat.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/csvformat.cpp @@ -11,3 +11,8 @@ CsvFormat::CsvFormat(const QString& columnSeparator, const QString& rowSeparator columnSeparator(columnSeparator), rowSeparator(rowSeparator) { } + +CsvFormat::CsvFormat(const QString& columnSeparator, const QString& rowSeparator, bool strictRowSeparator, bool strictColumnSeparator) : + columnSeparator(columnSeparator), rowSeparator(rowSeparator), strictColumnSeparator(strictColumnSeparator), strictRowSeparator(strictRowSeparator) +{ +} diff --git a/SQLiteStudio3/coreSQLiteStudio/csvformat.h b/SQLiteStudio3/coreSQLiteStudio/csvformat.h index c569147..5ce00ad 100644 --- a/SQLiteStudio3/coreSQLiteStudio/csvformat.h +++ b/SQLiteStudio3/coreSQLiteStudio/csvformat.h @@ -8,9 +8,12 @@ struct API_EXPORT CsvFormat { CsvFormat(); CsvFormat(const QString& columnSeparator, const QString& rowSeparator); + CsvFormat(const QString& columnSeparator, const QString& rowSeparator, bool strictRowSeparator, bool strictColumnSeparator); QString columnSeparator; QString rowSeparator; + bool strictColumnSeparator = false; + bool strictRowSeparator = false; static const CsvFormat DEFAULT; }; diff --git a/SQLiteStudio3/coreSQLiteStudio/csvserializer.cpp b/SQLiteStudio3/coreSQLiteStudio/csvserializer.cpp index 7d7d20b..c89074f 100644 --- a/SQLiteStudio3/coreSQLiteStudio/csvserializer.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/csvserializer.cpp @@ -35,6 +35,38 @@ QString CsvSerializer::serialize(const QStringList& data, const CsvFormat& forma return outputCells.join(format.columnSeparator); } +template +bool isCsvColumnSeparator(const T& data, int pos, const CsvFormat& format) +{ + if (!format.strictColumnSeparator && format.columnSeparator.contains(data[pos])) + return true; + + for (const QChar& c : format.columnSeparator) + { + if (c != data[pos++]) + return false; + } + + return true; +} + +template +bool isCsvRowSeparator(const T& data, int& pos, const CsvFormat& format) +{ + if (!format.strictRowSeparator && format.rowSeparator.contains(data[pos])) + return true; + + int localPos = pos; + for (const QChar& c : format.rowSeparator) + { + if (localPos >= data.size() || c != data[localPos++]) + return false; + } + + pos = localPos - 1; + return true; +} + template QList> typedDeserialize(const T& data, const CsvFormat& format) { @@ -58,23 +90,33 @@ QList> typedDeserialize(const T& data, const CsvFormat& format) } else if (quotes && c == '"' ) { - if (pos + 1 < data.length() && data[pos+1] == '"' ) + if (pos + 1 < data.length()) { - field += c; - pos++; + if (data[pos+1] == '"' ) + { + field += c; + pos++; + } + else + { + quotes = false; + } } else { - quotes = false; + if (field.length() == 0) + cells << field; + + quotes = false; } } - else if (!quotes && format.columnSeparator.contains(c)) + else if (!quotes && isCsvColumnSeparator(data, pos, format)) { cells << field; field.clear(); sepAsLast = true; } - else if (!quotes && format.rowSeparator.contains(c)) + else if (!quotes && isCsvRowSeparator(data, pos, format)) { cells << field; rows << cells; diff --git a/SQLiteStudio3/coreSQLiteStudio/datatype.cpp b/SQLiteStudio3/coreSQLiteStudio/datatype.cpp index 613e6dc..d90a6b0 100644 --- a/SQLiteStudio3/coreSQLiteStudio/datatype.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/datatype.cpp @@ -2,7 +2,7 @@ #include #include -QList DataType::values = [=]() -> QList +QList DataType::values = []() -> QList { QList list; QMetaEnum metaEnum = DataType::staticMetaObject.enumerator(0); @@ -19,7 +19,7 @@ QList DataType::values = [=]() -> QList return list; }(); -const QStringList DataType::names = [=]() -> QStringList +const QStringList DataType::names = []() -> QStringList { QStringList list; QMetaEnum metaEnum = DataType::staticMetaObject.enumerator(0); diff --git a/SQLiteStudio3/coreSQLiteStudio/db/abstractdb2.h b/SQLiteStudio3/coreSQLiteStudio/db/abstractdb2.h index 0620a7d..5b95f61 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/abstractdb2.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/abstractdb2.h @@ -109,7 +109,6 @@ class AbstractDb2 : public AbstractDb int colCount = -1; QStringList colNames; QList nextRowValues; - int affected = 0; bool rowAvailable = false; }; @@ -725,6 +724,8 @@ SqlResultsRowPtr AbstractDb2::Query::nextInternal() if (!rowAvailable || db.isNull()) return SqlResultsRowPtr(); + ReadWriteLocker locker(&(db->dbOperLock), query, Dialect::Sqlite2, flags.testFlag(Db::Flag::NO_LOCK)); + Row* row = new Row; row->init(colNames, nextRowValues); diff --git a/SQLiteStudio3/coreSQLiteStudio/db/abstractdb3.h b/SQLiteStudio3/coreSQLiteStudio/db/abstractdb3.h index fe37d5e..e7b0a4b 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/abstractdb3.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/abstractdb3.h @@ -107,7 +107,6 @@ class AbstractDb3 : public AbstractDb QString errorMessage; int colCount = 0; QStringList colNames; - int affected = 0; bool rowAvailable = false; }; @@ -1076,13 +1075,14 @@ int AbstractDb3::Query::fetchFirst() for (int i = 0; i < colCount; i++) colNames << QString::fromUtf8(T::column_name(stmt, i)); + int changesBefore = T::total_changes(db->dbHandle); rowAvailable = true; int res = fetchNext(); affected = 0; if (res == T::OK) { - affected = T::changes(db->dbHandle); + affected = T::total_changes(db->dbHandle) - changesBefore; insertRowId["ROWID"] = T::last_insert_rowid(db->dbHandle); } diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.cpp index 9fc49df..b790ffa 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.cpp @@ -40,7 +40,8 @@ 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*, DbPlugin*))); + connect(DBLIST, SIGNAL(dbAboutToBeUnloaded(Db*, DbPlugin*)), this, SLOT(cleanupBeforeDbDestroy(Db*))); + connect(DBLIST, SIGNAL(dbRemoved(Db*)), this, SLOT(cleanupBeforeDbDestroy(Db*))); } QueryExecutor::~QueryExecutor() @@ -146,9 +147,8 @@ void QueryExecutor::cleanupAfterExecFailed(int code, QString errorMessage) cleanup(); } -void QueryExecutor::cleanupBeforeDbDestroy(Db* dbToBeUnloaded, DbPlugin* plugin) +void QueryExecutor::cleanupBeforeDbDestroy(Db* dbToBeUnloaded) { - UNUSED(plugin); if (!dbToBeUnloaded || dbToBeUnloaded != db) return; @@ -404,7 +404,16 @@ void QueryExecutor::executeSimpleMethod() simpleExecution = true; context->editionForbiddenReasons << EditionForbiddenReason::SMART_EXECUTION_FAILED; simpleExecutionStartTime = QDateTime::currentMSecsSinceEpoch(); - asyncId = db->asyncExec(originalQuery, context->queryParameters, Db::Flag::PRELOAD); + + if (asyncMode) + { + asyncId = db->asyncExec(originalQuery, context->queryParameters, Db::Flag::PRELOAD); + } + else + { + SqlQueryPtr results = db->exec(originalQuery, context->queryParameters, Db::Flag::PRELOAD); + simpleExecutionFinished(results); + } } void QueryExecutor::simpleExecutionFinished(SqlQueryPtr results) @@ -435,6 +444,7 @@ void QueryExecutor::simpleExecutionFinished(SqlQueryPtr results) context->executionTime = QDateTime::currentMSecsSinceEpoch() - simpleExecutionStartTime; context->rowsAffected = results->rowsAffected(); context->totalRowsReturned = 0; + context->executionResults = results; requiredDbAttaches = context->dbNameToAttach.leftValues(); executionMutex.lock(); diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.h b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.h index c6d7701..83d0436 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.h @@ -1407,7 +1407,7 @@ class API_EXPORT QueryExecutor : public QObject, public QRunnable * from deleted Db. Keeping results is dangerous, becuase the Db driver (plugin) is most likely to * be unloaded soon and we won't be able to call results destructor. */ - void cleanupBeforeDbDestroy(Db* dbToBeUnloaded, DbPlugin* plugin); + void cleanupBeforeDbDestroy(Db* dbToBeUnloaded); }; int qHash(QueryExecutor::EditionForbiddenReason reason); diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.cpp index 9307d13..ea42baf 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.cpp @@ -59,6 +59,16 @@ QHash> QueryExecutorAddRowIds::addR return rowIdColsMap; } + bool hasStar = false; + for (SqliteSelect::Core::ResultColumn* resCol : core->resultColumns) + { + if (resCol->star) + { + hasStar = true; + break; + } + } + // Getting all tables we need to get ROWID for SelectResolver resolver(db, select->tokens.detokenize(), context->dbNameToAttach); resolver.resolveMultiCore = false; // multicore subselects result in not editable columns, skip them @@ -69,7 +79,7 @@ QHash> QueryExecutorAddRowIds::addR if (table.flags & (SelectResolver::FROM_COMPOUND_SELECT | SelectResolver::FROM_DISTINCT_SELECT | SelectResolver::FROM_GROUPED_SELECT)) continue; // we don't get ROWID from compound, distinct or aggregated subselects - if (!addResultColumns(core, table, rowIdColsMap, isTopSelect)) + if (!addResultColumns(core, table, rowIdColsMap, isTopSelect, hasStar)) { ok = false; return rowIdColsMap; @@ -146,12 +156,14 @@ QHash QueryExecutorAddRowIds::getNextColNames(const SelectResol } bool QueryExecutorAddRowIds::addResultColumns(SqliteSelect::Core* core, const SelectResolver::Table& table, - QHash>& rowIdColsMap, bool isTopSelect) + QHash>& rowIdColsMap, bool isTopSelect, bool hasStar) { QHash executorToRealColumns; + bool aliasOnlyAsSelectColumn = false; if (rowIdColsMap.contains(table)) { executorToRealColumns = rowIdColsMap[table]; // we already have resCol names from subselect + aliasOnlyAsSelectColumn = true; } else { @@ -169,7 +181,7 @@ bool QueryExecutorAddRowIds::addResultColumns(SqliteSelect::Core* core, const Se while (it.hasNext()) { it.next(); - if (!addResultColumns(core, table, it.key(), it.value())) + if (!addResultColumns(core, table, it.key(), it.value(), aliasOnlyAsSelectColumn)) return false; } @@ -189,7 +201,7 @@ bool QueryExecutorAddRowIds::addResultColumns(SqliteSelect::Core* core, const Se } bool QueryExecutorAddRowIds::addResultColumns(SqliteSelect::Core* core, const SelectResolver::Table& table, const QString& queryExecutorColumn, - const QString& realColumn) + const QString& realColumn, bool aliasOnlyAsSelectColumn) { SqliteSelect::Core::ResultColumn* resCol = new SqliteSelect::Core::ResultColumn(); resCol->setParent(core); @@ -197,17 +209,25 @@ bool QueryExecutorAddRowIds::addResultColumns(SqliteSelect::Core* core, const Se resCol->expr = new SqliteExpr(); resCol->expr->setParent(resCol); - resCol->expr->initId(realColumn); - if (!table.alias.isNull()) + if (aliasOnlyAsSelectColumn) { - resCol->expr->table = table.alias; + // We are re-querying this column from subselect, we already have it as an alias + resCol->expr->initId(queryExecutorColumn); } else { - if (!table.database.isNull()) - resCol->expr->database = table.database; + resCol->expr->initId(realColumn); + if (!table.alias.isNull()) + { + resCol->expr->table = table.alias; + } + else + { + if (!table.database.isNull()) + resCol->expr->database = table.database; - resCol->expr->table = table.table; + resCol->expr->table = table.table; + } } resCol->asKw = true; resCol->alias = queryExecutorColumn; diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.h b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.h index a5431fa..fa2167f 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.h @@ -31,7 +31,7 @@ class QueryExecutorAddRowIds : public QueryExecutorStep * Finds columns representing ROWID for the \p table and adds them to result columns and to the context. */ bool addResultColumns(SqliteSelect::Core* core, const SelectResolver::Table& table, - QHash >& rowIdColsMap, bool isTopSelect); + QHash >& rowIdColsMap, bool isTopSelect, bool hasStar); /** * @brief Adds the column to result columns list. @@ -44,7 +44,7 @@ class QueryExecutorAddRowIds : public QueryExecutorStep * Adds given column to the result column list in the SELECT statement. */ bool addResultColumns(SqliteSelect::Core* core, const SelectResolver::Table& table, const QString& queryExecutorColumn, - const QString& realColumn); + const QString& realColumn, bool aliasOnlyAsSelectColumn); /** * @brief Adds all necessary ROWID columns to result columns. diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorexecute.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorexecute.cpp index df2ed68..a954da7 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorexecute.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorexecute.cpp @@ -7,6 +7,7 @@ #include "datatype.h" #include #include +#include #include #include @@ -34,6 +35,7 @@ bool QueryExecutorExecute::executeQueries() QHash bindParamsForQuery; SqlQueryPtr results; context->rowsAffected = 0; + QStack rowsAffectedBeforeTransaction; Db::Flags flags; if (context->preloadResults) @@ -51,6 +53,9 @@ bool QueryExecutorExecute::executeQueries() if (queryCount == 0) // last query? setupSqlite2ColumnDataTypes(results); + if (isBeginTransaction(query->queryType)) + rowsAffectedBeforeTransaction.push(context->rowsAffected); + results->execute(); if (results->isError()) @@ -60,6 +65,14 @@ bool QueryExecutorExecute::executeQueries() } context->rowsAffected += results->rowsAffected(); + + if (rowsAffectedBeforeTransaction.size() > 0) + { + if (isCommitTransaction(query->queryType)) + rowsAffectedBeforeTransaction.pop(); + else if (isRollbackTransaction(query->queryType)) + context->rowsAffected = rowsAffectedBeforeTransaction.pop(); + } } handleSuccessfulResult(results); return true; @@ -152,3 +165,18 @@ void QueryExecutorExecute::setupSqlite2ColumnDataTypes(SqlQueryPtr results) sqlite2Helper->setBinaryType(idx); } } + +bool QueryExecutorExecute::isBeginTransaction(SqliteQueryType queryType) +{ + return (queryType == SqliteQueryType::BeginTrans || queryType == SqliteQueryType::Savepoint); +} + +bool QueryExecutorExecute::isCommitTransaction(SqliteQueryType queryType) +{ + return (queryType == SqliteQueryType::CommitTrans || queryType == SqliteQueryType::Release); +} + +bool QueryExecutorExecute::isRollbackTransaction(SqliteQueryType queryType) +{ + return queryType == SqliteQueryType::Rollback; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorexecute.h b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorexecute.h index a88bf56..ea6fed2 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorexecute.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorexecute.h @@ -80,6 +80,9 @@ class QueryExecutorExecute : public QueryExecutorStep qint64 startTime; void setupSqlite2ColumnDataTypes(SqlQueryPtr results); + bool isBeginTransaction(SqliteQueryType queryType); + bool isCommitTransaction(SqliteQueryType queryType); + bool isRollbackTransaction(SqliteQueryType queryType); }; #endif // QUERYEXECUTOREXECUTE_H diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorreplaceviews.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorreplaceviews.cpp index 94300a0..1f2e736 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorreplaceviews.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutorreplaceviews.cpp @@ -25,6 +25,7 @@ bool QueryExecutorReplaceViews::exec() return true; replaceViews(select.data()); + select->rebuildTokens(); updateQueries(); return true; @@ -72,7 +73,7 @@ void QueryExecutorReplaceViews::replaceViews(SqliteSelect* select) SqliteCreateViewPtr view; QList sources = core->getAllTypedStatements(); - foreach (SqliteSelect::Core::SingleSource* src, sources) + for (SqliteSelect::Core::SingleSource* src : sources) { if (src->table.isNull()) continue; @@ -92,9 +93,9 @@ void QueryExecutorReplaceViews::replaceViews(SqliteSelect* select) src->select = view->select; src->database = QString::null; src->table = QString::null; - } - select->rebuildTokens(); + replaceViews(src->select); + } } uint qHash(const QueryExecutorReplaceViews::View& view) diff --git a/SQLiteStudio3/coreSQLiteStudio/db/stdsqlite3driver.h b/SQLiteStudio3/coreSQLiteStudio/db/stdsqlite3driver.h index 2f26aaf..6b0c422 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/stdsqlite3driver.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/stdsqlite3driver.h @@ -64,6 +64,7 @@ static int column_type(stmt* arg1, int arg2) {return Prefix##sqlite3_column_type(arg1, arg2);} \ static int column_count(stmt* arg1) {return Prefix##sqlite3_column_count(arg1);} \ static int changes(handle* arg) {return Prefix##sqlite3_changes(arg);} \ + static int total_changes(handle* arg) {return Prefix##sqlite3_total_changes(arg);} \ static int last_insert_rowid(handle* arg) {return Prefix##sqlite3_last_insert_rowid(arg);} \ static int step(stmt* arg) {return Prefix##sqlite3_step(arg);} \ static int reset(stmt* arg) {return Prefix##sqlite3_reset(arg);} \ diff --git a/SQLiteStudio3/coreSQLiteStudio/importworker.cpp b/SQLiteStudio3/coreSQLiteStudio/importworker.cpp index cf62a98..b8d5a5a 100644 --- a/SQLiteStudio3/coreSQLiteStudio/importworker.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/importworker.cpp @@ -108,7 +108,7 @@ bool ImportWorker::prepareTable() { QStringList colDefs; for (int i = 0; i < columnsFromPlugin.size(); i++) - colDefs << (columnsFromPlugin[i] + " " + columnTypesFromPlugin[i]).trimmed(); + colDefs << (wrapObjIfNeeded(columnsFromPlugin[i], dialect) + " " + columnTypesFromPlugin[i]).trimmed(); static const QString ddl = QStringLiteral("CREATE TABLE %1 (%2)"); SqlQueryPtr result = db->exec(ddl.arg(wrapObjIfNeeded(table, dialect), colDefs.join(", "))); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp index 12adf80..b84a818 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp @@ -481,7 +481,7 @@ TokenList SqliteExpr::rebuildTokensFromContents() builder.withKeyword("NULL"); break; case SqliteExpr::Mode::NOTNULL: - builder.withTokens(rebuildNotNull()); + builder.withStatement(expr1).withSpace().withTokens(rebuildNotNull()); break; case SqliteExpr::Mode::IS: builder.withTokens(rebuildIs()); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliterollback.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliterollback.cpp index 01284b4..b21b6ae 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliterollback.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliterollback.cpp @@ -20,7 +20,8 @@ SqliteRollback::SqliteRollback(bool transactionKw, const QString& name) this->transactionKw = transactionKw; } -SqliteRollback::SqliteRollback(bool transactionKw, bool savePoint, const QString& name) +SqliteRollback::SqliteRollback(bool transactionKw, bool savePoint, const QString& name) : + SqliteRollback() { // we ignore name from trans_opt, // it's not officialy supported in sqlite3 diff --git a/SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp b/SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp index 9e425a2..8107b94 100644 --- a/SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp @@ -38,7 +38,7 @@ QList > SelectResolver::resolve(SqliteSelect *sele { errors.clear(); QList > results; - foreach (SqliteSelect::Core* core, select->coreSelects) + for (SqliteSelect::Core* core : select->coreSelects) { results << resolveCore(core); currentCoreResults.clear(); @@ -57,7 +57,7 @@ QList > SelectResolver::resolveAvailableColumns(Sq { errors.clear(); QList > results; - foreach (SqliteSelect::Core* core, select->coreSelects) + for (SqliteSelect::Core* core : select->coreSelects) results << resolveAvailableCoreColumns(core); return results; @@ -67,8 +67,13 @@ QSet SelectResolver::resolveTables(SqliteSelect::Core *se { QSet tables; QList columns = resolveAvailableColumns(selectCore); - foreach (Column col, columns) + for (const Column& col : columns) + { + if (col.type != Column::Type::COLUMN) + continue; + tables << col.getTable(); + } return tables; } @@ -77,11 +82,16 @@ QList > SelectResolver::resolveTables(SqliteSelect * { QList > results; QList > columnLists = resolveAvailableColumns(select); - foreach (QList columns, columnLists) + for (const QList& columns : columnLists) { QSet
tables; - foreach (Column col, columns) + for (const Column& col : columns) + { + if (col.type != Column::Type::COLUMN) + continue; + tables << col.getTable(); + } results << tables; } @@ -93,7 +103,7 @@ QList SelectResolver::translateToColumns(SqliteSelect* s { errors.clear(); QList results; - foreach (TokenPtr token, columnTokens) + for (const TokenPtr& token : columnTokens) results << translateTokenToColumn(select, token); return results; @@ -120,7 +130,7 @@ QList SelectResolver::resolveCore(SqliteSelect::Core* se if (selectCore->from) currentCoreSourceColumns = resolveJoinSource(selectCore->from); - foreach (SqliteSelect::Core::ResultColumn* resCol, selectCore->resultColumns) + for (SqliteSelect::Core::ResultColumn* resCol : selectCore->resultColumns) resolve(resCol); if (selectCore->distinctKw) @@ -188,7 +198,7 @@ SelectResolver::Column SelectResolver::translateTokenToColumn(SqliteSelect* sele } // Search through available columns - foreach (const Column& availableColumn, resolveAvailableColumns(core)) + for (const Column& availableColumn : resolveAvailableColumns(core)) { if (availableColumn.type == Column::COLUMN && availableColumn.column.compare(token->value, Qt::CaseInsensitive) == 0) return availableColumn; @@ -256,7 +266,7 @@ void SelectResolver::resolve(SqliteSelect::Core::ResultColumn *resCol) void SelectResolver::resolveStar(SqliteSelect::Core::ResultColumn *resCol) { bool foundAtLeastOne = false; - foreach (SelectResolver::Column column, currentCoreSourceColumns) + for (SelectResolver::Column column : currentCoreSourceColumns) { if (!resCol->table.isNull()) { @@ -379,7 +389,7 @@ void SelectResolver::resolveDbAndTable(SqliteSelect::Core::ResultColumn *resCol) SelectResolver::Column SelectResolver::resolveRowIdColumn(SqliteExpr *expr) { // Looking for first source that can provide ROWID. - foreach (Column column, currentCoreSourceColumns) + for (const Column& column : currentCoreSourceColumns) { if (column.table.isNull()) continue; // ROWID cannot be related to source with no table @@ -392,7 +402,7 @@ SelectResolver::Column SelectResolver::resolveRowIdColumn(SqliteExpr *expr) SelectResolver::Column SelectResolver::resolveExplicitColumn(const QString &columnName) { - foreach (const Column& column, currentCoreSourceColumns) + for (const Column& column : currentCoreSourceColumns) { if (columnName.compare(column.column, Qt::CaseInsensitive) != 0 && columnName.compare(column.alias, Qt::CaseInsensitive) != 0) continue; @@ -404,7 +414,7 @@ SelectResolver::Column SelectResolver::resolveExplicitColumn(const QString &colu SelectResolver::Column SelectResolver::resolveExplicitColumn(const QString &table, const QString &columnName) { - foreach (const Column& column, currentCoreSourceColumns) + for (const Column& column : currentCoreSourceColumns) { if (columnName.compare(column.column, Qt::CaseInsensitive) != 0 && columnName.compare(column.alias, Qt::CaseInsensitive) != 0) continue; @@ -419,7 +429,7 @@ SelectResolver::Column SelectResolver::resolveExplicitColumn(const QString &tabl SelectResolver::Column SelectResolver::resolveExplicitColumn(const QString &database, const QString &table, const QString &columnName) { - foreach (const Column& column, currentCoreSourceColumns) + for (const Column& column : currentCoreSourceColumns) { if (columnName.compare(column.column, Qt::CaseInsensitive) != 0 && columnName.compare(column.alias, Qt::CaseInsensitive) != 0) continue; @@ -481,7 +491,7 @@ QList SelectResolver::resolveJoinSource(SqliteSelect::Co { QList columnSources; columnSources += resolveSingleSource(joinSrc->singleSource); - foreach (SqliteSelect::Core::JoinSourceOther* otherSrc, joinSrc->otherSources) + for (SqliteSelect::Core::JoinSourceOther* otherSrc : joinSrc->otherSources) columnSources += resolveOtherSource(otherSrc); return columnSources; @@ -504,7 +514,7 @@ QList SelectResolver::resolveSingleSource(SqliteSelect:: QList columnSources; QStringList columns = getTableColumns(joinSrc->database, joinSrc->table, joinSrc->alias); Column column; - foreach (QString columnName, columns) + for (const QString& columnName : columns) { column.type = Column::COLUMN; column.column = columnName; @@ -650,7 +660,7 @@ int SelectResolver::Column::operator ==(const SelectResolver::Column &other) return table == other.table && database == other.database && column == other.column && tableAlias == other.tableAlias; } -SelectResolver::Table SelectResolver::Column::getTable() +SelectResolver::Table SelectResolver::Column::getTable() const { Table resTable; resTable.table = table; diff --git a/SQLiteStudio3/coreSQLiteStudio/selectresolver.h b/SQLiteStudio3/coreSQLiteStudio/selectresolver.h index c634c5c..4213d73 100644 --- a/SQLiteStudio3/coreSQLiteStudio/selectresolver.h +++ b/SQLiteStudio3/coreSQLiteStudio/selectresolver.h @@ -113,7 +113,7 @@ class API_EXPORT SelectResolver SqliteSelect::Core::ResultColumn* originalColumn = nullptr; int operator==(const Column& other); - Table getTable(); + Table getTable() const; }; SelectResolver(Db* db, const QString &originalQuery); diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.cpp b/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.cpp index 046993f..5aed863 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.cpp @@ -560,47 +560,38 @@ void ConfigImpl::initDbFile() QString globalPath = getConfigPath(); QString portablePath = getPortableConfigPath(); - QStringList paths; + QList> paths; if (!globalPath.isNull() && !portablePath.isNull()) { if (QFileInfo(portablePath).exists()) { - paths << portablePath+"/"+DB_FILE_NAME; - paths << globalPath+"/"+DB_FILE_NAME; + paths << QPair(portablePath+"/"+DB_FILE_NAME, false); + paths << QPair(globalPath+"/"+DB_FILE_NAME, true); } else { - paths << globalPath+"/"+DB_FILE_NAME; - paths << portablePath+"/"+DB_FILE_NAME; + paths << QPair(globalPath+"/"+DB_FILE_NAME, true); + paths << QPair(portablePath+"/"+DB_FILE_NAME, false); } } else if (!globalPath.isNull()) { - paths << globalPath+"/"+DB_FILE_NAME; + paths << QPair(globalPath+"/"+DB_FILE_NAME, true); } else if (!portablePath.isNull()) { - paths << portablePath+"/"+DB_FILE_NAME; - } - - // Create global config directory if not existing - QDir dir; - if (!globalPath.isNull()) - { - dir = QDir(globalPath); - if (!dir.exists()) - QDir::root().mkpath(globalPath); + paths << QPair(portablePath+"/"+DB_FILE_NAME, false); } // A fallback to in-memory db - paths << ":memory:"; + paths << QPair(":memory:", false); // Go through all candidates and pick one - QString path; - foreach (path, paths) + QDir dir; + for (const QPair& path : paths) { - dir = QDir(path); - if (path != ":memory:") + dir = QDir(path.first); + if (path.first != ":memory:") dir.cdUp(); if (tryInitDbFile(path)) @@ -614,17 +605,29 @@ void ConfigImpl::initDbFile() if (configDir == ":memory:") { paths.removeLast(); + QStringList pathStrings; + for (const QPair& path : paths) + pathStrings << path.first; + notifyError(QObject::tr("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.").arg(paths.join(", "))); + " Tried to initialize the file at following localizations: %1.").arg(pathStrings.join(", "))); } qDebug() << "Using configuration directory:" << configDir; db->exec("PRAGMA foreign_keys = 1;"); } -bool ConfigImpl::tryInitDbFile(const QString &dbPath) +bool ConfigImpl::tryInitDbFile(const QPair &dbPath) { - db = new DbSqlite3("SQLiteStudio settings", dbPath, {{DB_PURE_INIT, true}}); + // Create global config directory if not existing + if (dbPath.second && !dbPath.first.isNull()) + { + QDir dir(dbPath.first.mid(0, dbPath.first.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}}); if (!db->open()) { safe_delete(db); diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.h b/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.h index 3bdb7a5..bd31f0b 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.h +++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.h @@ -93,7 +93,7 @@ class API_EXPORT ConfigImpl : public Config QString getPortableConfigPath(); void initTables(); void initDbFile(); - bool tryInitDbFile(const QString& dbPath); + bool tryInitDbFile(const QPair& dbPath); QVariant deserializeValue(const QVariant& value); 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 a7bff0d..cbdc921 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/impl/dbmanagerimpl.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/dbmanagerimpl.cpp @@ -578,46 +578,4 @@ void DbManagerImpl::loaded(Plugin* plugin, PluginType* type) DbPlugin* dbPlugin = dynamic_cast(plugin); rescanInvalidDatabasesForPlugin(dbPlugin); -// Db* db = nullptr; - -// QUrl url; -// 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())) -// continue; - -// db = createDb(invalidDb->getName(), invalidDb->getPath(), invalidDb->getConnectionOptions()); -// if (!db) -// continue; // For this db driver was not loaded yet. - -// if (!dbPlugin->checkIfDbServedByPlugin(db)) -// { -// qDebug() << "Managed to load database" << 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; -// continue; -// } - -// removeDbInternal(invalidDb, false); -// delete invalidDb; - -// addDbInternal(db, false); - -// if (!db->getConnectionOptions().contains(DB_PLUGIN)) -// { -// db->getConnectionOptions()[DB_PLUGIN] = dbPlugin->getName(); -// if (!CFG->updateDb(db->getName(), db->getName(), db->getPath(), db->getConnectionOptions())) -// qWarning() << "Could not store handling plugin in options for database" << db->getName(); -// } - -// if (CFG->getDbGroup(db->getName())->open) -// db->open(); - -// emit dbLoaded(db); -// } } diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.cpp b/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.cpp index c3bc581..017d260 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.cpp @@ -20,7 +20,9 @@ PluginManagerImpl::~PluginManagerImpl() void PluginManagerImpl::init() { - pluginDirs += qApp->applicationDirPath() + "/plugins"; + if (getDistributionType() != DistributionType::OS_MANAGED) + pluginDirs += qApp->applicationDirPath() + "/plugins"; + pluginDirs += QDir(CFG->getConfigDir()).absoluteFilePath("plugins"); QString envDirs = SQLITESTUDIO->getEnv("SQLITESTUDIO_PLUGINS"); diff --git a/SQLiteStudio3/coreSQLiteStudio/services/updatemanager.cpp b/SQLiteStudio3/coreSQLiteStudio/services/updatemanager.cpp index 66620f3..3663a1b 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/updatemanager.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/services/updatemanager.cpp @@ -1,3 +1,5 @@ +#ifdef PORTABLE_CONFIG + #include "updatemanager.h" #include "services/pluginmanager.h" #include "services/notifymanager.h" @@ -44,9 +46,9 @@ UpdateManager::~UpdateManager() cleanup(); } -void UpdateManager::checkForUpdates() +void UpdateManager::checkForUpdates(bool force) { - getUpdatesMetadata(updatesCheckReply); + getUpdatesMetadata(updatesCheckReply, force); } void UpdateManager::update() @@ -150,10 +152,10 @@ void UpdateManager::handleAvailableUpdatesReply(QNetworkReply* reply) emit noUpdatesAvailable(); } -void UpdateManager::getUpdatesMetadata(QNetworkReply*& replyStoragePointer) +void UpdateManager::getUpdatesMetadata(QNetworkReply*& replyStoragePointer, bool force) { -#ifndef NO_AUTO_UPDATES - if (!CFG_CORE.General.CheckUpdatesOnStartup.get() || !isPlatformEligibleForUpdate() || replyStoragePointer) +#ifdef PORTABLE_CONFIG + if ((!CFG_CORE.General.CheckUpdatesOnStartup.get() && !force) || !isPlatformEligibleForUpdate() || replyStoragePointer) return; QUrlQuery query; @@ -1056,3 +1058,5 @@ void UpdateManager::readDownload() { currentDownloadFile->write(updatesGetReply->readAll()); } + +#endif // PORTABLE_CONFIG diff --git a/SQLiteStudio3/coreSQLiteStudio/services/updatemanager.h b/SQLiteStudio3/coreSQLiteStudio/services/updatemanager.h index b8e6006..bb33487 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/updatemanager.h +++ b/SQLiteStudio3/coreSQLiteStudio/services/updatemanager.h @@ -1,6 +1,8 @@ #ifndef UPDATEMANAGER_H #define UPDATEMANAGER_H +#ifdef PORTABLE_CONFIG + #include "common/global.h" #include "sqlitestudio.h" #include @@ -28,7 +30,7 @@ class API_EXPORT UpdateManager : public QObject explicit UpdateManager(QObject *parent = 0); ~UpdateManager(); - void checkForUpdates(); + void checkForUpdates(bool force = false); void update(); bool isPlatformEligibleForUpdate() const; static bool executeFinalStep(const QString& tempDir, const QString& backupDir, const QString& appDir); @@ -54,7 +56,7 @@ class API_EXPORT UpdateManager : public QObject QString getCurrentVersions() const; void handleAvailableUpdatesReply(QNetworkReply* reply); void handleDownloadReply(QNetworkReply* reply); - void getUpdatesMetadata(QNetworkReply*& replyStoragePointer); + void getUpdatesMetadata(QNetworkReply*& replyStoragePointer, bool force = false); void handleUpdatesMetadata(QNetworkReply* reply); QList readMetadata(const QJsonDocument& doc); void downloadUpdates(); @@ -134,4 +136,5 @@ class API_EXPORT UpdateManager : public QObject #define UPDATES SQLITESTUDIO->getUpdateManager() +#endif // PORTABLE_CONFIG #endif // UPDATEMANAGER_H diff --git a/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.cpp b/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.cpp index 963ba7d..8d62b44 100644 --- a/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.cpp @@ -39,7 +39,7 @@ DEFINE_SINGLETON(SQLiteStudio) -static const int sqlitestudioVersion = 30005; +static const int sqlitestudioVersion = 30006; SQLiteStudio::SQLiteStudio() { @@ -87,6 +87,7 @@ void SQLiteStudio::setImmediateQuit(bool value) immediateQuit = value; } +#ifdef PORTABLE_CONFIG UpdateManager* SQLiteStudio::getUpdateManager() const { return updateManager; @@ -96,6 +97,7 @@ void SQLiteStudio::setUpdateManager(UpdateManager* value) { updateManager = value; } +#endif BugReporter* SQLiteStudio::getBugReporter() const { @@ -319,7 +321,9 @@ void SQLiteStudio::init(const QStringList& cmdListArguments, bool guiAvailable) importManager = new ImportManager(); populateManager = new PopulateManager(); bugReporter = new BugReporter(); +#ifdef PORTABLE_CONFIG updateManager = new UpdateManager(); +#endif extraLicenseManager = new ExtraLicenseManager(); extraLicenseManager->addLicense("SQLiteStudio license (GPL v3)", ":/docs/licenses/sqlitestudio_license.txt"); @@ -349,7 +353,9 @@ void SQLiteStudio::cleanUp() 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(bugReporter); safe_delete(populateManager); safe_delete(importManager); diff --git a/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.h b/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.h index f338e92..0b58b17 100644 --- a/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.h +++ b/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.h @@ -25,7 +25,9 @@ class ImportManager; class PopulateManager; class PluginLoadingHandler; class BugReporter; +#ifdef PORTABLE_CONFIG class UpdateManager; +#endif class ExtraLicenseManager; /** @file */ @@ -138,8 +140,10 @@ class API_EXPORT SQLiteStudio : public QObject QString getUserManualPage() const; QString getSqliteDocsPage() const; +#ifdef PORTABLE_CONFIG UpdateManager* getUpdateManager() const; void setUpdateManager(UpdateManager* value); +#endif bool getImmediateQuit() const; void setImmediateQuit(bool value); @@ -200,7 +204,9 @@ class API_EXPORT SQLiteStudio : public QObject ImportManager* importManager = nullptr; PopulateManager* populateManager = nullptr; BugReporter* bugReporter = nullptr; +#ifdef PORTABLE_CONFIG UpdateManager* updateManager = nullptr; +#endif ExtraLicenseManager* extraLicenseManager = nullptr; QString currentLang; QStringList initialTranslationFiles; diff --git a/SQLiteStudio3/coreSQLiteStudio/tablemodifier.cpp b/SQLiteStudio3/coreSQLiteStudio/tablemodifier.cpp index 973402a..97e1fb3 100644 --- a/SQLiteStudio3/coreSQLiteStudio/tablemodifier.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/tablemodifier.cpp @@ -485,6 +485,15 @@ void TableModifier::handleView(SqliteCreateViewPtr view) return; } + view->select->rebuildTokens(); + QString originalSelect = view->select->tokens.detokenize(); + + newSelect->rebuildTokens(); + QString newSelectStr = newSelect->tokens.detokenize(); + + if (originalSelect == newSelectStr) + return; + delete view->select; view->select = newSelect; view->select->setParent(view.data()); diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.ts index 46425fc..7d61000 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.ts @@ -147,30 +147,30 @@ - + 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. @@ -427,36 +427,36 @@ Tables, indexes, triggers and views copied to database %3 will remain. - + 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 @@ -464,33 +464,33 @@ Tables, indexes, triggers and views copied to database %3 will remain. 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 @@ -568,7 +568,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. PopulateManager - + Table '%1' populated successfully. @@ -750,12 +750,12 @@ Tables, indexes, triggers and views copied to database %3 will remain. - + Error while populating table: %1 - + Could not commit transaction after table populating. Error details: %1 @@ -769,8 +769,8 @@ Tables, indexes, triggers and views copied to database %3 will remain. - - + + Result set expired or no row available. @@ -910,43 +910,43 @@ Error details: %2 - + 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 @@ -1008,7 +1008,7 @@ The view will remain as it is. QueryExecutor - + Execution interrupted. @@ -1083,199 +1083,199 @@ The view will remain as it is. UpdateManager - + An error occurred while checking for updates: %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. - + 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. - + Could not create temporary directory for downloading the update. Updating aborted. - + There was no updates to download. Updating aborted. - + Downloading: %1 - + Could not determinate file name from update URL: %1. Updating aborted. - + Failed to open file '%1' for writting: %2. Updating aborted. - + Installing updates. - + Could not copy current application directory into %1 directory. - + Could not create directory %1. - + Could not rename directory %1 to %2. Details: %3 - + Cannot not rename directory %1 to %2. 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 - + Could not rename directory %1 to %2. Rolled back to the original SQLiteStudio version. - + Could not unpack component %1 into %2 directory. - + Could not find permissions elevator application to run update as a root. Looked for: %1 - + Could not execute final updating steps as root: %1 - - - - + + + + Could not execute final updating steps as admin: %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. - + Could not run new version for continuing update. - + Package not in tar.gz format, cannot install: %1 - + Package %1 cannot be installed, because cannot move it to directory: %2 - + Package %1 cannot be installed, because cannot unpack it: %2 - + Package not in zip format, cannot install: %1 - + Package %1 cannot be installed, because cannot unzip it to directory %2: %3 - + Package %1 cannot be installed, because cannot unzip it to directory: %2 - - + + Could not rename directory %1 to %2. - + Could not delete directory %1. - + Error executing update command: %1 Error message: %2 - + An error occurred while downloading updates: %1. Updating aborted. diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.ts index 9545030..054d1dc 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.ts @@ -147,30 +147,30 @@ - + 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. @@ -427,36 +427,36 @@ Tables, indexes, triggers and views copied to database %3 will remain. - + 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 @@ -464,33 +464,33 @@ Tables, indexes, triggers and views copied to database %3 will remain. 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 @@ -568,7 +568,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. PopulateManager - + Table '%1' populated successfully. @@ -750,12 +750,12 @@ Tables, indexes, triggers and views copied to database %3 will remain. - + Error while populating table: %1 - + Could not commit transaction after table populating. Error details: %1 @@ -769,8 +769,8 @@ Tables, indexes, triggers and views copied to database %3 will remain. - - + + Result set expired or no row available. @@ -910,43 +910,43 @@ Error details: %2 - + 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 @@ -1008,7 +1008,7 @@ The view will remain as it is. QueryExecutor - + Execution interrupted. @@ -1083,199 +1083,199 @@ The view will remain as it is. UpdateManager - + An error occurred while checking for updates: %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. - + 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. - + Could not create temporary directory for downloading the update. Updating aborted. - + There was no updates to download. Updating aborted. - + Downloading: %1 - + Could not determinate file name from update URL: %1. Updating aborted. - + Failed to open file '%1' for writting: %2. Updating aborted. - + Installing updates. - + Could not copy current application directory into %1 directory. - + Could not create directory %1. - + Could not rename directory %1 to %2. Details: %3 - + Cannot not rename directory %1 to %2. 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 - + Could not rename directory %1 to %2. Rolled back to the original SQLiteStudio version. - + Could not unpack component %1 into %2 directory. - + Could not find permissions elevator application to run update as a root. Looked for: %1 - + Could not execute final updating steps as root: %1 - - - - + + + + Could not execute final updating steps as admin: %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. - + Could not run new version for continuing update. - + Package not in tar.gz format, cannot install: %1 - + Package %1 cannot be installed, because cannot move it to directory: %2 - + Package %1 cannot be installed, because cannot unpack it: %2 - + Package not in zip format, cannot install: %1 - + Package %1 cannot be installed, because cannot unzip it to directory %2: %3 - + Package %1 cannot be installed, because cannot unzip it to directory: %2 - - + + Could not rename directory %1 to %2. - + Could not delete directory %1. - + Error executing update command: %1 Error message: %2 - + An error occurred while downloading updates: %1. Updating aborted. diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.ts index 6e53771..2931eff 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.ts @@ -147,30 +147,30 @@ 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é. @@ -428,36 +428,36 @@ Tables, index, déclencheurs et vues copiés de la base de données %3 seront ma 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 @@ -465,33 +465,33 @@ Tables, index, déclencheurs et vues copiés de la base de données %3 seront ma 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 @@ -569,7 +569,7 @@ Tables, index, déclencheurs et vues copiés de la base de données %3 seront ma PopulateManager - + Table '%1' populated successfully. Table '%1' remplie avec succès. @@ -751,12 +751,12 @@ Tables, index, déclencheurs et vues copiés de la base de données %3 seront ma 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 @@ -770,8 +770,8 @@ Tables, index, déclencheurs et vues copiés de la base de données %3 seront ma Impossible d'ouvrir la base de données: %1 - - + + Result set expired or no row available. Terminé ou aucune ligne valide. @@ -912,43 +912,43 @@ Détails erreur: %2 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 @@ -1015,7 +1015,7 @@ La vue restera telque. QueryExecutor - + Execution interrupted. Exécution interrompue. @@ -1090,201 +1090,201 @@ La vue restera telque. 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. diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl.ts index 7c061e5..85cfca2 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl.ts @@ -147,30 +147,30 @@ 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. @@ -436,36 +436,36 @@ Tabele, indeksy, wyzwalacze i widoki skopiowane do bazy danych %3 pozostaną na 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 @@ -473,33 +473,33 @@ Tabele, indeksy, wyzwalacze i widoki skopiowane do bazy danych %3 pozostaną na 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 @@ -577,7 +577,7 @@ Tabele, indeksy, wyzwalacze i widoki skopiowane do bazy danych %3 pozostaną na PopulateManager - + Table '%1' populated successfully. Zaludnianie tabeli '%1' przebiegło pomyślnie. @@ -759,12 +759,12 @@ Tabele, indeksy, wyzwalacze i widoki skopiowane do bazy danych %3 pozostaną na 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 @@ -907,43 +907,43 @@ Szczegóły błędu: %2 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 @@ -1018,8 +1018,8 @@ Widok pozostanie nienaruszony. 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. @@ -1034,7 +1034,7 @@ Widok pozostanie nienaruszony. QueryExecutor - + Execution interrupted. Wykonywanie przerwane. @@ -1109,202 +1109,202 @@ Widok pozostanie nienaruszony. 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. diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.ts index d22af44..64f66a5 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.ts @@ -147,30 +147,30 @@ - + 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. @@ -427,36 +427,36 @@ Tables, indexes, triggers and views copied to database %3 will remain. - + 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 @@ -464,33 +464,33 @@ Tables, indexes, triggers and views copied to database %3 will remain. 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 @@ -568,7 +568,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. PopulateManager - + Table '%1' populated successfully. @@ -750,12 +750,12 @@ Tables, indexes, triggers and views copied to database %3 will remain. - + Error while populating table: %1 - + Could not commit transaction after table populating. Error details: %1 @@ -769,8 +769,8 @@ Tables, indexes, triggers and views copied to database %3 will remain. - - + + Result set expired or no row available. @@ -910,43 +910,43 @@ Error details: %2 - + 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 @@ -1008,7 +1008,7 @@ The view will remain as it is. QueryExecutor - + Execution interrupted. @@ -1083,199 +1083,199 @@ The view will remain as it is. UpdateManager - + An error occurred while checking for updates: %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. - + 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. - + Could not create temporary directory for downloading the update. Updating aborted. - + There was no updates to download. Updating aborted. - + Downloading: %1 - + Could not determinate file name from update URL: %1. Updating aborted. - + Failed to open file '%1' for writting: %2. Updating aborted. - + Installing updates. - + Could not copy current application directory into %1 directory. - + Could not create directory %1. - + Could not rename directory %1 to %2. Details: %3 - + Cannot not rename directory %1 to %2. 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 - + Could not rename directory %1 to %2. Rolled back to the original SQLiteStudio version. - + Could not unpack component %1 into %2 directory. - + Could not find permissions elevator application to run update as a root. Looked for: %1 - + Could not execute final updating steps as root: %1 - - - - + + + + Could not execute final updating steps as admin: %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. - + Could not run new version for continuing update. - + Package not in tar.gz format, cannot install: %1 - + Package %1 cannot be installed, because cannot move it to directory: %2 - + Package %1 cannot be installed, because cannot unpack it: %2 - + Package not in zip format, cannot install: %1 - + Package %1 cannot be installed, because cannot unzip it to directory %2: %3 - + Package %1 cannot be installed, because cannot unzip it to directory: %2 - - + + Could not rename directory %1 to %2. - + Could not delete directory %1. - + Error executing update command: %1 Error message: %2 - + An error occurred while downloading updates: %1. Updating aborted. diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.ts index ca7fc68..8bbab69 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.ts @@ -147,31 +147,31 @@ Не удалось добавить базу данных %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. Не найден подходящий драйвер базы данных. @@ -429,36 +429,36 @@ Tables, indexes, triggers and views copied to database %3 will remain. Невозможно завершить транзакцию для импортированных данных: %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 @@ -466,33 +466,33 @@ Tables, indexes, triggers and views copied to database %3 will remain. 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 @@ -570,7 +570,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. PopulateManager - + Table '%1' populated successfully. Таблица '%1' успешно заполнена. @@ -752,12 +752,12 @@ Tables, indexes, triggers and views copied to database %3 will remain. Невозможно начать транзакцию для заполнения таблицы. Подробности ошибки: %1 - + Error while populating table: %1 Ошибка при заполнении таблицы: %1 - + Could not commit transaction after table populating. Error details: %1 Невозможно завершить транзакцию после заполнения таблицы. Подробности ошибки: %1 @@ -771,8 +771,8 @@ Tables, indexes, triggers and views copied to database %3 will remain. Невозможно открыть базу данных: %1 - - + + Result set expired or no row available. Результирующая выборка устарела или ни одна строка не доступна. @@ -912,43 +912,43 @@ Error details: %2 Невозможно инициализировать файл конфигурации. Любые изменения конфигурации и история запросов будут утеряны после перезапуска приложения. Попытки инициализации файла предпринимались в следующих местах: %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 Заполнение таблиц @@ -1015,7 +1015,7 @@ The view will remain as it is. QueryExecutor - + Execution interrupted. Выполнение прервано. @@ -1090,202 +1090,202 @@ The view will remain as it is. 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. Обновление прервано. diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.qm b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.qm index e857185..6dae38a 100644 Binary files a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.qm and b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.qm differ diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.ts index 74fb84c..e953940 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.ts @@ -1,6 +1,6 @@ - + AbstractDb @@ -147,30 +147,30 @@ Nemôžem pridať databázu %1: %2 - + Database %1 could not be updated, because of an error: %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. @@ -427,36 +427,36 @@ Tables, indexes, triggers and views copied to database %3 will remain. - + 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 @@ -464,33 +464,33 @@ Tables, indexes, triggers and views copied to database %3 will remain. 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 @@ -568,7 +568,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. PopulateManager - + Table '%1' populated successfully. Tabuľka %1 úspešne naplnená. @@ -750,12 +750,12 @@ Tables, indexes, triggers and views copied to database %3 will remain. - + Error while populating table: %1 - + Could not commit transaction after table populating. Error details: %1 @@ -769,8 +769,8 @@ Tables, indexes, triggers and views copied to database %3 will remain. - - + + Result set expired or no row available. @@ -910,43 +910,43 @@ Error details: %2 - + 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 @@ -1008,7 +1008,7 @@ The view will remain as it is. QueryExecutor - + Execution interrupted. @@ -1084,199 +1084,199 @@ The view will remain as it is. UpdateManager - + An error occurred while checking for updates: %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. - + 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. - + Could not create temporary directory for downloading the update. Updating aborted. - + There was no updates to download. Updating aborted. - + Downloading: %1 - + Could not determinate file name from update URL: %1. Updating aborted. - + Failed to open file '%1' for writting: %2. Updating aborted. - + Installing updates. - + Could not copy current application directory into %1 directory. - + Could not create directory %1. - + Could not rename directory %1 to %2. Details: %3 - + Cannot not rename directory %1 to %2. 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 - + Could not rename directory %1 to %2. Rolled back to the original SQLiteStudio version. - + Could not unpack component %1 into %2 directory. - + Could not find permissions elevator application to run update as a root. Looked for: %1 - + Could not execute final updating steps as root: %1 - - - - + + + + Could not execute final updating steps as admin: %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. - + Could not run new version for continuing update. - + Package not in tar.gz format, cannot install: %1 - + Package %1 cannot be installed, because cannot move it to directory: %2 - + Package %1 cannot be installed, because cannot unpack it: %2 - + Package not in zip format, cannot install: %1 - + Package %1 cannot be installed, because cannot unzip it to directory %2: %3 - + Package %1 cannot be installed, because cannot unzip it to directory: %2 - - + + 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. - + Error executing update command: %1 Error message: %2 - + An error occurred while downloading updates: %1. Updating aborted. diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_CN.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_CN.ts index 1c95d67..32cf3b8 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_CN.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_CN.ts @@ -147,30 +147,30 @@ - + 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. @@ -427,36 +427,36 @@ Tables, indexes, triggers and views copied to database %3 will remain. - + 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 @@ -464,33 +464,33 @@ Tables, indexes, triggers and views copied to database %3 will remain. 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 @@ -568,7 +568,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. PopulateManager - + Table '%1' populated successfully. @@ -750,12 +750,12 @@ Tables, indexes, triggers and views copied to database %3 will remain. - + Error while populating table: %1 - + Could not commit transaction after table populating. Error details: %1 @@ -769,8 +769,8 @@ Tables, indexes, triggers and views copied to database %3 will remain. - - + + Result set expired or no row available. @@ -910,43 +910,43 @@ Error details: %2 - + 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 @@ -1008,7 +1008,7 @@ The view will remain as it is. QueryExecutor - + Execution interrupted. @@ -1083,199 +1083,199 @@ The view will remain as it is. UpdateManager - + An error occurred while checking for updates: %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. - + 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. - + Could not create temporary directory for downloading the update. Updating aborted. - + There was no updates to download. Updating aborted. - + Downloading: %1 - + Could not determinate file name from update URL: %1. Updating aborted. - + Failed to open file '%1' for writting: %2. Updating aborted. - + Installing updates. - + Could not copy current application directory into %1 directory. - + Could not create directory %1. - + Could not rename directory %1 to %2. Details: %3 - + Cannot not rename directory %1 to %2. 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 - + Could not rename directory %1 to %2. Rolled back to the original SQLiteStudio version. - + Could not unpack component %1 into %2 directory. - + Could not find permissions elevator application to run update as a root. Looked for: %1 - + Could not execute final updating steps as root: %1 - - - - + + + + Could not execute final updating steps as admin: %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. - + Could not run new version for continuing update. - + Package not in tar.gz format, cannot install: %1 - + Package %1 cannot be installed, because cannot move it to directory: %2 - + Package %1 cannot be installed, because cannot unpack it: %2 - + Package not in zip format, cannot install: %1 - + Package %1 cannot be installed, because cannot unzip it to directory %2: %3 - + Package %1 cannot be installed, because cannot unzip it to directory: %2 - - + + Could not rename directory %1 to %2. - + Could not delete directory %1. - + Error executing update command: %1 Error message: %2 - + An error occurred while downloading updates: %1. Updating aborted. diff --git a/SQLiteStudio3/create_win32_portable.bat b/SQLiteStudio3/create_win32_portable.bat index 5602947..c688dc0 100644 --- a/SQLiteStudio3/create_win32_portable.bat +++ b/SQLiteStudio3/create_win32_portable.bat @@ -1,6 +1,6 @@ @echo off -set QT_DIR=c:\Qt\5.3\mingw482_32\bin +set QT_DIR=c:\Qt\5.4\mingw491_32\bin set ZIP="c:\Program Files (x86)\7-Zip\7z.exe" set QMAKE=%QT_DIR%\qmake.exe @@ -44,7 +44,7 @@ cd plugins del /q *.a rem Copy Qt files cd %QT_DIR% -set QT_LIB_LIST=Qt5Core Qt5Gui Qt5Network Qt5PrintSupport Qt5Script Qt5Svg Qt5Widgets Qt5Xml icudt52 icuin52 icuuc52 libgcc_s_dw2-1 libstdc++-6 libwinpthread-1 +set QT_LIB_LIST=Qt5Core Qt5Gui Qt5Network Qt5PrintSupport Qt5Script Qt5Svg Qt5Widgets Qt5Xml icudt53 icuin53 icuuc53 libgcc_s_dw2-1 libstdc++-6 libwinpthread-1 for %%i in (%QT_LIB_LIST%) do ( copy "%%i.dll" %PORTABLE% > nul ) diff --git a/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.cpp b/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.cpp index 9d983a8..8aaeefd 100644 --- a/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.cpp @@ -96,19 +96,16 @@ void ExtActionContainer::attachActionInMenu(int parentAction, QAction* childActi void ExtActionContainer::attachActionInMenu(QAction* parentAction, QAction* childAction, QToolBar* toolbar) { - QToolButton* button = dynamic_cast(toolbar->widgetForAction(parentAction)); - QMenu* menu = button->menu(); - - if (!menu) - { - menu = new QMenu(button); - button->setMenu(menu); - button->setPopupMode(QToolButton::MenuButtonPopup); - } - + QMenu* menu = getMenuForAction(parentAction, toolbar); menu->addAction(childAction); } +void ExtActionContainer::addSeparatorInMenu(QAction *parentAction, QToolBar* toolbar) +{ + QMenu* menu = getMenuForAction(parentAction, toolbar); + menu->addSeparator(); +} + void ExtActionContainer::updateShortcutTips() { } @@ -262,6 +259,19 @@ void ExtActionContainer::handleExtraActions() } } +QMenu *ExtActionContainer::getMenuForAction(QAction *parentAction, QToolBar* toolbar) +{ + QToolButton* button = dynamic_cast(toolbar->widgetForAction(parentAction)); + QMenu* menu = button->menu(); + if (!menu) + { + menu = new QMenu(button); + button->setMenu(menu); + button->setPopupMode(QToolButton::MenuButtonPopup); + } + return menu; +} + ExtActionContainer::ActionDetails::ActionDetails() { } diff --git a/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.h b/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.h index b9dadb9..0c860f7 100644 --- a/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.h +++ b/SQLiteStudio3/guiSQLiteStudio/common/extactioncontainer.h @@ -17,6 +17,7 @@ class QWidget; class QActionGroup; class QToolBar; class QSignalMapper; +class QMenu; #define CFG_SHORTCUTS_METANAME "Shortcuts" @@ -134,6 +135,7 @@ class GUI_API_EXPORT ExtActionContainer void attachActionInMenu(int parentAction, int childAction, QToolBar* toolbar); void attachActionInMenu(int parentAction, QAction* childAction, QToolBar* toolbar); void attachActionInMenu(QAction* parentAction, QAction* childAction, QToolBar* toolbar); + void addSeparatorInMenu(QAction* parentAction, QToolBar *toolbar); void updateShortcutTips(); /** @@ -166,6 +168,7 @@ class GUI_API_EXPORT ExtActionContainer void deleteActions(); void createAction(int action, QAction* qAction, const QObject* receiver, const char* slot, QWidget* container, QWidget* owner); void handleExtraActions(); + QMenu* getMenuForAction(QAction* parentAction, QToolBar *toolbar); template static QList getInstances(); diff --git a/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.cpp b/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.cpp index 544adca..87ad64c 100644 --- a/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.cpp @@ -227,3 +227,11 @@ void CompleterWindow::currentRowChanged(const QModelIndex& current, const QModel UNUSED(previous); ui->status->showMessage(getStatusMsg(current)); } + +void CompleterWindow::showEvent(QShowEvent*e) +{ + QDialog::showEvent(e); + + // A hack for Gnome3 to give this widget a focus. Harmless for others. + ui->list->activateWindow(); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.h b/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.h index 7c933c8..ec7256c 100644 --- a/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.h +++ b/SQLiteStudio3/guiSQLiteStudio/completer/completerwindow.h @@ -35,6 +35,7 @@ class GUI_API_EXPORT CompleterWindow : public QDialog protected: void changeEvent(QEvent *e); void keyPressEvent(QKeyEvent* e); + void showEvent(QShowEvent* e); private: void updateCurrent(); diff --git a/SQLiteStudio3/guiSQLiteStudio/configmapper.cpp b/SQLiteStudio3/guiSQLiteStudio/configmapper.cpp index 255b5cd..da1ff44 100644 --- a/SQLiteStudio3/guiSQLiteStudio/configmapper.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/configmapper.cpp @@ -72,6 +72,16 @@ if (qobject_cast(Widget) && qobject_cast(Widget)->ExtraConditionMethod())\ return qobject_cast(Widget)->Method(); +#define GET_CFG_VALUE_COND_OK(Widget, Key, WidgetType, Method, ExtraConditionMethod, Ok, DefaultValue) \ + if (qobject_cast(Widget))\ + {\ + if (qobject_cast(Widget)->ExtraConditionMethod())\ + return qobject_cast(Widget)->Method();\ + \ + Ok = false;\ + return DefaultValue;\ + } + ConfigMapper::ConfigMapper(CfgMain* cfgMain) { this->cfgMainList << cfgMain; @@ -168,7 +178,7 @@ QVariant ConfigMapper::getCommonConfigValueFromWidget(QWidget* widget, CfgEntry* GET_CFG_VALUE(widget, key, FileEdit, getFile); GET_CFG_VALUE(widget, key, QKeySequenceEdit, keySequence().toString); GET_CFG_VALUE(widget, key, ColorButton, getColor); - GET_CFG_VALUE_COND(widget, key, ConfigRadioButton, getAssignedValue, isChecked); + GET_CFG_VALUE_COND_OK(widget, key, ConfigRadioButton, getAssignedValue, isChecked, ok, QVariant()); GET_CFG_VALUE_COND(widget, key, QGroupBox, isChecked, isCheckable); if (key->get().type() == QVariant::Int) { diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.cpp b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.cpp index ac97283..bb3a711 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.cpp @@ -1420,14 +1420,28 @@ void SqlQueryModel::recalculateRowsAndPages(int rowsDelta) reload(); } -void SqlQueryModel::addNewRow() +int SqlQueryModel::getInsertRowIndex() { + Cfg::InsertRowPlacement placement = static_cast(CFG_UI.General.InsertRowPlacement.get()); + int row = rowCount(); + if (placement == Cfg::AT_THE_END) + return row; + SqlQueryItem* currentItem = view->getCurrentItem(); - if (currentItem) - row = currentItem->index().row(); + if (!currentItem) + return row; - addNewRowInternal(row); + row = currentItem->index().row(); + if (placement == Cfg::AFTER_CURRENT) + row++; + + return row; +} + +void SqlQueryModel::addNewRow() +{ + addNewRowInternal(getInsertRowIndex()); emit commitStatusChanged(true); } @@ -1439,13 +1453,9 @@ void SqlQueryModel::addMultipleRows() if (!ok) return; - int row = rowCount(); - SqlQueryItem* currentItem = view->getCurrentItem(); - if (currentItem) - row = currentItem->index().row(); - + int row = getInsertRowIndex(); for (int i = 0; i < rows; i++) - addNewRowInternal(row); + addNewRowInternal(row++); emit commitStatusChanged(true); } diff --git a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.h b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.h index 062af95..a4e7898 100644 --- a/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.h +++ b/SQLiteStudio3/guiSQLiteStudio/datagrid/sqlquerymodel.h @@ -259,6 +259,7 @@ class GUI_API_EXPORT SqlQueryModel : public QStandardItemModel void detachDatabases(); QString getDatabaseForCommit(const QString& database); void recalculateRowsAndPages(int rowsDelta); + int getInsertRowIndex(); QString query; bool explain = false; diff --git a/SQLiteStudio3/guiSQLiteStudio/dataview.cpp b/SQLiteStudio3/guiSQLiteStudio/dataview.cpp index 32efae4..f2aba69 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dataview.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dataview.cpp @@ -9,6 +9,7 @@ #include "common/intvalidator.h" #include "common/extaction.h" #include "iconmanager.h" +#include "themetuner.h" #include "uiconfig.h" #include "datagrid/sqlqueryitem.h" #include "common/widgetcover.h" @@ -117,6 +118,11 @@ void DataView::createContents() gridWidget->layout()->addWidget(gridToolBar); formWidget->layout()->addWidget(formToolBar); + THEME_TUNER->manageCompactLayout({ + gridWidget, + formWidget + }); + #ifdef Q_OS_MACX QStyle *fusion = QStyleFactory::create("Fusion"); gridToolBar->setStyle(fusion); @@ -162,6 +168,9 @@ void DataView::createActions() { gridToolBar->addAction(gridView->getAction(SqlQueryView::INSERT_ROW)); attachActionInMenu(gridView->getAction(SqlQueryView::INSERT_ROW), gridView->getAction(SqlQueryView::INSERT_MULTIPLE_ROWS), gridToolBar); + addSeparatorInMenu(gridView->getAction(SqlQueryView::INSERT_ROW), gridToolBar); + for (Action act : {INSERT_ROW_BEFORE, INSERT_ROW_AFTER, INSERT_ROW_AT_END}) + attachActionInMenu(gridView->getAction(SqlQueryView::INSERT_ROW), staticActions[act], gridToolBar); } if (rowDeleting) @@ -324,6 +333,44 @@ void DataView::createStaticActions() else staticActions[TABS_AT_BOTTOM]->setChecked(true); + // Insert row positioning + staticActions[INSERT_ROW_BEFORE] = new ExtAction(tr("Place new rows above selected row", "data view"), MainWindow::getInstance()); + staticActions[INSERT_ROW_AFTER] = new ExtAction(tr("Place new rows below selected row", "data view"), MainWindow::getInstance()); + staticActions[INSERT_ROW_AT_END] = new ExtAction(tr("Place new rows at the end of the data view", "data view"), MainWindow::getInstance()); + + staticActionGroups[ActionGroup::INSERT_ROW_POSITIONING] = new QActionGroup(MainWindow::getInstance()); + staticActionGroups[ActionGroup::INSERT_ROW_POSITIONING]->addAction(staticActions[INSERT_ROW_BEFORE]); + staticActionGroups[ActionGroup::INSERT_ROW_POSITIONING]->addAction(staticActions[INSERT_ROW_AFTER]); + staticActionGroups[ActionGroup::INSERT_ROW_POSITIONING]->addAction(staticActions[INSERT_ROW_AT_END]); + + connect(staticActions[INSERT_ROW_BEFORE], &QAction::triggered, [=]() + { + CFG_UI.General.InsertRowPlacement.set(Cfg::BEFORE_CURRENT); + }); + connect(staticActions[INSERT_ROW_AFTER], &QAction::triggered, [=]() + { + CFG_UI.General.InsertRowPlacement.set(Cfg::AFTER_CURRENT); + }); + connect(staticActions[INSERT_ROW_AT_END], &QAction::triggered, [=]() + { + CFG_UI.General.InsertRowPlacement.set(Cfg::AT_THE_END); + }); + + staticActions[INSERT_ROW_BEFORE]->setCheckable(true); + staticActions[INSERT_ROW_AFTER]->setCheckable(true); + staticActions[INSERT_ROW_AT_END]->setCheckable(true); + switch (static_cast(CFG_UI.General.InsertRowPlacement.get())) + { + case Cfg::BEFORE_CURRENT: + staticActions[INSERT_ROW_BEFORE]->setChecked(true); + break; + case Cfg::AFTER_CURRENT: + staticActions[INSERT_ROW_AFTER]->setChecked(true); + break; + case Cfg::AT_THE_END: + staticActions[INSERT_ROW_AT_END]->setChecked(true); + break; + } } void DataView::loadTabsMode() diff --git a/SQLiteStudio3/guiSQLiteStudio/dataview.h b/SQLiteStudio3/guiSQLiteStudio/dataview.h index 64bbb07..ce1b982 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dataview.h +++ b/SQLiteStudio3/guiSQLiteStudio/dataview.h @@ -48,6 +48,9 @@ class GUI_API_EXPORT DataView : public QTabWidget, public ExtActionContainer GRID_TOTAL_ROWS, SELECTIVE_COMMIT, SELECTIVE_ROLLBACK, + INSERT_ROW_BEFORE, + INSERT_ROW_AFTER, + INSERT_ROW_AT_END, // Form view FORM_TOTAL_ROWS, FORM_CURRENT_ROW @@ -56,7 +59,8 @@ class GUI_API_EXPORT DataView : public QTabWidget, public ExtActionContainer enum class ActionGroup { FILTER_MODE, - TABS_POSITION + TABS_POSITION, + INSERT_ROW_POSITIONING }; enum ToolBar diff --git a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.cpp b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.cpp index 1aeff0f..62d7368 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include CFG_KEYS_DEFINE(DbTree) @@ -63,6 +64,8 @@ void DbTree::init() ui->setupUi(this); initDndTypes(); + THEME_TUNER->manageCompactLayout(widget()); + ui->nameFilter->setClearButtonEnabled(true); widgetCover = new WidgetCover(this); diff --git a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.ui b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.ui index 755c9b0..687415d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.ui +++ b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.ui @@ -24,6 +24,12 @@ + + 0 + + + 0 + diff --git a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp index 78f0db8..c0f527f 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp @@ -534,7 +534,7 @@ QList DbTreeModel::refreshSchemaTables(const QStringList &table { QStringList sortedTables = tables; if (sort) - qSort(sortedTables); + sortedTables.sort(Qt::CaseInsensitive); QList items; foreach (const QString& table, sortedTables) @@ -573,7 +573,7 @@ StrHash > DbTreeModel::refreshSchemaIndexes(const StrHash { sortedIndexes = indexes[key]; if (sort) - qSort(sortedIndexes); + sortedIndexes.sort(Qt::CaseInsensitive); for (const QString& index : sortedIndexes) items[key] += DbTreeItemFactory::createIndex(index, this); @@ -589,7 +589,7 @@ StrHash> DbTreeModel::refreshSchemaTriggers(const StrHash< { sortedTriggers = triggers[key]; if (sort) - qSort(sortedTriggers); + sortedTriggers.sort(Qt::CaseInsensitive); for (const QString& trigger : sortedTriggers) items[key] += DbTreeItemFactory::createTrigger(trigger, this); @@ -601,10 +601,10 @@ QList DbTreeModel::refreshSchemaViews(const QStringList &views, { QStringList sortedViews = views; if (sort) - qSort(sortedViews); + sortedViews.sort(Qt::CaseInsensitive); QList items; - foreach (const QString& view, views) + foreach (const QString& view, sortedViews) items += DbTreeItemFactory::createView(view, this); return items; diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.cpp index 1ff053f..627e2c1 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #define GET_FILTER_STRING(Widget, WidgetType, Method) \ if (qobject_cast(Widget))\ @@ -195,13 +196,24 @@ void ConfigDialog::init() connect(ui->buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), this, SLOT(apply())); connect(ui->hideBuiltInPluginsCheck, SIGNAL(toggled(bool)), this, SLOT(updateBuiltInPluginsVisibility())); + QList entries; + entries << CFG_UI.General.SortObjects + << CFG_UI.General.SortColumns + << CFG_UI.General.ShowDbTreeLabels + << CFG_UI.General.ShowRegularTableLabels + << CFG_UI.General.ShowSystemObjects + << CFG_UI.General.ShowVirtualTableLabels; + + for (CfgEntry* cfg : entries) + connect(cfg, &CfgEntry::changed, this, &ConfigDialog::markRequiresSchemasRefresh); + ui->activeStyleCombo->addItems(QStyleFactory::keys()); connect(ui->stackedWidget, SIGNAL(currentChanged(int)), this, SLOT(pageSwitched())); ui->hideBuiltInPluginsCheck->setChecked(true); -#ifdef NO_AUTO_UPDATES +#ifndef PORTABLE_CONFIG ui->updatesGroup->setVisible(false); #endif @@ -219,7 +231,8 @@ void ConfigDialog::load() void ConfigDialog::save() { - MainWindow::getInstance()->setStyle(ui->activeStyleCombo->currentText()); + if (MainWindow::getInstance()->currentStyle().compare(ui->activeStyleCombo->currentText(), Qt::CaseInsensitive) != 0) + MainWindow::getInstance()->setStyle(ui->activeStyleCombo->currentText()); QString loadedPlugins = collectLoadedPlugins(); storeSelectedFormatters(); @@ -228,6 +241,13 @@ void ConfigDialog::save() configMapper->saveFromWidget(ui->stackedWidget, true); commitPluginConfigs(); CFG->commitMassSave(); + + if (requiresSchemasRefresh) + { + requiresSchemasRefresh = false; + DBTREE->refreshSchemas(); + } + MainWindow::getInstance()->updateCornerDocking(); } void ConfigDialog::storeSelectedFormatters() @@ -927,6 +947,11 @@ void ConfigDialog::applyShortcutsFilter(const QString &filter) } } +void ConfigDialog::markRequiresSchemasRefresh() +{ + requiresSchemasRefresh = true; +} + void ConfigDialog::updatePluginCategoriesVisibility(QTreeWidgetItem* categoryItem) { categoryItem->setHidden(categoryItem->childCount() == 0); diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.h index 5661c1a..ae2f3a7 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.h @@ -100,6 +100,7 @@ class GUI_API_EXPORT ConfigDialog : public QDialog bool updatingDataEditorItem = false; bool modifiedFlag = false; QList notifiablePlugins; + bool requiresSchemasRefresh = false; private slots: void refreshFormattersPage(); @@ -134,6 +135,7 @@ class GUI_API_EXPORT ConfigDialog : public QDialog void updatePluginCategoriesVisibility(); void updateBuiltInPluginsVisibility(); void applyShortcutsFilter(const QString& filter); + void markRequiresSchemasRefresh(); public slots: void accept(); diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.ui b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.ui index 966ebca..1c5515d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.ui +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.ui @@ -227,7 +227,7 @@ - 6 + 0 @@ -295,6 +295,57 @@ + + + + Inserting new row in data grid + + + + + + Before currently selected row + + + true + + + 0 + + + General.InsertRowPlacement + + + + + + + After currently selected row + + + 1 + + + General.InsertRowPlacement + + + + + + + At the end of data view + + + 2 + + + General.InsertRowPlacement + + + + + + @@ -594,7 +645,7 @@ false - QAbstractItemView::SingleSelection + QAbstractItemView::NoSelection 0 @@ -651,197 +702,274 @@ 0 - - - Language - - - - - - Changing language requires application restart to take effect. - - - - - - - General.Language - - - - - - - - - - Database list - - - - - - If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. - - - Sort table columns alphabetically - - - General.SortColumns - - - - - - - Expand tables node when connected to a database - - - General.ExpandTables - - - - - - - <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 - - - true - - - false - - - General.ShowDbTreeLabels - - - - - - For regular tables labels will show number of columns, indexes and triggers for each of tables. - - - Display labels for regular tables - - - General.ShowRegularTableLabels - - - - - - - Virtual tables will be marked with a 'virtual' label. - - - Display labels for virtual tables - - - General.ShowVirtualTableLabels - - - - - - - - - - Expand views node when connected to a database - - - General.ExpandViews - - - - - - - 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 - - - General.SortObjects - - - - - - - Display system tables and indexes on the list - - - General.ShowSystemObjects - - - - - - - - - - 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 - - - General.OpenTablesOnData - - - - - - - - - - View windows + + + true - - - - - 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 - - - General.OpenViewsOnData - - - - + + + + 0 + 0 + 456 + 608 + + + + + + + Language + + + + + + Changing language requires application restart to take effect. + + + + + + + General.Language + + + + + + + + + + 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 + + + true + + + General.CompactLayout + + + + + + + + + + Database list + + + + + + If switched off, then columns will be sorted in the order they are typed in CREATE TABLE statement. + + + Sort table columns alphabetically + + + General.SortColumns + + + + + + + Expand tables node when connected to a database + + + General.ExpandTables + + + + + + + <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 + + + true + + + false + + + General.ShowDbTreeLabels + + + + + + For regular tables labels will show number of columns, indexes and triggers for each of tables. + + + Display labels for regular tables + + + General.ShowRegularTableLabels + + + + + + + Virtual tables will be marked with a 'virtual' label. + + + Display labels for virtual tables + + + General.ShowVirtualTableLabels + + + + + + + + + + Expand views node when connected to a database + + + General.ExpandViews + + + + + + + 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 + + + General.SortObjects + + + + + + + Display system tables and indexes on the list + + + General.ShowSystemObjects + + + + + + + + + + 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 + + + General.OpenTablesOnData + + + + + + + + + + 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 + + + General.OpenViewsOnData + + + + + + + + + + Main window dock areas + + + + + + Left and right areas occupy corners + + + + :/icons/img/dock_layout_vertical.png:/icons/img/dock_layout_vertical.png + + + true + + + General.DockLayout + + + vertical + + + + + + + Top and bottom areas occupy corners + + + + :/icons/img/dock_layout_horizontal.png:/icons/img/dock_layout_horizontal.png + + + General.DockLayout + + + horizontal + + + + + + + + - - - - Qt::Vertical - - - - 20 - 40 - - - - @@ -1147,7 +1275,7 @@ <!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"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:10pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'.Helvetica Neue DeskInterface'; font-size:13pt; 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> @@ -1238,8 +1366,8 @@ p, li { white-space: pre-wrap; } 0 0 - 258 - 286 + 249 + 322 @@ -1360,8 +1488,8 @@ p, li { white-space: pre-wrap; } 0 0 - 307 - 666 + 329 + 813 @@ -1909,6 +2037,11 @@ p, li { white-space: pre-wrap; }
common/fontedit.h
1 + + ConfigRadioButton + QRadioButton +
common/configradiobutton.h
+
categoriesFilter diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/cssdebugdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/cssdebugdialog.cpp new file mode 100644 index 0000000..99439e8 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/cssdebugdialog.cpp @@ -0,0 +1,50 @@ +#include "cssdebugdialog.h" +#include "ui_cssdebugdialog.h" +#include "mainwindow.h" +#include "themetuner.h" +#include +#include + +CssDebugDialog::CssDebugDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::CssDebugDialog) +{ + ui->setupUi(this); + connect(ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(buttonClicked(QAbstractButton*))); + + appliedCss = MAINWINDOW->styleSheet(); + ui->cssEdit->setPlainText(appliedCss); + updateState(); + + connect(ui->cssEdit, SIGNAL(textChanged()), this, SLOT(updateState())); +} + +CssDebugDialog::~CssDebugDialog() +{ + delete ui; +} + +void CssDebugDialog::buttonClicked(QAbstractButton* button) +{ + if (ui->buttonBox->standardButton(button) == QDialogButtonBox::RestoreDefaults) + { + ui->cssEdit->setPlainText(THEME_TUNER->getDefaultCss()); + } + else if (ui->buttonBox->buttonRole(button) == QDialogButtonBox::ApplyRole) + { + appliedCss = ui->cssEdit->toPlainText(); + MAINWINDOW->setStyleSheet(appliedCss); + } + + updateState(); +} + +void CssDebugDialog::updateState() +{ + ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(ui->cssEdit->toPlainText() != appliedCss); +} + +void CssDebugDialog::closeEvent(QCloseEvent*) +{ + deleteLater(); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/cssdebugdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/cssdebugdialog.h new file mode 100644 index 0000000..d22dd74 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/cssdebugdialog.h @@ -0,0 +1,32 @@ +#ifndef CSSDEBUGDIALOG_H +#define CSSDEBUGDIALOG_H + +#include + +namespace Ui { + class CssDebugDialog; +} + +class QAbstractButton; + +class CssDebugDialog : public QDialog +{ + Q_OBJECT + + public: + explicit CssDebugDialog(QWidget *parent = 0); + ~CssDebugDialog(); + + protected: + void closeEvent(QCloseEvent*); + + private: + Ui::CssDebugDialog *ui; + QString appliedCss; + + private slots: + void buttonClicked(QAbstractButton* button); + void updateState(); +}; + +#endif // CSSDEBUGDIALOG_H diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/cssdebugdialog.ui b/SQLiteStudio3/guiSQLiteStudio/dialogs/cssdebugdialog.ui new file mode 100644 index 0000000..e619940 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/cssdebugdialog.ui @@ -0,0 +1,67 @@ + + + CssDebugDialog + + + + 0 + 0 + 620 + 423 + + + + SQLiteStudio CSS console + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Apply|QDialogButtonBox::Close|QDialogButtonBox::RestoreDefaults + + + + + + + + + buttonBox + accepted() + CssDebugDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + CssDebugDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp index ac7cd8a..a3d0e65 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/dbdialog.cpp @@ -9,6 +9,7 @@ #include "common/global.h" #include "iconmanager.h" #include "common/unused.h" +#include "db/sqlquery.h" #include #include #include @@ -464,7 +465,7 @@ bool DbDialog::testDatabase() { if (testDb->openForProbing()) { - res = !testDb->getEncoding().isEmpty(); + res = !testDb->exec("SELECT sqlite_version();")->getSingleCell().toString().isEmpty(); testDb->closeQuiet(); } delete testDb; diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp index c16b90e..2f52396 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.cpp @@ -17,6 +17,7 @@ #include #include #include +#include ImportDialog::ImportDialog(QWidget *parent) : QWizard(parent), @@ -369,3 +370,13 @@ void ImportDialog::showEvent(QShowEvent* e) QWizard::showEvent(e); ui->tableNameCombo->setFocus(); } + +void ImportDialog::keyPressEvent(QKeyEvent* e) +{ + if ((e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return) && QApplication::focusWidget() == ui->tableNameCombo) + { + next(); + return; + } + QWizard::keyPressEvent(e); +} diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.h index c50703f..b4c2883 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/importdialog.h @@ -29,6 +29,7 @@ class GUI_API_EXPORT ImportDialog : public QWizard protected: void showEvent(QShowEvent* e); + void keyPressEvent(QKeyEvent* e); private: void init(); diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.cpp index efb2e6c..cdae91d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/indexdialog.cpp @@ -333,6 +333,7 @@ void IndexDialog::rebuildCreateIndex() createIndex->uniqueKw = ui->uniqueCheck->isChecked(); + Dialect dialect = db->getDialect(); SqliteIndexedColumn* idxCol = nullptr; int i = -1; for (const QString& column : tableColumns) @@ -343,7 +344,7 @@ void IndexDialog::rebuildCreateIndex() continue; idxCol = addIndexedColumn(column); - if (!collateComboBoxes[i]->currentText().isEmpty()) + if (dialect == Dialect::Sqlite3 && !collateComboBoxes[i]->currentText().isEmpty()) idxCol->collate = collateComboBoxes[i]->currentText(); if (sortComboBoxes[i]->currentIndex() > 0) diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/newversiondialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/newversiondialog.cpp index 1c73de0..d0976a3 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/newversiondialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/newversiondialog.cpp @@ -1,3 +1,5 @@ +#ifdef PORTABLE_CONFIG + #include "newversiondialog.h" #include "services/pluginmanager.h" #include "sqlitestudio.h" @@ -66,3 +68,5 @@ void NewVersionDialog::showEvent(QShowEvent*) { ui->checkOnStartupCheck->setChecked(CFG_CORE.General.CheckUpdatesOnStartup.get()); } + +#endif // PORTABLE_CONFIG diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/newversiondialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/newversiondialog.h index 784c6cf..fc62d6d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/newversiondialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/newversiondialog.h @@ -1,6 +1,8 @@ #ifndef NEWVERSIONDIALOG_H #define NEWVERSIONDIALOG_H +#ifdef PORTABLE_CONFIG + #include "services/updatemanager.h" #include "guiSQLiteStudio_global.h" #include @@ -31,4 +33,5 @@ class GUI_API_EXPORT NewVersionDialog : public QDialog void installUpdates(); }; +#endif // PORTABLE_CONFIG #endif // NEWVERSIONDIALOG_H diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/searchtextdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/searchtextdialog.cpp index 87a6d88..578a253 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/searchtextdialog.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/searchtextdialog.cpp @@ -9,6 +9,10 @@ SearchTextDialog::SearchTextDialog(SearchTextLocator* textLocator, QWidget *pare { ui->setupUi(this); connect(textLocator, SIGNAL(replaceAvailable(bool)), this, SLOT(setReplaceAvailable(bool))); + connect(ui->findEdit, SIGNAL(textChanged(QString)), this, SLOT(markModifiedState())); + connect(ui->caseSensitiveCheck, SIGNAL(toggled(bool)), this, SLOT(markModifiedState())); + connect(ui->backwardsCheck, SIGNAL(toggled(bool)), this, SLOT(markModifiedState())); + connect(ui->regExpCheck, SIGNAL(toggled(bool)), this, SLOT(markModifiedState())); } SearchTextDialog::~SearchTextDialog() @@ -73,3 +77,8 @@ void SearchTextDialog::on_replaceAllButton_clicked() textLocator->setReplaceString(ui->replaceEdit->text()); textLocator->replaceAll(); } + +void SearchTextDialog::markModifiedState() +{ + configModifiedState = true; +} diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/searchtextdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/searchtextdialog.h index 54f6f72..ae33856 100644 --- a/SQLiteStudio3/guiSQLiteStudio/dialogs/searchtextdialog.h +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/searchtextdialog.h @@ -34,6 +34,7 @@ class GUI_API_EXPORT SearchTextDialog : public QDialog void on_findButton_clicked(); void on_replaceButton_clicked(); void on_replaceAllButton_clicked(); + void markModifiedState(); }; #endif // SEARCHTEXTDIALOG_H diff --git a/SQLiteStudio3/guiSQLiteStudio/formview.cpp b/SQLiteStudio3/guiSQLiteStudio/formview.cpp index ab51f3e..6e62786 100644 --- a/SQLiteStudio3/guiSQLiteStudio/formview.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/formview.cpp @@ -113,26 +113,14 @@ void FormView::addColumn(int colIdx, const QString& name, const DataType& dataTy if (!dataType.toString().isEmpty()) groupLabel += " (" + dataType.toString() + ")"; - QGroupBox* group = new QGroupBox(groupLabel); - QFont font = group->font(); - font.setBold(true); - group->setFont(font); - - QVBoxLayout *vbox = new QVBoxLayout(); - vbox->setSpacing(spacing); - vbox->setMargin(margins); - group->setLayout(vbox); - // MultiEditor MultiEditor* multiEditor = new MultiEditor(); - font.setBold(false); - multiEditor->setFont(font); multiEditor->setReadOnly(readOnly); + multiEditor->setCornerLabel(groupLabel); dataMapper->addMapping(multiEditor, colIdx, "value"); - vbox->addWidget(multiEditor); - widgets << group; + widgets << multiEditor; editors << multiEditor; - contents->layout()->addWidget(group); + contents->layout()->addWidget(multiEditor); this->readOnly << readOnly; connect(multiEditor, SIGNAL(modified()), this, SLOT(editorValueModified())); @@ -142,7 +130,7 @@ void FormView::addColumn(int colIdx, const QString& name, const DataType& dataTy // Resizer WidgetResizer* resizer = new WidgetResizer(Qt::Vertical); - resizer->setWidget(group); + resizer->setWidget(multiEditor); resizer->setWidgetMinimumSize(0, minimumFieldHeight); widgets << resizer; contents->layout()->addWidget(resizer); diff --git a/SQLiteStudio3/guiSQLiteStudio/general.css b/SQLiteStudio3/guiSQLiteStudio/general.css new file mode 100644 index 0000000..93b351c --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/general.css @@ -0,0 +1,15 @@ +QToolBar { + margin: 0px; + padding: 0px; +} + +QToolBar > QToolButton { + padding: 0px; + margin-top: 2px; + margin-bottom: 2px; +} + +QToolBar > QToolButton[popupMode="1"] { + padding-right: 6px; + padding-left: 6px; +} diff --git a/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.pro b/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.pro index e32aff5..3010dca 100644 --- a/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.pro +++ b/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.pro @@ -19,6 +19,10 @@ linux: { } } +portable: { + DEFINES += PORTABLE_CONFIG +} + TARGET = guiSQLiteStudio TEMPLATE = lib @@ -175,7 +179,9 @@ SOURCES +=\ dialogs/quitconfirmdialog.cpp \ common/datawidgetmapper.cpp \ dialogs/languagedialog.cpp \ - common/ipvalidator.cpp + common/ipvalidator.cpp \ + dialogs/cssdebugdialog.cpp \ + themetuner.cpp HEADERS += mainwindow.h \ iconmanager.h \ @@ -320,7 +326,9 @@ HEADERS += mainwindow.h \ dialogs/quitconfirmdialog.h \ common/datawidgetmapper.h \ dialogs/languagedialog.h \ - common/ipvalidator.h + common/ipvalidator.h \ + dialogs/cssdebugdialog.h \ + themetuner.h FORMS += mainwindow.ui \ dbtree/dbtree.ui \ @@ -368,7 +376,8 @@ FORMS += mainwindow.ui \ windows/bugreporthistorywindow.ui \ dialogs/newversiondialog.ui \ dialogs/quitconfirmdialog.ui \ - dialogs/languagedialog.ui + dialogs/languagedialog.ui \ + dialogs/cssdebugdialog.ui RESOURCES += \ icons.qrc \ @@ -383,6 +392,9 @@ unix: { LIBS += -lcoreSQLiteStudio +DISTFILES += \ + general.css + diff --git a/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.qrc b/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.qrc index 4f33880..97ed77f 100644 --- a/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.qrc +++ b/SQLiteStudio3/guiSQLiteStudio/guiSQLiteStudio.qrc @@ -6,4 +6,7 @@ translations/guiSQLiteStudio_sk.qm translations/guiSQLiteStudio_zh_CN.qm + + general.css + diff --git a/SQLiteStudio3/guiSQLiteStudio/iconmanager.h b/SQLiteStudio3/guiSQLiteStudio/iconmanager.h index 940c869..648e173 100644 --- a/SQLiteStudio3/guiSQLiteStudio/iconmanager.h +++ b/SQLiteStudio3/guiSQLiteStudio/iconmanager.h @@ -104,6 +104,8 @@ class GUI_API_EXPORT IconManager : public QObject DEF_ICON(DIRECTORY_OPEN, "directory_open") DEF_ICON(DIRECTORY_OPEN_WITH_DB, "directory_open_with_db") DEF_ICON(DIRECTORY_WITH_DB, "directory_with_db") + DEF_ICON(DOCK_LAYOUT_HORIZONTAL, "dock_layout_horizontal") + DEF_ICON(DOCK_LAYOUT_VERTICAL, "dock_layout_vertical") DEF_ICON(ERASE, "erase") DEF_ICON(ERASE_TABLE_DATA, "erase_table_data") DEF_ICON(EXEC_QUERY, "exec_query") diff --git a/SQLiteStudio3/guiSQLiteStudio/icons.qrc b/SQLiteStudio3/guiSQLiteStudio/icons.qrc index 9cf981d..015e68a 100644 --- a/SQLiteStudio3/guiSQLiteStudio/icons.qrc +++ b/SQLiteStudio3/guiSQLiteStudio/icons.qrc @@ -193,5 +193,7 @@ img/plus.png img/erase_table_data.png img/delete.png + img/dock_layout_horizontal.png + img/dock_layout_vertical.png diff --git a/SQLiteStudio3/guiSQLiteStudio/img/dock_layout_horizontal.png b/SQLiteStudio3/guiSQLiteStudio/img/dock_layout_horizontal.png new file mode 100644 index 0000000..2b69105 Binary files /dev/null and b/SQLiteStudio3/guiSQLiteStudio/img/dock_layout_horizontal.png differ diff --git a/SQLiteStudio3/guiSQLiteStudio/img/dock_layout_vertical.png b/SQLiteStudio3/guiSQLiteStudio/img/dock_layout_vertical.png new file mode 100644 index 0000000..7279961 Binary files /dev/null and b/SQLiteStudio3/guiSQLiteStudio/img/dock_layout_vertical.png differ diff --git a/SQLiteStudio3/guiSQLiteStudio/mainwindow.cpp b/SQLiteStudio3/guiSQLiteStudio/mainwindow.cpp index 373b21d..4691dda 100644 --- a/SQLiteStudio3/guiSQLiteStudio/mainwindow.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/mainwindow.cpp @@ -37,6 +37,8 @@ #include "dialogs/newversiondialog.h" #include "dialogs/quitconfirmdialog.h" #include "common/widgetcover.h" +#include "dialogs/cssdebugdialog.h" +#include "themetuner.h" #include #include #include @@ -77,6 +79,7 @@ void MainWindow::init() #endif Committable::init(MainWindow::confirmQuit); + updateCornerDocking(); DbTreeModel::staticInit(); dbTree = new DbTree(this); @@ -120,8 +123,10 @@ void MainWindow::init() notifyInfo(tr("Running in debug mode. Debug messages are printed to the standard output.")); } +#ifdef PORTABLE_CONFIG connect(UPDATES, SIGNAL(updatesAvailable(QList)), this, SLOT(updatesAvailable(QList))); connect(UPDATES, SIGNAL(noUpdatesAvailable()), this, SLOT(noUpdatesAvailable())); +#endif connect(statusField, SIGNAL(linkActivated(QString)), this, SLOT(statusFieldLinkClicked(QString))); // Widget cover @@ -145,8 +150,10 @@ void MainWindow::init() widgetCover->getContainerLayout()->addWidget(updatingLabel, 0, 0); widgetCover->getContainerLayout()->addWidget(updatingBusyBar, 1, 0); widgetCover->getContainerLayout()->addWidget(updatingSubBar, 2, 0); +#ifdef PORTABLE_CONFIG connect(UPDATES, SIGNAL(updatingProgress(QString,int,int)), this, SLOT(handleUpdatingProgress(QString,int,int))); connect(UPDATES, SIGNAL(updatingError(QString)), this, SLOT(handleUpdatingError())); +#endif connect(CFG_CORE.General.Language, SIGNAL(changed(QVariant)), this, SLOT(notifyAboutLanguageChange())); } @@ -167,6 +174,8 @@ void MainWindow::cleanUp() delete ui; + ThemeTuner::cleanUp(); + safe_delete(formManager); } @@ -266,6 +275,7 @@ void MainWindow::createActions() createAction(RENAME_WINDOW, ICONS.WIN_RENAME, tr("Rename 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); createAction(REPORT_BUG, ICONS.BUG, tr("Report a bug"), this, SLOT(reportBug()), this); createAction(FEATURE_REQUEST, ICONS.FEATURE_REQUEST, tr("Propose a new feature"), this, SLOT(requestFeature()), this); createAction(ABOUT, ICONS.SQLITESTUDIO_APP16, tr("About"), this, SLOT(aboutSqlitestudio()), this); @@ -275,7 +285,9 @@ void MainWindow::createActions() createAction(USER_MANUAL, ICONS.USER_MANUAL, tr("User Manual"), this, SLOT(userManual()), this); createAction(SQLITE_DOCS, ICONS.SQLITE_DOCS, tr("SQLite documentation"), this, SLOT(sqliteDocs()), this); createAction(BUG_REPORT_HISTORY, ICONS.BUG_LIST, tr("Report history"), this, SLOT(reportHistory()), this); +#ifdef PORTABLE_CONFIG createAction(CHECK_FOR_UPDATES, ICONS.GET_UPDATE, tr("Check for updates"), this, SLOT(checkForUpdates()), this); +#endif actionMap[ABOUT]->setMenuRole(QAction::AboutRole); actionMap[OPEN_CONFIG]->setMenuRole(QAction::PreferencesRole); @@ -404,11 +416,13 @@ void MainWindow::initMenuBar() sqlitestudioMenu->addAction(actionMap[HOMEPAGE]); sqlitestudioMenu->addAction(actionMap[FORUM]); sqlitestudioMenu->addSeparator(); +#ifdef PORTABLE_CONFIG if (UPDATES->isPlatformEligibleForUpdate()) { sqlitestudioMenu->addAction(actionMap[CHECK_FOR_UPDATES]); sqlitestudioMenu->addSeparator(); } +#endif sqlitestudioMenu->addAction(actionMap[REPORT_BUG]); sqlitestudioMenu->addAction(actionMap[FEATURE_REQUEST]); sqlitestudioMenu->addAction(actionMap[BUG_REPORT_HISTORY]); @@ -453,10 +467,15 @@ void MainWindow::restoreSession() { QHash sessionValue = CFG_UI.General.Session.get(); if (sessionValue.size() == 0) + { + THEME_TUNER->tuneCurrentTheme(); return; + } if (sessionValue.contains("style")) setStyle(sessionValue["style"].toString()); + else + THEME_TUNER->tuneCurrentTheme(); if (sessionValue.contains("geometry")) restoreGeometry(sessionValue["geometry"].toByteArray()); @@ -484,6 +503,7 @@ void MainWindow::restoreSession() if (statusField->hasMessages()) statusField->setVisible(true); + updateCornerDocking(); updateWindowActions(); } @@ -550,6 +570,7 @@ void MainWindow::setStyle(const QString& styleName) return; } QApplication::setStyle(style); + THEME_TUNER->tuneTheme(styleName); } QString MainWindow::currentStyle() const @@ -680,6 +701,12 @@ void MainWindow::openDebugConsole() showUiDebugConsole(); } +void MainWindow::openCssConsole() +{ + CssDebugDialog* dialog = new CssDebugDialog; + dialog->show(); +} + void MainWindow::reportBug() { BugDialog dialog(this); @@ -730,6 +757,18 @@ void MainWindow::reportHistory() openReportHistory(); } +void MainWindow::statusFieldLinkClicked(const QString& link) +{ +#ifdef PORTABLE_CONFIG + if (link == openUpdatesUrl && newVersionDialog) + { + newVersionDialog->exec(); + return; + } +#endif +} + +#ifdef PORTABLE_CONFIG void MainWindow::updatesAvailable(const QList& updates) { manualUpdatesChecking = false; @@ -747,19 +786,10 @@ void MainWindow::noUpdatesAvailable() manualUpdatesChecking = false; } -void MainWindow::statusFieldLinkClicked(const QString& link) -{ - if (link == openUpdatesUrl && newVersionDialog) - { - newVersionDialog->exec(); - return; - } -} - void MainWindow::checkForUpdates() { manualUpdatesChecking = true; - UPDATES->checkForUpdates(); + UPDATES->checkForUpdates(true); } void MainWindow::handleUpdatingProgress(const QString& jobTitle, int jobPercent, int totalPercent) @@ -776,6 +806,22 @@ void MainWindow::handleUpdatingError() { widgetCover->hide(); } +#endif + +void MainWindow::updateCornerDocking() +{ + if (CFG_UI.General.DockLayout.get() == "vertical") { + setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea); + setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); + setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea); + setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea); + } else { + setCorner(Qt::TopLeftCorner, Qt::TopDockWidgetArea); + setCorner(Qt::TopRightCorner, Qt::TopDockWidgetArea); + setCorner(Qt::BottomLeftCorner, Qt::BottomDockWidgetArea); + setCorner(Qt::BottomRightCorner, Qt::BottomDockWidgetArea); + } +} DdlHistoryWindow* MainWindow::openDdlHistory() { diff --git a/SQLiteStudio3/guiSQLiteStudio/mainwindow.h b/SQLiteStudio3/guiSQLiteStudio/mainwindow.h index 4e9f5c0..46c729b 100644 --- a/SQLiteStudio3/guiSQLiteStudio/mainwindow.h +++ b/SQLiteStudio3/guiSQLiteStudio/mainwindow.h @@ -30,6 +30,7 @@ class Committable; class WidgetCover; class QProgressBar; class QLabel; +class ThemeTuner; #ifdef Q_OS_MACX #define PREV_TASK_KEY_SEQ Qt::CTRL + Qt::ALT + Qt::Key_Left @@ -46,6 +47,7 @@ CFG_KEY_LIST(MainWindow, QObject::tr("Main 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")) ) class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer @@ -76,6 +78,7 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer RESTORE_WINDOW, RENAME_WINDOW, OPEN_DEBUG_CONSOLE, + OPEN_CSS_CONSOLE, LICENSES, HOMEPAGE, FORUM, @@ -115,6 +118,8 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer QMenu* getViewMenu() const; QMenu* getToolsMenu() const; QMenu* getSQLiteStudioMenu() const; + QString currentStyle() const; + ThemeTuner* getThemeTuner() const; protected: void closeEvent(QCloseEvent *event); @@ -130,7 +135,6 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer void saveSession(MdiWindow* currWindow); void restoreWindowSessions(const QList& windowSessions); MdiWindow *restoreWindowSession(const QVariant& windowSessions); - QString currentStyle() const; void closeNonSessionWindows(); DdlHistoryWindow* openDdlHistory(); FunctionsEditor* openFunctionEditor(); @@ -158,7 +162,9 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer QMenu* viewMenu = nullptr; QMenu* toolsMenu = nullptr; QMenu* sqlitestudioMenu = nullptr; +#ifdef PORTABLE_CONFIG QPointer newVersionDialog; +#endif WidgetCover* widgetCover = nullptr; QLabel* updatingLabel = nullptr; QProgressBar* updatingBusyBar = nullptr; @@ -168,6 +174,7 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer public slots: EditorWindow* openSqlEditor(); void updateWindowActions(); + void updateCornerDocking(); private slots: void notifyAboutLanguageChange(); @@ -187,6 +194,7 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer void restoreLastClosedWindow(); void renameWindow(); void openDebugConsole(); + void openCssConsole(); void reportBug(); void requestFeature(); void aboutSqlitestudio(); @@ -196,12 +204,14 @@ class GUI_API_EXPORT MainWindow : public QMainWindow, public ExtActionContainer void userManual(); void sqliteDocs(); void reportHistory(); +#ifdef PORTABLE_CONFIG void updatesAvailable(const QList& updates); void noUpdatesAvailable(); - void statusFieldLinkClicked(const QString& link); void checkForUpdates(); void handleUpdatingProgress(const QString& jobTitle, int jobPercent, int totalPercent); void handleUpdatingError(); +#endif + void statusFieldLinkClicked(const QString& link); }; template diff --git a/SQLiteStudio3/guiSQLiteStudio/mainwindow.ui b/SQLiteStudio3/guiSQLiteStudio/mainwindow.ui index 1dbf462..118d5c7 100644 --- a/SQLiteStudio3/guiSQLiteStudio/mainwindow.ui +++ b/SQLiteStudio3/guiSQLiteStudio/mainwindow.ui @@ -27,6 +27,21 @@ + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.cpp b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.cpp index 2bae2f9..c99b774 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.cpp @@ -26,6 +26,7 @@ #include #include #include +#include static QHash missingEditorPluginsAlreadyWarned; @@ -47,9 +48,17 @@ void MultiEditor::init() QHBoxLayout* hbox = new QHBoxLayout(); hbox->setMargin(0); - hbox->setSpacing(0); + hbox->setSpacing(10); top->setLayout(hbox); + cornerLabel = new QLabel(); + QFont font = cornerLabel->font(); + font.setBold(true); + cornerLabel->setFont(font); + cornerLabel->setFrameStyle(QFrame::StyledPanel|QFrame::Plain); + hbox->addWidget(cornerLabel); + cornerLabel->setVisible(false); + nullCheck = new QCheckBox(tr("Null value", "multieditor")); hbox->addWidget(nullCheck); @@ -156,6 +165,7 @@ 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); } @@ -241,6 +251,12 @@ void MultiEditor::focusThisEditor() w->focusThisWidget(); } +void MultiEditor::setCornerLabel(const QString &label) +{ + cornerLabel->setText(label); + cornerLabel->setVisible(!label.isNull()); +} + void MultiEditor::loadBuiltInEditors() { PLUGINS->loadBuiltInPlugin(new MultiEditorBoolPlugin); diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.h b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.h index 2576c97..04b9af7 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.h +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.h @@ -45,6 +45,7 @@ class GUI_API_EXPORT MultiEditor : public QWidget void setDeletedRow(bool value); void setDataType(const DataType& dataType); void focusThisEditor(); + void setCornerLabel(const QString& label); static void loadBuiltInEditors(); @@ -61,6 +62,7 @@ class GUI_API_EXPORT MultiEditor : public QWidget static const int margins = 2; static const int spacing = 2; + QLabel* cornerLabel = nullptr; QCheckBox* nullCheck = nullptr; QTabWidget* tabs = nullptr; QList editors; diff --git a/SQLiteStudio3/guiSQLiteStudio/sqleditor.cpp b/SQLiteStudio3/guiSQLiteStudio/sqleditor.cpp index edafce5..076894a 100644 --- a/SQLiteStudio3/guiSQLiteStudio/sqleditor.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/sqleditor.cpp @@ -125,6 +125,7 @@ void SqlEditor::createActions() createAction(COMPLETE, ICONS.COMPLETE, tr("Complete", "sql editor"), this, SLOT(complete()), this); createAction(FORMAT_SQL, ICONS.FORMAT_SQL, tr("Format SQL", "sql editor"), this, SLOT(formatSql()), this); createAction(SAVE_SQL_FILE, ICONS.SAVE_SQL_FILE, tr("Save SQL to file", "sql editor"), this, SLOT(saveToFile()), this); + createAction(SAVE_AS_SQL_FILE, ICONS.SAVE_SQL_FILE, tr("Select file to save SQL", "sql editor"), this, SLOT(saveAsToFile()), this); createAction(OPEN_SQL_FILE, ICONS.OPEN_SQL_FILE, tr("Load SQL from file", "sql editor"), this, SLOT(loadFromFile()), this); createAction(DELETE_LINE, ICONS.ACT_DEL_LINE, tr("Delete line", "sql editor"), this, SLOT(deleteLine()), this); createAction(MOVE_BLOCK_DOWN, tr("Move block down", "sql editor"), this, SLOT(moveBlockDown()), this); @@ -233,6 +234,24 @@ bool SqlEditor::handleValidObjectContextMenu(const QPoint& pos) return true; } +void SqlEditor::saveToFile(const QString &fileName) +{ + 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())); + return; + } + + QTextStream stream(&file); + stream.setCodec("UTF-8"); + stream << toPlainText(); + stream.flush(); + file.close(); + + notifyInfo(tr("Saved SQL contents to file: %1").arg(fileName)); +} + void SqlEditor::updateUndoAction(bool enabled) { actionMap[UNDO]->setEnabled(enabled); @@ -1022,6 +1041,14 @@ void SqlEditor::formatSql() } void SqlEditor::saveToFile() +{ + if (loadedFile.isNull()) + saveAsToFile(); + else + saveToFile(loadedFile); +} + +void SqlEditor::saveAsToFile() { QString dir = getFileDialogInitPath(); QString fName = QFileDialog::getSaveFileName(this, tr("Save to file"), dir); @@ -1029,19 +1056,8 @@ void SqlEditor::saveToFile() return; setFileDialogInitPathByFile(fName); - - QFile file(fName); - if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) - { - notifyError(tr("Could not open file '%1' for writing: %2").arg(fName).arg(file.errorString())); - return; - } - - QTextStream stream(&file); - stream.setCodec("UTF-8"); - stream << toPlainText(); - stream.flush(); - file.close(); + loadedFile = fName; + saveToFile(loadedFile); } void SqlEditor::loadFromFile() @@ -1066,6 +1082,8 @@ void SqlEditor::loadFromFile() QString sql = stream.readAll(); file.close(); setPlainText(sql); + + loadedFile = fName; } void SqlEditor::deleteLine() diff --git a/SQLiteStudio3/guiSQLiteStudio/sqleditor.h b/SQLiteStudio3/guiSQLiteStudio/sqleditor.h index 43be251..f465dcf 100644 --- a/SQLiteStudio3/guiSQLiteStudio/sqleditor.h +++ b/SQLiteStudio3/guiSQLiteStudio/sqleditor.h @@ -59,6 +59,7 @@ class GUI_API_EXPORT SqlEditor : public QPlainTextEdit, public ExtActionContaine FORMAT_SQL, OPEN_SQL_FILE, SAVE_SQL_FILE, + SAVE_AS_SQL_FILE, DELETE_LINE, COMPLETE, MOVE_BLOCK_DOWN, @@ -187,6 +188,7 @@ class GUI_API_EXPORT SqlEditor : public QPlainTextEdit, public ExtActionContaine const DbObject* getValidObjectForPosition(const QPoint& point); void handleValidObjectCursor(const QPoint& point); bool handleValidObjectContextMenu(const QPoint& pos); + void saveToFile(const QString& fileName); SqliteSyntaxHighlighter* highlighter = nullptr; QMenu* contextMenu = nullptr; @@ -231,6 +233,7 @@ class GUI_API_EXPORT SqlEditor : public QPlainTextEdit, public ExtActionContaine int virtualSqlRightOffset = 0; bool virtualSqlCompleteSemicolon = false; QString createTriggerTable; + QString loadedFile; static const int autoCompleterDelay = 300; static const int queryParserDelay = 500; @@ -260,6 +263,7 @@ class GUI_API_EXPORT SqlEditor : public QPlainTextEdit, public ExtActionContaine void cursorMoved(); void formatSql(); void saveToFile(); + void saveAsToFile(); void loadFromFile(); void deleteLine(); void moveBlockDown(bool deleteOld = true); diff --git a/SQLiteStudio3/guiSQLiteStudio/statusfield.cpp b/SQLiteStudio3/guiSQLiteStudio/statusfield.cpp index 5de85d7..7fb746c 100644 --- a/SQLiteStudio3/guiSQLiteStudio/statusfield.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/statusfield.cpp @@ -3,6 +3,7 @@ #include "mainwindow.h" #include "uiconfig.h" #include "iconmanager.h" +#include "themetuner.h" #include "common/tablewidget.h" #include "services/notifymanager.h" #include @@ -27,6 +28,8 @@ StatusField::StatusField(QWidget *parent) : connect(nm, SIGNAL(notifyWarning(QString)), this, SLOT(warn(QString))); connect(CFG_UI.Fonts.StatusField, SIGNAL(changed(QVariant)), this, SLOT(fontChanged(QVariant))); + THEME_TUNER->manageCompactLayout(widget()); + readRecentMessages(); } diff --git a/SQLiteStudio3/guiSQLiteStudio/statusfield.ui b/SQLiteStudio3/guiSQLiteStudio/statusfield.ui index c36828c..9ca3cfb 100644 --- a/SQLiteStudio3/guiSQLiteStudio/statusfield.ui +++ b/SQLiteStudio3/guiSQLiteStudio/statusfield.ui @@ -15,6 +15,9 @@ + + 0 + diff --git a/SQLiteStudio3/guiSQLiteStudio/themetuner.cpp b/SQLiteStudio3/guiSQLiteStudio/themetuner.cpp new file mode 100644 index 0000000..e48865f --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/themetuner.cpp @@ -0,0 +1,125 @@ +#include "themetuner.h" +#include "uiconfig.h" +#include "mainwindow.h" +#include "uiconfig.h" +#include +#include +#include +#include + +ThemeTuner* ThemeTuner::instance = nullptr; + +ThemeTuner::ThemeTuner(QObject* parent) : + QObject(parent) +{ + init(); +} + +void ThemeTuner::tuneTheme(const QString& themeName) +{ + tuneCss(themeName); +} + +void ThemeTuner::tuneCurrentTheme() +{ + tuneTheme(QApplication::style()->objectName()); +} + +void ThemeTuner::manageCompactLayout(QWidget* w) +{ + manageCompactLayout(QList({w})); +} + +void ThemeTuner::manageCompactLayout(QList wList) +{ + widgetsForCompactLayout += wList; + for (QWidget* w : wList) + connect(w, SIGNAL(destroyed()), this, SLOT(handleWidgetDestroyed())); + + handleCompactLayoutChange(CFG_UI.General.CompactLayout.get()); +} + +QString ThemeTuner::getDefaultCss(const QString& themeName) const +{ + QString css = defaultGeneralCss; + QString lowerTheme = themeName.toLower(); + if (!themeName.isNull() && defaultPerStyleCss.contains(lowerTheme)) + css += "\n" + defaultPerStyleCss[lowerTheme]; + + return css; +} + +ThemeTuner* ThemeTuner::getInstance() +{ + if (!instance) + instance = new ThemeTuner(); + + return instance; +} + +void ThemeTuner::cleanUp() +{ + if (instance) + safe_delete(instance); +} + +void ThemeTuner::init() +{ + QFile f(":/css/general.css"); + if (!f.open(QIODevice::ReadOnly)) + { + qCritical() << "Could not open general.css"; + return; + } + + defaultGeneralCss = QString::fromLatin1(f.readAll()); + f.close(); + + connect(CFG_UI.General.CompactLayout, SIGNAL(changed(QVariant)), this, SLOT(handleCompactLayoutChange(QVariant))); +} + +void ThemeTuner::tuneCss(const QString& themeName) +{ + if (!CFG_UI.General.CustomCss.get().isNull()) + { + applyCss(CFG_UI.General.CustomCss.get()); + return; + } + + applyCss(getDefaultCss(themeName)); +} + +void ThemeTuner::applyCss(const QString& css) +{ + MAINWINDOW->setStyleSheet(css); +} + +void ThemeTuner::handleWidgetDestroyed() +{ + QWidget* w = dynamic_cast(sender()); + if (!w) + return; + + widgetsForCompactLayout.removeOne(w); +} + +void ThemeTuner::handleCompactLayoutChange(const QVariant& newValue) +{ + if (newValue.toBool()) + { + for (QWidget* w : widgetsForCompactLayout) + { + w->layout()->setContentsMargins(0, 0, 0, 0); + w->layout()->setSpacing(0); + } + } + else + { + 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 new file mode 100644 index 0000000..9804464 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/themetuner.h @@ -0,0 +1,43 @@ +#ifndef THEMETUNER_H +#define THEMETUNER_H + +#include +#include +#include + +class ThemeTuner : public QObject +{ + Q_OBJECT + + public: + void tuneTheme(const QString& themeName); + void tuneCurrentTheme(); + void manageCompactLayout(QWidget* w); + void manageCompactLayout(QList wList); + QString getDefaultCss(const QString& themeName = QString()) const; + + static ThemeTuner* getInstance(); + static void cleanUp(); + + private: + ThemeTuner(QObject* parent = 0); + + void init(); + void tuneCss(const QString& themeName); + void tuneMacx(); + void applyCss(const QString& css); + + QString defaultGeneralCss; + QHash defaultPerStyleCss; + QList widgetsForCompactLayout; + + static ThemeTuner* instance; + + private slots: + void handleWidgetDestroyed(); + void handleCompactLayoutChange(const QVariant& newValue); +}; + +#define THEME_TUNER ThemeTuner::getInstance() + +#endif // THEMETUNER_H diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de.ts index 55a5e5e..01b2d5f 100644 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de.ts +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_de.ts @@ -353,32 +353,32 @@
- + Collation name: - + Implementation language: - + Databases - + Register in all databases - + Register in following databases: - + Implementation code: @@ -888,7 +888,7 @@ but it's okay to use it. ConfigDialog - + Configuration @@ -1065,406 +1065,441 @@ but it's okay to use it. - - + + 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 + + + + + General.CompactLayout + + + + 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 - + 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 - + + 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 commited to the database.</p> - + Uncommited data outline color - + <p>In case of error while commiting 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 @@ -1605,122 +1640,130 @@ but it's okay to use it.
+ + 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 - + 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 - + Total number of rows is being counted. Browsing other pages will be possible after the row counting is done. - + Row: %1 @@ -1898,37 +1941,37 @@ Browsing other pages will be possible after the row counting is done. - + Enter an unique database name. - + This name is already in use. Please enter unique name. - + Enter a database file path. - + This database is already on the list under name: %1 - + Select a database type. - + Auto-generated - + Type the name @@ -1989,327 +2032,348 @@ Browsing other pages will be possible after the row counting is done. - + 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 - + 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 - - + + + Erase table data + + + + + Database - + Grouping - - + + 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. - + Delete database - + Are you sure you want to delete database '%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 execution finished successfully. - + 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 successfly. - + + Are you sure you want to delete all data from table '%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 @@ -2344,123 +2408,123 @@ All objects from this group will be moved to parent group. DbTreeModel - + Database: %1 dbtree tooltip - + Version: dbtree tooltip - + File size: dbtree tooltip - + Encoding: dbtree tooltip - - Error details: + + 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 - + 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? @@ -2509,135 +2573,135 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 - + 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 uncommited data. @@ -2891,49 +2955,49 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 @@ -2947,58 +3011,58 @@ Please enter new, unique name, or press '%1' to abort the operation: - + 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: @@ -3322,293 +3386,298 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 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 + + + + Report a bug - + Propose a new feature - + About - + Licenses - + Open home page - + Open forum page - + User Manual - + SQLite documentation - + Report history - + 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. @@ -3634,29 +3703,29 @@ Please enter new, unique name, or press '%1' to abort the operation: MultiEditor - + Null value multieditor - + Configure editors for this data type - + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. - + Deleted multieditor - + Read only multieditor @@ -3908,27 +3977,32 @@ Please enter new, unique name, or press '%1' to abort the operation: - + + 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. @@ -4053,32 +4127,32 @@ Please enter new, unique name, or press '%1' to abort the operation: - + 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 @@ -4200,40 +4274,45 @@ Please enter new, unique name, or press '%1' to abort the operation: - + 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 @@ -4694,101 +4773,112 @@ find next - Load SQL from file + Select file to save SQL sql editor - Delete line + Load SQL from file sql editor - Move block down + Delete line sql editor - Move block up + Move block down sql editor - Copy block down + Move block up sql editor - Copy up down + Copy block down sql editor - Find + Copy up down sql editor - Find next + Find sql editor - Find previous + Find next sql editor + Find previous + sql editor + + + + Replace 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. @@ -4848,7 +4938,7 @@ find next SqlQueryModel - + Only one query can be executed simultaneously. @@ -4873,43 +4963,43 @@ find next - + An error occurred while commiting 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 commiting the data: %1 - - + + Error while executing SQL query on database '%1': %2 - + Error while loading query results: %1 - + Insert multiple rows - + Number of rows to insert: @@ -5028,12 +5118,12 @@ find next - + Copy - + Clear @@ -5238,411 +5328,421 @@ but it's okay to use them anyway. - + 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, because database %1 could not be resolved. + + 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, because the table %1 doesn't exist in the database %2. + + Could not restore window '%1'', because the table %2 doesn't exist in the database %3. - - + + New table %1 - + 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 successfly. - + 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. - + 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. - + Table window "%1" has uncommited data. - + Table window "%1" has uncommited structure modifications. @@ -5813,180 +5913,186 @@ Do you want to commit the structure, or do you want to go back to the structure - - Could not restore window, because database %1 could not be resolved. + + + Could not restore window '%1', because no database or view was stored in session for this window. - - Could not restore window, because database %1 could not be open. + + Could not restore window '%1', because database %2 could not be resolved. - - Could not restore window, because the view %1 doesn't exist in the database %2. + + 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 - + Refresh trigger list view window - + Create new trigger view window - + Edit selected trigger view window - + Delete selected trigger view window - + View window "%1" has uncommited structure modifications and data. - + View window "%1" has uncommited data. - + View window "%1" has uncommited structure modifications. - + Could not load data for view %1. Error details: %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. - + Could not commit view changes. Error message: %1 view window - + 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 @@ -5995,7 +6101,7 @@ Would you like to proceed? WidgetCover - + Interrupt diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es.ts index 428d538..87e68ab 100644 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es.ts +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_es.ts @@ -353,32 +353,32 @@ - + Collation name: - + Implementation language: - + Databases - + Register in all databases - + Register in following databases: - + Implementation code: @@ -888,7 +888,7 @@ but it's okay to use it. ConfigDialog - + Configuration @@ -1065,406 +1065,441 @@ but it's okay to use it. - - + + 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 + + + + + General.CompactLayout + + + + 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 - + 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 - + + 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 commited to the database.</p> - + Uncommited data outline color - + <p>In case of error while commiting 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 @@ -1605,122 +1640,130 @@ but it's okay to use it. + + 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 - + 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 - + Total number of rows is being counted. Browsing other pages will be possible after the row counting is done. - + Row: %1 @@ -1898,37 +1941,37 @@ Browsing other pages will be possible after the row counting is done. - + Enter an unique database name. - + This name is already in use. Please enter unique name. - + Enter a database file path. - + This database is already on the list under name: %1 - + Select a database type. - + Auto-generated - + Type the name @@ -1989,327 +2032,348 @@ Browsing other pages will be possible after the row counting is done. - + 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 - + 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 - - + + + Erase table data + + + + + Database - + Grouping - - + + 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. - + Delete database - + Are you sure you want to delete database '%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 execution finished successfully. - + 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 successfly. - + + Are you sure you want to delete all data from table '%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 @@ -2344,123 +2408,123 @@ All objects from this group will be moved to parent group. DbTreeModel - + Database: %1 dbtree tooltip - + Version: dbtree tooltip - + File size: dbtree tooltip - + Encoding: dbtree tooltip - - Error details: + + 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 - + 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? @@ -2509,135 +2573,135 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 - + 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 uncommited data. @@ -2891,49 +2955,49 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 @@ -2947,58 +3011,58 @@ Please enter new, unique name, or press '%1' to abort the operation: - + 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: @@ -3322,293 +3386,298 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 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 + + + + Report a bug - + Propose a new feature - + About - + Licenses - + Open home page - + Open forum page - + User Manual - + SQLite documentation - + Report history - + 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. @@ -3634,29 +3703,29 @@ Please enter new, unique name, or press '%1' to abort the operation: MultiEditor - + Null value multieditor - + Configure editors for this data type - + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. - + Deleted multieditor - + Read only multieditor @@ -3908,27 +3977,32 @@ Please enter new, unique name, or press '%1' to abort the operation: - + + 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. @@ -4053,32 +4127,32 @@ Please enter new, unique name, or press '%1' to abort the operation: - + 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 @@ -4200,40 +4274,45 @@ Please enter new, unique name, or press '%1' to abort the operation: - + 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 @@ -4694,101 +4773,112 @@ find next - Load SQL from file + Select file to save SQL sql editor - Delete line + Load SQL from file sql editor - Move block down + Delete line sql editor - Move block up + Move block down sql editor - Copy block down + Move block up sql editor - Copy up down + Copy block down sql editor - Find + Copy up down sql editor - Find next + Find sql editor - Find previous + Find next sql editor + Find previous + sql editor + + + + Replace 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. @@ -4848,7 +4938,7 @@ find next SqlQueryModel - + Only one query can be executed simultaneously. @@ -4873,43 +4963,43 @@ find next - + An error occurred while commiting 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 commiting the data: %1 - - + + Error while executing SQL query on database '%1': %2 - + Error while loading query results: %1 - + Insert multiple rows - + Number of rows to insert: @@ -5028,12 +5118,12 @@ find next - + Copy - + Clear @@ -5238,411 +5328,421 @@ but it's okay to use them anyway. - + 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, because database %1 could not be resolved. + + 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, because the table %1 doesn't exist in the database %2. + + Could not restore window '%1'', because the table %2 doesn't exist in the database %3. - - + + New table %1 - + 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 successfly. - + 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. - + 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. - + Table window "%1" has uncommited data. - + Table window "%1" has uncommited structure modifications. @@ -5813,180 +5913,186 @@ Do you want to commit the structure, or do you want to go back to the structure - - Could not restore window, because database %1 could not be resolved. + + + Could not restore window '%1', because no database or view was stored in session for this window. - - Could not restore window, because database %1 could not be open. + + Could not restore window '%1', because database %2 could not be resolved. - - Could not restore window, because the view %1 doesn't exist in the database %2. + + 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 - + Refresh trigger list view window - + Create new trigger view window - + Edit selected trigger view window - + Delete selected trigger view window - + View window "%1" has uncommited structure modifications and data. - + View window "%1" has uncommited data. - + View window "%1" has uncommited structure modifications. - + Could not load data for view %1. Error details: %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. - + Could not commit view changes. Error message: %1 view window - + 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 @@ -5995,7 +6101,7 @@ Would you like to proceed? WidgetCover - + Interrupt diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.qm b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.qm index 42d19a7..2602532 100644 Binary files a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.qm and b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.qm differ diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.ts index 6fa9ba0..08d39fc 100644 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.ts +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_fr.ts @@ -354,32 +354,32 @@ Filtre de regroupements - + Collation name: Nom de regroupements: - + Implementation language: Language d'implémentation: - + Databases Base de données - + Register in all databases Inscrire daans toutes les bases de données - + Register in following databases: Inscrire dans les bases de données suivantes: - + Implementation code: Code d'inplémentation: @@ -890,7 +890,7 @@ mais c'est OK pour l'utiliser. ConfigDialog - + Configuration Configuration @@ -1067,406 +1067,441 @@ mais c'est OK pour l'utiliser. Combinaison de touches - - + + Language Langage - + Changing language requires application restart to take effect. Le changement de langage requiére le redemarrage de l'application pour prendre effet. - + + 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 + + + + + General.CompactLayout + + + + 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éployez le noeud 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à 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 Etendre le noeud 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éactivé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 - + Table windows Fenêtre de ta table - + When enabled, Table Windows will show up with the data tab, instead of the structure tab. Lorsque c'est permis, la fenêtre des tables sera affichée avec l'onglet des données, à la place de l'onglet structure. - + Open Table Windows with the data tab for start Ourerture la fenêtre de table avec l'onglet des données au départ - + View windows Fenêtre de vue - + When enabled, View Windows will show up with the data tab, instead of the structure tab. Lorsque c'est permis, la fenêtre des vues sera affichée avec l'onglet des données, à la place de l'onglet structure. - + Open View Windows with the data tab for start Ourerture la fenêtre de vue avec l'onglet des données au départ - + + 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 actf - + SQL editor font Police de l'éditeur SQL - + Database list font Liste des polices de base de données - + Database list additional label font Police additionel de la liste des base de données - + Data view font Police des données de vue - + Status field font Police du champ status - + SQL editor colors Couleurs de l'éditeur SQL - + Current line background Fond actuel de la ligne - + <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 de paramètre 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 de valeur BLOB - + Regular foreground Avant plan courant - + Line numbers area background Zone des numéros de ligne en arrière plan - + Keyword foreground Mot clé en avant plan - + Number foreground Nombre en avant plan - + Comment foreground Commentaire en avant plan - + <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 Objets valides en avant plan - + Data view colors Couleurs de vue de données - + <p>Any data changes will be outlined with this color, until they're commited to the database.</p> <p>Touts les modifications de données seront écrits avec cette couleur,à l'enregistrement de la base de données.</p> - + Uncommited data outline color Annulation de la couleur des données - + <p>In case of error while commiting data changes, the problematic cell will be outlined with this color.</p> <p>En cas de l'erreur à l'enregistrement des modifications de données, la cellule problématique sera indiquée avec cette couleur.</p> - + Commit error outline color Erreur d'enregistrement du surlignage - + NULL value foreground Valeur NULL au premier plan - + Deleted row background Ligne supprimée en arrier plan - + Database list colors Liste de couleurs 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 nieau inférieur, etc.</p> - + Additional labels foreground Labels additionels en avant plan - + Status field colors Couleurs du status des champs - + Information message foreground Message d'information devant - + Warning message foreground Warning devant - + Error message foreground Message d'erreur devant - + Description: plugin details Description: - + Category: plugin details Catégories: - + Version: plugin details Version: - + Author: plugin details Auteur: - + Internal name: plugin details Nom interne: - + Dependencies: plugin details Dépendances: - + Conflicts: plugin details Conflicts: - + Plugin details Détails plugins - + 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 Ajoutez un nouveau type de données - + Rename selected data type Renommer le type de données sélectionné - + Delete selected data type Supprimez le type de données sélectionnées - + Help for configuring data type editors Aide à la configuration des éditeurs de type de données @@ -1607,122 +1642,130 @@ mais c'est OK pour l'utiliser. Nom + + CssDebugDialog + + + SQLiteStudio CSS console + + + DataView - + Filter data data view Filtre de données - + Grid view Vue tableau - + Form view Vue 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 - + 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 Afficache 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 - + 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 @@ -1920,32 +1963,32 @@ Browsing other pages will be possible after the row counting is done. Navigateur - + Enter an unique database name. - + This name is already in use. Please enter unique name. - + Enter a database file path. - + This database is already on the list under name: %1 - + Select a database type. - + Auto-generated @@ -1954,7 +1997,7 @@ Browsing other pages will be possible after the row counting is done. Le non sera généré automatiquement - + Type the name Saississez le nom @@ -2015,328 +2058,349 @@ Browsing other pages will be possible after the row counting is done. 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 group - + Delete the group Supprimer un group - + Rename the group Renommerr un group - + Add a database Ajout d'une base de données - + Edit the database Modifier la base de données - + Remove the database Enlever la base de données - + Connect to the database Connecter la 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 Type de base de données à convertir - + Vacuum Vaccum - + Integrity check Contrôle d'intégrité - + Create a table Créer une table - + Edit the table Modifier une table - + Delete the table Supprimer une table - + Export the table Exporter une table - + Import into the table Importer dans une table - + Populate table Peupler une table - + Create similar table Créer une table identique - + Reset autoincrement sequence Réinitialise l'autoincrémentation - + Create an index Créer un index - + Edit the index Modifier un index - + Delete the index Supprimer un index - + Create a trigger Créer un déclencheur - + Edit the trigger modifier un déclencheur - + Delete the trigger Supprimer un déclencheur - + Create a view Créer une vue - + Edit the view Modier une vue - + Delete the view Supprimer une vue - + Add a column Ajouter une colonne - + Edit the column Modifier une colonne - + Delete the column Supprimer une 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 les schémas de la base de données sélectionnée - - + + + Erase table data + + + + + Database Base de données - + Grouping Groupement - - + + Create group Créer groupe - + Group name Nom de groupe - + Entry with name %1 already exists in group %2. L'entrée nommée %1 existe déjà dans le group %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. Etes-vous certain de supprimer le groupe %1? Tous les objets de ce groupe seront déplacés dans le groupe parent. - + Delete database Suppression de la base de données - + Are you sure you want to delete database '%1'? Etes-vous certain de vouloir supprimer la base de données: %1? - - + + 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é. - + Error while executing VACUUM on the database %1: %2 Erreur pendant l'exécution de VACCUM sur la base de données %1: %2 - + VACUUM execution finished successfully. Exécution de VACCUM terminé avec succès. - + Integrity check (%1) Contrôle d'intégrité (%1) - + Reset autoincrement Remise à zéro de l'autoincrément - + Are you sure you want to reset autoincrement value for table '%1'? Etes-vous certain de vouloir réinitialiser l'outoincré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'autoincrémentation de la table '%1': %2 - + Autoincrement value for table '%1' has been reset successfly. La valeur de l'autoincrémentaion de la table %1 a été réinitialisé avec succès. - + + Are you sure you want to delete all data from table '%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. 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>Etes-vous certain de vouloir continuer? - + Delete objects Objets supprimés @@ -2371,125 +2435,130 @@ Tous les objets de ce groupe seront déplacés dans le groupe parent. 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 details: dbtree tooltip - Détails erreur: + Détails erreur: - + + Error: + dbtree tooltip + + + + Table : %1 dbtree tooltip Table: %1 - + Columns (%1): dbtree tooltip Colonnes:(%1): - + Indexes (%1): dbtree tooltip Index (%1): - + Triggers (%1): dbtree tooltip Déclencheurs (%1): - + Copy Copier - + Move Déplcer - + Include data Données incluses - + Include indexes Index inclus - + Include triggers Déclencheurs inclus - + Abort Abandonner - + 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? @@ -2540,135 +2609,135 @@ Entrez SVP un nouveau nom, unique, ou cliquez '%1' pour d'interro 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 Editeur 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 - + 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. Etes 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 uncommited data. Fenêtre d'éditeur "%1" n'a pas enregistrer les données. @@ -2922,49 +2991,49 @@ Entrez SVP un nouveau nom, unique, ou cliquez '%1' pour d'interro 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 nouvelle ligne - + Delete current row form view Supprimer ligne courante @@ -2978,58 +3047,58 @@ Entrez SVP un nouveau nom, unique, ou cliquez '%1' pour d'interro 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: @@ -3354,293 +3423,298 @@ Entrez SVP un nouveau nom, unique, ou cliquez '%1' pour d'interro MainWindow - + Database toolbar Barre d'outils de base de données - + Structure toolbar Barre d'outils de structure - + Tools outils - + Window list liste fenêtre - + View toolbar Barre d'outils vues - + Configuration widgets Configuration widgets - + Syntax highlighting engines Syntaxe surlignée des moteurs - + Data editors Editeur s 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 éditeur SQL - + Open DDL history Ouvrir Historique DDL - + Open SQL functions editor Editeur de fonctions SQL - + Open collations editor Ouvrir editeur de collections - + Import Importer - + Export Exporter - + Open configuration dialog Ouvrir dialogue de configuration - + Tile windows Organisation des fenêtres - + Tile windows horizontally Organisation des fenêtres horizontalement - + Tile windows vertically Organisation des fenêtres verticalement - + Cascade windows Organisation des fenêtres en cascade - + Next window Fenêtre suivante - + Previous window Fenêtre précédante - + Hide status field Ca - + Close selected window Fermeture fenêtre sélectionnée - + Close all windows but selected Fermeture de toutes les fenêtres sélectionnées - + Close all windows Fermeture de toutes les fenêtres - + Restore recently closed window Restaure une fenêtre récemment fermée - + Rename selected window Renomme la fenêtre sélectionnée - + Open Debug Console Ouvrir la console de debogage - + + Open CSS Console + + + + Report a bug Rapport de bug - + Propose a new feature Proposer une nouvelle fonction - + About Apropos - + Licenses Licences - + Open home page Ouvrir la home page - + Open forum page Ouvrir la page des forums - + User Manual Manuel utilisateurs - + SQLite documentation Documentation SQLite - + Report history Raport d'historique - + Check for updates Vérification de mises à jour - + Database menubar Base de données - + Structure menubar Structure - + View menubar Vue - + Window list menubar view menu Liste de 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 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. @@ -3666,29 +3740,29 @@ Entrez SVP un nouveau nom, unique, ou cliquez '%1' pour d'interro MultiEditor - + Null value multieditor Valeur NULL - + Configure editors for this data type Configurer l'éditeur pour ce type de données - + 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 pourle type de données '%1'. - + Deleted multieditor Suppression - + Read only multieditor Lecture seule @@ -3940,27 +4014,32 @@ Entrez SVP un nouveau nom, unique, ou cliquez '%1' pour d'interro 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. @@ -4085,32 +4164,32 @@ Entrez SVP un nouveau nom, unique, ou cliquez '%1' pour d'interro Contenu ouvert de cellule choisie dans un éditeur séparé - + Total pages available: %1 Total de pages: %1 - + Total rows loaded: %1 Total dee lignes chargées: %1 - + Data view (both grid and form) Vue de données (tableau et formulaire) - + Refresh data Actualisation des données - + Switch to grid view of the data Basculer sur la vue tableau de données - + Switch to form view of the data Basculer sur la vue formulaire de données @@ -4232,40 +4311,45 @@ Entrez SVP un nouveau nom, unique, ou cliquez '%1' pour d'interro 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 de status - + Open configuration dialog Ouvrir le dialogue de configuration - + Open Debug Console Ouvrir la console de débogage + + + Open CSS Console + + Cell text value editor @@ -4727,101 +4811,112 @@ recherche suivant + 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 block - + Move block up sql editor Monter le block - + Copy block down sql editor Copier block au-dessus - + Copy up down sql editor Copier block au-dessous - + Find sql editor Chercher - + Find next sql editor Chercher suivant - + Find previous sql editor Chercher précédent - + Replace sql editor Remplacer - + + 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 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. @@ -4881,7 +4976,7 @@ recherche suivant SqlQueryModel - + Only one query can be executed simultaneously. Uniquement une seule requête peut être exécutée à la fois. @@ -4906,43 +5001,43 @@ recherche suivant Impossible de lancer la transaction sur la base de données. Détails: %1 - + An error occurred while commiting the transaction: %1 Une erreur est survenuelors de l'enregistrement 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 d'enregistrement d'une une cellule qui n'est pas modifiable! Ceci est un bogue. Rapportez-le SVP. - + An error occurred while commiting the data: %1 Une erreur est survenuelors de l'enregistrement des données: %1 - - + + 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 à inserrer: @@ -5061,12 +5156,12 @@ recherche suivant Status - + Copy Cipier - + Clear Vider @@ -5271,219 +5366,219 @@ but it's okay to use them anyway. 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 modification de la structure - + Rollback structure changes table window Annuler les modification 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émentatio, - + 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 clé primaire à la table - + Add table foreign key table window Ajouter une clé étrangère à la table - + Add table unique constraint table window Ajouter une contrainte clé 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 d'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 d'index - + 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 Etes-vous certain de vouloir supprimer lla colonne: %1? - + Following problems will take place while modifying the table. Would you like to proceed? table window @@ -5491,194 +5586,212 @@ Would you like to proceed? 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. + + + Could not restore window, because database %1 could not be resolved. - Impossible de restaurer la fenêtre, car la base de données %1 ne peut ëtre résolue. + Impossible de restaurer la fenêtre, car la base de données %1 ne peut ëtre résolue. - Could not restore window, because the table %1 doesn't exist in the database %2. - Impossible de restaurer la fenêtre, car la vue %1 n'existe pas dans la base de données %2.. + Impossible de restaurer la fenêtre, car la vue %1 n'existe pas dans la base de données %2.. - - + + 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'? Etes-vous certain de vouloir réinitialiser l'autoincré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'autoincrémentation de la table '%1': %2 - + Autoincrement value for table '%1' has been reset successfly. La valeur de l'autoincrémentaion de la table %1 a été réinitialisé 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'l n'y a pas de clé primaire de définie. Toute fois ne pas contrôler %2 ou définir une clé 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'autoincrémentation pour une clé primaire quand la clause %1 est utilisée. Toute fois ne pas contrôler %2, ou utiliser l'autoincrémentation sur une clé primaire. - + Are you sure you want to delete table constraint '%1'? table window Etes-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é. - + Uncommited changes Modification non enregistrées - + 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? Il ya des modifications de structure non enregistrées. Vous ne pouvez pas naviguer ou modifier des données jusqu'à ce que vous ailliez installer la structure de table. Voulez-vous enregistrer la structure, ou voulez-vous retourner à l'onglet de structure ? - + Go back to structure tab Retour à l'onglet de structure - + Commit modifications and browse data. Enregistrer les modifications et naviger dans les données. - + 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 - + Table window "%1" has uncommited structure modifications and data. La fenêtre de table "%1" n'a pas enregistré les modifications de structure et de données. - + Table window "%1" has uncommited data. La fenêtre de table "%1" n'a pas enregistrer les données. - + Table window "%1" has uncommited structure modifications. La fenêtre de table "%1" n'a pas enregistré les modifications de structure. @@ -5849,176 +5962,194 @@ Voulez-vous enregistrer la structure, ou voulez-vous retourner à l'onglet DDL - Could not restore window, because database %1 could not be resolved. - Impossible de restaurer la fenêtre, car la base de données %1 ne peut ëtre résolue. + Impossible de restaurer la fenêtre, car la base de données %1 ne peut ëtre résolue. - Could not restore window, because database %1 could not be open. - Impossible de restaurer la fenêtre, car la base de données %1 ne peut ëtre ouverte. + Impossible de restaurer la fenêtre, car la base de données %1 ne peut ëtre ouverte. - Could not restore window, because the view %1 doesn't exist in the database %2. - Impossible de restaurer la fenêtre, car la vue %1 n'existe pas dans la base de données %2.. + Impossible de restaurer la fenêtre, car la vue %1 n'existe pas dans la base de données %2.. - - + + + 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 - + 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 uncommited structure modifications and data. La fenêtre de la vue "%1" n'a pas enregistré les modifications de structure et de données. - + View window "%1" has uncommited data. La fenêtre de la vue "%1" n'a pas enregistré les modifications de données. - + View window "%1" has uncommited structure modifications. La fenêtre de la vue "%1" n'a pas enregistré les modifications de structure. - + Could not load data for view %1. Error details: %2 Impossible de charher les données de vue %1. Détails d' erreur: %2 - + Uncommited changes Modifications non enregistrées - + 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? Des modifications de structure n'ont pa été enregistrées. Vous ne pouvez pas naviger ou éditer des données jusqu'à ce que vous installliez la structure de vue. Voulez-vousenregistrere la structure, ou voulez-vous retourner à l'onglet de structure? - + 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 modifivations de vue. Message d'erreur: %1 - + Name view window triggers Nom - + Instead of view window triggers A 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 vode - + 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é. SVP corrigez la requête et réessayez. 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. La vue ne être correctement analysée avant exécution.Cest un bug SQLiteStudion. SVP reporter le. - + Following problems will take place while modifying the view. Would you like to proceed? view window @@ -6026,7 +6157,7 @@ Would you like to proceed? Voudriez-vous procéder? - + View modification view window Fenêtre vue @@ -6035,7 +6166,7 @@ Voudriez-vous procéder? WidgetCover - + Interrupt Inperruption diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.qm b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.qm index f927e35..dfc8b5e 100644 Binary files a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.qm and b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.qm differ diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.ts index dcd9b50..b38c58b 100644 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.ts +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pl.ts @@ -355,32 +355,32 @@ 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: @@ -891,7 +891,7 @@ ale można go używać. ConfigDialog - + Configuration Konfiguracja @@ -1068,127 +1068,162 @@ ale można go używać. Kombinacja klawiszy - + Changing language requires application restart to take effect. Zmiana języka wymaga restartu aplikacji, aby zadziałać. - + + 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 + + + + + General.CompactLayout + + + + 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 + + + + + Left and right areas occupy corners + + + + + Top and bottom areas occupy corners + + + + Hide built-in plugins Ukryj wtyczki wbudowane - + Current style: Aktualny styl: - + Preview Podgląd - + Enabled Włączone @@ -1197,281 +1232,281 @@ ale można go używać. Kolumna - + Disabled Wyłączone - - + + Language Język - + 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 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 @@ -1612,123 +1647,131 @@ ale można go używać. Nazwa + + CssDebugDialog + + + SQLiteStudio CSS console + + + 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 - + 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 - + 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 @@ -1926,32 +1969,32 @@ Przeglądanie pozostałych stron będzie możliwe kiedy liczenie wierszy zostani 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ę. - + 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 @@ -1960,7 +2003,7 @@ Przeglądanie pozostałych stron będzie możliwe kiedy liczenie wierszy zostani Nazwa będzie generowana automatycznie - + Type the name Wprowadź nazwę @@ -2021,102 +2064,102 @@ Przeglądanie pozostałych stron będzie możliwe kiedy liczenie wierszy zostani 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ę - + Entry with name %1 already exists in group %2. Pozycja o nazwie %1 istnieje już w grupie %2. @@ -2125,32 +2168,32 @@ Przeglądanie pozostałych stron będzie możliwe kiedy liczenie wierszy zostani 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 @@ -2159,12 +2202,12 @@ Przeglądanie pozostałych stron będzie możliwe kiedy liczenie wierszy zostani Porzuć indeks - + Create a trigger Utwórz wyzwalacz - + Edit the trigger Edytuj wyzwalacz @@ -2173,12 +2216,12 @@ Przeglądanie pozostałych stron będzie możliwe kiedy liczenie wierszy zostani Porzuć wyzwalacz - + Create a view Utwórz widok - + Edit the view Edytuj widok @@ -2187,178 +2230,199 @@ Przeglądanie pozostałych stron będzie możliwe kiedy liczenie wierszy zostani 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 + + + + + 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'? + + + + + 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. 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 @@ -2393,125 +2457,130 @@ Wszystkie obiekty z tej grupy zostaną przeniesione do nadrzędnej grupy. 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: + Szczegóły błędu: - + + Error: + dbtree tooltip + + + + 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 - + 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ć? @@ -2562,110 +2631,110 @@ Proszę podać nową, unikalną nazwę, lub nacisnąć '%1', aby przer 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 - + 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). @@ -2674,27 +2743,27 @@ Proszę podać nową, unikalną nazwę, lub nacisnąć '%1', aby przer 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. @@ -2948,49 +3017,49 @@ Proszę podać nową, unikalną nazwę, lub nacisnąć '%1', aby przer 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 @@ -3004,58 +3073,58 @@ Proszę podać nową, unikalną nazwę, lub nacisnąć '%1', aby przer 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: @@ -3380,293 +3449,298 @@ Proszę podać nową, unikalną nazwę, lub nacisnąć '%1', aby przer 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 caskadowo - + 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 + + + + 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 - + 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. @@ -3692,29 +3766,29 @@ Proszę podać nową, unikalną nazwę, lub nacisnąć '%1', aby przer MultiEditor - + Null value multieditor Wartość null - + Configure editors for this data type Skonfiguruj edytory dla tego typu danych - + 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 @@ -3970,27 +4044,32 @@ Proszę podać nową, unikalną nazwę, lub nacisnąć '%1', aby przer 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ę. @@ -4115,32 +4194,32 @@ Proszę podać nową, unikalną nazwę, lub nacisnąć '%1', aby przer 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 @@ -4262,40 +4341,45 @@ Proszę podać nową, unikalną nazwę, lub nacisnąć '%1', aby przer 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 + + Cell text value editor @@ -4759,101 +4843,112 @@ znajdź następny + Select file to save SQL + sql editor + + + + 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 - + + Saved SQL contents to file: %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. @@ -4913,7 +5008,7 @@ znajdź następny SqlQueryModel - + Only one query can be executed simultaneously. Tylko jedno zapytanie może być wykonywane w danym momencie. @@ -4938,28 +5033,28 @@ znajdź następny 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 @@ -4968,17 +5063,17 @@ znajdź następny Błąd podczas wykonywania zapytania SQL: %1 - + 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: @@ -5097,12 +5192,12 @@ znajdź następny Status - + Copy Kopiuj - + Clear Wyczyść @@ -5308,219 +5403,219 @@ ale można ich używać. 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 @@ -5528,194 +5623,212 @@ Would you like to proceed? 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. + + + + + 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. + + + Could not restore window, because database %1 could not be resolved. - Nie można przywrócić okna, ponieważ nie znaleziono bazy danych %1. + 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. + Nie można przywrócić okna, ponieważ tabela %1 już nie jestnieje w bazie danych %2. - - + + New table %1 Nowa tabela %1 - + 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. @@ -5887,176 +6000,194 @@ Czy chcesz zatwierdzić strukturę, czy jednak chcesz wrócić do karty struktur DDL - Could not restore window, because database %1 could not be resolved. - Nie można przywrócić okna, ponieważ nie znaleziono bazy danych %1. + 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. + 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. + 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. + + + + + 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 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 - + 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 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. - + Could not commit view changes. Error message: %1 view window Nie udało się zatwierdzić widoku. Treść błędu: %1 - + 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 @@ -6064,7 +6195,7 @@ Would you like to proceed? Czy chcesz kontynuować? - + View modification view window Modyfikacja widoku @@ -6073,7 +6204,7 @@ Czy chcesz kontynuować? WidgetCover - + Interrupt Przerwij diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_BR.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_BR.ts index 450cfbf..491b6ea 100644 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_BR.ts +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_pt_BR.ts @@ -353,32 +353,32 @@ - + Collation name: - + Implementation language: - + Databases - + Register in all databases - + Register in following databases: - + Implementation code: @@ -888,7 +888,7 @@ but it's okay to use it. ConfigDialog - + Configuration @@ -1065,406 +1065,441 @@ but it's okay to use it. - - + + 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 + + + + + General.CompactLayout + + + + 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 - + 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 - + + 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 commited to the database.</p> - + Uncommited data outline color - + <p>In case of error while commiting 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 @@ -1605,122 +1640,130 @@ but it's okay to use it. + + 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 - + 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 - + Total number of rows is being counted. Browsing other pages will be possible after the row counting is done. - + Row: %1 @@ -1898,37 +1941,37 @@ Browsing other pages will be possible after the row counting is done. - + Enter an unique database name. - + This name is already in use. Please enter unique name. - + Enter a database file path. - + This database is already on the list under name: %1 - + Select a database type. - + Auto-generated - + Type the name @@ -1989,327 +2032,348 @@ Browsing other pages will be possible after the row counting is done. - + 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 - + 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 - - + + + Erase table data + + + + + Database - + Grouping - - + + 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. - + Delete database - + Are you sure you want to delete database '%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 execution finished successfully. - + 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 successfly. - + + Are you sure you want to delete all data from table '%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 @@ -2344,123 +2408,123 @@ All objects from this group will be moved to parent group. DbTreeModel - + Database: %1 dbtree tooltip - + Version: dbtree tooltip - + File size: dbtree tooltip - + Encoding: dbtree tooltip - - Error details: + + 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 - + 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? @@ -2509,135 +2573,135 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 - + 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 uncommited data. @@ -2891,49 +2955,49 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 @@ -2947,58 +3011,58 @@ Please enter new, unique name, or press '%1' to abort the operation: - + 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: @@ -3322,293 +3386,298 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 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 + + + + Report a bug - + Propose a new feature - + About - + Licenses - + Open home page - + Open forum page - + User Manual - + SQLite documentation - + Report history - + 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. @@ -3634,29 +3703,29 @@ Please enter new, unique name, or press '%1' to abort the operation: MultiEditor - + Null value multieditor - + Configure editors for this data type - + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. - + Deleted multieditor - + Read only multieditor @@ -3908,27 +3977,32 @@ Please enter new, unique name, or press '%1' to abort the operation: - + + 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. @@ -4053,32 +4127,32 @@ Please enter new, unique name, or press '%1' to abort the operation: - + 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 @@ -4200,40 +4274,45 @@ Please enter new, unique name, or press '%1' to abort the operation: - + 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 @@ -4694,101 +4773,112 @@ find next - Load SQL from file + Select file to save SQL sql editor - Delete line + Load SQL from file sql editor - Move block down + Delete line sql editor - Move block up + Move block down sql editor - Copy block down + Move block up sql editor - Copy up down + Copy block down sql editor - Find + Copy up down sql editor - Find next + Find sql editor - Find previous + Find next sql editor + Find previous + sql editor + + + + Replace 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. @@ -4848,7 +4938,7 @@ find next SqlQueryModel - + Only one query can be executed simultaneously. @@ -4873,43 +4963,43 @@ find next - + An error occurred while commiting 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 commiting the data: %1 - - + + Error while executing SQL query on database '%1': %2 - + Error while loading query results: %1 - + Insert multiple rows - + Number of rows to insert: @@ -5028,12 +5118,12 @@ find next - + Copy - + Clear @@ -5238,411 +5328,421 @@ but it's okay to use them anyway. - + 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, because database %1 could not be resolved. + + 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, because the table %1 doesn't exist in the database %2. + + Could not restore window '%1'', because the table %2 doesn't exist in the database %3. - - + + New table %1 - + 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 successfly. - + 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. - + 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. - + Table window "%1" has uncommited data. - + Table window "%1" has uncommited structure modifications. @@ -5813,180 +5913,186 @@ Do you want to commit the structure, or do you want to go back to the structure - - Could not restore window, because database %1 could not be resolved. + + + Could not restore window '%1', because no database or view was stored in session for this window. - - Could not restore window, because database %1 could not be open. + + Could not restore window '%1', because database %2 could not be resolved. - - Could not restore window, because the view %1 doesn't exist in the database %2. + + 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 - + Refresh trigger list view window - + Create new trigger view window - + Edit selected trigger view window - + Delete selected trigger view window - + View window "%1" has uncommited structure modifications and data. - + View window "%1" has uncommited data. - + View window "%1" has uncommited structure modifications. - + Could not load data for view %1. Error details: %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. - + Could not commit view changes. Error message: %1 view window - + 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 @@ -5995,7 +6101,7 @@ Would you like to proceed? WidgetCover - + Interrupt diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.qm b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.qm index 3e51d97..9e3d103 100644 Binary files a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.qm and b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.qm differ diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.ts index 467ca92..af5e93d 100644 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.ts +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_ru.ts @@ -355,32 +355,32 @@ Отфильтровать сравнения - + Collation name: Имя сравнения: - + Implementation language: Язык реализации: - + Databases Базы данных - + Register in all databases Зарегистрировать во всех базах данных - + Register in following databases: Зарегистрировать в следующих базах данных: - + Implementation code: Код реализации: @@ -890,7 +890,7 @@ but it's okay to use it. ConfigDialog - + Configuration Конфигурация @@ -1067,406 +1067,441 @@ but it's okay to use it. Комбинация клавиш - - + + 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 Отображать в списке системные таблицы и индексы - + 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 Открывать окна представлений на вкладке данных - + + 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 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 Справка по настройке редакторов типов данных @@ -1607,123 +1642,131 @@ but it's okay to use it. Имя + + 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 Последняя страница - + 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 Вкладки снизу - + Total number of rows is being counted. Browsing other pages will be possible after the row counting is done. Идёт подсчёт общего числа строк. Переключение на другие страницы станет возможным после окончания подсчёта. - + Row: %1 Строка: %1 @@ -1921,32 +1964,32 @@ Browsing other pages will be possible after the row counting is done. Обзор - + Enter an unique database name. Введите уникальное имя базы данных. - + This name is already in use. Please enter unique name. Данное имя уже используется. Пожалуйста, укажите уникальное имя. - + Enter a database file path. Введите путь к базе данных. - + This database is already on the list under name: %1 Указанная база данных уже находится в списке под именем %1 - + Select a database type. Выберите тип базы данных. - + Auto-generated Автоматически сгенерировано @@ -1955,7 +1998,7 @@ Browsing other pages will be possible after the row counting is done. Имя будет сгенерировано автоматически - + Type the name Введите имя @@ -2016,327 +2059,348 @@ Browsing other pages will be possible after the row counting is done. Базы данных - + 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 Обновить структуру выбранной базы данных - - + + + Erase table data + Удалить данные из таблицы + + + + Database База данных - + Grouping Группировка - - + + 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? Все объекты из данной группы будут перемещены в родительскую группу. - + 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 Удалить объекты @@ -2371,125 +2435,130 @@ All objects from this group will be moved to parent group. 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 Прервать - + 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? Вы хотите проигнорировать эти ошибки и продолжить? @@ -2540,135 +2609,135 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 сверху - + 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 uncommited data. В окне редактора "%1" имеются неподтверждённые данные. @@ -2922,49 +2991,49 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 Удалить текущую строку @@ -2978,58 +3047,58 @@ Please enter new, unique name, or press '%1' to abort the operation:Отфильтровать функции - + 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: Код реализации последнего шага: @@ -3354,293 +3423,298 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 Справка - + 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 в список. @@ -3666,29 +3740,29 @@ Please enter new, unique name, or press '%1' to abort the operation: MultiEditor - + Null value multieditor Значение Null - + Configure editors for this data type Настройте редакторы для этого типа данных - + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. Модуль редактора данных '%1' не загружен, хотя указан для редактирования типа данных '%1' - + Deleted multieditor Удалено - + Read only multieditor Только для чтения @@ -3940,27 +4014,32 @@ Please enter new, unique name, or press '%1' to abort the operation:Заполнить - + + 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. Необходимо выбрать хотя бы один столбец. @@ -4085,32 +4164,32 @@ Please enter new, unique name, or press '%1' to abort the operation:Открыть содержимое выбранной ячейки в отдельном редакторе - + 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 Переключиться из формы на табличный вид @@ -4232,40 +4311,45 @@ Please enter new, unique name, or press '%1' to abort the operation:Удалить текущую строку - + 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 @@ -4661,7 +4745,7 @@ find next Move column down - Переместить столбец вних + Переместить столбец вниз @@ -4728,101 +4812,112 @@ find next + 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 Заменить - + + 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. Достигнут конец документа. Нажмите Найти снова для перезапуска поиска. @@ -4882,7 +4977,7 @@ find next SqlQueryModel - + Only one query can be executed simultaneously. Одновременно может быть выполнен только один запрос. @@ -4907,43 +5002,43 @@ find next Невозможно начать транзакцию в базе данных. Подробности: %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 - - + + 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: Количество вставляемых строк: @@ -5062,12 +5157,12 @@ find next Статус - + Copy Копировать - + Clear Очистить @@ -5273,219 +5368,219 @@ but it's okay to use them anyway. Имя таблицы: - + 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 @@ -5493,194 +5588,212 @@ Would you like to proceed? Вы хотите продолжить? - + 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. + + 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 - + 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" имеются неподтверждённые изменения структуры. @@ -5852,176 +5965,194 @@ Do you want to commit the structure, or do you want to go back to the structure 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 Откатить изменения представления - + Refresh trigger list view window Обновить список триггеров - + Create new trigger view window Создать новый триггер - + Edit selected trigger view window Редактировать выбранный триггер - + Delete selected trigger view window Удалить выбранный триггер - + 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. Подтвердить изменения и перейти к данным. - + Could not commit view changes. Error message: %1 view window Невозможно подтвердить изменения представления. Сообщение об ошибке: %1 - + 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 @@ -6029,7 +6160,7 @@ Would you like to proceed? Вы хотите продолжить? - + View modification view window Изменение представления @@ -6038,7 +6169,7 @@ Would you like to proceed? WidgetCover - + Interrupt Прервать diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.qm b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.qm index a2ccadd..47656ef 100644 Binary files a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.qm and b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.qm differ diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.ts index 42a735f..332a764 100644 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.ts +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_sk.ts @@ -168,83 +168,84 @@ 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ý užívateľ pomocou emailovej adresy. Reporting as a registered user. - + Nahlásenie ako registrovaný uží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. @@ -259,7 +260,7 @@ Reported at - + Nahlásené @@ -270,12 +271,12 @@ Reports history - + História hlásení Clear reports history - + Vymazať históriu hlásení @@ -285,7 +286,7 @@ Invalid response from server. - + Neplatná odpoveď zo servera. @@ -298,7 +299,7 @@ Credentials - + Prihlasovacie údaje @@ -313,17 +314,17 @@ Validation - + Overenie Validate - + Overiť Validation result message - + Výsledok overenia @@ -343,7 +344,7 @@ Valid - + Úspešné overenie @@ -354,32 +355,32 @@ Filtrovať porovnávania - + Collation name: Názov porovnánavania: - + Implementation language: Implementačný jazyk: - + Databases Databázy - + Register in all databases - + Register in following databases: - + Implementation code: @@ -889,7 +890,7 @@ but it's okay to use it. ConfigDialog - + Configuration Konfigurácia @@ -1066,406 +1067,441 @@ but it's okay to use it. 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 + + + + + General.CompactLayout + + + + 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 - + + 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 - + <p>Any data changes will be outlined with this color, until they're commited to the database.</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> - + 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 @@ -1606,123 +1642,131 @@ but it's okay to use it. 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 - + 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 - + 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 @@ -1792,7 +1836,7 @@ Prezeranie ďalších strán bude možné až po dokončení spočítavania. Enter a not empty, unique name (as in the list of databases on the left). - + Zadajte jedinečný názov. @@ -1920,32 +1964,32 @@ Prezeranie ďalších strán bude možné až po dokončení spočítavania.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. - + 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ý @@ -1954,7 +1998,7 @@ Prezeranie ďalších strán bude možné až po dokončení spočítavania.Názov bude vygenerovaný automaticky - + Type the name Zadajte meno @@ -2016,328 +2060,349 @@ Prezeranie ďalších strán bude možné až po dokončení spočítavania.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 - - + + + Erase table data + + + + + Database Databáza - + Grouping Zoskupovanie - - + + 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. - + Delete database Vymazať databázu - + Are you sure you want to delete database '%1'? Ste si istý, že chcete vymazať 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 - + Autoincrement value for table '%1' has been reset successfly. - + + Are you sure you want to delete all data from table '%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 @@ -2372,123 +2437,128 @@ Všetky objekty z tejto skupiny budú presunuté do nadradenej skupiny. 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ť - + 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? @@ -2537,135 +2607,135 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 - Vyprázdniť históriu dotazov + 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 - + 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 - Vyprázdniť históriu dotazov + 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 uncommited data. Okno editora "%1" obsahuje nepotrdené dáta. @@ -2919,49 +2989,49 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 @@ -2975,58 +3045,58 @@ Please enter new, unique name, or press '%1' to abort the operation: - + Function name: - + Implementation language: - + Implementačný jazyk: - + Type: Typ: - + Input arguments - + Undefined - + Databases Databázy - + Register in all databases - + Register in following databases: - + Initialization code: - + Function implementation code: - + Final step implementation code: @@ -3350,293 +3420,298 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 + + + + 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 Uží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 - + 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 - + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 - + Could not add database %1 to list. Nemôžem pridať databázu %1 do zoznamu. @@ -3651,40 +3726,40 @@ Please enter new, unique name, or press '%1' to abort the operation: Close anyway - + Zatvoriť aj napriek tomu Don't close - + Nezatvárať MultiEditor - + Null value multieditor Hodnota null - + Configure editors for this data type - + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. - + Deleted multieditor - + Read only multieditor @@ -3841,7 +3916,7 @@ Please enter new, unique name, or press '%1' to abort the operation: SQLiteStudio updates - + Aktualizácie SQLiteStudia @@ -3851,7 +3926,7 @@ Please enter new, unique name, or press '%1' to abort the operation: Component - + Komponenta @@ -3861,7 +3936,7 @@ Please enter new, unique name, or press '%1' to abort the operation: Update version - + Dostupná verzia @@ -3871,22 +3946,22 @@ Please enter new, unique name, or press '%1' to abort the operation: 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. @@ -3936,27 +4011,32 @@ Please enter new, unique name, or press '%1' to abort the operation: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. @@ -4081,32 +4161,32 @@ Please enter new, unique name, or press '%1' to abort the operation: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 @@ -4228,40 +4308,45 @@ Please enter new, unique name, or press '%1' to abort the operation: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 + + Cell text value editor @@ -4375,12 +4460,12 @@ Please enter new, unique name, or press '%1' to abort the operation: All SQLite databases - + Všetky SQLite databázy All files - + Všetky súbory @@ -4391,7 +4476,7 @@ Please enter new, unique name, or press '%1' to abort the operation: Reports history window - + Okno histórie hlásení @@ -4665,31 +4750,31 @@ nájsť ďalší Cut sql editor - + Vystrihnúť Copy sql editor - Kopírovať + Kopírovať Paste sql editor - Vložiť + Vložiť Delete sql editor - + Vymazať Select all sql editor - Vybrať všetko + Vybrať všetko @@ -4723,101 +4808,112 @@ nájsť ďalší + 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ť + Nájsť - + Find next sql editor - Nájsť ďalší + Nájsť ďalší - + Find previous sql editor - Nájsť predchádzajúci + Nájsť predchádzajúci - + Replace sql editor Nahradiť - + + 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 - + SQL scripts (*.sql);;All files (*) - + Open file Otvoriť súbor - + Could not open file '%1' for reading: %2 - + Reached the end of document. Hit the find again to restart the search. @@ -4877,7 +4973,7 @@ nájsť ďalší SqlQueryModel - + Only one query can be executed simultaneously. Nemôže byť spustených viacero dotazov súčasne. @@ -4902,43 +4998,43 @@ nájsť ďalší 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 - - + + 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: @@ -5057,14 +5153,14 @@ nájsť ďalší Status - + Copy Kopírovať - + Clear - Vyčistiť + Vymazať @@ -5073,19 +5169,19 @@ nájsť ďalší Type table constraints - Typ + Typ Details table constraints - Detaily + Detaily Name table constraints - Názov + Názov @@ -5093,7 +5189,7 @@ nájsť ďalší Foreign table: - Cudzia tabuľka: + Cudzia tabuľka: @@ -5119,7 +5215,7 @@ but it's okay to use them anyway. Reactions - Reakcie + Reakcie @@ -5129,38 +5225,38 @@ but it's okay to use them anyway. Named constraint - Pomenovanie obmedzenia + Pomenovanie obmedzenia Constraint name - Názov obmedzenia + Názov obmedzenia Pick the foreign column. - Vyberte cudzí stĺpec. + Vyberte cudzí stĺpec. Pick the foreign table. - Vyberte cudziu tabuľku. + 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. + Zadajte názov obmedzenia. Foreign column table constraints - Cudzí stĺpec + Cudzí stĺpec @@ -5267,412 +5363,422 @@ but it's okay to use them anyway. 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, because database %1 could not be resolved. + + 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, because the table %1 doesn't exist in the database %2. + + 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 - + 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 - + Autoincrement value for table '%1' has been reset successfly. - + 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. @@ -5843,181 +5949,188 @@ Chcete potvrdiť štruktúru alebo sa chcete vrátiť do záložky štruktúr?DDL - - Could not restore window, because database %1 could not be resolved. + + + Could not restore window '%1', because no database or view was stored in session for this window. - - Could not restore window, because database %1 could not be open. + + Could not restore window '%1', because database %2 could not be resolved. - - Could not restore window, because the view %1 doesn't exist in the database %2. + + Could not restore window '%1', because database %2 could not be open. - - - New view %1 + + 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 - + 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 uncommited structure modifications and data. - + View window "%1" has uncommited data. - + View window "%1" has uncommited structure modifications. - + Could not load data for view %1. Error details: %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 - + Name view window triggers Názov - + Instead of view window triggers - + Condition view window triggers - Podmienka + 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 @@ -6026,7 +6139,7 @@ Would you like to proceed? WidgetCover - + Interrupt diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.qm b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.qm index 8879190..2cb7445 100644 Binary files a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.qm and b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.qm differ diff --git a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.ts b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.ts index 9a6bd32..7d8bb85 100644 --- a/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.ts +++ b/SQLiteStudio3/guiSQLiteStudio/translations/guiSQLiteStudio_zh_CN.ts @@ -357,32 +357,32 @@ 过滤器排序规则 - + Collation name: 排序规则名称: - + Implementation language: 实现语言: - + Databases 数据库 - + Register in all databases 在所有数据库中注册 - + Register in following databases: 在下列数据库中注册: - + Implementation code: 实现代码: @@ -892,7 +892,7 @@ but it's okay to use it. ConfigDialog - + Configuration @@ -1069,406 +1069,441 @@ but it's okay to use it. 按键编定 - - + + 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 + + + + + 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> - + 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 - + 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 - + + 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> - + 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 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> - + Valid objects foreground - + Data view colors - + <p>Any data changes will be outlined with this color, until they're commited to the database.</p> - + Uncommited data outline color - + <p>In case of error while commiting data changes, the problematic cell will be outlined with this color.</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> - + 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 @@ -1609,122 +1644,130 @@ but it's okay to use it. 名称 + + 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 - + 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 - + Total number of rows is being counted. Browsing other pages will be possible after the row counting is done. - + Row: %1 @@ -1910,37 +1953,37 @@ Browsing other pages will be possible after the row counting is done. - + Enter an unique database name. - + This name is already in use. Please enter unique name. - + Enter a database file path. - + This database is already on the list under name: %1 - + Select a database type. - + Auto-generated - + Type the name @@ -2001,327 +2044,348 @@ Browsing other pages will be possible after the row counting is done. 数据库 - + 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 - + 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 - - + + + Erase table data + + + + + Database 数据库 - + Grouping - - + + 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. - + Delete database - + Are you sure you want to delete database '%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 execution finished successfully. - + 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 successfly. - + + Are you sure you want to delete all data from table '%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 @@ -2356,123 +2420,123 @@ All objects from this group will be moved to parent group. DbTreeModel - + Database: %1 dbtree tooltip 数据库:%1 - + Version: dbtree tooltip 版本: - + File size: dbtree tooltip - + Encoding: dbtree tooltip - - Error details: + + 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 中止 - + 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? @@ -2521,135 +2585,135 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 - + 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 uncommited data. @@ -2870,7 +2934,7 @@ Please enter new, unique name, or press '%1' to abort the operation: All files (*) - 所有文件 (*) + 所有文件 (*) @@ -2903,49 +2967,49 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 @@ -2959,58 +3023,58 @@ Please enter new, unique name, or press '%1' to abort the operation: - + 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: @@ -3334,293 +3398,298 @@ Please enter new, unique name, or press '%1' to abort the operation: 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 打开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 + + + + Report a bug 提交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 帮助 - + 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>. 有新更新 <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 - + Database passed in command line parameters (%1) has been temporarily added to the list under name: %2 - + Could not add database %1 to list. @@ -3646,29 +3715,29 @@ Please enter new, unique name, or press '%1' to abort the operation: MultiEditor - + Null value multieditor Null 值 - + Configure editors for this data type - + Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type. - + Deleted multieditor 已删除 - + Read only multieditor 只读 @@ -3920,27 +3989,32 @@ Please enter new, unique name, or press '%1' to abort the operation: - + + 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. 您至少得选择一个字段。 @@ -4065,32 +4139,32 @@ Please enter new, unique name, or press '%1' to abort the operation: - + 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 @@ -4212,40 +4286,45 @@ Please enter new, unique name, or press '%1' to abort the operation: - + Main window - + Open SQL editor 打开SQL编辑器 - + Previous window 上一个窗口 - + Next window 下一个窗口 - + Hide status area - + Open configuration dialog 打开配置对话框 - + Open Debug Console 打开调试终端 + + + Open CSS Console + + Cell text value editor @@ -4706,101 +4785,112 @@ find next + Select file to save SQL + sql editor + + + + 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 替换 - + + 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 (*) - SQL文件(*.sql);;所有文件(*) + SQL文件 (*.sql);;所有文件 (*) - + Open file 打开文件 - + Could not open file '%1' for reading: %2 - + Reached the end of document. Hit the find again to restart the search. 已搜索到文档底部。点击查找从头程序开始搜索。 @@ -4860,7 +4950,7 @@ find next SqlQueryModel - + Only one query can be executed simultaneously. @@ -4885,43 +4975,43 @@ find next - + An error occurred while commiting 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 commiting the data: %1 - - + + Error while executing SQL query on database '%1': %2 - + Error while loading query results: %1 - + Insert multiple rows - + Number of rows to insert: @@ -5040,12 +5130,12 @@ find next 状态 - + Copy 复制 - + Clear 清除 @@ -5250,411 +5340,421 @@ but it's okay to use them anyway. - + 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, because database %1 could not be resolved. + + 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, because the table %1 doesn't exist in the database %2. + + Could not restore window '%1'', because the table %2 doesn't exist in the database %3. - - + + New table %1 - + 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 successfly. - + 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. - + 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. - + Table window "%1" has uncommited data. - + Table window "%1" has uncommited structure modifications. @@ -5825,180 +5925,186 @@ Do you want to commit the structure, or do you want to go back to the structure - - Could not restore window, because database %1 could not be resolved. + + + Could not restore window '%1', because no database or view was stored in session for this window. - - Could not restore window, because database %1 could not be open. + + Could not restore window '%1', because database %2 could not be resolved. - - Could not restore window, because the view %1 doesn't exist in the database %2. + + 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 - + Refresh trigger list view window - + Create new trigger view window - + Edit selected trigger view window - + Delete selected trigger view window - + View window "%1" has uncommited structure modifications and data. - + View window "%1" has uncommited data. - + View window "%1" has uncommited structure modifications. - + Could not load data for view %1. Error details: %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. - + Could not commit view changes. Error message: %1 view window - + 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 @@ -6007,7 +6113,7 @@ Would you like to proceed? WidgetCover - + Interrupt diff --git a/SQLiteStudio3/guiSQLiteStudio/uiconfig.h b/SQLiteStudio3/guiSQLiteStudio/uiconfig.h index b434dc8..25a8e27 100644 --- a/SQLiteStudio3/guiSQLiteStudio/uiconfig.h +++ b/SQLiteStudio3/guiSQLiteStudio/uiconfig.h @@ -15,6 +15,12 @@ namespace Cfg GUI_API_EXPORT QVariant getDefaultDbTreeLabelFont(); typedef QHash Session; typedef QHash DataEditorsOrder; + enum InsertRowPlacement + { + BEFORE_CURRENT, + AFTER_CURRENT, + AT_THE_END + }; } CFG_CATEGORIES(Ui, @@ -82,6 +88,10 @@ CFG_CATEGORIES(Ui, 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) ) ) diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/collationseditor.ui b/SQLiteStudio3/guiSQLiteStudio/windows/collationseditor.ui index 98e7ddb..97c4e0a 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/collationseditor.ui +++ b/SQLiteStudio3/guiSQLiteStudio/windows/collationseditor.ui @@ -101,27 +101,7 @@ 0 - - - - - - - Collation name: - - - - - - - - - - Implementation language: - - - - + @@ -196,6 +176,41 @@ + + + + + 0 + + + 0 + + + 0 + + + + + Collation name: + + + + + + + + + + Implementation language: + + + + + + + + + diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.cpp index c494702..30fe07b 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.cpp @@ -24,6 +24,7 @@ #include #include #include +#include CFG_KEYS_DEFINE(EditorWindow) EditorWindow::ResultsDisplayMode EditorWindow::resultsDisplayMode; @@ -87,6 +88,12 @@ void EditorWindow::init() setFocusProxy(ui->sqlEdit); updateResultsDisplayMode(); + THEME_TUNER->manageCompactLayout({ + ui->query, + ui->results, + ui->history + }); + resultsModel = new SqlQueryModel(this); ui->dataView->init(resultsModel); @@ -365,6 +372,7 @@ void EditorWindow::createActions() createAction(CREATE_VIEW_FROM_QUERY, ICONS.VIEW_ADD, tr("Create view from query", "sql editor"), this, SLOT(createViewFromQuery()), ui->toolBar); ui->toolBar->addSeparator(); ui->toolBar->addAction(ui->sqlEdit->getAction(SqlEditor::SAVE_SQL_FILE)); + attachActionInMenu(ui->sqlEdit->getAction(SqlEditor::SAVE_SQL_FILE), ui->sqlEdit->getAction(SqlEditor::SAVE_AS_SQL_FILE), ui->toolBar); ui->toolBar->addAction(ui->sqlEdit->getAction(SqlEditor::OPEN_SQL_FILE)); ui->toolBar->addSeparator(); actionMap[CURRENT_DB] = ui->toolBar->addWidget(dbCombo); diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.ui b/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.ui index 51d5503..924f895 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.ui +++ b/SQLiteStudio3/guiSQLiteStudio/windows/editorwindow.ui @@ -14,6 +14,9 @@ SQL editor + + 0 + 0 diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.ui b/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.ui index 45d291d..b99efe1 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.ui +++ b/SQLiteStudio3/guiSQLiteStudio/windows/functionseditor.ui @@ -145,37 +145,7 @@ 0 - - - - Function name: - - - - - - - - - - Implementation language: - - - - - - - - - - Type: - - - - - - - + @@ -223,7 +193,7 @@ - + @@ -265,6 +235,51 @@ + + + + + 0 + + + 0 + + + 0 + + + + + Type: + + + + + + + Function name: + + + + + + + + + + + + + Implementation language: + + + + + + + + + @@ -329,9 +344,6 @@ functionFilterEdit list - nameEdit - typeCombo - langCombo undefArgsCheck argsList allDatabasesRadio diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.cpp index 3a315db..02a1052 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.cpp @@ -33,6 +33,9 @@ #include "services/importmanager.h" #include "dbobjectdialogs.h" #include "dialogs/exportdialog.h" +#include "themetuner.h" +#include "dialogs/importdialog.h" +#include "dialogs/populatedialog.h" #include #include #include @@ -43,8 +46,6 @@ #include #include #include -#include -#include // TODO extend QTableView for columns and constraints, so they show full-row-width drop indicator, // instead of single column drop indicator. @@ -171,6 +172,16 @@ void TableWindow::init() connect(structureExecutor, SIGNAL(success()), this, SLOT(changesSuccessfullyCommited())); connect(structureExecutor, SIGNAL(failure(int,QString)), this, SLOT(changesFailedToCommit(int,QString))); + THEME_TUNER->manageCompactLayout({ + ui->structureTab, + ui->constraintsWidget, + ui->dataTab, + ui->constraintsTab, + ui->indexesTab, + ui->triggersTab, + ui->ddlTab + }); + setupCoverWidget(); updateAfterInit(); } diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.ui b/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.ui index f1fe409..0dd7fe6 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.ui +++ b/SQLiteStudio3/guiSQLiteStudio/windows/tablewindow.ui @@ -43,7 +43,7 @@ - 0 + 4 0 @@ -52,7 +52,7 @@ 0 - 0 + 2 @@ -99,6 +99,9 @@ Qt::Vertical + + 2 + false @@ -130,6 +133,9 @@ + + 0 + 0 diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.cpp index 9a30e1c..cb3a11e 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.cpp @@ -20,6 +20,7 @@ #include "uiconfig.h" #include "services/config.h" #include "services/codeformatter.h" +#include "themetuner.h" #include #include #include @@ -204,6 +205,13 @@ void ViewWindow::init() { ui->setupUi(this); + THEME_TUNER->manageCompactLayout({ + ui->queryTab, + ui->dataTab, + ui->triggersTab, + ui->ddl + }); + dataModel = new SqlQueryModel(this); ui->dataView->init(dataModel); diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.ui b/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.ui index 94f5ea7..0fdccc3 100644 --- a/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.ui +++ b/SQLiteStudio3/guiSQLiteStudio/windows/viewwindow.ui @@ -43,7 +43,7 @@ - 0 + 4 0 @@ -52,7 +52,7 @@ 0 - 0 + 2 diff --git a/SQLiteStudio3/sqlitestudio/main.cpp b/SQLiteStudio3/sqlitestudio/main.cpp index 4ec98cc..0ac506f 100644 --- a/SQLiteStudio3/sqlitestudio/main.cpp +++ b/SQLiteStudio3/sqlitestudio/main.cpp @@ -34,6 +34,7 @@ #include #include #include +#include bool listPlugins = false; @@ -92,6 +93,7 @@ int main(int argc, char *argv[]) { QApplication a(argc, argv); +#ifdef PORTABLE_CONFIG int retCode = 1; UpdateManager::setRetryFunction(updateRetryFunction); if (UpdateManager::handleUpdateOptions(a.arguments(), retCode)) @@ -101,6 +103,7 @@ int main(int argc, char *argv[]) return retCode; } +#endif qInstallMessageHandler(uiMessageHandler); @@ -163,7 +166,9 @@ int main(int argc, char *argv[]) if (!dbToOpen.isNull()) MainWindow::getInstance()->openDb(dbToOpen); +#ifdef PORTABLE_CONFIG UPDATES->checkForUpdates(); +#endif return a.exec(); } diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de.ts index 1d96a62..7072f7c 100644 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de.ts +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_de.ts @@ -4,68 +4,68 @@ 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 - + Lists plugins installed in the SQLiteStudio and quits. - + file - + Database file to open - - + + Error diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es.ts index 34ff1b5..443941d 100644 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es.ts +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_es.ts @@ -4,68 +4,68 @@ 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 - + Lists plugins installed in the SQLiteStudio and quits. - + file - + Database file to open - - + + Error diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr.ts index 3a5ef09..f801dd7 100644 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr.ts +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_fr.ts @@ -4,69 +4,69 @@ 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 avec 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). - + log file - + 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 toutes requêtes SQL simple utilisé pour la plupart des bases de données. - + Limits SQL query messages to only the given <database>. Limites des meesages de la requête SQL pour la <database>. - + database Base de données - + Lists plugins installed in the SQLiteStudio and quits. Listes des plugins installés dans SQLiteStudio et quitter. - + file Fichier - + Database file to open Fichier de la base de données à ouvrir - - + + Error Erreur diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_BR.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_BR.ts index c95e02a..2a54175 100644 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_BR.ts +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_pt_BR.ts @@ -4,68 +4,68 @@ 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 - + Lists plugins installed in the SQLiteStudio and quits. - + file - + Database file to open - - + + Error diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru.ts index 8a9b8ca..711f4a2 100644 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru.ts +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_ru.ts @@ -4,68 +4,68 @@ 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 база данных - + Lists plugins installed in the SQLiteStudio and quits. Выводит список установленных в SQLiteStudio модулей и осуществляет выход. - + file файл - + Database file to open Файл базы данных для открытия - - + + Error Ошибка diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk.ts index 4c82ea1..a7b3257 100644 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk.ts +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_sk.ts @@ -4,68 +4,68 @@ 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 - + Lists plugins installed in the SQLiteStudio and quits. - + file Súbor - + Database file to open - - + + Error Chyba diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.ts index ff9ee04..222126a 100644 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.ts +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.ts @@ -4,68 +4,68 @@ 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 - + Lists plugins installed in the SQLiteStudio and quits. - + file - + Database file to open - - + + Error diff --git a/SQLiteStudio3/sqlitestudiocli/main.cpp b/SQLiteStudio3/sqlitestudiocli/main.cpp index cd10de3..4bec619 100644 --- a/SQLiteStudio3/sqlitestudiocli/main.cpp +++ b/SQLiteStudio3/sqlitestudiocli/main.cpp @@ -53,9 +53,11 @@ int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); +#ifdef PORTABLE_CONFIG int retCode = 1; if (UpdateManager::handleUpdateOptions(a.arguments(), retCode)) return retCode; +#endif QCoreApplication::setApplicationName("SQLiteStudio"); QCoreApplication::setApplicationVersion(SQLITESTUDIO->getVersionString()); -- cgit v1.2.3