From 8e640722c62692818ab840d50b3758f89a41a54e Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Wed, 25 Nov 2015 16:48:41 -0500 Subject: Imported Upstream version 3.0.7 --- SQLiteStudio3/coreSQLiteStudio/ChangeLog.txt | 9 + SQLiteStudio3/coreSQLiteStudio/TODO.txt | 12 + .../coreSQLiteStudio/common/utils_sql.cpp | 13 + SQLiteStudio3/coreSQLiteStudio/common/utils_sql.h | 2 + .../coreSQLiteStudio/coreSQLiteStudio.pro | 4 +- .../coreSQLiteStudio/db/queryexecutor.cpp | 19 +- SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.h | 5 + .../queryexecutorsteps/queryexecutoraddrowids.cpp | 14 +- .../db/queryexecutorsteps/queryexecutoraddrowids.h | 2 +- SQLiteStudio3/coreSQLiteStudio/parser/lempar.c | 6 +- .../coreSQLiteStudio/parser/sqlite2_parse.cpp | 6 +- .../coreSQLiteStudio/parser/sqlite3_parse.cpp | 6 +- SQLiteStudio3/coreSQLiteStudio/parser/token.cpp | 8 +- SQLiteStudio3/coreSQLiteStudio/parser/token.h | 4 +- SQLiteStudio3/coreSQLiteStudio/sqlitestudio.cpp | 2 +- SQLiteStudio3/coreSQLiteStudio/tablemodifier.cpp | 59 +- SQLiteStudio3/coreSQLiteStudio/tablemodifier.h | 4 + .../translations/coreSQLiteStudio_de.ts | 488 ++++---- .../translations/coreSQLiteStudio_es.ts | 32 +- .../translations/coreSQLiteStudio_fr.ts | 32 +- .../translations/coreSQLiteStudio_it.ts | 1283 ++++++++++++++++++++ .../translations/coreSQLiteStudio_pl.ts | 4 +- .../translations/coreSQLiteStudio_pt_BR.ts | 32 +- .../translations/coreSQLiteStudio_ru.ts | 34 +- .../translations/coreSQLiteStudio_sk.ts | 50 +- .../translations/coreSQLiteStudio_zh_CN.ts | 34 +- 26 files changed, 1787 insertions(+), 377 deletions(-) create mode 100644 SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it.ts (limited to 'SQLiteStudio3/coreSQLiteStudio') diff --git a/SQLiteStudio3/coreSQLiteStudio/ChangeLog.txt b/SQLiteStudio3/coreSQLiteStudio/ChangeLog.txt index a94955a..38c2289 100644 --- a/SQLiteStudio3/coreSQLiteStudio/ChangeLog.txt +++ b/SQLiteStudio3/coreSQLiteStudio/ChangeLog.txt @@ -1,3 +1,12 @@ +[3.0.7] + * [ADDED]: #2951 Implemented dropdown value picking for foreign key columns in grid view. + * [ADDED]: Context menu entry to go to row in referenced table by current foreign key cell value. + * [BUGFIX]: #2875 Fixed font misconfiguration after Qt update. + * [BUGFIX]: #2879 Fixed View updating after table modification, when view uses SELECT with table alias same as table name. + * [BUGFIX]: #2885 Fixed tokens parsing, causing random problems, such as incorrect formatting performed by the simple formatter. + * [BUGFIX]: Fixed preventing of setting null or empty value on query results that don't come directly from table. + * [BUGFIX]: Fixed duplicates while copying mupltiple lines from status field. + [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. diff --git a/SQLiteStudio3/coreSQLiteStudio/TODO.txt b/SQLiteStudio3/coreSQLiteStudio/TODO.txt index e6f699e..5c0f35c 100644 --- a/SQLiteStudio3/coreSQLiteStudio/TODO.txt +++ b/SQLiteStudio3/coreSQLiteStudio/TODO.txt @@ -1,3 +1,15 @@ +Thread 5 Crashed:: Thread (pooled) +0 libcoreSQLiteStudio.1.0.0.dylib 0x0000000101f24ba7 QHash::value(QString const&) const + 23 +1 libcoreSQLiteStudio.1.0.0.dylib 0x0000000101f24ad4 QHash::operator[](QString const&) const + 36 +2 libcoreSQLiteStudio.1.0.0.dylib 0x0000000101f24936 SqlResultsRow::value(QString const&) const + 54 +3 libcoreSQLiteStudio.1.0.0.dylib 0x0000000101f06c1a SchemaResolver::getAllObjects(QString const&) + 1178 +4 libcoreSQLiteStudio.1.0.0.dylib 0x0000000101f06746 SchemaResolver::getAllObjects() + 70 +5 libguiSQLiteStudio.1.0.0.dylib 0x000000010252f428 SqlEditor::refreshValidObjects()::$_0::operator()() const + 456 (sqleditor.cpp:529) +6 libguiSQLiteStudio.1.0.0.dylib 0x000000010252f1ec QtConcurrent::StoredFunctorCall0::runFunctor() + 28 (qtconcurrentstoredfunctioncall.h:72) +7 libguiSQLiteStudio.1.0.0.dylib 0x0000000102534ca1 QtConcurrent::RunFunctionTask::run() + 81 (qtconcurrentrunbase.h:132) +8 libguiSQLiteStudio.1.0.0.dylib 0x0000000102534dbc non-virtual thunk to QtConcurrent::RunFunctionTask::run() + 28 (qtconcurrentrśunbase.h:141) + + * Outstanding features for 3.1: - migrate updates engine to Qt Install Framework - loadable extensions full support diff --git a/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.cpp b/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.cpp index 3ace551..eba10fa 100644 --- a/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.cpp @@ -159,6 +159,19 @@ QList getAllNameWrappers(Dialect dialect) return {NameWrapper::DOUBLE_QUOTE, NameWrapper::BRACKET, NameWrapper::QUOTE}; } +QString wrapValueIfNeeded(const QString& str) +{ + return wrapValueIfNeeded(QVariant::fromValue(str)); +} + +QString wrapValueIfNeeded(const QVariant& value) +{ + if (value.canConvert(QMetaType::LongLong) || value.canConvert(QMetaType::Double)) + return value.toString(); + + return wrapString(value.toString()); +} + QString wrapString(const QString& str) { QString result = str; diff --git a/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.h b/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.h index 945b7cc..038c146 100644 --- a/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.h +++ b/SQLiteStudio3/coreSQLiteStudio/common/utils_sql.h @@ -56,6 +56,8 @@ API_EXPORT QPair getQuoteCharacter(QString& obj, Dialect dialect, API_EXPORT QList wrapObjNames(const QList& objList, Dialect dialect = Dialect::Sqlite3, NameWrapper favWrapper = NameWrapper::null); API_EXPORT QList wrapObjNamesIfNeeded(const QList& objList, Dialect dialect, NameWrapper favWrapper = NameWrapper::null); API_EXPORT QList getAllNameWrappers(Dialect dialect = Dialect::Sqlite3); +API_EXPORT QString wrapValueIfNeeded(const QString& str); +API_EXPORT QString wrapValueIfNeeded(const QVariant& value); API_EXPORT int qHash(NameWrapper wrapper); API_EXPORT QString getPrefixDb(const QString& origDbName, Dialect dialect); API_EXPORT bool isSystemTable(const QString& name); diff --git a/SQLiteStudio3/coreSQLiteStudio/coreSQLiteStudio.pro b/SQLiteStudio3/coreSQLiteStudio/coreSQLiteStudio.pro index e21ee8b..886678d 100644 --- a/SQLiteStudio3/coreSQLiteStudio/coreSQLiteStudio.pro +++ b/SQLiteStudio3/coreSQLiteStudio/coreSQLiteStudio.pro @@ -51,7 +51,8 @@ portable { CONFIG += c++11 QMAKE_CXXFLAGS += -pedantic -TRANSLATIONS += translations/coreSQLiteStudio_zh_CN.ts \ +TRANSLATIONS += translations/coreSQLiteStudio_it.ts \ + translations/coreSQLiteStudio_zh_CN.ts \ translations/coreSQLiteStudio_sk.ts \ translations/coreSQLiteStudio_de.ts \ translations/coreSQLiteStudio_ru.ts \ @@ -455,3 +456,4 @@ RESOURCES += \ + diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.cpp index b790ffa..f8d7fd2 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.cpp @@ -201,6 +201,12 @@ void QueryExecutor::run() void QueryExecutor::execInternal() { + if (forceSimpleMode) + { + executeSimpleMethod(); + return; + } + simpleExecution = false; interrupted = false; @@ -456,7 +462,8 @@ void QueryExecutor::simpleExecutionFinished(SqlQueryPtr results) context->resultsHandler = nullptr; } - notifyWarn(tr("SQLiteStudio was unable to extract metadata from the query. Results won't be editable.")); + if (!forceSimpleMode) + notifyWarn(tr("SQLiteStudio was unable to extract metadata from the query. Results won't be editable.")); emit executionFinished(results); } @@ -551,6 +558,16 @@ bool QueryExecutor::handleRowCountingResults(quint32 asyncId, SqlQueryPtr result return true; } +bool QueryExecutor::getForceSimpleMode() const +{ + return forceSimpleMode; +} + +void QueryExecutor::setForceSimpleMode(bool value) +{ + forceSimpleMode = value; +} + const QStringList& QueryExecutor::getRequiredDbAttaches() const { diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.h b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.h index 83d0436..95c6a0c 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.h +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutor.h @@ -1029,6 +1029,9 @@ class API_EXPORT QueryExecutor : public QObject, public QRunnable const QStringList& getRequiredDbAttaches() const; + bool getForceSimpleMode() const; + void setForceSimpleMode(bool value); + private: /** * @brief Executes query. @@ -1322,6 +1325,8 @@ class API_EXPORT QueryExecutor : public QObject, public QRunnable */ Db::QueryResultsHandler resultsHandler = nullptr; + bool forceSimpleMode = false; + signals: /** * @brief Emitted on successful query execution. diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.cpp b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.cpp index ea42baf..8cc344c 100644 --- a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.cpp @@ -59,16 +59,6 @@ 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 @@ -79,7 +69,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, hasStar)) + if (!addResultColumns(core, table, rowIdColsMap, isTopSelect)) { ok = false; return rowIdColsMap; @@ -156,7 +146,7 @@ QHash QueryExecutorAddRowIds::getNextColNames(const SelectResol } bool QueryExecutorAddRowIds::addResultColumns(SqliteSelect::Core* core, const SelectResolver::Table& table, - QHash>& rowIdColsMap, bool isTopSelect, bool hasStar) + QHash>& rowIdColsMap, bool isTopSelect) { QHash executorToRealColumns; bool aliasOnlyAsSelectColumn = false; diff --git a/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.h b/SQLiteStudio3/coreSQLiteStudio/db/queryexecutorsteps/queryexecutoraddrowids.h index fa2167f..61bc302 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, bool hasStar); + QHash >& rowIdColsMap, bool isTopSelect); /** * @brief Adds the column to result columns list. diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/lempar.c b/SQLiteStudio3/coreSQLiteStudio/parser/lempar.c index 4f9cd5c..2d0e610 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/lempar.c +++ b/SQLiteStudio3/coreSQLiteStudio/parser/lempar.c @@ -717,7 +717,11 @@ static void yy_reduce( { tokens.clear(); const char* fieldName = yyTokenName[yypParser->yystack[i].major]; - if (parserContext->isManagedToken(yypParser->yystack[i].minor.yy0)) + + // Adding token being subject of this reduction. It's usually not includes in the inherited tokens, + // although if inheriting from simple statements, like "FAIL" or "ROLLBACK", this tends to be redundant with the inherited tokens. + // That's why we're checking if it's not contained in the inherited tokens and add it only then. + if (parserContext->isManagedToken(yypParser->yystack[i].minor.yy0) && !yypParser->yystack[i].tokens->contains(yypParser->yystack[i].minor.yy0)) tokens += yypParser->yystack[i].minor.yy0; tokens += *(yypParser->yystack[i].tokens); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite2_parse.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite2_parse.cpp index ffc1fab..81e242d 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite2_parse.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite2_parse.cpp @@ -4354,7 +4354,11 @@ static void yy_reduce( { tokens.clear(); const char* fieldName = yyTokenName[yypParser->yystack[i].major]; - if (parserContext->isManagedToken(yypParser->yystack[i].minor.yy0)) + + // Adding token being subject of this reduction. It's usually not includes in the inherited tokens, + // although if inheriting from simple statements, like "FAIL" or "ROLLBACK", this tends to be redundant with the inherited tokens. + // That's why we're checking if it's not contained in the inherited tokens and add it only then. + if (parserContext->isManagedToken(yypParser->yystack[i].minor.yy0) && !yypParser->yystack[i].tokens->contains(yypParser->yystack[i].minor.yy0)) tokens += yypParser->yystack[i].minor.yy0; tokens += *(yypParser->yystack[i].tokens); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp index fa8a9d1..9ff6487 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp @@ -4973,7 +4973,11 @@ static void yy_reduce( { tokens.clear(); const char* fieldName = yyTokenName[yypParser->yystack[i].major]; - if (parserContext->isManagedToken(yypParser->yystack[i].minor.yy0)) + + // Adding token being subject of this reduction. It's usually not includes in the inherited tokens, + // although if inheriting from simple statements, like "FAIL" or "ROLLBACK", this tends to be redundant with the inherited tokens. + // That's why we're checking if it's not contained in the inherited tokens and add it only then. + if (parserContext->isManagedToken(yypParser->yystack[i].minor.yy0) && !yypParser->yystack[i].tokens->contains(yypParser->yystack[i].minor.yy0)) tokens += yypParser->yystack[i].minor.yy0; tokens += *(yypParser->yystack[i].tokens); diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp index d3e05f1..f2102c3 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp @@ -140,9 +140,9 @@ Range Token::getRange() return Range(start, end); } -bool Token::isWhitespace() const +bool Token::isWhitespace(bool includeComments) const { - return (type == SPACE || type == COMMENT); + return (type == SPACE || (includeComments && type == COMMENT)); } bool Token::isSeparating() const @@ -490,11 +490,11 @@ TokenList TokenList::filter(Token::Type type) const return filtered; } -TokenList TokenList::filterWhiteSpaces() const +TokenList TokenList::filterWhiteSpaces(bool includeComments) const { TokenList filtered; foreach (TokenPtr token, *this) - if (!token->isWhitespace()) + if (!token->isWhitespace(includeComments)) filtered << token; return filtered; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/token.h b/SQLiteStudio3/coreSQLiteStudio/parser/token.h index 222ce1a..aecc7ec 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/token.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/token.h @@ -190,7 +190,7 @@ struct API_EXPORT Token * * Note, that from SQL perspective also comments are whitespaces. */ - bool isWhitespace() const; + bool isWhitespace(bool includeComments = true) const; /** * @brief Tests whether this token represents separating value (like an operator, or parenthesis) in SQL understanding. @@ -633,7 +633,7 @@ class API_EXPORT TokenList : public QList * * The condition to test if tokens is a whitespace is a call to Token::isWhitespace(). */ - TokenList filterWhiteSpaces() const; + TokenList filterWhiteSpaces(bool includeComments = true) const; /** * @brief Returns sub-list of tokens from this list. diff --git a/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.cpp b/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.cpp index 8d62b44..46486e8 100644 --- a/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/sqlitestudio.cpp @@ -39,7 +39,7 @@ DEFINE_SINGLETON(SQLiteStudio) -static const int sqlitestudioVersion = 30006; +static const int sqlitestudioVersion = 30007; SQLiteStudio::SQLiteStudio() { diff --git a/SQLiteStudio3/coreSQLiteStudio/tablemodifier.cpp b/SQLiteStudio3/coreSQLiteStudio/tablemodifier.cpp index 97e1fb3..3e23239 100644 --- a/SQLiteStudio3/coreSQLiteStudio/tablemodifier.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/tablemodifier.cpp @@ -2,7 +2,6 @@ #include "common/utils_sql.h" #include "parser/parser.h" #include "schemaresolver.h" -#include "selectresolver.h" #include "parser/ast/sqlitecreateindex.h" #include "parser/ast/sqlitecreatetrigger.h" #include "parser/ast/sqlitecreateview.h" @@ -530,17 +529,32 @@ SqliteQuery* TableModifier::handleTriggerQuery(SqliteQuery* query, const QString SqliteSelect* TableModifier::handleSelect(SqliteSelect* select, const QString& trigTable) { + SelectResolver selectResolver(db, select->detokenize()); + // Table name - TokenList tableTokens = select->getContextTableTokens(false); - foreach (TokenPtr token, tableTokens) + QList selSources = select->getAllTypedStatements(); + TokenList tableTokens; + StrHash resolvedTables; + for (SqliteSelect::Core* core : select->coreSelects) { - if (token->value.compare(originalTable, Qt::CaseInsensitive) == 0) + resolvedTables = tablesAsNameHash(selectResolver.resolveTables(core)); + + tableTokens = core->getContextTableTokens(false); + foreach (TokenPtr token, tableTokens) + { + if (token->value.compare(originalTable, Qt::CaseInsensitive) != 0) + continue; + + // Check if that table name is the same as its alias name, so we use alias name and we don't rename it here, cause it's alias, not table + if (isTableAliasUsedForColumn(token, resolvedTables, selSources)) + continue; + token->value = newName; + } } // Column names TokenList columnTokens = select->getContextColumnTokens(false); - SelectResolver selectResolver(db, select->detokenize()); QList columns = selectResolver.translateToColumns(select, columnTokens); TokenList columnTokensToChange; @@ -577,6 +591,41 @@ SqliteSelect* TableModifier::handleSelect(SqliteSelect* select, const QString& t return new SqliteSelect(*selectPtr.data()); } +StrHash TableModifier::tablesAsNameHash(const QSet& resolvedTables) +{ + StrHash result; + for (const SelectResolver::Table& tab : resolvedTables) + result[tab.table] = tab; + + return result; +} + +bool TableModifier::isTableAliasUsedForColumn(const TokenPtr &token, const StrHash &resolvedTables, const QList &selSources) +{ + // If we don't have the table token on the list of resolved select tables, we don't consider it as aliased + if (!resolvedTables.contains(token->value, Qt::CaseInsensitive)) + { + qWarning() << "Table" << token->value << "in table tokens processed by TableModifier, but not in resolved SELECT tables."; + return false; + } + + SelectResolver::Table table = resolvedTables.value(token->value, Qt::CaseInsensitive); + if (table.alias.isNull()) + return false; + + if (table.alias.compare(token->value), Qt::CaseInsensitive != 0) + return false; + + // If the table token is mentioned in FROM clause, it's not a subject for aliased usage, cuase it defines alias, not uses it. + for (SqliteSelect::Core::SingleSource* src : selSources) + { + if (src->tokens.contains(token)) + return false; + } + + return true; +} + SqliteUpdate* TableModifier::handleTriggerUpdate(SqliteUpdate* update, const QString& trigName, const QString& trigTable) { if (update->table.compare(originalTable, Qt::CaseInsensitive) == 0) diff --git a/SQLiteStudio3/coreSQLiteStudio/tablemodifier.h b/SQLiteStudio3/coreSQLiteStudio/tablemodifier.h index f063693..675202d 100644 --- a/SQLiteStudio3/coreSQLiteStudio/tablemodifier.h +++ b/SQLiteStudio3/coreSQLiteStudio/tablemodifier.h @@ -2,6 +2,7 @@ #define TABLEMODIFIER_H #include "db/db.h" +#include "selectresolver.h" #include "parser/ast/sqlitecreatetable.h" #include "parser/ast/sqliteupdate.h" #include "parser/ast/sqliteinsert.h" @@ -9,6 +10,7 @@ #include "parser/ast/sqlitecreateindex.h" #include "parser/ast/sqlitecreatetrigger.h" #include "parser/ast/sqlitecreateview.h" +#include "common/strhash.h" class API_EXPORT TableModifier { @@ -50,6 +52,8 @@ class API_EXPORT TableModifier SqliteUpdate* handleTriggerUpdate(SqliteUpdate* update, const QString& trigName, const QString& trigTable); SqliteInsert* handleTriggerInsert(SqliteInsert* insert, const QString& trigName, const QString& trigTable); SqliteDelete* handleTriggerDelete(SqliteDelete* del, const QString& trigName, const QString& trigTable); + StrHash tablesAsNameHash(const QSet &resolvedTables); + bool isTableAliasUsedForColumn(const TokenPtr& token, const StrHash& resolvedTables, const QList& selSources); bool handleSubSelects(SqliteStatement* stmt, const QString& trigTable); bool handleExprWithSelect(SqliteExpr* expr, const QString& trigTable); bool handleAllExprWithTrigTable(SqliteStatement* stmt, const QString& contextTable); diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.ts index 7d61000..51b496d 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_de.ts @@ -7,12 +7,12 @@ Cannot execute query on closed database. - + Die Abfrage kann nicht auf einer ungeöffneten Datenbank ausgeführt werden. Error attaching database %1: %2 - + Fehler beim Anhängen der Datenbank %1: %2 @@ -20,7 +20,7 @@ Invalid login or password - + Ungültiger Nutzername oder Passwort @@ -29,31 +29,31 @@ The database for executing queries was not defined. chain executor - + Es wurde keine Datenbank zur Ausführung von Abfragen festgelegt. The database for executing queries was not open. chain executor - + Die Datenbank ist zur Ausführung von Abfragen nicht geöffnet worden. Could not start a database transaction. Details: %1 chain executor - + Es kann keine Datenbanktransaktion gestartet werden. Details: %1 Interrupted chain executor - + Abgebrochen Could not commit a database transaction. Details: %1 chain executor - + Die Datenbanktransaktion kann nicht 'committet' werden. Details: %1 @@ -61,82 +61,83 @@ New row reference - + Neue Zeilenreferenz Old row reference - + Alte Zeilenreferenz New table name - + Neuer Tabellenname New index name - + Neuer Indizename New view name - + Neuer Viewname New trigger name - + Neuer Triggername Table or column alias - + Tabellen- oder Spaltenalias transaction name - + Transaktionsname New column name - + Neuer Spaltenname Column data type - + Spaltendatentyp Constraint name - + Abhängigkeitsname Error message - + Fehlermeldung Collation name - + Hier weiß ich nicht wie man das sprechend übersetzen kann. + Kollationsname Any word - + Beliebiges Wort Default database - + Standarddatenbank Temporary objects database - + Datenbank für temporäre Objekte @@ -144,35 +145,35 @@ Could not add database %1: %2 - + Die Datenbank %1 kann nicht hinzugefügt werden: %2 Database %1 could not be updated, because of an error: %2 - + Die Datenbank %1 kann nicht aktualisiert werden. Grund: %2 Database file doesn't exist. - + Die Datenbankdatei existiert nicht. No supporting plugin loaded. - + Es wurde kein passendes plugin geladen. Database could not be initialized. - + Die Datenbank kann nicht initialisiert werden. No suitable database driver plugin found. - + Es wurde kein passender Datenbanktreiber (plugin) gefunden. @@ -181,50 +182,51 @@ Error while creating table in target database: %1 - + Fehler beim Erstellen einer Tabelle in der Zieldatenbank %1 Could not parse table. - + Die Tabelle konnte nicht verarbeitet werden. Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. - + Datenbank %1 konnte nicht mit Datenbank %2 verbunden werden, daher werden die Daten der Tabelle %3 durch SQLiteStudio kopiert. Diese Methode kann bei großen Tabellen sehr lange dauern, bitte haben Sie Geduld. Error while copying data for table %1: %2 - + Fehler beim Kopieren von Daten für Tabelle %1: %2 Error while copying data to table %1: %2 - + Fehler beim Kopieren von Daten in die Tabelle %1: %2 Error while dropping source view %1: %2 Tables, indexes, triggers and views copied to database %3 will remain. - + Fehler beim Entfernen des Quellviews %1: %2 +Tabellen, Indizes, Trigger und Views die in Datenbank %3 kopiert wurden, werden auf der Quelldatenbank verbleiben. Error while creating view in target database: %1 - + Fehler beim Erstellen eines Views in der Zieldatenbank %1 Error while creating index in target database: %1 - + Fehler beim Erstellen eines Indizes in der Zieldatenbank %1 Error while creating trigger in target database: %1 - + Fehler beim Erstellen eines Triggers in der Zieldatenbank %1 @@ -232,17 +234,17 @@ Tables, indexes, triggers and views copied to database %3 will remain. Target file exists, but could not be overwritten. - + Die Zieldatei existiert zwar, konnte aber nicht überschrieben werden. Could not find proper database plugin to create target database. - + Es konnte kein geeignetes Datenbankplugin gefunden werden, um die Zieldatenbank zu erzeugen. Error while converting database: %1 - + Fehler beim Konvertieren der Datenbank: %1 @@ -251,25 +253,25 @@ Tables, indexes, triggers and views copied to database %3 will remain. Database name ddl history header - + Datenbankname Database file ddl history header - + Datenbankdatei Date of execution ddl history header - + Datum der Ausführung Changes ddl history header - + Änderungen @@ -277,42 +279,42 @@ Tables, indexes, triggers and views copied to database %3 will remain. Export plugin %1 doesn't support exporing query results. - + Das Exportplugin %1 unterstützt das Exportieren der Abfrageergebnisse nicht. Export plugin %1 doesn't support exporing tables. - + Das Exportplugin %1 unterstützt das Exportieren von Tabellen nicht. Export plugin %1 doesn't support exporing databases. - + Das Exportplugin %1 unterstützt das Exportieren von Datenbanken nicht. Export format '%1' is not supported. Supported formats are: %2. - + Das Exportformat %1 wird nicht unterstützt. Unterstützte Formate sind: %2. Export to the clipboard was successful. - + Der Export in die Zwischenablage war erfolgreich. Export to the file '%1' was successful. - + Der Export in die Datei %1 war erfolgreich. Export was successful. - + Der Export war erfolgreich. Could not export to file %1. File cannot be open for writting. - + Es kann nicht in die Datei %1 exportiert werden. Die Datei lässt sich nicht für Schreibzugriffe öffnen. @@ -320,33 +322,33 @@ Tables, indexes, triggers and views copied to database %3 will remain. Error while exporting query results: %1 - + Fehler beim Exportieren der Abfrageergebnisse: %1 Error while counting data column width to export from query results: %1 - + Fehler beim Ermitteln der Spaltenbreite für den Export der Abfrageergebnisse: %1 Could not parse %1 in order to export it. It will be excluded from the export output. - + %1 konnte zum Exportieren nicht korrekt verarbeitet werden. Diese Daten werden nicht exportiert. Error while reading data to export from table %1: %2 - + Fehler beim Lesen der zu exportierenden Daten aus der Tabelle %1: %2 Error while counting data to export from table %1: %2 - + Fehler beim Ermitteln der zu exportierenden Daten aus der Tabelle %1: %2 Error while counting data column width to export from table %1: %2 - + Fehler beim Ermitteln der Spaltenbreite für den Export aus Tabelle %1: %2 @@ -354,43 +356,44 @@ Tables, indexes, triggers and views copied to database %3 will remain. Invalid number of arguments to function '%1'. Expected %2, but got %3. - + Falsche Anzahl an Parametern für Funktion '%1'. Erwartet wurden %2, angegeben wurden jedoch %3. No such function registered in SQLiteStudio: %1(%2) - + Diese Funktion ist in SQLiteStudio nicht verfügbar: %1(%2) Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. - + Auch hier ist sicherlich eine Überarbeitung nötig, wenn der Kontext der Meldung bekannt ist. + Die Funktion %1(%2) wurde für die Sprache %3 erstellt, jedoch ist das Plugin, welches diese Sprache unterstützt, derzeit nicht geladen. Invalid regular expression pattern: %1 - + Ungültiges Muster für die regulären Ausdrücke: %1 Could not open file %1 for reading: %2 - + Datei %1 kann nicht für Lesezugriffe geöffnet werden: %2 Could not open file %1 for writting: %2 - + Datei %1 kann nicht für Schreibzugriffe geöffnet werden: %2 Error while writting to file %1: %2 - + Fehler beim Schreiben in Datei %1: %2 Unsupported scripting language: %1 - + Nicht unterstützte Skriptsprache: %1 @@ -398,7 +401,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. Could not initialize text codec for exporting. Using default codec: %1 - + Der 'Export Textcodec' konnte nicht initialisiert werden. Es wird der Standardcodec genutzt: %1 @@ -406,7 +409,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. Imported data to the table '%1' successfully. - + Die Daten wurden erfolgreich in Tabelle %1 importiert. @@ -414,51 +417,51 @@ Tables, indexes, triggers and views copied to database %3 will remain. No columns provided by the import plugin. - + Dieses Importplugin stellt keine Spalten zur Verfügung. Could not start transaction in order to import a data: %1 - + Es kann keine Transaktion zum Import der Daten gestartet werden: %1 Could not commit transaction for imported data: %1 - + Die Transaktion für die importierten Daten kann nicht 'committet' werden: %1 Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. - + Die Tabelle %1 hat weniger Spalten als die zu importierenden Daten liefern. Überschüssige Spalten werden daher ignoriert. Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. - + Die Tabelle %1 hat mehr Spalten als die zu importierenden Daten liefern. Einige Tabellenspalten werden deshalb leer bleiben. Could not create table to import to: %1 - + Die Tabelle, in die importiert werden soll, kann nicht erstellt werden: %1 Error while importing data: %1 - + Fehler beim Import der Daten: %1 Interrupted. import process status update - + Abgebrochen. Could not import data row number %1. The row was ignored. Problem details: %2 - + Datenzeile %1 konnte nicht importiert werden. Die Zeile wurde ignoriert. Problembeschreibung: %2 @@ -466,34 +469,34 @@ Tables, indexes, triggers and views copied to database %3 will remain. Cannot load plugin %1, because it's in conflict with plugin %2. - + Plugin %1 konnte nicht geladen werden, weil ein Konflikt besteht mit Plugin %2. Cannot load plugin %1, because its dependency was not loaded: %2. - + Plugin %1 konnte nicht geladen werden, da dessen Abhängigkeiten nicht geladen worden sind: %2. Cannot load plugin %1. Error details: %2 - + Plugin %1 konnte nicht geladen. Problembeschreibung: %2 Cannot load plugin %1 (error while initializing plugin). - + Plugin %1 konnte wegen eines Fehlers bei der Initialisierung nicht geladen werden. min: %1 plugin dependency version - + Min: %1 max: %1 plugin dependency version - + Max: %1 @@ -502,7 +505,8 @@ Tables, indexes, triggers and views copied to database %3 will remain. Constant populate constant plugin name - + Hier bin ich mir absolut nicht sicher was genau gemeint ist. + konstanten @@ -510,7 +514,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. Constant value: - + Konstanter Wert: @@ -519,7 +523,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. Dictionary dictionary populating plugin name - + Wörterbuch @@ -527,42 +531,42 @@ Tables, indexes, triggers and views copied to database %3 will remain. Dictionary file - + Wörterbuchdatei Pick dictionary file - + Wähle Wörterbuchdatei aus Word separator - + Wortseperator Whitespace - + Leerzeichen Line break - + Zeilenumbruch Method of using words - + Methode der Wortverwendung Ordered - + Sortiert Randomly - + Zufällig @@ -570,7 +574,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. Table '%1' populated successfully. - + Tabelle %1 wurde erfolgreich gefüllt. @@ -578,7 +582,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. Random number - + Zufällige Nummer @@ -586,32 +590,32 @@ Tables, indexes, triggers and views copied to database %3 will remain. Constant prefix - + Konstanter Präfix No prefix - + Kein Präfix Minimum value - + Kleinster Wert Maximum value - + Größter Wert Constant suffix - + Konstanter Suffix No suffix - + Kein Suffix @@ -619,7 +623,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. Random text - + Zufälliger Text @@ -627,67 +631,68 @@ Tables, indexes, triggers and views copied to database %3 will remain. Use characters from common sets: - + Benutze Zeichen von den gebräuchlichsten Sets: Minimum length - + Mindestlänge Letters from a to z. - + Buchstaben von a bis z. Alpha - + Alphanumerisch Numbers from 0 to 9. - + Ziffern von 0 bis 9. Numeric - + Numerisch A whitespace, a tab and a new line character. - + Ein Leerzeichen, ein Tab und ein Zeilenumbruchzeichen. Whitespace - + Leerzeichen Includes all above and all others. - + Alle obigen und auch andere. Binary - + Binär Use characters from my custom set: - + Benutze Zeichen von meinem benutzerdefinierten Set: Maximum length - + Maximallänge If you type some character multiple times, it's more likely to be used. - + Auch hier kann man besser übersetzen, wenn man den Kontext kennt. + Wenn Sie einige Buchstaben mehrmals eingeben, dann ist es wahrscheinlicher, dass sie genutzt werden. @@ -695,7 +700,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. Script - + Skript @@ -703,22 +708,22 @@ Tables, indexes, triggers and views copied to database %3 will remain. Initialization code (optional) - + Initialisierungscode (optional) Per step code - + Einzelschrittcode Language - + Sprache Help - + Hilfe @@ -726,7 +731,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. Sequence - + Sequenz @@ -734,12 +739,12 @@ Tables, indexes, triggers and views copied to database %3 will remain. Start value: - + Startwert: Step: - + Schritt: @@ -747,17 +752,17 @@ Tables, indexes, triggers and views copied to database %3 will remain. Could not start transaction in order to perform table populating. Error details: %1 - + Es kann keine Transaktion zum Füllen der Tabelle gestartet werden. Problembeschreibung: %1 Error while populating table: %1 - + Fehler beim Füllen der Tabelle: %1 Could not commit transaction after table populating. Error details: %1 - + Die Transaktion zum Füllen der Tabelle kann nicht 'committet' werden. Problembeschreibung: %1 @@ -766,18 +771,18 @@ Tables, indexes, triggers and views copied to database %3 will remain. Could not open database: %1 - + Die Datenbank %1 kann nicht geöffnet werden. - + Result set expired or no row available. - + Das Abfrageergebniss ist ungültig oder es ist keine Datenzeile verfügbar. Could not close database: %1 - + Die Datenbank %1 kann nicht geschlossen werden. @@ -788,18 +793,19 @@ Tables, indexes, triggers and views copied to database %3 will remain. SQLite %1 does not support '%2' statement. - + SQLite %1 unterstützt keine '%2' Abfrage. SQLite %1 does not support '%2' statement, but the regular table can be created instead if you proceed. - + SQLite %1 unterstützt keine '%2' Abfrage, aber die normale Tabelle kann stattdessen erzeugt werden, wenn Sie fortfahren. Could not parse statement: %1 Error details: %2 - + Die Abfrage kann nicht verarbeitet werden: %1 +Problembeschreibung: %2 @@ -807,202 +813,204 @@ Error details: %2 SQLite %1 does not support the '%2' clause. Cannot convert '%3' statement with that clause. - + SQLite %1 unterstützt keine '%2' Klausel. Die %3 Abfrage kann mit dieser Klausel nicht konvertiert werden. SQLite %1 does not support the '%2' clause in the '%3' statement. - + SQLite %1 unterstützt keine '%2' Klausel in der %3 Abfrage. SQLite %1 does not support current date or time clauses in expressions. - + SQLite %1 unterstützt keine current date' oder 'time' Klauseln in Ausdrücken. SQLite %1 does not support '%2' clause in expressions. - + SQLite %1 unterstützt keine '%2' Klausel Ausdrücken. Could not attach database %1: %2 - + Generell muss in den Übersetzungen das 'attached' genauer analysiert werden. + Die Datenbank %1 kann nicht angefügt werden: %2 Incomplete query. - + Unvollständige Abfrage. Parser stack overflow - + Stacküberlauf bei Verarbeitung - - + + Syntax error - + Syntaxfehler Could not open dictionary file %1 for reading. - + Die Wörterbuchdatei %1 kann für den Lesezugriff nicht geöffnet werden. Dictionary file must exist and be readable. - + Die Wörterbuchdatei muss vorhanden sein und Leserechte besitzen. Maximum value cannot be less than minimum value. - + Der Maximalwert kann nicht kleiner sein als der Minimalwert. Maximum length cannot be less than minimum length. - + Die Maximallänge kann nicht kleiner sein als die Minimallänge. Custom character set cannot be empty. - + Ein benutzerdefiniertes Zeichenset darf nicht leer sein. Could not find plugin to support scripting language: %1 - + Das Plugin zur Unterstützung der folgenden Skriptsprache kann nicht gefunden werden: %1 Error while executing populating initial code: %1 - + Fehler beim Ausführen des Initialisierungsprozesses: %1 Error while executing populating code: %1 - + Fehler beim Ausführen des Auffüllprozesses: %1 Select implementation language. - + Wählen Sie die Implementationssprache. Implementation code cannot be empty. - + Der Implementationscode darf nicht leer sein. - + Could not resolve data source for column: %1 - + Die Datenquelle für Spalte %1 kann nicht aufgelöst werden. - + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. - + Ich hoffe, dass ich "to initialize" hier richtig mit "erstellt" übersetzt habe. + Die Konfigurationsdatei kann nicht erstellt werden. Alle Änderungen an der Konfiguration sowie die Abfragehistorie sind nach einem Programmneustart verloren. Es wurde versucht die Konfigurationsdatei in folgendem Verzeichnis zu erstellen: %1 General purpose plugin category name - + Allgemeine Verwendung Database support plugin category name - + Datenbankunterstützung Code formatter plugin category name - + Codeformatierer Scripting languages plugin category name - + Skriptsprachen Exporting plugin category name - + Exportieren Importing plugin category name - + Importieren Table populating plugin category name - + Tabellen füllen - + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - + Tabelle %1 referenziert Tabelle %2, jedoch wird die 'foreign key'-Definition für die neue Tabellendefinition nicht aktualisiert, da es Probleme bei der DDL-Analyse von Tabelle %3 gibt. - + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - + Alle Spalten, die von Index %1 indiziert wurden, sind verloren. Der Index wird nach der Tabellenmodifikation nicht neu erstellt. - + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - + Es ist ein Problem bei der korrekten Verarbeitung des Triggers %1 aufgetreten. Er wird möglicherweise nicht vollständig aktualisert werden und sollte geprüft werden. - + Cannot not update trigger %1 according to table %2 modification. - + Die Aktualisierung des Triggers %1, resultierend aus der Änderung der Tabelle %2, kann nicht ausgeführt werden. - - - + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - + Es ist ein Problem beim Aktualisieren einer %1 Abfrage innerhalb eines %2 Triggers aufgetreten. Eine der %1 Unterabfragen, welche möglicherweise die Tabelle %3 referenziert, kann nicht geändert werden. Eine manuelle Anpassung des Triggers wird nötig sein. - + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - + Alle Spalten, die durch den Trigger %1 abgedeckt wurden, sind verloren. Der Trigger wird nach der Änderung nicht wiederhergestellt. - + Cannot not update view %1 according to table %2 modifications. The view will remain as it is. - + Die Aktualisierung des Views %1, resultierend aus der Änderung der Tabelle %2, kann nicht ausgeführt werden. Der View wird daher nicht geändert. Could not parse DDL of the view to be created. Details: %1 - + DDL des zu erzeugenden Views kann nicht verarbeitet werden. Details: %1 Parsed query is not CREATE VIEW. It's: %1 - + Die zu verarbeitende Abfrage ist nicht CREATE VIEW, es ist: %1 SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. - + SQLiteStudio konnte die vom View zurückgegebenen Spalten nicht auflösen, daher kann nicht ermittelt werden, welcher Trigger beim Wiederherstelllungsprozess einen Fehler verusracht haben könnte. @@ -1010,28 +1018,29 @@ The view will remain as it is. Execution interrupted. - + Ausführung abgebrochen. Database is not open. - + Die Datenbank ist nicht geöffnet. Only one query can be executed simultaneously. - + Es kann nur eine Abfrage gleichzeitig ausgeführt werden. - + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - + Hier muss ggf. noch das 'data paging' korrekt übersetzt werden. + Beim Ausführen der count(*) Abfrage ist ein Fehler aufgetreten, daher wird das data paging abgeschaltet. Problemdetails der Datenbank: %1 - + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. - + SQLiteStudio konnte keine Metadaten aus der Abfrage extrahieren. Die Ergebnismenge kann daher nicht editiert werden. @@ -1039,12 +1048,12 @@ The view will remain as it is. No database available in current context, while called QtScript's %1 command. - + Beim Aufruf des QtSkript Kommandos %1 ist im zugehörigen Kontext keine Datenbank verfügbar. Error from %1: %2 - + Fehler von %1: %2 @@ -1053,31 +1062,31 @@ The view will remain as it is. Database sql history header - + Datenbank Execution date sql history header - + Ausführungsdatum Time spent sql history header - + Dauer Rows affected sql history header - + Anzahl Zeilen SQL sql history header - + SQL @@ -1085,99 +1094,101 @@ The view will remain as it is. An error occurred while checking for updates: %1. - + Beim Prüfen auf Updates trat folgender Fehler auf: %1 Could not check available updates, because server responded with invalid message format. It is safe to ignore this warning. - + Es konnte nicht auf neue Updates geprüft werden, da der Updateserver in einem ungültigen Nachrichtenformat antwortet. Diese Meldung kann gefahrlos ignoriert werden. An error occurred while reading updates metadata: %1. - + Beim Lesen der Update-Metadaten ist ein Fehler aufgetreten: %1. Could not download updates, because server responded with invalid message format. You can try again later or download and install updates manually. See <a href="%1">User Manual</a> for details. - + Das Update konnte nicht heruntergeladen werden, da der Updateserver in einem ungültigen Nachrichtenformat antwortet. Sie können es später noch einmal versuchen oder das Update und die Installation manuell ausführen. Weitere Infoamtionen hierzu finden Sie in der <a href="%1">Programmdokumentation</a>. Could not create temporary directory for downloading the update. Updating aborted. - + Das temporäre Verzeichnis zum Herunterladen des Updates konnte nicht erstellt werden. Der Updatevorgang wird abgebrochen. There was no updates to download. Updating aborted. - + Keine neuen Updates vorhanden. Der Updatevorgang wird beendet. Downloading: %1 - + Herunterladen von: %1 Could not determinate file name from update URL: %1. Updating aborted. - + Der Dateiname der Update-URL %1 konnte nicht ermittelt werden. Der Updatevorgang wird abgebrochen. Failed to open file '%1' for writting: %2. Updating aborted. - + Beim Schreiben in die Datei '%1' trat folgender Fehler auf: %2. Der Updatevorgang wird abgebrochen. Installing updates. - + Update wird installiert. Could not copy current application directory into %1 directory. - + Das aktuelle Programmverzeichnis konnte nicht in das Verzeichnis %1 kopiert werden. Could not create directory %1. - + Das Verzeichnis %1 konnte nicht erstellt werden. Could not rename directory %1 to %2. Details: %3 - + Das Verzeichnis %1 konnte nicht in %2 umbenannt werden. +Details: %3 Cannot not rename directory %1 to %2. Details: %3 - + Das Verzeichnis %1 kann nicht in %2 umbenannt werden. +Details: %3 Could not move directory %1 to %2 and also failed to restore original directory, so the original SQLiteStudio directory is now located at: %3 - + Das Verzeichnis %1 konnte nicht nach %2 verschoben werden. Ebenso schlug das Wiederherstellen des originalen Verzeichnissses fehlt, daher befindet sich das SQLiteStudio Verzeichnis nun hier: %3 Could not rename directory %1 to %2. Rolled back to the original SQLiteStudio version. - + Das Das Verzeichnis %1 konnte nicht nach %2 umbenannt werden.SQLiteStudio wird auf den Ursprungszustand zurückgesetzt. Could not unpack component %1 into %2 directory. - + Die Komponente %1 konnte nicht in das Verzeichnis %2 extrahiert werden. Could not find permissions elevator application to run update as a root. Looked for: %1 - + Die Rechteerweiterung zum Ausführen des Updates als 'root' konnte nicht gefunden werden. Es wurde gesucht nach: %1 Could not execute final updating steps as root: %1 - + Die abschließenden Aktualisierungsschritte konnten nicht als 'root' ausgeführt werden: %1 @@ -1185,99 +1196,100 @@ Details: %3 Could not execute final updating steps as admin: %1 - + Die abschließenden Aktualisierungsschritte konnten nicht als 'admin' ausgeführt werden: %1 Cannot create temporary directory for updater. - + Das temporäre Verzeichnis für den Updater konnte nicht erstellt werden. Cannot create updater script file. - + Die Skriptdatei für den Updater konnte nicht erstellt werden. Updating canceled. - + Updatevorgang abgebrochen. Could not execute final updating steps as administrator. - + Die abschließenden Aktualisierungsschritte konnten nicht als 'administrator' ausgeführt werden. Could not execute final updating steps as administrator. Updater startup timed out. - + Die abschließenden Aktualisierungsschritte konnten nicht als 'administrator' ausgeführt werden. Die Updatevorbereitungen liefen auf Zeitüberschreitung. Could not execute final updating steps as administrator. Updater operation timed out. - + Die abschließenden Aktualisierungsschritte konnten nicht als 'administrator' ausgeführt werden. Der Updatevorgang lief auf Zeitüberschreitung. Could not clean up temporary directory %1. You can delete it manually at any time. - + Das temporäre Verzeichnis %1 konnte nicht aufgeräumt werden. Sie können es später manuell löschen. Could not run new version for continuing update. - + Die neue Version zum Fortführen des Updates kann nicht gestartet werden. Package not in tar.gz format, cannot install: %1 - + Das Paket liegt nicht im tar.gz Format vor. %1 kann nicht installiert werden. Package %1 cannot be installed, because cannot move it to directory: %2 - + Das Paket %1 kann nicht installiert werden, weil es nicht in das Verzeichnis %2 verschoben werden kann. Package %1 cannot be installed, because cannot unpack it: %2 - + Das Paket %1 kann nicht installiert werden, weil es nicht extrahiert werden kann: %2 Package not in zip format, cannot install: %1 - + Das Paket liegt nicht im zip Format vor. %1 kann nicht installiert werden. Package %1 cannot be installed, because cannot unzip it to directory %2: %3 - + Das Paket %1 kann nicht installiert werden, weil es nicht in das Verzeichnis %2: %3 extrahiert werden kann. Package %1 cannot be installed, because cannot unzip it to directory: %2 - + Das Paket %1 kann nicht installiert werden, weil es nicht in das Verzeichnis %2 entzippt werden kann. Could not rename directory %1 to %2. - + Das Verzeichnis %1 konnte nicht in %2 umbenannt werden. Could not delete directory %1. - + Das Verzeichnis %1 konnte nicht gelöscht werden. Error executing update command: %1 Error message: %2 - + Fehler beim Ausführen des Updatekommandos %1. +Fehlerbeschreibung: %2 An error occurred while downloading updates: %1. Updating aborted. - + Beim Herunterladen des Updates %1 ist ein fehelr aufgetreten. Der Updatevorgang wurde abgebrochen. diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.ts index 054d1dc..8131da9 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_es.ts @@ -769,7 +769,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. - + Result set expired or no row available. @@ -844,8 +844,8 @@ Error details: %2 - - + + Syntax error @@ -900,12 +900,12 @@ Error details: %2 - + Could not resolve data source for column: %1 - + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. @@ -952,39 +952,39 @@ Error details: %2 - + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - + Cannot not update trigger %1 according to table %2 modification. - - - + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - + Cannot not update view %1 according to table %2 modifications. The view will remain as it is. @@ -1024,12 +1024,12 @@ The view will remain as it is. - + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.ts index 2931eff..5d6090c 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_fr.ts @@ -770,7 +770,7 @@ 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. @@ -846,8 +846,8 @@ Détails erreur: %2 Analyse dépassement pile - - + + Syntax error Erreur de syntaxe @@ -902,12 +902,12 @@ Détails erreur: %2 L'application de code ne peut être vide. - + Could not resolve data source for column: %1 Impossible de résoudre la source de données pour la colonnes: %1 - + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. Impossible d'initialiser le fichier de configuration. Aucune modification et les requêtes seront perdues après redémarrage. Essayez d'initialiser le fichier avec cette localisation: %1. @@ -954,39 +954,39 @@ Détails erreur: %2 Peuplement de la table - + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. La table %1 référence la table %2, mais la clé étrangère ne pourra être mise à jour pour la nouvelle table à cause de problèmes lors de l'analyse DDL de la table %3. - + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. Toutes les colonnes indéxées par l'indexe %1 sont faites. L'indexe ne sera pas recréé après la modification de la table. - + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - + Cannot not update trigger %1 according to table %2 modification. Impossible de mettre à jour le déclencheur%1 selon la modification de la table %2. - - - + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. Toutes les colonnes couvertes par le déclencheur %1 sont faites. Le déclencheur ne sera pas recréé après la modification de la table. - + Cannot not update view %1 according to table %2 modifications. The view will remain as it is. Impossible de mettre à jour les modifications de la vue %1 issue de la table %2 @@ -1031,12 +1031,12 @@ La vue restera telque. - + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 Une erreur s'est produite à l'exécution de la requête count(*), la recherche des données est arrêtée. Erreur de la base de données:%1 - + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. SQLiteStudio ne peut extraire des métadonnées d'une requête. Les résultats ne peut être affichés. diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it.ts new file mode 100644 index 0000000..27d4349 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_it.ts @@ -0,0 +1,1283 @@ + + + + + AbstractDb + + + + Cannot execute query on closed database. + + + + + Error attaching database %1: %2 + + + + + BugReporter + + + Invalid login or password + + + + + ChainExecutor + + + The database for executing queries was not defined. + chain executor + + + + + The database for executing queries was not open. + chain executor + + + + + Could not start a database transaction. Details: %1 + chain executor + + + + + Interrupted + chain executor + + + + + Could not commit a database transaction. Details: %1 + chain executor + + + + + CompletionHelper + + + New row reference + + + + + Old row reference + + + + + New table name + + + + + New index name + + + + + New view name + + + + + New trigger name + + + + + Table or column alias + + + + + transaction name + + + + + New column name + + + + + Column data type + + + + + Constraint name + + + + + Error message + + + + + Collation name + + + + + Any word + + + + + Default database + + + + + Temporary objects database + + + + + DbManagerImpl + + + Could not add database %1: %2 + + + + + Database %1 could not be updated, because of an error: %2 + + + + + + Database file doesn't exist. + + + + + + + No supporting plugin loaded. + + + + + Database could not be initialized. + + + + + No suitable database driver plugin found. + + + + + DbObjectOrganizer + + + + Error while creating table in target database: %1 + + + + + Could not parse table. + + + + + Database %1 could not be attached to database %2, so the data of table %3 will be copied with SQLiteStudio as a mediator. This method can be slow for huge tables, so please be patient. + + + + + Error while copying data for table %1: %2 + + + + + + + Error while copying data to table %1: %2 + + + + + Error while dropping source view %1: %2 +Tables, indexes, triggers and views copied to database %3 will remain. + + + + + Error while creating view in target database: %1 + + + + + Error while creating index in target database: %1 + + + + + Error while creating trigger in target database: %1 + + + + + DbVersionConverter + + + Target file exists, but could not be overwritten. + + + + + Could not find proper database plugin to create target database. + + + + + Error while converting database: %1 + + + + + DdlHistoryModel + + + Database name + ddl history header + + + + + Database file + ddl history header + + + + + Date of execution + ddl history header + + + + + Changes + ddl history header + + + + + ExportManager + + + Export plugin %1 doesn't support exporing query results. + + + + + Export plugin %1 doesn't support exporing tables. + + + + + Export plugin %1 doesn't support exporing databases. + + + + + Export format '%1' is not supported. Supported formats are: %2. + + + + + Export to the clipboard was successful. + + + + + Export to the file '%1' was successful. + + + + + Export was successful. + + + + + Could not export to file %1. File cannot be open for writting. + + + + + ExportWorker + + + Error while exporting query results: %1 + + + + + Error while counting data column width to export from query results: %1 + + + + + + Could not parse %1 in order to export it. It will be excluded from the export output. + + + + + Error while reading data to export from table %1: %2 + + + + + Error while counting data to export from table %1: %2 + + + + + Error while counting data column width to export from table %1: %2 + + + + + FunctionManagerImpl + + + Invalid number of arguments to function '%1'. Expected %2, but got %3. + + + + + No such function registered in SQLiteStudio: %1(%2) + + + + + Function %1(%2) was registered with language %3, but the plugin supporting that language is not currently loaded. + + + + + Invalid regular expression pattern: %1 + + + + + + Could not open file %1 for reading: %2 + + + + + Could not open file %1 for writting: %2 + + + + + Error while writting to file %1: %2 + + + + + Unsupported scripting language: %1 + + + + + GenericExportPlugin + + + Could not initialize text codec for exporting. Using default codec: %1 + + + + + ImportManager + + + Imported data to the table '%1' successfully. + + + + + ImportWorker + + + No columns provided by the import plugin. + + + + + Could not start transaction in order to import a data: %1 + + + + + Could not commit transaction for imported data: %1 + + + + + Table '%1' has less columns than there are columns in the data to be imported. Excessive data columns will be ignored. + + + + + Table '%1' has more columns than there are columns in the data to be imported. Some columns in the table will be left empty. + + + + + Could not create table to import to: %1 + + + + + + + Error while importing data: %1 + + + + + + Interrupted. + import process status update + + + + + Could not import data row number %1. The row was ignored. Problem details: %2 + + + + + PluginManagerImpl + + + Cannot load plugin %1, because it's in conflict with plugin %2. + + + + + Cannot load plugin %1, because its dependency was not loaded: %2. + + + + + Cannot load plugin %1. Error details: %2 + + + + + Cannot load plugin %1 (error while initializing plugin). + + + + + min: %1 + plugin dependency version + + + + + max: %1 + plugin dependency version + + + + + PopulateConstant + + + Constant + populate constant plugin name + + + + + PopulateConstantConfig + + + Constant value: + + + + + PopulateDictionary + + + Dictionary + dictionary populating plugin name + + + + + PopulateDictionaryConfig + + + Dictionary file + + + + + Pick dictionary file + + + + + Word separator + + + + + Whitespace + + + + + Line break + + + + + Method of using words + + + + + Ordered + + + + + Randomly + + + + + PopulateManager + + + Table '%1' populated successfully. + + + + + PopulateRandom + + + Random number + + + + + PopulateRandomConfig + + + Constant prefix + + + + + No prefix + + + + + Minimum value + + + + + Maximum value + + + + + Constant suffix + + + + + No suffix + + + + + PopulateRandomText + + + Random text + + + + + PopulateRandomTextConfig + + + Use characters from common sets: + + + + + Minimum length + + + + + Letters from a to z. + + + + + Alpha + + + + + Numbers from 0 to 9. + + + + + Numeric + + + + + A whitespace, a tab and a new line character. + + + + + Whitespace + + + + + Includes all above and all others. + + + + + Binary + + + + + Use characters from my custom set: + + + + + Maximum length + + + + + If you type some character multiple times, it's more likely to be used. + + + + + PopulateScript + + + Script + + + + + PopulateScriptConfig + + + Initialization code (optional) + + + + + Per step code + + + + + Language + + + + + Help + + + + + PopulateSequence + + + Sequence + + + + + PopulateSequenceConfig + + + Start value: + + + + + Step: + + + + + PopulateWorker + + + Could not start transaction in order to perform table populating. Error details: %1 + + + + + Error while populating table: %1 + + + + + Could not commit transaction after table populating. Error details: %1 + + + + + QObject + + + + Could not open database: %1 + + + + + + Result set expired or no row available. + + + + + Could not close database: %1 + + + + + + + + + + + SQLite %1 does not support '%2' statement. + + + + + SQLite %1 does not support '%2' statement, but the regular table can be created instead if you proceed. + + + + + Could not parse statement: %1 +Error details: %2 + + + + + + + + SQLite %1 does not support the '%2' clause. Cannot convert '%3' statement with that clause. + + + + + SQLite %1 does not support the '%2' clause in the '%3' statement. + + + + + SQLite %1 does not support current date or time clauses in expressions. + + + + + + + SQLite %1 does not support '%2' clause in expressions. + + + + + Could not attach database %1: %2 + + + + + + Incomplete query. + + + + + + Parser stack overflow + + + + + + Syntax error + + + + + Could not open dictionary file %1 for reading. + + + + + Dictionary file must exist and be readable. + + + + + Maximum value cannot be less than minimum value. + + + + + Maximum length cannot be less than minimum length. + + + + + Custom character set cannot be empty. + + + + + Could not find plugin to support scripting language: %1 + + + + + Error while executing populating initial code: %1 + + + + + Error while executing populating code: %1 + + + + + Select implementation language. + + + + + Implementation code cannot be empty. + + + + + Could not resolve data source for column: %1 + + + + + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. + + + + + General purpose + plugin category name + + + + + Database support + plugin category name + + + + + Code formatter + plugin category name + + + + + Scripting languages + plugin category name + + + + + Exporting + plugin category name + + + + + Importing + plugin category name + + + + + Table populating + plugin category name + + + + + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. + + + + + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. + + + + + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. + + + + + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. + + + + + Cannot not update trigger %1 according to table %2 modification. + + + + + Cannot not update view %1 according to table %2 modifications. +The view will remain as it is. + + + + + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. + + + + + Could not parse DDL of the view to be created. Details: %1 + + + + + Parsed query is not CREATE VIEW. It's: %1 + + + + + SQLiteStudio was unable to resolve columns returned by the new view, therefore it won't be able to tell which triggers might fail during the recreation process. + + + + + QueryExecutor + + + Execution interrupted. + + + + + Database is not open. + + + + + Only one query can be executed simultaneously. + + + + + + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 + + + + + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. + + + + + ScriptingQtDbProxy + + + No database available in current context, while called QtScript's %1 command. + + + + + Error from %1: %2 + + + + + SqlHistoryModel + + + Database + sql history header + + + + + Execution date + sql history header + + + + + Time spent + sql history header + + + + + Rows affected + sql history header + + + + + SQL + sql history header + + + + + UpdateManager + + + 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_pl.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl.ts index 85cfca2..a89ea4d 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pl.ts @@ -1,6 +1,6 @@ - + AbstractDb @@ -748,7 +748,7 @@ Tabele, indeksy, wyzwalacze i widoki skopiowane do bazy danych %3 pozostaną na Step: - Wartość końcowa: + Krok: diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.ts index 64f66a5..bb040e6 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_pt_BR.ts @@ -769,7 +769,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. - + Result set expired or no row available. @@ -844,8 +844,8 @@ Error details: %2 - - + + Syntax error @@ -900,12 +900,12 @@ Error details: %2 - + Could not resolve data source for column: %1 - + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. @@ -952,39 +952,39 @@ Error details: %2 - + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - + Cannot not update trigger %1 according to table %2 modification. - - - + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - + Cannot not update view %1 according to table %2 modifications. The view will remain as it is. @@ -1024,12 +1024,12 @@ The view will remain as it is. - + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.ts index 8bbab69..83ba986 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_ru.ts @@ -1,6 +1,6 @@ - + AbstractDb @@ -771,7 +771,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. Невозможно открыть базу данных: %1 - + Result set expired or no row available. Результирующая выборка устарела или ни одна строка не доступна. @@ -846,8 +846,8 @@ Error details: %2 Переполнение стека анализатора - - + + Syntax error Синтаксическая ошибка @@ -902,12 +902,12 @@ Error details: %2 Заполняющий код не может быть пустым. - + Could not resolve data source for column: %1 Невозможно определить источник данных для столбца: %1 - + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. Невозможно инициализировать файл конфигурации. Любые изменения конфигурации и история запросов будут утеряны после перезапуска приложения. Попытки инициализации файла предпринимались в следующих местах: %1. @@ -954,39 +954,39 @@ Error details: %2 Заполнение таблиц - + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. Таблица %1 ссылается на таблицу %2, но описание внешнего ключа не будет обновлено для описания новой таблицы из-за проблем с анализом DDL таблицы %3. - + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. Все столбцы, проиндексированные индексом %1, удалены. Индекс не будет воссоздан после модификации таблицы. - + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. Возникла проблема при обработке триггера %1. Впоследствии он не будет полностью обновлён и потребует вашего внимания. - + Cannot not update trigger %1 according to table %2 modification. Невозможно обновить триггер %1 в соответствии с модификацией таблицы %2. - - - + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. Возникла проблема при обновлении конструкции %1 внутри триггера %2. Одна из вложенных конструкций %1, которая возможно ссылается на таблицу %3, не может быть корректно модифицирована. Возможно необходима ручная правка триггера. - + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. Все столбцы, затронутые в триггере %1, удалены. Триггер не будет воссоздан после модификации таблицы. - + Cannot not update view %1 according to table %2 modifications. The view will remain as it is. Невозможно обновить представление %1 в соответствии с модификациями таблицы %2. @@ -1031,12 +1031,12 @@ The view will remain as it is. - + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 Возникла ошибка при выполнении запроса count(*), поэтому разбивка данных по страницам отключена. Детали ошибки из базы данных: %1 - + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. SQLiteStudio не удалось извлечь метаданные из запроса. Результаты нельзя будет редактировать. diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.ts index e953940..1c29a80 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_sk.ts @@ -1,6 +1,6 @@ - + AbstractDb @@ -149,7 +149,7 @@ Database %1 could not be updated, because of an error: %2 - + Databáza %1 nemôže byť aktualizovaná kvôli chybe: %2 @@ -446,7 +446,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. Error while importing data: %1 - + Vyskytla sa chyba počas importu dát: %1 @@ -752,7 +752,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. Error while populating table: %1 - + Vyskytla sa chyba počas napĺňania tabuľky: %1 @@ -769,7 +769,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. - + Result set expired or no row available. @@ -844,8 +844,8 @@ Error details: %2 - - + + Syntax error Chyba syntaxe @@ -900,12 +900,12 @@ Error details: %2 - + Could not resolve data source for column: %1 - + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. @@ -952,39 +952,39 @@ Error details: %2 - + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - + Cannot not update trigger %1 according to table %2 modification. - - - + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - + Cannot not update view %1 according to table %2 modifications. The view will remain as it is. @@ -1024,12 +1024,12 @@ The view will remain as it is. - + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - + Vyskytla sa chyba počas vykonávania dotazu count(*), dôsledkom čoho bolo zablokované stránkovanie. Detail chyby: %1 - + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. @@ -1086,7 +1086,7 @@ The view will remain as it is. An error occurred while checking for updates: %1. - + Vyskytla sa chyba počas kontroly aktualizácii: %1. @@ -1116,7 +1116,7 @@ The view will remain as it is. Downloading: %1 - + Sťahujem: %1 @@ -1131,7 +1131,7 @@ The view will remain as it is. Installing updates. - + Inštalujem aktualizácie. @@ -1278,7 +1278,7 @@ Error message: %2 An error occurred while downloading updates: %1. Updating aborted. - + Vyskytla sa chyba počas sťahovani aktualizácií:%1. Aktualizácia zrušená. diff --git a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_CN.ts b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_CN.ts index 32cf3b8..448558d 100644 --- a/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_CN.ts +++ b/SQLiteStudio3/coreSQLiteStudio/translations/coreSQLiteStudio_zh_CN.ts @@ -20,7 +20,7 @@ Invalid login or password - + 用户名或密码错误 @@ -769,7 +769,7 @@ Tables, indexes, triggers and views copied to database %3 will remain. - + Result set expired or no row available. @@ -844,8 +844,8 @@ Error details: %2 - - + + Syntax error @@ -900,12 +900,12 @@ Error details: %2 - + Could not resolve data source for column: %1 - + Could not initialize configuration file. Any configuration changes and queries history will be lost after application restart. Tried to initialize the file at following localizations: %1. @@ -952,39 +952,39 @@ Error details: %2 - + Table %1 is referencing table %2, but the foreign key definition will not be updated for new table definition due to problems while parsing DDL of the table %3. - + All columns indexed by the index %1 are gone. The index will not be recreated after table modification. - + There is problem with proper processing trigger %1. It may be not fully updated afterwards and will need your attention. - + Cannot not update trigger %1 according to table %2 modification. - - - + + + There is a problem with updating an %1 statement within %2 trigger. One of the %1 substatements which might be referring to table %3 cannot be properly modified. Manual update of the trigger may be necessary. - + All columns covered by the trigger %1 are gone. The trigger will not be recreated after table modification. - + Cannot not update view %1 according to table %2 modifications. The view will remain as it is. @@ -1024,12 +1024,12 @@ The view will remain as it is. - + An error occured while executing the count(*) query, thus data paging will be disabled. Error details from the database: %1 - + SQLiteStudio was unable to extract metadata from the query. Results won't be editable. -- cgit v1.2.3