diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md index 5f59437ba..fffa4696d 100644 --- a/.github/ISSUE_TEMPLATE/Bug_report.md +++ b/.github/ISSUE_TEMPLATE/Bug_report.md @@ -8,6 +8,7 @@ assignees: '' --- + Describe the new feature -------------------------- diff --git a/.github/workflows/cppcmake.yml b/.github/workflows/cppcmake.yml new file mode 100644 index 000000000..7b6c0c24d --- /dev/null +++ b/.github/workflows/cppcmake.yml @@ -0,0 +1,71 @@ +name: C/C++ CI + +on: + push: + branches: ['*'] + tags: + paths_ignore: ['docs/**', '.travis.yml'] + pull_request: + release: + types: ['created'] + +defaults: + run: + shell: bash + +jobs: + build: + name: ${{ matrix.config.name }} + runs-on: ${{ matrix.config.os }} + strategy: + fail-fast: false + matrix: + config: + - {name: "ubuntu-20.04", os: "ubuntu-20.04"} + + steps: + - uses: actions/checkout@v2 + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install qttools5-dev libqt5scintilla2-dev libqcustomplot-dev libsqlite3-dev + - name: Configure CMake + run: | + cmake --version + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${PWD}/install \ + -DCPACK_PACKAGE_DIRECTORY=${PWD}/package \ + -DENABLE_TESTING=ON + - name: make + run: cmake --build build --config Release -j --target install + - name: run tests + run: ctest -C Release + - name: package + run: | + cmake --build build --config Release -j --target package + cmake -E remove_directory package/_CPack_Packages + - name: upload package + uses: actions/upload-artifact@master + with: + name: pkg-${{ matrix.config.name }} + path: package + - name: upload to release page + if: github.event_name == 'release' + env: + TOKEN: "token ${{ secrets.GITHUB_TOKEN }}" + TAG: ${{ github.event.release.tag_name }} + UPLOAD_URL: ${{ github.event.release.upload_url }} + run: | + # Do try this at home! The REST API is documented at + # https://docs.github.com/en/free-pro-team@latest/rest and you can get a personal + # access token at https://github.com/settings/tokens + # (set TOKEN to "bearer abcdef1234") + # you can get the UPLOAD_URL with a short bash snippet; make sure to set the env var TAG: + # UPLOAD_URL=$(curl -H 'Accept: application/vnd.github.v3+json' $GITHUB_API_URL/repos/$GITHUB_REPOSITORY/releases/tags/$TAG | jq -r .upload_url) + UPLOAD_URL=${UPLOAD_URL%\{*} # remove "{name,label}" suffix + for pkg in package/*.*; do + NAME=$(basename $pkg) + MIME=$(file --mime-type $pkg|cut -d ' ' -f2) + curl -X POST -H "Accept: application/vnd.github.v3+json" -H "Authorization: $TOKEN" -H "Content-Type: $MIME" --data-binary @$pkg $UPLOAD_URL?name=$NAME + done + diff --git a/.gitignore b/.gitignore index 69766a28b..87518e350 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,6 @@ src/sqlitebrowser src/Makefile* src/debug src/release -src/gen_version.h # ignore compiled translation files src/translations/*.qm diff --git a/.travis.yml b/.travis.yml index 5f49424bf..3a71c048e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,44 +1,32 @@ +os: linux language: cpp -sudo: required -dist: xenial +dist: bionic branches: only: - master -# env: -# - ARCH=x86_64 DOCKER_IMAGE=amd64/ubuntu:trusty -# - ARCH=i686 DOCKER_IMAGE=i386/ubuntu:trusty - -matrix: +jobs: fast_finish: true include: - compiler: gcc - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-5 - env: COMPILER=g++-5 CXX=g++-5 + env: COMPILER=g++ CXX=g++ - compiler: clang - addons: - apt: - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-precise-3.8 - packages: - - clang-3.8 - env: COMPILER=clang++-3.8 - -before_install: -- sudo apt-get update -qq -- sudo apt-get --force-yes install build-essential git-core cmake libsqlite3-dev qt5-default qttools5-dev-tools libsqlcipher-dev qtbase5-dev libqt5scintilla2-dev libqcustomplot-dev qttools5-dev + env: COMPILER=clang++ - -install: -- if [ "$CXX" = "g++" ]; then export CXX="g++-5" CC="gcc-5"; fi -- if [ "$CXX" = "clang++" ]; then export CXX="clang++-3.8" CC="clang-3.8"; fi +addons: + apt: + packages: + - build-essential + - git-core + - cmake + - libsqlite3-dev + - qt5-default + - qttools5-dev-tools + - libsqlcipher-dev + - qtbase5-dev + - qttools5-dev + - libqt5svg5 script: - mkdir build @@ -46,33 +34,33 @@ script: - mkdir appbuild - mkdir appdir - cd build -- cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DENABLE_TESTING=ON .. +- cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DENABLE_TESTING=ON -DFORCE_INTERNAL_QSCINTILLA=ON .. - make - ctest -V - cd ../build_cipher -- cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DENABLE_TESTING=ON -Dsqlcipher=1 .. +- cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DENABLE_TESTING=ON -DFORCE_INTERNAL_QSCINTILLA=ON -Dsqlcipher=1 .. - make - ctest -V - cd ../appbuild -- cmake -DCMAKE_INSTALL_PREFIX:PATH=../appdir/usr -Wno-dev -Dsqlcipher=1 -DSQLITE_ENABLE_JSON1=1 .. +- cmake -DCMAKE_INSTALL_PREFIX:PATH=../appdir/usr -Wno-dev -DFORCE_INTERNAL_QSCINTILLA=ON -Dsqlcipher=1 -DSQLITE_ENABLE_JSON1=1 .. - make install - cd .. - git rev-list master --count -- wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage" -- chmod a+x linuxdeployqt-6-x86_64.AppImage -- export VERSION=$(printf "`master`-`git rev-list HEAD --count`-` git -C . rev-parse --short HEAD`") #$(git rev-parse --short HEAD) # linuxdeployqt uses this for naming the file -- ./linuxdeployqt-6-x86_64.AppImage appdir/usr/share/applications/*.desktop -appimage - +- wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" +- chmod a+x linuxdeployqt-continuous-x86_64.AppImage +- export VERSION=$(printf "master-`git rev-list HEAD --count`-` git -C . rev-parse --short HEAD`") +- ./linuxdeployqt-continuous-x86_64.AppImage appdir/usr/share/applications/*.desktop -appimage after_success: - find appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq - wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh - - bash upload.sh DB_Browser_for_SQLite*.AppImage* + - chmod a+x upload.sh + - UPLOADTOOL_ISPRERELEASE=true ./upload.sh DB_Browser_for_SQLite*.AppImage* notifications: email: recipients: - - mkleusberg@gmail.com + - github@mkleusberg.de - innermous@gmail.com - justin@postgresql.org - mgrojo@gmail.com diff --git a/BUILDING.md b/BUILDING.md index b73c2fb7f..c364e6a23 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -3,7 +3,10 @@ DB Browser for SQLite requires Qt as well as SQLite. For more information on Qt please consult http://www.qt.io and for SQLite please see https://sqlite.org/. -Please note that all versions after 3.9.1 will require: +Please note that all versions after 3.12.1 will require: +* A C++ compiler with support for C++14 or later + +All versions after 3.9.1 will require: * Qt 5.5 or later, however we advise you to use 5.7 or later * A C++ compiler with support for C++11 or later @@ -51,7 +54,7 @@ The same process works for building the code in any platform supported by Qt (including other Unix systems with X11.) -### Ubuntu Linux +### Ubuntu / Debian Linux ```bash $ sudo apt install build-essential git-core cmake libsqlite3-dev qt5-default qttools5-dev-tools \ @@ -65,6 +68,8 @@ $ make $ sudo make install ``` +**Note** - Use `cmake -DFORCE_INTERNAL_QSCINTILLA=ON -Dsqlcipher=1 -Wno-dev ..` if you're using Debian and meet errors during compiling. + This should complete without errors, giving you a binary file called 'sqlitebrowser'. Done. :) @@ -76,6 +81,10 @@ Done. :) **Note 2** - On CentOS 7.x, you need to replace the `qwt-qt5-devel` package name with `qt5-qtbase-devel` in the `dnf install` line below. + +**Note 3** - On CentOS 8 (Stream), you need to replace the `qt-devel` package name with +`qt5-devel` in the `dnf install` line below. Make sure the `PowerTools` repo is enabled. + ``` $ sudo dnf install cmake gcc-c++ git qt-devel qt5-linguist qwt-qt5-devel \ sqlite-devel @@ -128,6 +137,7 @@ It requires SQLite and Qt 5.x to be installed first. These are the $ brew tap sqlitebrowser/sqlite3 $ brew install sqlitefts5 $ brew install qt + $ brew install cmake $ brew link sqlitefts5 --force Then it's just a matter of getting the source: @@ -139,43 +149,16 @@ its name (eg ~/tmp/foo'), as compiling will error out. And compiling it: - $ cd sqlitebrowser - $ qmake - $ make - $ brew unlink sqlitefts5 - $ mv src/DB\ Browser\ for\ SQLite.app /Applications/ - -An icon for "DB Browser for SQLite" should now be in your main OSX Applications -list, ready to launch. - -**Note 2** - There have been occasional [reports of compilation problems on OSX -10.9](https://github.com/sqlitebrowser/sqlitebrowser/issues/38), with the -'make' step complaining about no targets. This seems to be solvable by -running: - - $ qmake -spec macx-g++ - -or: - - $ qmake -spec macx-llvm - -(before the 'make' step) - -### Building with CMake - -Install Qt and SQLite as instructed in the previous section and clone the repo to a directory (it's `sqlitebrowser` as usual). - -Install CMake: - - $ brew install cmake - -And build with these commands: - $ cd sqlitebrowser $ mkdir build # You can easily make a fresh build again by removing this directory $ cd build $ cmake -DCMAKE_PREFIX_PATH=/usr/local/opt/qt .. $ cmake --build . + $ brew unlink sqlitefts5 + $ mv sqlitebrowser.app /Applications/DB\ Browser\ for\ SQLite.app + +An icon for "DB Browser for SQLite" should now be in your main OSX Applications +list, ready to launch. ### Compiling on Windows with MSVC @@ -221,7 +204,7 @@ Now compile: $ make -If you additionaly want an NSIS installer: +If you additionally want an NSIS installer: $ make package @@ -243,12 +226,11 @@ to download and compile the code as described on the If SQLCipher is installed, simply follow the standard instructions for your platform but enable the 'sqlcipher' build option by replacing any calls to -cmake and qmake like this: +cmake like this: ``` If it says... Change it to... cmake cmake -Dsqlcipher=1 cmake .. cmake -Dsqlcipher=1 .. -qmake qmake CONFIG+=sqlcipher ``` ## Building and running the Unit Tests diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c1485cce..d89a00125 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,39 +1,63 @@ -cmake_minimum_required(VERSION 2.8.12.2) -project(sqlitebrowser) +cmake_minimum_required(VERSION 3.9) +project(sqlitebrowser + VERSION 3.12.99 + DESCRIPTION "GUI editor for SQLite databases" +) + +OPTION(BUILD_STABLE_VERSION "Don't build the stable version by default" OFF) # Choose between building a stable version or nightly (the default), depending on whether '-DBUILD_STABLE_VERSION=1' is passed on the command line or not. +OPTION(ENABLE_TESTING "Enable the unit tests" OFF) +OPTION(FORCE_INTERNAL_QSCINTILLA "Don't use the distribution's QScintilla library even if there is one" OFF) +OPTION(FORCE_INTERNAL_QCUSTOMPLOT "Don't use distribution's QCustomPlot even if available" ON) +OPTION(FORCE_INTERNAL_QHEXEDIT "Don't use distribution's QHexEdit even if available" ON) +OPTION(ALL_WARNINGS "Enable some useful warning flags" OFF) +OPTION(sqlcipher "Build with SQLCipher library" OFF) # BUILD_VERSION is the current date in YYYYMMDD format. It is only # used by the nightly version to add the date of the build. string(TIMESTAMP BUILD_VERSION "%Y%m%d") -# Choose between building a stable version or nightly (the default), depending -# on whether '-DBUILD_STABLE_VERSION=1' is passed on the command line or not. -option(BUILD_STABLE_VERSION "Don't build the stable version by default" OFF) +add_definitions(-std=c++14) +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED True) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +if(APPLE) + add_executable(${PROJECT_NAME} MACOSX_BUNDLE) +elseif(WIN32) + add_executable(${PROJECT_NAME} WIN32) +else() + add_executable(${PROJECT_NAME}) +endif() + if(NOT BUILD_STABLE_VERSION) - add_definitions(-DBUILD_VERSION=${BUILD_VERSION}) + target_compile_definitions(${PROJECT_NAME} PRIVATE BUILD_VERSION=${BUILD_VERSION}) endif() set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}") -OPTION(ENABLE_TESTING "Enable the unit tests" OFF) -OPTION(FORCE_INTERNAL_QSCINTILLA "Don't use the distribution's QScintilla library even if there is one" OFF) -OPTION(FORCE_INTERNAL_QCUSTOMPLOT "Don't use distribution's QCustomPlot even if available" ON) -OPTION(FORCE_INTERNAL_QHEXEDIT "Don't use distribution's QHexEdit even if available" ON) -OPTION(ALL_WARNINGS "Enable some useful warning flags" OFF) +# BUILD_VERSION is the current date in YYYYMMDD format. It is only +# used by the nightly version to add the date of the build. +string(TIMESTAMP BUILD_VERSION "%Y%m%d") + +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}") if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") endif() -add_definitions(-std=c++11) -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED True) +if(NOT BUILD_STABLE_VERSION) + add_definitions(-DBUILD_VERSION=${BUILD_VERSION}) +endif() # Fix behavior of CMAKE_CXX_STANDARD when targeting macOS. -if (POLICY CMP0025) +if(POLICY CMP0025) cmake_policy(SET CMP0025 NEW) -endif () +endif() + # Fix warning of AUTOMOC behavior -if (POLICY CMP0071) +if(POLICY CMP0071) # Use of AUTOMOC is set to old for now for consistency. # Affects of 'new' behavior is as yet to be determined. # https://cmake.org/cmake/help/latest/policy/CMP0071.html @@ -41,32 +65,41 @@ if (POLICY CMP0071) endif() if(WIN32 AND MSVC) - if(CMAKE_CL_64) - # Paths for 64-bit windows builds - set(OPENSSL_PATH "C:/dev/OpenSSL-Win64" CACHE PATH "OpenSSL Path") - set(QT5_PATH "C:/dev/Qt/5.12.8/5.12.8/msvc2017_64" CACHE PATH "Qt5 Path") - - # Choose between SQLCipher or SQLite, depending whether - # -Dsqlcipher=1 is passed on the command line - if(sqlcipher) - set(SQLITE3_PATH "C:/git_repos/SQLCipher-Win64" CACHE PATH "SQLCipher Path") - else() - set(SQLITE3_PATH "C:/dev/SQLite-Win64" CACHE PATH "SQLite Path") - endif() - else() - # Paths for 32-bit windows builds - set(OPENSSL_PATH "C:/dev/OpenSSL-Win32" CACHE PATH "OpenSSL Path") - set(QT5_PATH "C:/dev/Qt/5.12.8/5.12.8/msvc2017" CACHE PATH "Qt5 Path") - - # Choose between SQLCipher or SQLite, depending whether - # -Dsqlcipher=1 is passed on the command line - if(sqlcipher) - set(SQLITE3_PATH "C:/git_repos/SQLCipher-Win32" CACHE PATH "SQLCipher Path") - else() - set(SQLITE3_PATH "C:/dev/SQLite-Win32" CACHE PATH "SQLite Path") - endif() - endif() - set(CMAKE_PREFIX_PATH "${QT5_PATH};${SQLITE3_PATH}") + if(CMAKE_CL_64) + # Paths for 64-bit windows builds + set(OPENSSL_PATH "C:/dev/OpenSSL-Win64" CACHE PATH "OpenSSL Path") + set(QT5_PATH "C:/dev/Qt/5.12.8/5.12.8/msvc2017_64" CACHE PATH "Qt5 Path") + + # Choose between SQLCipher or SQLite, depending whether + # -Dsqlcipher=on is passed on the command line + if(sqlcipher) + set(SQLITE3_PATH "C:/git_repos/SQLCipher-Win64" CACHE PATH "SQLCipher Path") + else() + set(SQLITE3_PATH "C:/dev/SQLite-Win64" CACHE PATH "SQLite Path") + endif() + else() + # Paths for 32-bit windows builds + set(OPENSSL_PATH "C:/dev/OpenSSL-Win32" CACHE PATH "OpenSSL Path") + set(QT5_PATH "C:/dev/Qt/5.12.8/5.12.8/msvc2017" CACHE PATH "Qt5 Path") + + # Choose between SQLCipher or SQLite, depending whether + # -Dsqlcipher=on is passed on the command line + if(sqlcipher) + set(SQLITE3_PATH "C:/git_repos/SQLCipher-Win32" CACHE PATH "SQLCipher Path") + else() + set(SQLITE3_PATH "C:/dev/SQLite-Win32" CACHE PATH "SQLite Path") + endif() + endif() + + set(CMAKE_PREFIX_PATH "${QT5_PATH};${SQLITE3_PATH}") +endif() + +# See https://github.com/Homebrew/homebrew-core/issues/8392#issuecomment-325226494 +if(APPLE AND EXISTS /usr/local/opt/qt5) + # Homebrew installs Qt5 (up to at least 5.9.1) in + # /usr/local/qt5, ensure it can be found by CMake since + # it is not in the default /usr/local prefix. + list(APPEND CMAKE_PREFIX_PATH "/usr/local/opt/qt5") endif() find_package(Qt5 REQUIRED COMPONENTS Concurrent Gui LinguistTools Network PrintSupport Test Widgets Xml) @@ -84,7 +117,7 @@ if(FORCE_INTERNAL_QHEXEDIT) else() find_package(QHexEdit) endif() -set(JSON_DIR libs/json) +include_directories(${CMAKE_CURRENT_LIST_DIR}/libs/json) if(NOT QSCINTILLA_FOUND) set(QSCINTILLA_DIR libs/qscintilla/Qt4Qt5) @@ -95,186 +128,190 @@ if(NOT QHexEdit_FOUND) set(QHexEdit_INCL_DIR ${QHexEdit_DIR}/src) add_subdirectory(${QHexEdit_DIR}) endif() -add_subdirectory(${JSON_DIR}) if(NOT QCustomPlot_FOUND) set(QCustomPlot_DIR libs/qcustomplot-source) add_subdirectory(${QCustomPlot_DIR}) endif() -set(CMAKE_AUTOMOC ON) -set(CMAKE_INCLUDE_CURRENT_DIR ON) - if(ENABLE_TESTING) enable_testing() endif() -set(SQLB_HDR - src/version.h - src/sql/sqlitetypes.h - src/sql/Query.h - src/sql/ObjectIdentifier.h - src/csvparser.h - src/sqlite.h - src/Data.h - src/IconCache.h - src/sql/parser/ParserDriver.h - src/sql/parser/sqlite3_lexer.h - src/sql/parser/sqlite3_location.h - src/sql/parser/sqlite3_parser.hpp +# generate file with version information +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/version.h.in + ${CMAKE_CURRENT_BINARY_DIR}/version.h +) + +target_sources(${PROJECT_NAME} + PRIVATE + src/sql/sqlitetypes.h + src/sql/Query.h + src/sql/ObjectIdentifier.h + src/csvparser.h + src/sqlite.h + src/Data.h + src/IconCache.h + src/sql/parser/ParserDriver.h + src/sql/parser/sqlite3_lexer.h + src/sql/parser/sqlite3_location.h + src/sql/parser/sqlite3_parser.hpp ) -set(SQLB_MOC_HDR - src/sqlitedb.h - src/AboutDialog.h - src/EditIndexDialog.h - src/EditDialog.h - src/EditTableDialog.h - src/AddRecordDialog.h - src/ExportDataDialog.h - src/ExtendedTableWidget.h - src/FilterTableHeader.h - src/ImportCsvDialog.h - src/MainWindow.h - src/Settings.h - src/PreferencesDialog.h - src/SqlExecutionArea.h - src/VacuumDialog.h - src/sqlitetablemodel.h - src/RowLoader.h - src/RowCache.h - src/sqltextedit.h - src/docktextedit.h - src/DbStructureModel.h - src/dbstructureqitemviewfacade.h - src/Application.h - src/CipherDialog.h - src/ExportSqlDialog.h - src/SqlUiLexer.h - src/FileDialog.h - src/ColumnDisplayFormatDialog.h - src/FilterLineEdit.h - src/RemoteDatabase.h - src/ForeignKeyEditorDelegate.h - src/PlotDock.h - src/RemoteDock.h - src/RemoteModel.h - src/RemotePushDialog.h - src/FindReplaceDialog.h - src/ExtendedScintilla.h - src/FileExtensionManager.h - src/CondFormatManager.h - src/CipherSettings.h - src/DotenvFormat.h - src/Palette.h - src/CondFormat.h - src/RunSql.h - src/ProxyDialog.h - src/SelectItemsPopup.h - src/TableBrowser.h - src/ImageViewer.h - src/RemoteLocalFilesModel.h - src/RemoteCommitsModel.h - src/RemoteNetwork.h - src/TableBrowserDock.h +target_sources(${PROJECT_NAME} + PRIVATE + src/sqlitedb.h + src/AboutDialog.h + src/EditIndexDialog.h + src/EditDialog.h + src/EditTableDialog.h + src/AddRecordDialog.h + src/ExportDataDialog.h + src/ExtendedTableWidget.h + src/FilterTableHeader.h + src/ImportCsvDialog.h + src/MainWindow.h + src/Settings.h + src/PreferencesDialog.h + src/SqlExecutionArea.h + src/VacuumDialog.h + src/sqlitetablemodel.h + src/RowLoader.h + src/RowCache.h + src/sqltextedit.h + src/docktextedit.h + src/DbStructureModel.h + src/dbstructureqitemviewfacade.h + src/Application.h + src/CipherDialog.h + src/ExportSqlDialog.h + src/SqlUiLexer.h + src/FileDialog.h + src/ColumnDisplayFormatDialog.h + src/FilterLineEdit.h + src/RemoteDatabase.h + src/ForeignKeyEditorDelegate.h + src/PlotDock.h + src/RemoteDock.h + src/RemoteModel.h + src/RemotePushDialog.h + src/FindReplaceDialog.h + src/ExtendedScintilla.h + src/FileExtensionManager.h + src/CondFormatManager.h + src/CipherSettings.h + src/DotenvFormat.h + src/Palette.h + src/CondFormat.h + src/RunSql.h + src/ProxyDialog.h + src/SelectItemsPopup.h + src/TableBrowser.h + src/ImageViewer.h + src/RemoteLocalFilesModel.h + src/RemoteCommitsModel.h + src/RemoteNetwork.h + src/TableBrowserDock.h ) -set(SQLB_SRC - src/AboutDialog.cpp - src/EditIndexDialog.cpp - src/EditDialog.cpp - src/EditTableDialog.cpp - src/AddRecordDialog.cpp - src/ExportDataDialog.cpp - src/ExtendedTableWidget.cpp - src/FilterTableHeader.cpp - src/ImportCsvDialog.cpp - src/MainWindow.cpp - src/Settings.cpp - src/PreferencesDialog.cpp - src/SqlExecutionArea.cpp - src/VacuumDialog.cpp - src/sqlitedb.cpp - src/sqlitetablemodel.cpp - src/RowLoader.cpp - src/sql/sqlitetypes.cpp - src/sql/Query.cpp - src/sql/ObjectIdentifier.cpp - src/sqltextedit.cpp - src/docktextedit.cpp - src/csvparser.cpp - src/DbStructureModel.cpp - src/dbstructureqitemviewfacade.cpp - src/main.cpp - src/Application.cpp - src/CipherDialog.cpp - src/ExportSqlDialog.cpp - src/SqlUiLexer.cpp - src/FileDialog.cpp - src/ColumnDisplayFormatDialog.cpp - src/FilterLineEdit.cpp - src/RemoteDatabase.cpp - src/ForeignKeyEditorDelegate.cpp - src/PlotDock.cpp - src/RemoteDock.cpp - src/RemoteModel.cpp - src/RemotePushDialog.cpp - src/FindReplaceDialog.cpp - src/ExtendedScintilla.cpp - src/FileExtensionManager.cpp - src/CondFormatManager.cpp - src/Data.cpp - src/CipherSettings.cpp - src/DotenvFormat.cpp - src/Palette.cpp - src/CondFormat.cpp - src/RunSql.cpp - src/ProxyDialog.cpp - src/IconCache.cpp - src/SelectItemsPopup.cpp - src/TableBrowser.cpp - src/sql/parser/ParserDriver.cpp - src/sql/parser/sqlite3_lexer.cpp - src/sql/parser/sqlite3_parser.cpp - src/ImageViewer.cpp - src/RemoteLocalFilesModel.cpp - src/RemoteCommitsModel.cpp - src/RemoteNetwork.cpp - src/TableBrowserDock.cpp +target_sources(${PROJECT_NAME} + PRIVATE + src/AboutDialog.cpp + src/EditIndexDialog.cpp + src/EditDialog.cpp + src/EditTableDialog.cpp + src/AddRecordDialog.cpp + src/ExportDataDialog.cpp + src/ExtendedTableWidget.cpp + src/FilterTableHeader.cpp + src/ImportCsvDialog.cpp + src/MainWindow.cpp + src/Settings.cpp + src/PreferencesDialog.cpp + src/SqlExecutionArea.cpp + src/VacuumDialog.cpp + src/sqlitedb.cpp + src/sqlitetablemodel.cpp + src/RowLoader.cpp + src/sql/sqlitetypes.cpp + src/sql/Query.cpp + src/sql/ObjectIdentifier.cpp + src/sqltextedit.cpp + src/docktextedit.cpp + src/csvparser.cpp + src/DbStructureModel.cpp + src/dbstructureqitemviewfacade.cpp + src/main.cpp + src/Application.cpp + src/CipherDialog.cpp + src/ExportSqlDialog.cpp + src/SqlUiLexer.cpp + src/FileDialog.cpp + src/ColumnDisplayFormatDialog.cpp + src/FilterLineEdit.cpp + src/RemoteDatabase.cpp + src/ForeignKeyEditorDelegate.cpp + src/PlotDock.cpp + src/RemoteDock.cpp + src/RemoteModel.cpp + src/RemotePushDialog.cpp + src/FindReplaceDialog.cpp + src/ExtendedScintilla.cpp + src/FileExtensionManager.cpp + src/CondFormatManager.cpp + src/Data.cpp + src/CipherSettings.cpp + src/DotenvFormat.cpp + src/Palette.cpp + src/CondFormat.cpp + src/RunSql.cpp + src/ProxyDialog.cpp + src/IconCache.cpp + src/SelectItemsPopup.cpp + src/TableBrowser.cpp + src/sql/parser/ParserDriver.cpp + src/sql/parser/sqlite3_lexer.cpp + src/sql/parser/sqlite3_parser.cpp + src/ImageViewer.cpp + src/RemoteLocalFilesModel.cpp + src/RemoteCommitsModel.cpp + src/RemoteNetwork.cpp + src/TableBrowserDock.cpp ) set(SQLB_FORMS - src/AboutDialog.ui - src/EditIndexDialog.ui - src/EditDialog.ui - src/EditTableDialog.ui - src/AddRecordDialog.ui - src/ExportDataDialog.ui - src/ImportCsvDialog.ui - src/MainWindow.ui - src/PreferencesDialog.ui - src/SqlExecutionArea.ui - src/VacuumDialog.ui - src/CipherDialog.ui - src/ExportSqlDialog.ui - src/ColumnDisplayFormatDialog.ui - src/PlotDock.ui - src/RemoteDock.ui - src/RemotePushDialog.ui - src/FindReplaceDialog.ui - src/FileExtensionManager.ui - src/CondFormatManager.ui - src/ProxyDialog.ui - src/SelectItemsPopup.ui - src/TableBrowser.ui - src/ImageViewer.ui + src/AboutDialog.ui + src/EditIndexDialog.ui + src/EditDialog.ui + src/EditTableDialog.ui + src/AddRecordDialog.ui + src/ExportDataDialog.ui + src/ImportCsvDialog.ui + src/MainWindow.ui + src/PreferencesDialog.ui + src/SqlExecutionArea.ui + src/VacuumDialog.ui + src/CipherDialog.ui + src/ExportSqlDialog.ui + src/ColumnDisplayFormatDialog.ui + src/PlotDock.ui + src/RemoteDock.ui + src/RemotePushDialog.ui + src/FindReplaceDialog.ui + src/FileExtensionManager.ui + src/CondFormatManager.ui + src/ProxyDialog.ui + src/SelectItemsPopup.ui + src/TableBrowser.ui + src/ImageViewer.ui ) set(SQLB_RESOURCES - src/icons/icons.qrc - src/translations/flags/flags.qrc - src/translations/translations.qrc - src/certs/CaCerts.qrc - src/qdarkstyle/style.qrc + src/icons/icons.qrc + src/translations/flags/flags.qrc + src/translations/translations.qrc + src/certs/CaCerts.qrc + src/qdarkstyle/dark/darkstyle.qrc + src/qdarkstyle/light/lightstyle.qrc ) set(SQLB_MISC @@ -284,121 +321,124 @@ set(SQLB_MISC # Translation files set(SQLB_TSS - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_ar_SA.ts" - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_cs.ts" - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_zh.ts" - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_zh_TW.ts" - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_de.ts" - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_es_ES.ts" - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_fr.ts" - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_ru.ts" - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_pl.ts" - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_pt_BR.ts" - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_en_GB.ts" - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_ko_KR.ts" - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_tr.ts" - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_uk_UA.ts" - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_it.ts" - "${CMAKE_SOURCE_DIR}/src/translations/sqlb_ja.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_ar_SA.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_cs.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_zh.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_zh_TW.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_de.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_es_ES.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_fr.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_ru.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_pl.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_pt_BR.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_en_GB.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_ko_KR.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_tr.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_uk_UA.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_it.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_ja.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_nl.ts" + "${CMAKE_SOURCE_DIR}/src/translations/sqlb_sv.ts" ) # Windows image format plugin files set(WIN_IMG_PLUGINS - "${QT5_PATH}/plugins/imageformats/qgif.dll" - "${QT5_PATH}/plugins/imageformats/qicns.dll" - "${QT5_PATH}/plugins/imageformats/qico.dll" - "${QT5_PATH}/plugins/imageformats/qjpeg.dll" - "${QT5_PATH}/plugins/imageformats/qsvg.dll" - "${QT5_PATH}/plugins/imageformats/qtga.dll" - "${QT5_PATH}/plugins/imageformats/qtiff.dll" - "${QT5_PATH}/plugins/imageformats/qwbmp.dll" - "${QT5_PATH}/plugins/imageformats/qwebp.dll" + "${QT5_PATH}/plugins/imageformats/qgif.dll" + "${QT5_PATH}/plugins/imageformats/qicns.dll" + "${QT5_PATH}/plugins/imageformats/qico.dll" + "${QT5_PATH}/plugins/imageformats/qjpeg.dll" + "${QT5_PATH}/plugins/imageformats/qsvg.dll" + "${QT5_PATH}/plugins/imageformats/qtga.dll" + "${QT5_PATH}/plugins/imageformats/qtiff.dll" + "${QT5_PATH}/plugins/imageformats/qwbmp.dll" + "${QT5_PATH}/plugins/imageformats/qwebp.dll" ) set(WIN_IMG_PLUGINS_DEBUG - "${QT5_PATH}/plugins/imageformats/qgifd.dll" - "${QT5_PATH}/plugins/imageformats/qicnsd.dll" - "${QT5_PATH}/plugins/imageformats/qicod.dll" - "${QT5_PATH}/plugins/imageformats/qjpegd.dll" - "${QT5_PATH}/plugins/imageformats/qsvgd.dll" - "${QT5_PATH}/plugins/imageformats/qtgad.dll" - "${QT5_PATH}/plugins/imageformats/qtiffd.dll" - "${QT5_PATH}/plugins/imageformats/qwbmpd.dll" - "${QT5_PATH}/plugins/imageformats/qwebpd.dll" + "${QT5_PATH}/plugins/imageformats/qgifd.dll" + "${QT5_PATH}/plugins/imageformats/qicnsd.dll" + "${QT5_PATH}/plugins/imageformats/qicod.dll" + "${QT5_PATH}/plugins/imageformats/qjpegd.dll" + "${QT5_PATH}/plugins/imageformats/qsvgd.dll" + "${QT5_PATH}/plugins/imageformats/qtgad.dll" + "${QT5_PATH}/plugins/imageformats/qtiffd.dll" + "${QT5_PATH}/plugins/imageformats/qwbmpd.dll" + "${QT5_PATH}/plugins/imageformats/qwebpd.dll" ) # License files set(LICENSE_FILES - LICENSE - LICENSE-PLUGINS + LICENSE + LICENSE-PLUGINS ) qt5_wrap_ui(SQLB_FORM_HDR ${SQLB_FORMS}) if(SQLB_TSS) - # add translations - foreach(SQLB_TS ${SQLB_TSS}) - SET_SOURCE_FILES_PROPERTIES("${SQLB_TS}" PROPERTIES OUTPUT_LOCATION "${CMAKE_SOURCE_DIR}/src/translations") - endforeach(SQLB_TS ${SQLB_TSS}) - qt5_add_translation(SQLB_QMS ${SQLB_TSS}) -endif(SQLB_TSS) + # add translations + foreach(SQLB_TS ${SQLB_TSS}) + set_source_files_properties("${SQLB_TS}" PROPERTIES OUTPUT_LOCATION "${CMAKE_SOURCE_DIR}/src/translations") + endforeach() + qt5_add_translation(SQLB_QMS ${SQLB_TSS}) +endif() qt5_add_resources(SQLB_RESOURCES_RCC ${SQLB_RESOURCES}) #icon and correct libs/subsystem for windows if(WIN32) - #enable version check for windows - add_definitions(-DCHECKNEWVERSION) - - IF( MINGW ) - # resource compilation for MinGW - ADD_CUSTOM_COMMAND(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o" - COMMAND windres "-I${CMAKE_CURRENT_SOURCE_DIR}" "-i${CMAKE_CURRENT_SOURCE_DIR}/src/winapp.rc" -o "${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o" VERBATIM) - set(SQLB_SRC ${SQLB_SRC} "${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-subsystem,windows") - set(WIN32_STATIC_LINK -Wl,-Bstatic -lssl -lcrypto -lws2_32) - set(ADDITIONAL_LIBS lzma) - ELSE( MINGW ) - set(SQLB_SRC ${SQLB_SRC} "${CMAKE_CURRENT_SOURCE_DIR}/src/winapp.rc") - ENDIF( MINGW ) + #enable version check for windows + add_definitions(-DCHECKNEWVERSION) + + if(MINGW) + # resource compilation for MinGW + add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o" + COMMAND windres "-I${CMAKE_CURRENT_SOURCE_DIR}" "-i${CMAKE_CURRENT_SOURCE_DIR}/src/winapp.rc" -o "${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o" VERBATIM + ) + target_sources(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-subsystem,windows") + set(WIN32_STATIC_LINK -Wl,-Bstatic -lssl -lcrypto -lws2_32) + set(ADDITIONAL_LIBS lzma) + else() + target_sources(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src/winapp.rc") + endif() else() - set(LPTHREAD pthread) -endif(WIN32) + set(LPTHREAD pthread) +endif() #enable version check for macOS if(APPLE) - add_definitions(-DCHECKNEWVERSION) -endif(APPLE) + add_definitions(-DCHECKNEWVERSION) +endif() # SQLCipher option if(sqlcipher) - add_definitions(-DENABLE_SQLCIPHER) - set(LIBSQLITE_NAME sqlcipher) -else(sqlcipher) - set(LIBSQLITE_NAME sqlite3) -endif(sqlcipher) + add_definitions(-DENABLE_SQLCIPHER) + set(LIBSQLITE_NAME sqlcipher) +else() + set(LIBSQLITE_NAME sqlite3) +endif() # add extra library path for MacOS and FreeBSD set(EXTRAPATH APPLE OR ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") if(EXTRAPATH) - find_library(LIBSQLITE ${LIBSQLITE_NAME} HINTS /usr/local/lib /usr/local/opt/sqlite/lib) - set(ADDITIONAL_INCLUDE_PATHS /usr/local/include /usr/local/opt/sqlite/include) -else(EXTRAPATH) - find_library(LIBSQLITE ${LIBSQLITE_NAME}) -endif(EXTRAPATH) + find_library(LIBSQLITE ${LIBSQLITE_NAME} HINTS /usr/local/lib /usr/local/opt/sqlite/lib) + set(ADDITIONAL_INCLUDE_PATHS /usr/local/include /usr/local/opt/sqlite/include) +else() + find_library(LIBSQLITE ${LIBSQLITE_NAME}) +endif() if(WIN32 AND MSVC) - find_path(SQLITE3_INCLUDE_DIR sqlite3.h) - if(sqlcipher) - find_file(SQLITE3_DLL sqlcipher.dll) - else(sqlcipher) - find_file(SQLITE3_DLL sqlite3.dll) - endif(sqlcipher) - include_directories(${SQLITE3_INCLUDE_DIR}) -endif() - -include_directories( - "${CMAKE_CURRENT_BINARY_DIR}" - ${JSON_DIR} - ${ADDITIONAL_INCLUDE_PATHS} - src) + find_path(SQLITE3_INCLUDE_DIR sqlite3.h) + if(sqlcipher) + find_file(SQLITE3_DLL sqlcipher.dll) + else() + find_file(SQLITE3_DLL sqlite3.dll) + endif() + include_directories(${SQLITE3_INCLUDE_DIR}) +endif() + +target_include_directories(${PROJECT_NAME} PRIVATE + ${ADDITIONAL_INCLUDE_PATHS} + src +) + if(QHexEdit_FOUND) include_directories(${QHexEdit_INCLUDE_DIR}) else() @@ -415,17 +455,16 @@ else() include_directories(${QSCINTILLA_DIR}) endif() -add_executable(${PROJECT_NAME} - ${SQLB_HDR} - ${SQLB_SRC} - ${SQLB_FORM_HDR} - ${SQLB_MOC} - ${SQLB_RESOURCES_RCC} - ${SQLB_MISC}) - +target_sources(${PROJECT_NAME} + PRIVATE + ${SQLB_FORM_HDR} + ${SQLB_MOC} + ${SQLB_RESOURCES_RCC} + ${SQLB_MISC} +) # Warnings -if (ALL_WARNINGS AND CMAKE_COMPILER_IS_GNUCC) +if(ALL_WARNINGS AND CMAKE_COMPILER_IS_GNUCC) target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -Wshadow -Wnon-virtual-dtor -Wold-style-cast -Wcast-align -Wunused -Woverloaded-virtual -Wpedantic -Wconversion -Wsign-conversion) target_compile_options(${PROJECT_NAME} PRIVATE -Wdouble-promotion -Wformat=2 -Wlogical-op -Wuseless-cast) if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 7.0) @@ -460,7 +499,8 @@ target_link_libraries(${PROJECT_NAME} ${QT_LIBS} ${WIN32_STATIC_LINK} ${LIBSQLITE} - ${ADDITIONAL_LIBS}) + ${ADDITIONAL_LIBS} +) if(QHexEdit_FOUND) target_link_libraries(${PROJECT_NAME} ${QHexEdit_LIBRARIES}) else() @@ -478,11 +518,11 @@ else() endif() if(WIN32 AND MSVC) - set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "DB Browser for SQLite") - set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE") - set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_DEBUG "_CONSOLE") - set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:CONSOLE") - set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_RELWITHDEBINFO "_CONSOLE") + set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "DB Browser for SQLite") + set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE") + set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_DEBUG "_CONSOLE") + set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:CONSOLE") + set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_RELWITHDEBINFO "_CONSOLE") if(CMAKE_CL_64) set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS,5.02 /ENTRY:mainCRTStartup") set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS,5.02") @@ -492,92 +532,148 @@ if(WIN32 AND MSVC) endif() endif() -if(NOT WIN32) - install(TARGETS ${PROJECT_NAME} - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib) +if(NOT WIN32 AND NOT APPLE) + install(TARGETS ${PROJECT_NAME} + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ) endif() if(ENABLE_TESTING) - add_subdirectory(src/tests) + add_subdirectory(src/tests) endif() if(UNIX) - install(FILES src/icons/${PROJECT_NAME}.png - DESTINATION share/icons/hicolor/256x256/apps/) + install(FILES src/icons/${PROJECT_NAME}.png + DESTINATION share/icons/hicolor/256x256/apps/ + ) + + install(FILES images/logo.svg + DESTINATION share/icons/hicolor/scalable/apps/ + RENAME ${PROJECT_NAME}.svg + ) + + install(FILES distri/${PROJECT_NAME}.desktop + DESTINATION share/applications/ + ) + + install(FILES distri/${PROJECT_NAME}.desktop.appdata.xml + DESTINATION share/metainfo/ + ) +endif() - install(FILES distri/${PROJECT_NAME}.desktop - DESTINATION share/applications/) +if(WIN32 AND MSVC) + install(TARGETS ${PROJECT_NAME} + RUNTIME DESTINATION "/" + LIBRARY DESTINATION lib + ) + + set(QT5_BIN_PATH ${QT5_PATH}/bin) + + # The Qt5 Debug configuration library files have a 'd' postfix + install(FILES + ${QT5_BIN_PATH}/Qt5Cored.dll + ${QT5_BIN_PATH}/Qt5Guid.dll + ${QT5_BIN_PATH}/Qt5Networkd.dll + ${QT5_BIN_PATH}/Qt5PrintSupportd.dll + ${QT5_BIN_PATH}/Qt5Widgetsd.dll + ${QT5_BIN_PATH}/Qt5Concurrentd.dll + ${QT5_BIN_PATH}/Qt5Svgd.dll + DESTINATION "/" + CONFIGURATIONS Debug + ) + + # The Qt5 Release configuration files don't have a postfix + install(FILES + ${QT5_BIN_PATH}/Qt5Core.dll + ${QT5_BIN_PATH}/Qt5Gui.dll + ${QT5_BIN_PATH}/Qt5Network.dll + ${QT5_BIN_PATH}/Qt5PrintSupport.dll + ${QT5_BIN_PATH}/Qt5Widgets.dll + ${QT5_BIN_PATH}/Qt5Concurrent.dll + ${QT5_BIN_PATH}/Qt5Svg.dll + DESTINATION "/" + CONFIGURATIONS Release + ) + + # The files below are common to all configurations + install(FILES + ${SQLITE3_DLL} + ${OPENSSL_PATH}/libeay32.dll + ${OPENSSL_PATH}/ssleay32.dll + DESTINATION "/" + ) + + install(FILES + ${QT5_PATH}/plugins/platforms/qwindows.dll + DESTINATION platforms + ) + + # The XML dll + install(FILES + "${QT5_PATH}/bin/Qt5Xmld.dll" + DESTINATION "/" + CONFIGURATIONS Debug + ) + + install(FILES + "${QT5_PATH}/bin/Qt5Xml.dll" + DESTINATION "/" + CONFIGURATIONS Release + ) + + # The image format plugins + install(FILES + ${WIN_IMG_PLUGINS_DEBUG} + DESTINATION imageformats + CONFIGURATIONS Debug + ) + + install(FILES + ${WIN_IMG_PLUGINS} + DESTINATION imageformats + CONFIGURATIONS Release + ) + + # The license files + install(FILES + ${LICENSE_FILES} + DESTINATION licenses + ) + + # The batch file launcher + install(FILES + distri/winlaunch.bat + DESTINATION "/" + ) +endif() - install(FILES distri/${PROJECT_NAME}.desktop.appdata.xml - DESTINATION share/metainfo/) -endif(UNIX) +if(APPLE) + set_target_properties(${PROJECT_NAME} PROPERTIES + BUNDLE True + OUTPUT_NAME "DB Browser for SQLite" + MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/src/app.plist + ) +endif() -if(WIN32 AND MSVC) - install(TARGETS ${PROJECT_NAME} - RUNTIME DESTINATION "/" - LIBRARY DESTINATION lib) - - set(QT5_BIN_PATH ${QT5_PATH}/bin) - # The Qt5 Debug configuration library files have a 'd' postfix - install(FILES - ${QT5_BIN_PATH}/Qt5Cored.dll - ${QT5_BIN_PATH}/Qt5Guid.dll - ${QT5_BIN_PATH}/Qt5Networkd.dll - ${QT5_BIN_PATH}/Qt5PrintSupportd.dll - ${QT5_BIN_PATH}/Qt5Widgetsd.dll - ${QT5_BIN_PATH}/Qt5Concurrentd.dll - ${QT5_BIN_PATH}/Qt5Svgd.dll - DESTINATION "/" - CONFIGURATIONS Debug) - # The Qt5 Release configuration files don't have a postfix - install(FILES - ${QT5_BIN_PATH}/Qt5Core.dll - ${QT5_BIN_PATH}/Qt5Gui.dll - ${QT5_BIN_PATH}/Qt5Network.dll - ${QT5_BIN_PATH}/Qt5PrintSupport.dll - ${QT5_BIN_PATH}/Qt5Widgets.dll - ${QT5_BIN_PATH}/Qt5Concurrent.dll - ${QT5_BIN_PATH}/Qt5Svg.dll - DESTINATION "/" - CONFIGURATIONS Release) - # The files below are common to all configurations - install(FILES - ${SQLITE3_DLL} - ${OPENSSL_PATH}/libeay32.dll - ${OPENSSL_PATH}/ssleay32.dll - DESTINATION "/") - install(FILES - ${QT5_PATH}/plugins/platforms/qwindows.dll - DESTINATION platforms) - - # The XML dll - install(FILES - "${QT5_PATH}/bin/Qt5Xmld.dll" - DESTINATION "/" - CONFIGURATIONS Debug) - install(FILES - "${QT5_PATH}/bin/Qt5Xml.dll" - DESTINATION "/" - CONFIGURATIONS Release) - - # The image format plugins - install(FILES - ${WIN_IMG_PLUGINS_DEBUG} - DESTINATION imageformats - CONFIGURATIONS Debug) - install(FILES - ${WIN_IMG_PLUGINS} - DESTINATION imageformats - CONFIGURATIONS Release) - - # The license files - install(FILES - ${LICENSE_FILES} - DESTINATION licenses) - - # The batch file launcher - install(FILES - distri/winlaunch.bat - DESTINATION "/") +# CPack configuration +set(CPACK_STRIP_FILES ON) +set(CPACK_DEBIAN_PACKAGE_PRIORITY optional) +set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) +set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) +set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Tristan Stenner ") +set(CPACK_ARCHIVE_COMPONENT_INSTALL ON) +if(APPLE) + set(CPACK_DEFAULT_GEN TBZ2) +elseif(WIN32) + set(CPACK_DEFAULT_GEN ZIP) + set(CPACK_NSIS_MODIFY_PATH ON) + set(CPACK_WIX_CMAKE_PACKAGE_REGISTRY ON) + set(CPACK_WIX_UPGRADE_GUID "78c885a7-e9c8-4ded-9b62-9abe47466950") +elseif(UNIX) + set(CPACK_DEFAULT_GEN DEB) + set(CPACK_SET_DESTDIR 1) + set(CPACK_INSTALL_PREFIX "/usr") endif() +set(CPACK_GENERATOR ${CPACK_DEFAULT_GEN} CACHE STRING "CPack pkg type(s) to generate") +include(CPack) diff --git a/LICENSE b/LICENSE index b6a53db33..aae69a951 100644 --- a/LICENSE +++ b/LICENSE @@ -2,7 +2,7 @@ DB Browser for SQLite is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these -licenses. +licenses. Check also `LICENSE-PLUGINS`. ----------------------------------------------------------------------- diff --git a/LICENSE-PLUGINS b/LICENSE-PLUGINS index 4cd296b04..2000115b4 100644 --- a/LICENSE-PLUGINS +++ b/LICENSE-PLUGINS @@ -57,3 +57,17 @@ WebP - https://developers.google.com/speed/webp/ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Icons - https://codefisher.org/pastel-svg/ + +Most of the icons come from the Pastel SVG icon set created by Michael +Buckley. We have obtained a special license (Creative Commons +Attribution Share Alike 4.0 +http://creativecommons.org/licenses/by-sa/4.0/) but you might be +required to redistribute it under Creative Commons Attribution +NonCommercial Share Alike 4.0 +http://creativecommons.org/licenses/by-nc-sa/4.0/ +Check https://codefisher.org/pastel-svg/ for clarification. + +Some icons might have other open licenses, check history of the files +under `src/icons`. \ No newline at end of file diff --git a/README.md b/README.md index f7e97abfd..6e1546cd6 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ [![Download][download-img]][download] [![Qt][qt-img]][qt] [![Coverity][coverity-img]][coverity] +[![C/C++ CI][ghaction-img]][ghaction] [![Patreon][patreon-img]][patreon] ![DB Browser for SQLite Screenshot](https://github.com/sqlitebrowser/sqlitebrowser/raw/master/images/sqlitebrowser.png "DB Browser for SQLite Screenshot") @@ -16,7 +17,7 @@ _DB Browser for SQLite_ (DB4S) is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite. DB4S is for users and developers who want to create, search, and edit -databases. DB4S uses a familiar spreadsheet-like interface, and complicated SQL commands do not have to be learned. +databases. DB4S uses a familiar spreadsheet-like interface, so complicated SQL commands do not have to be learned. Controls and wizards are available for users to: @@ -56,15 +57,19 @@ Download Windows releases here: * https://sqlitebrowser.org/dl/#windows -**Note** - If for some reason the standard Windows release does not work +**Note:** If for some reason the standard Windows release does not work (e.g. gives an error), try a nightly build. Nightly builds often fix bugs reported after the last release. :D ## macOS +#### Stable release + DB Browser for SQLite works well on macOS. -* macOS 10.12 (Sierra) - 10.15 (Catalina) are tested and known to work +* macOS 10.12 (Sierra) - 10.15 (Catalina) are tested and known to work. + +macOS 10.13 is needed for the latest release (v3.12.2), but v3.12.0 will work on macOS 10.12 (thanks to @Kadigan for pointing this out). Download macOS releases here: @@ -73,16 +78,32 @@ Download macOS releases here: The latest macOS binary can be installed via [Homebrew Cask](https://caskroom.github.io/ "Homebrew Cask"): ``` -brew cask install db-browser-for-sqlite +brew install --cask db-browser-for-sqlite ``` +#### Nightly builds + +Nightly builds are available here: +* https://nightlies.sqlitebrowser.org/latest + +and also you can be installed via [Homebrew Cask](https://caskroom.github.io/ "Homebrew Cask"): + + $ brew tap homebrew/cask-versions + $ brew cask install db-browser-for-sqlite-nightly + +**Note:** You can **NOT** install nightly builds with Homebrew if you already have the stable version installed. + ## Linux DB Browser for SQLite works well on Linux. ### Arch Linux -Arch Linux provides a package through pacman. +Arch Linux provides an [up to date version](https://www.archlinux.org/packages/community/x86_64/sqlitebrowser/) + +Install with the following command: + + sudo pacman -S sqlitebrowser ### Fedora @@ -96,7 +117,7 @@ Install for Fedora (i386 and x86_64) by issuing the following command: ### Debian -Note that Debian focuses more on stability rather than newest features. Therefore packages will typically contain some older (but well tested) version, compared to the latest release. +Debian focuses more on stability rather than newest features. Therefore packages will typically contain an older (but well tested) version, compared to the latest release. Update the cache using: @@ -111,12 +132,12 @@ Install the package using: #### Stable release -For Ubuntu and derivaties, [@deepsidhu1313](https://github.com/deepsidhu1313) +For Ubuntu and derivatives, [@deepsidhu1313](https://github.com/deepsidhu1313) provides a PPA with the latest release here: * https://launchpad.net/~linuxgndu/+archive/ubuntu/sqlitebrowser -To add this ppa just type in these commands in terminal: +To add this PPA just type in this command in terminal: sudo add-apt-repository -y ppa:linuxgndu/sqlitebrowser @@ -143,7 +164,7 @@ Nightly builds are available here: * https://launchpad.net/~linuxgndu/+archive/ubuntu/sqlitebrowser-testing -To add this ppa, type these commands into the terminal: +To add this PPA, type these commands into the terminal: sudo add-apt-repository -y ppa:linuxgndu/sqlitebrowser-testing @@ -157,8 +178,7 @@ Install the package using: ### Other Linux -On others, compile DB4S using the instructions -in [BUILDING.md](BUILDING.md). +On others, compile DB4S using the instructions in [BUILDING.md](BUILDING.md). ## FreeBSD @@ -204,6 +224,8 @@ Follow us on Twitter: https://twitter.com/sqlitebrowser ## Releases +* [Version 3.12.2 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.12.2) - 2021-05-18 +* [Version 3.12.1 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.12.1) - 2020-11-09 * [Version 3.12.0 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.12.0) - 2020-06-16 * [Version 3.11.2 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.11.2) - 2019-04-03 * [Version 3.11.1 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.11.1) - 2019-02-18 @@ -236,7 +258,7 @@ Follow us on Twitter: https://twitter.com/sqlitebrowser ## History This program was developed originally by Mauricio Piacentini -([@piacentini](https://github.com/piacentini)) from Tabuleiro Producoes, as +([@piacentini](https://github.com/piacentini)) from Tabuleiro Producoes as the Arca Database Browser. The original version was used as a free companion tool to the Arca Database Xtra, a commercial product that embeds SQLite databases with some additional extensions to handle compressed and binary data. @@ -256,13 +278,13 @@ became involved, and have been the main driving force from that point. Justin Clift ([@justinclift](https://github.com/justinclift)) helps out with testing on OSX, and started the new github.com/sqlitebrowser organisation on GitHub. -[John T. Haller](http://johnhaller.com), of -[PortableApps.com](http://portableapps.com) fame, created the new logo. He +[John T. Haller](https://johnhaller.com), of +[PortableApps.com](https://portableapps.com) fame, created the new logo. He based it on the Tango icon set (public domain). In August 2014, the project was renamed to "Database Browser for SQLite" at -the request of [Richard Hipp](http://www.hwaci.com/drh) (creator of -[SQLite](http://sqlite.org)), as the previous name was creating unintended +the request of [Richard Hipp](https://www.hwaci.com/drh) (creator of +[SQLite](https://sqlite.org)), as the previous name was creating unintended support issues. In September 2014, the project was renamed to "DB Browser for SQLite", to @@ -279,8 +301,10 @@ Version 2, as well as the GNU General Public License Version 3 or later. Modification or redistribution is permitted under the conditions of these licenses. - [travis-img]: https://travis-ci.org/sqlitebrowser/sqlitebrowser.svg?branch=master - [travis]: https://travis-ci.org/sqlitebrowser/sqlitebrowser +Check `LICENSE-PLUGINS` for other rights regarding included third-party resources. + + [travis-img]: https://travis-ci.com/sqlitebrowser/sqlitebrowser.svg?branch=master + [travis]: https://app.travis-ci.com/github/sqlitebrowser/sqlitebrowser [gitter-img]: https://badges.gitter.im/sqlitebrowser/sqlitebrowser.svg [gitter]: https://gitter.im/sqlitebrowser/sqlitebrowser @@ -291,7 +315,7 @@ Modification or redistribution is permitted under the conditions of these licens [download-img]: https://img.shields.io/github/downloads/sqlitebrowser/sqlitebrowser/total.svg [download]: https://github.com/sqlitebrowser/sqlitebrowser/releases - [qt-img]: https://img.shields.io/badge/Qt-qmake-green.svg + [qt-img]: https://img.shields.io/badge/Qt-cmake-green.svg [qt]: https://www.qt.io [coverity-img]: https://img.shields.io/coverity/scan/11712.svg @@ -302,3 +326,6 @@ Modification or redistribution is permitted under the conditions of these licens [wiki-img]: https://img.shields.io/badge/docs-Wiki-blue.svg [wiki]: https://github.com/sqlitebrowser/sqlitebrowser/wiki + + [ghaction-img]: https://github.com/sqlitebrowser/sqlitebrowser/actions/workflows/cppcmake.yml/badge.svg + [ghaction]: https://github.com/sqlitebrowser/sqlitebrowser/actions/workflows/cppcmake.yml diff --git a/currentrelease b/currentrelease index e38caf6bc..76c29d2c2 100644 --- a/currentrelease +++ b/currentrelease @@ -1,3 +1,3 @@ -3.12.0 -https://sqlitebrowser.org/blog/version-3-12-0-released +3.12.2 +https://sqlitebrowser.org/blog/version-3-12-2-released diff --git a/distri/sqlitebrowser.desktop b/distri/sqlitebrowser.desktop index 749f2ef06..b90b24479 100644 --- a/distri/sqlitebrowser.desktop +++ b/distri/sqlitebrowser.desktop @@ -10,4 +10,5 @@ Terminal=false X-MultipleArgs=false Type=Application Categories=Development;Utility;Database; -MimeType=application/vnd.db4s-project+xml;application/sqlitebrowser;application/x-sqlitebrowser;application/vnd.sqlite3;application/geopackage+sqlite3;application/x-sqlite2;application/x-sqlite3; +MimeType=application/vnd.db4s-project+xml;application/sqlitebrowser;application/x-sqlitebrowser;application/vnd.sqlite3;application/geopackage+sqlite3;application/x-sqlite2;application/x-sqlite3;text/csv; +StartupWMClass=sqlitebrowser diff --git a/distri/sqlitebrowser.desktop.appdata.xml b/distri/sqlitebrowser.desktop.appdata.xml index 3c9c07eab..02d4b9b1f 100644 --- a/distri/sqlitebrowser.desktop.appdata.xml +++ b/distri/sqlitebrowser.desktop.appdata.xml @@ -22,6 +22,7 @@
  • Examine a log of all SQL commands issued by the application
  • + https://raw.githubusercontent.com/sqlitebrowser/db4s-screenshots/master/v3.3/gnome3_2-execute.png @@ -42,4 +43,7 @@ https://sqlitebrowser.org/ https://github.com/sqlitebrowser/sqlitebrowser/issues + + + diff --git a/installer/macos/build_sqlitebrowser_nightly.sh b/installer/macos/build_sqlitebrowser_nightly.sh index 2be4da1cf..74fd67faf 100755 --- a/installer/macos/build_sqlitebrowser_nightly.sh +++ b/installer/macos/build_sqlitebrowser_nightly.sh @@ -3,17 +3,16 @@ # Builds and uploads DB Browser for SQLite nightlies, # after updating the Homebrew dependencies -QTVER="5.12.8" +QTVER="5.15.2" BRANCH="master" BREW="/usr/local/bin/brew" BUILD_TYPE="release" DATE=`date "+%Y%m%d"` LOG="$HOME/db4s_nightlies/nightly-$DATE.log" -LRELEASE="$HOME/Qt/${QTVER}/${QTVER}/clang_64/bin/lrelease" -LUPDATE="$HOME/Qt/${QTVER}/${QTVER}/clang_64/bin/lupdate" -MACDEPLOYQT="$HOME/Qt/${QTVER}/${QTVER}/clang_64/bin/macdeployqt" +MACDEPLOYQT="$HOME/Qt/${QTVER}/clang_64/bin/macdeployqt" PATH="$PATH:/usr/local/bin:/usr/sbin" -QMAKE="$HOME/Qt/${QTVER}/${QTVER}/clang_64/bin/qmake" +CMAKE="/usr/local/bin/cmake" +QT5_DIR="$HOME/Qt/${QTVER}/clang_64" # Add the sensitive values we don't want to store in this script file source ~/.db4s_secure @@ -56,11 +55,17 @@ sudo chown -Rh jc:staff /usr/local >>$LOG 2>&1 echo Update Homebrew >>$LOG 2>&1 $BREW update >>$LOG 2>&1 +# Set Qt path +export CMAKE_PREFIX_PATH=${QT5_DIR} + ### Build standard version # Remove any existing Homebrew installed packages echo Remove any existing Homebrew installed packages >>$LOG 2>&1 -$BREW remove `$BREW list` --force >>$LOG 2>&1 +$BREW remove `$BREW list --formula` --force >>$LOG 2>&1 + +# Install CMake +$BREW install cmake >>$LOG 2>&1 # Install SQLite3 # Note - `brew tap sqlitebrowser/homebrew-sqlite3` needs to have been run at least once (manually) first @@ -78,68 +83,70 @@ git reset --hard HEAD >>$LOG 2>&1 git clean -dffx >>$LOG 2>&1 git pull >>$LOG 2>&1 -# Update the translation files -echo Updating the translations >>$LOG 2>&1 -$LUPDATE src/src.pro >>$LOG 2>&1 -$LRELEASE src/src.pro >>$LOG 2>&1 - # Build and package standard sqlitebrowser nightly echo Build and package standard sqlitebrowser nightly >>$LOG 2>&1 +mkdir build >>$LOG 2>&1 +cd build >>$LOG 2>&1 if [ "${BUILD_TYPE}" = "debug" ]; then - $QMAKE sqlitebrowser.pro -r -spec macx-clang CONFIG+=debug CONFIG+=x86_64 >>$LOG 2>&1 + $CMAKE -DCMAKE_BUILD_TYPE=Debug .. >>$LOG 2>&1 else - $QMAKE sqlitebrowser.pro -r -spec macx-clang CONFIG+=x86_64 >>$LOG 2>&1 + $CMAKE .. >>$LOG 2>&1 fi make -j3 >>$LOG 2>&1 -make -j3 >>$LOG 2>&1 # Seems to need a 2nd time now, due to language files needing initialisation or something +cd .. >>$LOG 2>&1 # Include the depencencies in the .app bundle -$MACDEPLOYQT src/DB\ Browser\ for\ SQLite.app -verbose=2 >>$LOG 2>&1 +$MACDEPLOYQT build/DB\ Browser\ for\ SQLite.app -verbose=2 -sign-for-notarization="${DEV_ID}">>$LOG 2>&1 # Add the extensions to the .dmg echo Add the extensions to the .dmg >>$LOG 2>&1 -mkdir src/DB\ Browser\ for\ SQLite.app/Contents/Extensions >>$LOG 2>&1 -gcc -I/usr/local/opt/sqlitefts5/include -L/usr/local/opt/sqlitefts5/lib -fno-common -dynamiclib src/extensions/extension-formats.c -o src/DB\ Browser\ for\ SQLite.app/Contents/Extensions/formats.dylib >>$LOG 2>&1 -gcc -I/usr/local/opt/sqlitefts5/include -L/usr/local/opt/sqlitefts5/lib -fno-common -dynamiclib src/extensions/extension-functions.c -o src/DB\ Browser\ for\ SQLite.app/Contents/Extensions/math.dylib >>$LOG 2>&1 +mkdir build/DB\ Browser\ for\ SQLite.app/Contents/Extensions >>$LOG 2>&1 +gcc -I/usr/local/opt/sqlitefts5/include -L/usr/local/opt/sqlitefts5/lib -fno-common -dynamiclib src/extensions/extension-formats.c -o build/DB\ Browser\ for\ SQLite.app/Contents/Extensions/formats.dylib >>$LOG 2>&1 +gcc -I/usr/local/opt/sqlitefts5/include -L/usr/local/opt/sqlitefts5/lib -fno-common -dynamiclib src/extensions/extension-functions.c -o build/DB\ Browser\ for\ SQLite.app/Contents/Extensions/math.dylib >>$LOG 2>&1 # fileio.c extension curl -L -o src/extensions/fileio.c 'https://sqlite.org/src/raw?filename=ext/misc/fileio.c&ci=trunk' >>$LOG 2>&1 curl -L -o src/extensions/test_windirent.c 'https://sqlite.org/src/raw?filename=src/test_windirent.c&ci=trunk' >>$LOG 2>&1 curl -L -o src/extensions/test_windirent.h 'https://sqlite.org/src/raw?filename=src/test_windirent.h&ci=trunk' >>$LOG 2>&1 -gcc -I/usr/local/opt/sqlitefts5/include -L/usr/local/opt/sqlitefts5/lib -fno-common -dynamiclib src/extensions/fileio.c src/extensions/test_windirent.c -o src/DB\ Browser\ for\ SQLite.app/Contents/Extensions/fileio.dylib >>$LOG 2>&1 +gcc -I/usr/local/opt/sqlitefts5/include -L/usr/local/opt/sqlitefts5/lib -fno-common -dynamiclib src/extensions/fileio.c src/extensions/test_windirent.c -o build/DB\ Browser\ for\ SQLite.app/Contents/Extensions/fileio.dylib >>$LOG 2>&1 # Copy the license files to the .dmg echo Copying the license files to the .dmg >>$LOG 2>&1 -cp LICENSE LICENSE-PLUGINS src/DB\ Browser\ for\ SQLite.app/Contents/Resources/ >>$LOG 2>&1 +cp LICENSE LICENSE-PLUGINS build/DB\ Browser\ for\ SQLite.app/Contents/Resources/ >>$LOG 2>&1 # Copy the translation files to the .dmg -mkdir -p src/DB\ Browser\ for\ SQLite.app/Contents/translations >>$LOG 2>&1 +mkdir -p build/DB\ Browser\ for\ SQLite.app/Contents/translations >>$LOG 2>&1 for i in ar zh_CN zh_TW cs en fr de it ko pl pt ru es uk; do - cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qt_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 - cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtbase_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 - cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtmultimedia_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 - cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtquick1_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 - cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtscript_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 - cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtxmlpatterns_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 + cp -v $HOME/Qt/${QTVER}/clang_64/translations/qt_${i}.qm build/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 + cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtbase_${i}.qm build/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 + cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtmultimedia_${i}.qm build/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 + cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtquick1_${i}.qm build/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 + cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtscript_${i}.qm build/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 + cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtxmlpatterns_${i}.qm build/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 done # Unlock the local security keychain, so signing can be done security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${HOME}/Library/Keychains/login.keychain" -# Sign the .app -codesign --sign "${DEV_ID}" --verbose --deep --keychain "/Library/Keychains/System.keychain" src/DB\ Browser\ for\ SQLite.app >>$LOG 2>&1 +# Sign the added libraries +codesign --sign "${DEV_ID}" --verbose --deep --force --keychain "/Library/Keychains/System.keychain" --options runtime --timestamp build/DB\ Browser\ for\ SQLite.app/Contents/Extensions/fileio.dylib >>$LOG 2>&1 +codesign --sign "${DEV_ID}" --verbose --deep --force --keychain "/Library/Keychains/System.keychain" --options runtime --timestamp build/DB\ Browser\ for\ SQLite.app/Contents/Extensions/formats.dylib >>$LOG 2>&1 +codesign --sign "${DEV_ID}" --verbose --deep --force --keychain "/Library/Keychains/System.keychain" --options runtime --timestamp build/DB\ Browser\ for\ SQLite.app/Contents/Extensions/math.dylib >>$LOG 2>&1 # Make a .dmg file from the .app -mv src/DB\ Browser\ for\ SQLite.app $HOME/appdmg/ >>$LOG 2>&1 +mv build/DB\ Browser\ for\ SQLite.app $HOME/appdmg/ >>$LOG 2>&1 cd $HOME/appdmg >>$LOG 2>&1 appdmg --quiet nightly.json DB\ Browser\ for\ SQLite_${DATE}.dmg >>$LOG 2>&1 -codesign --sign "${DEV_ID}" --verbose --deep --keychain "/Library/Keychains/System.keychain" DB\ Browser\ for\ SQLite_${DATE}.dmg >>$LOG 2>&1 +codesign --sign "${DEV_ID}" --verbose --deep --keychain "/Library/Keychains/System.keychain" --options runtime --timestamp DB\ Browser\ for\ SQLite_${DATE}.dmg >>$LOG 2>&1 mv DB\ Browser\ for\ SQLite_${DATE}.dmg $HOME/db4s_nightlies/ >>$LOG 2>&1 rm -rf $HOME/appdmg/DB\ Browser\ for\ SQLite.app >>$LOG 2>&1 ### Build SQLCipher version # Remove any existing Homebrew installed packages echo Remove any existing Homebrew installed packages >>$LOG 2>&1 -$BREW remove `$BREW list` --force >>$LOG 2>&1 +$BREW remove `$BREW list --formula` --force >>$LOG 2>&1 + +# Install CMake +$BREW install cmake >>$LOG 2>&1 # Install SQLCipher echo Install SQLCipher >>$LOG 2>&1 @@ -154,61 +161,63 @@ git checkout $BRANCH >>$LOG 2>&1 git reset --hard HEAD >>$LOG 2>&1 git clean -dffx >>$LOG 2>&1 -# Update the translation files -echo Updating the translations >>$LOG 2>&1 -$LUPDATE src/src.pro >>$LOG 2>&1 -$LRELEASE src/src.pro >>$LOG 2>&1 - # Build and package sqlitebrowser with SQLCipher support echo Build and package sqlitebrowser with SQLCipher support >>$LOG 2>&1 +mkdir build >>$LOG 2>&1 +cd build >>$LOG 2>&1 if [ "${BUILD_TYPE}" = "debug" ]; then - $QMAKE sqlitebrowser.pro -r -spec macx-clang CONFIG+=debug CONFIG+=x86_64 CONFIG+=sqlcipher >>$LOG 2>&1 + $CMAKE -DCMAKE_BUILD_TYPE=Debug -Dsqlcipher=1 .. >>$LOG 2>&1 else - $QMAKE sqlitebrowser.pro -r -spec macx-clang CONFIG+=x86_64 CONFIG+=sqlcipher >>$LOG 2>&1 + $CMAKE -Dsqlcipher=1 .. >>$LOG 2>&1 fi make -j3 >>$LOG 2>&1 -make -j3 >>$LOG 2>&1 # Seems to need a 2nd time now, due to language files needing initialisation or something +cd .. >>$LOG 2>&1 + +# Unlock the local security keychain, so signing can be done +security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${HOME}/Library/Keychains/login.keychain" # Include the depencencies in the .app bundle -$MACDEPLOYQT src/DB\ Browser\ for\ SQLite.app -verbose=2 >>$LOG 2>&1 +$MACDEPLOYQT build/DB\ Browser\ for\ SQLite.app -verbose=2 -sign-for-notarization="${DEV_ID}">>$LOG 2>&1 # Add the extensions to the .dmg echo Add the extensions to the .dmg >>$LOG 2>&1 -mkdir src/DB\ Browser\ for\ SQLite.app/Contents/Extensions >>$LOG 2>&1 -gcc -I/usr/local/opt/sqlcipherdb4s/include -L/usr/local/opt/sqlcipherdb4s/lib -fno-common -dynamiclib src/extensions/extension-formats.c -o src/DB\ Browser\ for\ SQLite.app/Contents/Extensions/formats.dylib >>$LOG 2>&1 -gcc -I/usr/local/opt/sqlcipherdb4s/include -L/usr/local/opt/sqlcipherdb4s/lib -fno-common -dynamiclib src/extensions/extension-functions.c -o src/DB\ Browser\ for\ SQLite.app/Contents/Extensions/math.dylib >>$LOG 2>&1 +mkdir build/DB\ Browser\ for\ SQLite.app/Contents/Extensions >>$LOG 2>&1 +gcc -I/usr/local/opt/sqlcipherdb4s/include -L/usr/local/opt/sqlcipherdb4s/lib -fno-common -dynamiclib src/extensions/extension-formats.c -o build/DB\ Browser\ for\ SQLite.app/Contents/Extensions/formats.dylib >>$LOG 2>&1 +gcc -I/usr/local/opt/sqlcipherdb4s/include -L/usr/local/opt/sqlcipherdb4s/lib -fno-common -dynamiclib src/extensions/extension-functions.c -o build/DB\ Browser\ for\ SQLite.app/Contents/Extensions/math.dylib >>$LOG 2>&1 # fileio.c extension curl -L -o src/extensions/fileio.c 'https://sqlite.org/src/raw?filename=ext/misc/fileio.c&ci=trunk' >>$LOG 2>&1 curl -L -o src/extensions/test_windirent.c 'https://sqlite.org/src/raw?filename=src/test_windirent.c&ci=trunk' >>$LOG 2>&1 curl -L -o src/extensions/test_windirent.h 'https://sqlite.org/src/raw?filename=src/test_windirent.h&ci=trunk' >>$LOG 2>&1 -gcc -I/usr/local/opt/sqlcipherdb4s/include -L/usr/local/opt/sqlcipherdb4s/lib -fno-common -dynamiclib src/extensions/fileio.c src/extensions/test_windirent.c -o src/DB\ Browser\ for\ SQLite.app/Contents/Extensions/fileio.dylib >>$LOG 2>&1 +gcc -I/usr/local/opt/sqlcipherdb4s/include -L/usr/local/opt/sqlcipherdb4s/lib -fno-common -dynamiclib src/extensions/fileio.c src/extensions/test_windirent.c -o build/DB\ Browser\ for\ SQLite.app/Contents/Extensions/fileio.dylib >>$LOG 2>&1 # Copy the license files to the .dmg echo Copying the license files to the .dmg >>$LOG 2>&1 -cp LICENSE LICENSE-PLUGINS src/DB\ Browser\ for\ SQLite.app/Contents/Resources/ >>$LOG 2>&1 +cp LICENSE LICENSE-PLUGINS build/DB\ Browser\ for\ SQLite.app/Contents/Resources/ >>$LOG 2>&1 # Copy the translation files to the .dmg -mkdir -p src/DB\ Browser\ for\ SQLite.app/Contents/translations >>$LOG 2>&1 +mkdir -p build/DB\ Browser\ for\ SQLite.app/Contents/translations >>$LOG 2>&1 for i in ar zh_CN zh_TW cs en fr de it ko pl pt ru es uk; do - cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qt_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 - cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtbase_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 - cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtmultimedia_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 - cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtquick1_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 - cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtscript_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 - cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtxmlpatterns_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 + cp -v $HOME/Qt/${QTVER}/clang_64/translations/qt_${i}.qm build/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 + cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtbase_${i}.qm build/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 + cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtmultimedia_${i}.qm build/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 + cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtquick1_${i}.qm build/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 + cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtscript_${i}.qm build/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 + cp -v $HOME/Qt/${QTVER}/clang_64/translations/qtxmlpatterns_${i}.qm build/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 done # Unlock the local security keychain, so signing can be done security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${HOME}/Library/Keychains/login.keychain" # Sign the .app -codesign --sign "${DEV_ID}" --verbose --deep --keychain "/Library/Keychains/System.keychain" src/DB\ Browser\ for\ SQLite.app >>$LOG 2>&1 +codesign --sign "${DEV_ID}" --verbose --deep --force --keychain "/Library/Keychains/System.keychain" --options runtime --timestamp build/DB\ Browser\ for\ SQLite.app/Contents/Extensions/fileio.dylib >>$LOG 2>&1 +codesign --sign "${DEV_ID}" --verbose --deep --force --keychain "/Library/Keychains/System.keychain" --options runtime --timestamp build/DB\ Browser\ for\ SQLite.app/Contents/Extensions/formats.dylib >>$LOG 2>&1 +codesign --sign "${DEV_ID}" --verbose --deep --force --keychain "/Library/Keychains/System.keychain" --options runtime --timestamp build/DB\ Browser\ for\ SQLite.app/Contents/Extensions/math.dylib >>$LOG 2>&1 # Make a .dmg file from the .app -mv src/DB\ Browser\ for\ SQLite.app $HOME/appdmg/ >>$LOG 2>&1 +mv build/DB\ Browser\ for\ SQLite.app $HOME/appdmg/ >>$LOG 2>&1 cd $HOME/appdmg >>$LOG 2>&1 appdmg --quiet nightly.json DB\ Browser\ for\ SQLite-sqlcipher_${DATE}.dmg >>$LOG 2>&1 -codesign --sign "${DEV_ID}" --verbose --deep --keychain "/Library/Keychains/System.keychain" DB\ Browser\ for\ SQLite-sqlcipher_${DATE}.dmg >>$LOG 2>&1 +codesign --sign "${DEV_ID}" --verbose --deep --keychain "/Library/Keychains/System.keychain" --options runtime --timestamp DB\ Browser\ for\ SQLite-sqlcipher_${DATE}.dmg >>$LOG 2>&1 mv DB\ Browser\ for\ SQLite-sqlcipher_${DATE}.dmg $HOME/db4s_nightlies/ >>$LOG 2>&1 rm -rf $HOME/appdmg/DB\ Browser\ for\ SQLite.app >>$LOG 2>&1 diff --git a/installer/other/move_nightlies_into_dirs.sh b/installer/other/move_nightlies_into_dirs.sh new file mode 100755 index 000000000..542678ba8 --- /dev/null +++ b/installer/other/move_nightlies_into_dirs.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Moving the nightly builds into appropriate subdirs. Designed to be +# run automatically from cron, using something like this: +# 10 0 14 * * /usr/local/bin/move_nightlies_into_dirs.sh + +# Retrieve the month number for last month +YEARMONTH=`date -d "last month 13:00" '+%Y-%m'` +YEARMONTHOSX=`date -d "last month 13:00" '+%Y%m'` + +# Create appropriate new subfolders +mkdir /nightlies/osx/${YEARMONTH} +mkdir /nightlies/win32/${YEARMONTH} +mkdir /nightlies/win64/${YEARMONTH} + +# Move builds +mv /nightlies/osx/DB*${YEARMONTHOSX}* /nightlies/osx/night*${YEARMONTHOSX}* /nightlies/osx/${YEARMONTH}/ +mv /nightlies/win32/DB*${YEARMONTH}* /nightlies/win32/${YEARMONTH}/ +mv /nightlies/win64/DB*${YEARMONTH}* /nightlies/win64/${YEARMONTH}/ + +# Fix ownership and context +chown -Rh nightlies: /nightlies/osx/${YEARMONTH} /nightlies/win32/${YEARMONTH} /nightlies/win64/${YEARMONTH} +restorecon -RFv /nightlies/osx/${YEARMONTH} /nightlies/win32/${YEARMONTH} /nightlies/win64/${YEARMONTH} + +echo Nightlies moved for $YEARMONTH diff --git a/installer/windows/nightly_build_scripts/win32build.bat b/installer/windows/nightly_build_scripts/win32build.bat index c51124a5b..563955da7 100755 --- a/installer/windows/nightly_build_scripts/win32build.bat +++ b/installer/windows/nightly_build_scripts/win32build.bat @@ -5,7 +5,7 @@ MKDIR "%DEST_PATH%" SET ZIP_EXE="C:\Program Files\7-Zip\7z.exe" SET SQLITE_DIR=C:\\dev\\SQLite-Win32 SET SQLCIPHER_DIR=C:\\git_repos\\SQLCipher-Win32 -SET SQLCIPHER_TAG=v4.4.0 +SET SQLCIPHER_TAG=v4.4.2 :: You need to change the date format in Windows settings to YYYY-MM-DD :: before this will work properly. ;) diff --git a/installer/windows/nightly_build_scripts/win64build.bat b/installer/windows/nightly_build_scripts/win64build.bat index 8467cee79..7c37026b2 100755 --- a/installer/windows/nightly_build_scripts/win64build.bat +++ b/installer/windows/nightly_build_scripts/win64build.bat @@ -5,7 +5,7 @@ MKDIR "%DEST_PATH%" SET ZIP_EXE="C:\Program Files\7-Zip\7z.exe" SET SQLITE_DIR=C:\\dev\\SQLite-Win64 SET SQLCIPHER_DIR=C:\\git_repos\\SQLCipher-Win64 -SET SQLCIPHER_TAG=v4.4.0 +SET SQLCIPHER_TAG=v4.4.2 :: You need to change the date format in Windows settings to YYYY-MM-DD :: before this will work properly. ;) diff --git a/libs/json/json.pro b/libs/json/json.pro deleted file mode 100644 index 4ae533746..000000000 --- a/libs/json/json.pro +++ /dev/null @@ -1,6 +0,0 @@ -TEMPLATE = subdirs - -CONFIG += debug_and_release - -HEADERS += \ - json.hpp diff --git a/libs/qcustomplot-source/CMakeLists.txt b/libs/qcustomplot-source/CMakeLists.txt index da04a4f02..d67e776ef 100644 --- a/libs/qcustomplot-source/CMakeLists.txt +++ b/libs/qcustomplot-source/CMakeLists.txt @@ -6,16 +6,13 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) find_package(Qt5 REQUIRED COMPONENTS Widgets PrintSupport) set(QCUSTOMPLOT_SRC - qcustomplot.cpp -) - -set(QCUSTOMPLOT_HDR + qcustomplot.cpp ) set(QCUSTOMPLOT_MOC_HDR - qcustomplot.h + qcustomplot.h ) -add_library(qcustomplot ${QCUSTOMPLOT_SRC} ${QCUSTOMPLOT_HDR} ${QCUSTOMPLOT_MOC}) +add_library(qcustomplot ${QCUSTOMPLOT_SRC} ${QCUSTOMPLOT_MOC_HDR} ${QCUSTOMPLOT_MOC}) target_link_libraries(qcustomplot Qt5::Widgets Qt5::PrintSupport) diff --git a/libs/qcustomplot-source/qcustomplot.pro b/libs/qcustomplot-source/qcustomplot.pro deleted file mode 100644 index 0a831af40..000000000 --- a/libs/qcustomplot-source/qcustomplot.pro +++ /dev/null @@ -1,13 +0,0 @@ -TEMPLATE = lib - -QT += core gui network -greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport - -CONFIG += staticlib -CONFIG += debug_and_release - -HEADERS += \ - qcustomplot.h - -SOURCES += \ - qcustomplot.cpp diff --git a/libs/qhexedit/CMakeLists.txt b/libs/qhexedit/CMakeLists.txt index 3779fb24b..0843581ae 100644 --- a/libs/qhexedit/CMakeLists.txt +++ b/libs/qhexedit/CMakeLists.txt @@ -17,10 +17,10 @@ set(QHEXEDIT_HDR ) set(QHEXEDIT_MOC_HDR - src/qhexedit.h - src/commands.h + src/qhexedit.h + src/commands.h ) -add_library(qhexedit ${QHEXEDIT_SRC} ${QHEXEDIT_HDR} ${QHEXEDIT_MOC}) +add_library(qhexedit ${QHEXEDIT_SRC} ${QHEXEDIT_HDR} ${QHEXEDIT_MOC_HDR} ${QHEXEDIT_MOC}) target_link_libraries(qhexedit Qt5::Widgets) diff --git a/libs/qhexedit/qhexedit.pro b/libs/qhexedit/qhexedit.pro deleted file mode 100644 index 0a8dd99a3..000000000 --- a/libs/qhexedit/qhexedit.pro +++ /dev/null @@ -1,16 +0,0 @@ -TEMPLATE = lib - -QT += core gui widgets - -CONFIG += staticlib -CONFIG += debug_and_release - -HEADERS += \ - src/qhexedit.h \ - src/chunks.h \ - src/commands.h - -SOURCES += \ - src/qhexedit.cpp \ - src/chunks.cpp \ - src/commands.cpp diff --git a/libs/qhexedit/src/qhexedit.pro b/libs/qhexedit/src/qhexedit.pro deleted file mode 100644 index 4d502ab9f..000000000 --- a/libs/qhexedit/src/qhexedit.pro +++ /dev/null @@ -1,21 +0,0 @@ - -greaterThan(QT_MAJOR_VERSION, 4): QT += widgets - -TEMPLATE = lib - -VERSION = 2.1.0 - -CONFIG += qt warn_on release - -HEADERS = \ - src/qhexedit.h \ - src/chunks.h \ - src/commands.h - - -SOURCES = \ - src/qhexedit.cpp \ - src/chunks.cpp \ - src/commands.cpp - -TARGET = qhexedit diff --git a/libs/qscintilla/Qt4Qt5/CMakeLists.txt b/libs/qscintilla/Qt4Qt5/CMakeLists.txt index 6b1e6141f..49dd0f475 100644 --- a/libs/qscintilla/Qt4Qt5/CMakeLists.txt +++ b/libs/qscintilla/Qt4Qt5/CMakeLists.txt @@ -14,158 +14,158 @@ add_definitions(-DSCINTILLA_QT) add_definitions(-DSCI_LEXER) set(QSCINTILLA_SRC - qsciscintilla.cpp - qsciscintillabase.cpp - qsciabstractapis.cpp - qsciapis.cpp - qscicommand.cpp - qscicommandset.cpp - qscidocument.cpp - qscilexer.cpp - qscilexercustom.cpp - qscilexersql.cpp - qscilexerjson.cpp - qscilexerhtml.cpp - qscilexerxml.cpp - qscilexerjavascript.cpp - qscilexercpp.cpp - qscilexerpython.cpp - qscimacro.cpp - qsciprinter.cpp - qscistyle.cpp - qscistyledtext.cpp - MacPasteboardMime.cpp - InputMethod.cpp - SciClasses.cpp - ListBoxQt.cpp - PlatQt.cpp - ScintillaQt.cpp - SciAccessibility.cpp - ../lexers/LexSQL.cpp - ../lexers/LexJSON.cpp - ../lexers/LexHTML.cpp - ../lexlib/Accessor.cpp - ../lexlib/CharacterCategory.cpp - ../lexlib/CharacterSet.cpp + qsciscintilla.cpp + qsciscintillabase.cpp + qsciabstractapis.cpp + qsciapis.cpp + qscicommand.cpp + qscicommandset.cpp + qscidocument.cpp + qscilexer.cpp + qscilexercustom.cpp + qscilexersql.cpp + qscilexerjson.cpp + qscilexerhtml.cpp + qscilexerxml.cpp + qscilexerjavascript.cpp + qscilexercpp.cpp + qscilexerpython.cpp + qscimacro.cpp + qsciprinter.cpp + qscistyle.cpp + qscistyledtext.cpp + MacPasteboardMime.cpp + InputMethod.cpp + SciClasses.cpp + ListBoxQt.cpp + PlatQt.cpp + ScintillaQt.cpp + SciAccessibility.cpp + ../lexers/LexSQL.cpp + ../lexers/LexJSON.cpp + ../lexers/LexHTML.cpp + ../lexlib/Accessor.cpp + ../lexlib/CharacterCategory.cpp + ../lexlib/CharacterSet.cpp ../lexlib/DefaultLexer.cpp - ../lexlib/LexerBase.cpp - ../lexlib/LexerModule.cpp - ../lexlib/LexerNoExceptions.cpp - ../lexlib/LexerSimple.cpp - ../lexlib/PropSetSimple.cpp - ../lexlib/StyleContext.cpp - ../lexlib/WordList.cpp - ../src/AutoComplete.cpp - ../src/CallTip.cpp - ../src/CaseConvert.cpp - ../src/CaseFolder.cpp - ../src/Catalogue.cpp - ../src/CellBuffer.cpp - ../src/CharClassify.cpp - ../src/ContractionState.cpp - ../src/Decoration.cpp - ../src/Document.cpp - ../src/Editor.cpp - ../src/EditModel.cpp - ../src/EditView.cpp - ../src/ExternalLexer.cpp - ../src/Indicator.cpp - ../src/KeyMap.cpp - ../src/LineMarker.cpp - ../src/MarginView.cpp - ../src/PerLine.cpp - ../src/PositionCache.cpp - ../src/RESearch.cpp - ../src/RunStyles.cpp - ../src/ScintillaBase.cpp - ../src/Selection.cpp - ../src/Style.cpp - ../src/UniConversion.cpp - ../src/ViewStyle.cpp - ../src/XPM.cpp + ../lexlib/LexerBase.cpp + ../lexlib/LexerModule.cpp + ../lexlib/LexerNoExceptions.cpp + ../lexlib/LexerSimple.cpp + ../lexlib/PropSetSimple.cpp + ../lexlib/StyleContext.cpp + ../lexlib/WordList.cpp + ../src/AutoComplete.cpp + ../src/CallTip.cpp + ../src/CaseConvert.cpp + ../src/CaseFolder.cpp + ../src/Catalogue.cpp + ../src/CellBuffer.cpp + ../src/CharClassify.cpp + ../src/ContractionState.cpp + ../src/Decoration.cpp + ../src/Document.cpp + ../src/Editor.cpp + ../src/EditModel.cpp + ../src/EditView.cpp + ../src/ExternalLexer.cpp + ../src/Indicator.cpp + ../src/KeyMap.cpp + ../src/LineMarker.cpp + ../src/MarginView.cpp + ../src/PerLine.cpp + ../src/PositionCache.cpp + ../src/RESearch.cpp + ../src/RunStyles.cpp + ../src/ScintillaBase.cpp + ../src/Selection.cpp + ../src/Style.cpp + ../src/UniConversion.cpp + ../src/ViewStyle.cpp + ../src/XPM.cpp ) set(QSCINTILLA_HDR - ./Qsci/qsciglobal.h - ./Qsci/qscicommand.h - ./Qsci/qscicommandset.h - ./Qsci/qscidocument.h - ./Qsci/qsciprinter.h - ./Qsci/qscistyle.h - ./Qsci/qscistyledtext.h - ListBoxQt.h - SciNamespace.h - ../include/ILexer.h - ../include/Platform.h - ../include/SciLexer.h - ../include/Scintilla.h - ../include/ScintillaWidget.h - ../include/Sci_Position.h - ../lexlib/Accessor.h - ../lexlib/CharacterCategory.h - ../lexlib/CharacterSet.h - ../lexlib/DefaultLexer.h - ../lexlib/LexAccessor.h - ../lexlib/LexerBase.h - ../lexlib/LexerModule.h - ../lexlib/LexerNoExceptions.h - ../lexlib/LexerSimple.h - ../lexlib/OptionSet.h - ../lexlib/PropSetSimple.h - ../lexlib/StyleContext.h - ../lexlib/SubStyles.h - ../lexlib/WordList.h - ../src/AutoComplete.h - ../src/CallTip.h - ../src/CaseConvert.h - ../src/CaseFolder.h - ../src/Catalogue.h - ../src/CellBuffer.h - ../src/CharClassify.h - ../src/ContractionState.h - ../src/Decoration.h - ../src/Document.h - ../src/Editor.h - ../src/ExternalLexer.h - ../src/FontQuality.h - ../src/Indicator.h - ../src/KeyMap.h - ../src/LineMarker.h - ../src/Partitioning.h - ../src/PerLine.h - ../src/PositionCache.h - ../src/RESearch.h - ../src/RunStyles.h - ../src/ScintillaBase.h - ../src/Selection.h - ../src/SplitVector.h - ../src/Style.h - ../src/UnicodeFromUTF8.h - ../src/UniConversion.h - ../src/ViewStyle.h - ../src/XPM.h - ../src/Position.h - ../src/SparseVector.h + ./Qsci/qsciglobal.h + ./Qsci/qscicommand.h + ./Qsci/qscicommandset.h + ./Qsci/qscidocument.h + ./Qsci/qsciprinter.h + ./Qsci/qscistyle.h + ./Qsci/qscistyledtext.h + ListBoxQt.h + SciNamespace.h + ../include/ILexer.h + ../include/Platform.h + ../include/SciLexer.h + ../include/Scintilla.h + ../include/ScintillaWidget.h + ../include/Sci_Position.h + ../lexlib/Accessor.h + ../lexlib/CharacterCategory.h + ../lexlib/CharacterSet.h + ../lexlib/DefaultLexer.h + ../lexlib/LexAccessor.h + ../lexlib/LexerBase.h + ../lexlib/LexerModule.h + ../lexlib/LexerNoExceptions.h + ../lexlib/LexerSimple.h + ../lexlib/OptionSet.h + ../lexlib/PropSetSimple.h + ../lexlib/StyleContext.h + ../lexlib/SubStyles.h + ../lexlib/WordList.h + ../src/AutoComplete.h + ../src/CallTip.h + ../src/CaseConvert.h + ../src/CaseFolder.h + ../src/Catalogue.h + ../src/CellBuffer.h + ../src/CharClassify.h + ../src/ContractionState.h + ../src/Decoration.h + ../src/Document.h + ../src/Editor.h + ../src/ExternalLexer.h + ../src/FontQuality.h + ../src/Indicator.h + ../src/KeyMap.h + ../src/LineMarker.h + ../src/Partitioning.h + ../src/PerLine.h + ../src/PositionCache.h + ../src/RESearch.h + ../src/RunStyles.h + ../src/ScintillaBase.h + ../src/Selection.h + ../src/SplitVector.h + ../src/Style.h + ../src/UnicodeFromUTF8.h + ../src/UniConversion.h + ../src/ViewStyle.h + ../src/XPM.h + ../src/Position.h + ../src/SparseVector.h ) set(QSCINTILLA_MOC_HDR - ./Qsci/qsciscintilla.h - ./Qsci/qsciscintillabase.h - ./Qsci/qsciabstractapis.h - ./Qsci/qsciapis.h - ./Qsci/qscilexer.h - ./Qsci/qscilexercustom.h - ./Qsci/qscilexersql.h - ./Qsci/qscilexerjson.h - ./Qsci/qscilexerhtml.h - ./Qsci/qscilexerxml.h - ./Qsci/qscilexerjavascript.h - ./Qsci/qscilexercpp.h - ./Qsci/qscilexerpython.h - ./Qsci/qscimacro.h - SciClasses.h - ScintillaQt.h - SciAccessibility.h + ./Qsci/qsciscintilla.h + ./Qsci/qsciscintillabase.h + ./Qsci/qsciabstractapis.h + ./Qsci/qsciapis.h + ./Qsci/qscilexer.h + ./Qsci/qscilexercustom.h + ./Qsci/qscilexersql.h + ./Qsci/qscilexerjson.h + ./Qsci/qscilexerhtml.h + ./Qsci/qscilexerxml.h + ./Qsci/qscilexerjavascript.h + ./Qsci/qscilexercpp.h + ./Qsci/qscilexerpython.h + ./Qsci/qscimacro.h + SciClasses.h + ScintillaQt.h + SciAccessibility.h ) QT5_WRAP_CPP(QSCINTILLA_WRAP_MOC_HDR ${QSCINTILLA_MOC_HDR}) @@ -177,5 +177,5 @@ add_library(qscintilla2 ${QSCINTILLA_SRC} ${QSCINTILLA_HDR} ${QSCINTILLA_MOC_HDR target_link_libraries(qscintilla2 Qt5::Widgets Qt5::PrintSupport) if (APPLE) - target_link_libraries(qscintilla2 Qt5::MacExtras) + target_link_libraries(qscintilla2 Qt5::MacExtras) endif() diff --git a/libs/qscintilla/Qt4Qt5/qscintilla.pro b/libs/qscintilla/Qt4Qt5/qscintilla.pro deleted file mode 100644 index 3cbc0845f..000000000 --- a/libs/qscintilla/Qt4Qt5/qscintilla.pro +++ /dev/null @@ -1,240 +0,0 @@ -# The project file for the QScintilla library. -# -# Copyright (c) 2019 Riverbank Computing Limited -# -# This file is part of QScintilla. -# -# This file may be used under the terms of the GNU General Public License -# version 3.0 as published by the Free Software Foundation and appearing in -# the file LICENSE included in the packaging of this file. Please review the -# following information to ensure the GNU General Public License version 3.0 -# requirements will be met: http://www.gnu.org/copyleft/gpl.html. -# -# If you do not wish to use this file under the terms of the GPL version 3.0 -# then you may purchase a commercial license. For more information contact -# info@riverbankcomputing.com. -# -# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - - -# This must be kept in sync with Python/configure.py, Python/configure-old.py, -# example-Qt4Qt5/application.pro and designer-Qt4Qt5/designer.pro. -!win32:VERSION = 15.0.0 - -TEMPLATE = lib -TARGET = qscintilla2 -CONFIG += qt warn_off thread exceptions hide_symbols staticlib debug_and_release -INCLUDEPATH += . ../include ../lexlib ../src - -QMAKE_CXXFLAGS += -std=c++11 - -!CONFIG(staticlib) { - DEFINES += QSCINTILLA_MAKE_DLL -} -DEFINES += SCINTILLA_QT SCI_LEXER INCLUDE_DEPRECATED_FEATURES - -greaterThan(QT_MAJOR_VERSION, 4) { - QT += widgets printsupport - - greaterThan(QT_MINOR_VERSION, 1) { - macx:QT += macextras - } - - # Work around QTBUG-39300. - CONFIG -= android_install -} else { - DEFINES += QT_NO_ACCESSIBILITY -} - -# Comment this in if you want the internal Scintilla classes to be placed in a -# Scintilla namespace rather than pollute the global namespace. -#DEFINES += SCI_NAMESPACE - -target.path = $$[QT_INSTALL_LIBS] -INSTALLS += target - -header.path = $$[QT_INSTALL_HEADERS] -header.files = Qsci -INSTALLS += header - -trans.path = $$[QT_INSTALL_TRANSLATIONS] -trans.files = qscintilla_*.qm -INSTALLS += trans - -qsci.path = $$[QT_INSTALL_DATA] -qsci.files = ../qsci -INSTALLS += qsci - -greaterThan(QT_MAJOR_VERSION, 4) { - features.path = $$[QT_HOST_DATA]/mkspecs/features -} else { - features.path = $$[QT_INSTALL_DATA]/mkspecs/features -} -CONFIG(staticlib) { - features.files = $$PWD/features_staticlib/qscintilla2.prf -} else { - features.files = $$PWD/features/qscintilla2.prf -} -INSTALLS += features - -HEADERS = \ - ./Qsci/qsciglobal.h \ - ./Qsci/qscicommand.h \ - ./Qsci/qscicommandset.h \ - ./Qsci/qscidocument.h \ - ./Qsci/qsciprinter.h \ - ./Qsci/qscistyle.h \ - ./Qsci/qscistyledtext.h \ - ListBoxQt.h \ - ../include/ILexer.h \ - ../include/Platform.h \ - ../include/SciLexer.h \ - ../include/Scintilla.h \ - ../include/ScintillaWidget.h \ - ../include/Sci_Position.h \ - ../lexlib/Accessor.h \ - ../lexlib/CharacterCategory.h \ - ../lexlib/CharacterSet.h \ - ../lexlib/DefaultLexer.h \ - ../lexlib/LexAccessor.h \ - ../lexlib/LexerBase.h \ - ../lexlib/LexerModule.h \ - ../lexlib/LexerNoExceptions.h \ - ../lexlib/LexerSimple.h \ - ../lexlib/OptionSet.h \ - ../lexlib/PropSetSimple.h \ - ../lexlib/StyleContext.h \ - ../lexlib/SubStyles.h \ - ../lexlib/WordList.h \ - ../src/AutoComplete.h \ - ../src/CallTip.h \ - ../src/CaseConvert.h \ - ../src/CaseFolder.h \ - ../src/Catalogue.h \ - ../src/CellBuffer.h \ - ../src/CharClassify.h \ - ../src/ContractionState.h \ - ../src/DBCS.h \ - ../src/Decoration.h \ - ../src/Document.h \ - ../src/Editor.h \ - ../src/ElapsedPeriod.h \ - ../src/ExternalLexer.h \ - ../src/FontQuality.h \ - ../src/Indicator.h \ - ../src/IntegerRectangle.h \ - ../src/KeyMap.h \ - ../src/LineMarker.h \ - ../src/MarginView.h \ - ../src/Partitioning.h \ - ../src/PerLine.h \ - ../src/PositionCache.h \ - ../src/RESearch.h \ - ../src/RunStyles.h \ - ../src/ScintillaBase.h \ - ../src/Selection.h \ - ../src/SplitVector.h \ - ../src/Style.h \ - ../src/UniConversion.h \ - ../src/UniqueString.h \ - ../src/ViewStyle.h \ - ../src/XPM.h \ - ../src/Position.h \ - ../src/SparseVector.h \ - ./Qsci/qsciscintilla.h \ - ./Qsci/qsciscintillabase.h \ - ./Qsci/qsciabstractapis.h \ - ./Qsci/qsciapis.h \ - ./Qsci/qscilexer.h \ - ./Qsci/qscilexercustom.h \ - ./Qsci/qscilexersql.h \ - ./Qsci/qscilexerjson.h \ - ./Qsci/qscilexerhtml.h \ - ./Qsci/qscilexerxml.h \ - ./Qsci/qscilexerjavascript.h \ - ./Qsci/qscilexercpp.h \ - ./Qsci/qscilexerpython.h \ - ./Qsci/qscimacro.h \ - SciClasses.h \ - ScintillaQt.h \ - SciAccessibility.h - -SOURCES = \ - qsciscintilla.cpp \ - qsciscintillabase.cpp \ - qsciabstractapis.cpp \ - qsciapis.cpp \ - qscicommand.cpp \ - qscicommandset.cpp \ - qscidocument.cpp \ - qscilexer.cpp \ - qscilexercustom.cpp \ - qscilexersql.cpp \ - qscilexerjson.cpp \ - qscilexerhtml.cpp \ - qscilexerxml.cpp \ - qscilexerjavascript.cpp \ - qscilexercpp.cpp \ - qscilexerpython.cpp \ - qscimacro.cpp \ - qsciprinter.cpp \ - qscistyle.cpp \ - qscistyledtext.cpp \ - MacPasteboardMime.cpp \ - InputMethod.cpp \ - SciClasses.cpp \ - ListBoxQt.cpp \ - PlatQt.cpp \ - ScintillaQt.cpp \ - SciAccessibility.cpp \ - ../lexers/LexSQL.cpp \ - ../lexers/LexJSON.cpp \ - ../lexers/LexHTML.cpp \ - ../lexlib/Accessor.cpp \ - ../lexlib/CharacterCategory.cpp \ - ../lexlib/CharacterSet.cpp \ - ../lexlib/DefaultLexer.cpp \ - ../lexlib/LexerBase.cpp \ - ../lexlib/LexerModule.cpp \ - ../lexlib/LexerNoExceptions.cpp \ - ../lexlib/LexerSimple.cpp \ - ../lexlib/PropSetSimple.cpp \ - ../lexlib/StyleContext.cpp \ - ../lexlib/WordList.cpp \ - ../src/AutoComplete.cpp \ - ../src/CallTip.cpp \ - ../src/CaseConvert.cpp \ - ../src/CaseFolder.cpp \ - ../src/Catalogue.cpp \ - ../src/CellBuffer.cpp \ - ../src/CharClassify.cpp \ - ../src/ContractionState.cpp \ - ../src/DBCS.cpp \ - ../src/Decoration.cpp \ - ../src/Document.cpp \ - ../src/Editor.cpp \ - ../src/EditModel.cpp \ - ../src/EditView.cpp \ - ../src/ExternalLexer.cpp \ - ../src/Indicator.cpp \ - ../src/KeyMap.cpp \ - ../src/LineMarker.cpp \ - ../src/MarginView.cpp \ - ../src/PerLine.cpp \ - ../src/PositionCache.cpp \ - ../src/RESearch.cpp \ - ../src/RunStyles.cpp \ - ../src/ScintillaBase.cpp \ - ../src/Selection.cpp \ - ../src/Style.cpp \ - ../src/UniConversion.cpp \ - ../src/ViewStyle.cpp \ - ../src/XPM.cpp - -TRANSLATIONS = \ - qscintilla_cs.ts \ - qscintilla_de.ts \ - qscintilla_es.ts \ - qscintilla_fr.ts \ - qscintilla_pt_br.ts diff --git a/libs/qscintilla/Qt4Qt5/qsciscintilla.cpp b/libs/qscintilla/Qt4Qt5/qsciscintilla.cpp index 085486969..d261ba408 100644 --- a/libs/qscintilla/Qt4Qt5/qsciscintilla.cpp +++ b/libs/qscintilla/Qt4Qt5/qsciscintilla.cpp @@ -470,7 +470,10 @@ void QsciScintilla::handleCallTipClick(int dir) if (ct_cursor > 0) ct.prepend('\001'); - SendScintilla(SCI_CALLTIPSHOW, adjustedCallTipPosition(shift), ct.toLatin1().data()); + ScintillaBytes ct_bytes = textAsBytes(ct); + const char *cts = ScintillaBytesConstData(ct_bytes); + + SendScintilla(SCI_CALLTIPSHOW, adjustedCallTipPosition(shift), cts); } diff --git a/sqlitebrowser.pro b/sqlitebrowser.pro deleted file mode 100644 index 0c552b353..000000000 --- a/sqlitebrowser.pro +++ /dev/null @@ -1,9 +0,0 @@ -TEMPLATE = subdirs - -CONFIG += debug_and_release - -SUBDIRS = libs/qhexedit/qhexedit.pro \ - libs/qcustomplot-source/qcustomplot.pro \ - libs/qscintilla/Qt4Qt5/qscintilla.pro \ - libs/json/json.pro \ - src diff --git a/src/AboutDialog.cpp b/src/AboutDialog.cpp index 58f0efca7..12b0855c8 100644 --- a/src/AboutDialog.cpp +++ b/src/AboutDialog.cpp @@ -1,6 +1,5 @@ #include "AboutDialog.h" #include "ui_AboutDialog.h" -#include "sqlitedb.h" #include "Application.h" AboutDialog::AboutDialog(QWidget *parent) : @@ -8,21 +7,14 @@ AboutDialog::AboutDialog(QWidget *parent) : ui(new Ui::AboutDialog) { ui->setupUi(this); - this->setFixedSize(this->width(), this->height()); this->setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint); + ui->label_version->setText(Application::versionInformation()); +} - QString sqlite_version, sqlcipher_version; - DBBrowserDB::getSqliteVersion(sqlite_version, sqlcipher_version); - if(sqlcipher_version.isNull()) - sqlite_version = tr("SQLite Version ") + sqlite_version; - else - sqlite_version = tr("SQLCipher Version %1 (based on SQLite %2)").arg(sqlcipher_version, sqlite_version); - - ui->label_version->setText(tr("Version ") + Application::versionString() + "\n\n" + - tr("Built for %1, running on %2").arg(QSysInfo::buildAbi(), QSysInfo::currentCpuArchitecture()) + "\n\n" + - tr("Qt Version ") + QT_VERSION_STR + "\n\n" + - sqlite_version - ); +void AboutDialog::showEvent(QShowEvent *) +{ + this->adjustSize(); + this->setFixedSize(this->width(), this->height()); } AboutDialog::~AboutDialog() diff --git a/src/AboutDialog.h b/src/AboutDialog.h index 3eb5aee91..2a1a8b7a9 100644 --- a/src/AboutDialog.h +++ b/src/AboutDialog.h @@ -13,10 +13,11 @@ class AboutDialog : public QDialog public: explicit AboutDialog(QWidget *parent = nullptr); - ~AboutDialog(); + ~AboutDialog() override; private: Ui::AboutDialog *ui; + void showEvent(QShowEvent *e) override; }; #endif diff --git a/src/AboutDialog.ui b/src/AboutDialog.ui index e28448078..279c371e5 100644 --- a/src/AboutDialog.ui +++ b/src/AboutDialog.ui @@ -20,54 +20,24 @@ false - + - - 0 - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Version - - - 5 - - - Qt::TextSelectableByMouse - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - + + + Version + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 5 + + + Qt::TextSelectableByMouse + + @@ -79,8 +49,8 @@ - 128 - 128 + 96 + 96 @@ -97,19 +67,42 @@ - - - <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> + + + QFrame::NoFrame - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - true - - + true + + + + 0 + 0 + 635 + 349 + + + + + + + <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Pastel SVG icon set by Michael Buckley under a Creative Commons +Attribution Share Alike 4.0 license.<br/>See </span><a href="https://codefisher.org/pastel-svg/"><span style=" font-size:small;">https://codefisher.org/pastel-svg/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + true + + + true + + + + + diff --git a/src/AddRecordDialog.cpp b/src/AddRecordDialog.cpp index 1f86b6c30..2e4ebe2d0 100644 --- a/src/AddRecordDialog.cpp +++ b/src/AddRecordDialog.cpp @@ -11,6 +11,8 @@ #include #include +namespace { + class NullLineEdit: public QLineEdit { Q_OBJECT private: @@ -33,23 +35,24 @@ class NullLineEdit: public QLineEdit { m_isNull = value; } protected: - void contextMenuEvent(QContextMenuEvent *event) - { - QMenu* editContextMenu = createStandardContextMenu(); - - QAction* nullAction = new QAction(QIcon(":/icons/set_to_null"), tr("Set to NULL"), editContextMenu); - connect(nullAction, &QAction::triggered, [&]() { - setNull(true); - }); - nullAction->setShortcut(QKeySequence(tr("Alt+Del"))); - editContextMenu->addSeparator(); - editContextMenu->addAction(nullAction); - - editContextMenu->exec(event->globalPos()); - delete editContextMenu; - } + void contextMenuEvent(QContextMenuEvent *event) override + { + QMenu* editContextMenu = createStandardContextMenu(); + + QAction* nullAction = new QAction(QIcon(":/icons/set_to_null"), tr("Set to NULL"), editContextMenu); + connect(nullAction, &QAction::triggered, nullAction, [&]() { + setNull(true); + }); + nullAction->setShortcut(QKeySequence(tr("Alt+Del"))); + editContextMenu->addSeparator(); + editContextMenu->addAction(nullAction); - void keyPressEvent(QKeyEvent *evt) { + editContextMenu->exec(event->globalPos()); + delete editContextMenu; + } + + void keyPressEvent(QKeyEvent *evt) override + { // Alt+Del sets field to NULL if((evt->modifiers() & Qt::AltModifier) && (evt->key() == Qt::Key_Delete)) setNull(true); @@ -112,6 +115,9 @@ class EditDelegate: public QStyledItemDelegate { } }; +} + + AddRecordDialog::AddRecordDialog(DBBrowserDB& db, const sqlb::ObjectIdentifier& tableName, QWidget* parent, const std::vector& _pseudo_pk) : QDialog(parent), ui(new Ui::AddRecordDialog), @@ -183,23 +189,22 @@ void AddRecordDialog::populateFields() bool auto_increment = false; // Initialize fields, fks and pk differently depending on whether it's a table or a view. - const sqlb::ObjectPtr obj = pdb.getObjectByName(curTable); - if (obj->type() == sqlb::Object::Table) + const sqlb::TablePtr table = pdb.getTableByName(curTable); + fields = table->fields; + if (!table->isView()) { - sqlb::TablePtr m_table = pdb.getObjectByName(curTable); - fields = m_table->fields; - for(const sqlb::Field& f : fields) - fks.push_back(m_table->constraint({f.name()}, sqlb::Constraint::ForeignKeyConstraintType)); + std::transform(fields.begin(), fields.end(), std::back_inserter(fks), [table](const auto& f) { + return table->constraint({f.name()}, sqlb::Constraint::ForeignKeyConstraintType); + }); - const auto pk_constraint = m_table->primaryKey(); + const auto pk_constraint = table->primaryKey(); if(pk_constraint) { pk = pk_constraint->columnList(); auto_increment = pk_constraint->autoIncrement(); } } else { - sqlb::ViewPtr m_view = pdb.getObjectByName(curTable); - fields = m_view->fields; + // It's a view fks.resize(fields.size(), sqlb::ConstraintPtr(nullptr)); pk = pseudo_pk; } diff --git a/src/Application.cpp b/src/Application.cpp index be7b6a31d..25d9c70db 100644 --- a/src/Application.cpp +++ b/src/Application.cpp @@ -6,16 +6,104 @@ #include #include #include +#include +#include +#include +#include +#include #include "Application.h" #include "MainWindow.h" #include "RemoteNetwork.h" #include "Settings.h" #include "version.h" +#include "sqlitedb.h" + +class DB4SProxyStyle final : public QProxyStyle { +public: + DB4SProxyStyle(int toolBarIconSize, qreal dpi, QStyle *style) + : QProxyStyle(style), m_toolBarIconSize(static_cast(toolBarIconSize * dpi / 96)) + { +#ifdef Q_OS_WIN + m_smallIconSize = static_cast(11 * dpi / 96); + + QStyleOption so(QStyleOption::Version, QStyleOption::SO_MenuItem); + m_menuItemIconSize = style->pixelMetric(PM_SmallIconSize, &so); +#endif + } + + int pixelMetric(QStyle::PixelMetric metric, + const QStyleOption *option = nullptr, + const QWidget *widget = nullptr) const override + { + if (metric == PM_ToolBarIconSize) { + return m_toolBarIconSize; + } +#ifdef Q_OS_WIN + else if (metric == PM_SmallIconSize) { + // set maximum icon size for SmallIcon + + // Set default MenuIcon size + if (option && option->type == QStyleOption::SO_MenuItem) { + return m_menuItemIconSize; + } + + // if we don't return size before QDockWidgets are created, + // any of the widgets with custom stylesheet are rendered with huge float,close buttons + // see void TableBrowserDock::setFocusStyle + return m_smallIconSize; + } +#endif + return QProxyStyle::pixelMetric(metric, option, widget); + } + +private: + int m_toolBarIconSize; +#ifdef Q_OS_WIN + int m_menuItemIconSize; + int m_smallIconSize; +#endif +}; + +void printArgument(const QString& argument, const QString& description) +{ + const int fieldWidth = 20; + + // Format the usage message so translators do not have to do it themselves + if(argument.length() > fieldWidth) { + qWarning() << qPrintable(QString(" %1").arg(argument, -fieldWidth)); + qWarning() << qPrintable(QString(" %1%2").arg("", -fieldWidth).arg(description)); + } else { + qWarning() << qPrintable(QString(" %1%2").arg(argument, -fieldWidth).arg(description)); + } +} Application::Application(int& argc, char** argv) : QApplication(argc, argv) { + // Get 'DB4S_SETTINGS_FILE' environment variable + const auto env = qgetenv("DB4S_SETTINGS_FILE"); + + // If 'DB4S_SETTINGS_FILE' environment variable exists + if(!env.isEmpty()) + Settings::setUserSettingsFile(env); + + for(int i=1;i tableToBrowse; + std::vector csvToImport; QStringList sqlToExecute; bool readOnly = false; - m_dontShowMainWindow = false; + m_showMainWindow = true; for(int i=1;i|<%5>|%6]\n"). + arg(tr("Usage")).arg(QFileInfo(argv[0]).fileName()). + arg(tr("options")).arg(tr("database")).arg(tr("project")). + arg(tr("csv-file"))); + qWarning() << qPrintable(tr("Possible command line arguments:")); - qWarning() << qPrintable(tr(" -h, --help\t\tShow command line options")); - qWarning() << qPrintable(tr(" -q, --quit\t\tExit application after running scripts")); - qWarning() << qPrintable(tr(" -s, --sql [file]\tExecute this SQL file after opening the DB")); - qWarning() << qPrintable(tr(" -t, --table [table]\tBrowse this table after opening the DB")); - qWarning() << qPrintable(tr(" -R, --read-only\tOpen database in read-only mode")); - qWarning() << qPrintable(tr(" -o, --option [group/setting=value]\tRun application with this setting temporarily set to value")); - qWarning() << qPrintable(tr(" -O, --save-option [group/setting=value]\tRun application saving this value for this setting")); - qWarning() << qPrintable(tr(" -v, --version\t\tDisplay the current version")); - qWarning() << qPrintable(tr(" [file]\t\tOpen this SQLite database")); - m_dontShowMainWindow = true; + printArgument(QString("-h, --help"), + tr("Show command line options")); + printArgument(QString("-q, --quit"), + tr("Exit application after running scripts")); + printArgument(QString("-s, --sql <%1>").arg(tr("file")), + tr("Execute this SQL file after opening the DB")); + printArgument(QString("--import-csv <%1>").arg(tr("file")), + tr("Import this CSV file into the passed DB or into a new DB")); + printArgument(QString("-t, --table <%1>").arg(tr("table")), + tr("Browse this table, or use it as target of a data import")); + printArgument(QString("-R, --read-only"), + tr("Open database in read-only mode")); + printArgument(QString("-S, --settings <%1>").arg(tr("settings_file")), + tr("Run application based on this settings file")); + printArgument(QString("-o, --option <%1>/<%2>=<%3>").arg(tr("group")).arg(tr("settings")).arg(tr("value")), + tr("Run application with this setting temporarily set to value")); + printArgument(QString("-O, --save-option <%1>/<%2>=<%3>").arg(tr("group")).arg(tr("settings")).arg(tr("value")), + tr("Run application saving this value for this setting")); + printArgument(QString("-v, --version"), + tr("Display the current version")); + printArgument(QString("<%1>").arg(tr("database")), + tr("Open this SQLite database")); + printArgument(QString("<%1>").arg(tr("project")), + tr("Open this project file (*.sqbpro)")); + printArgument(QString("<%1>").arg(tr("csv-file")), + tr("Import this CSV file into an in-memory database")); + m_showMainWindow = false; } else if(arguments().at(i) == "-v" || arguments().at(i) == "--version") { - qWarning() << qPrintable(tr("This is DB Browser for SQLite version %1.").arg(versionString())); - m_dontShowMainWindow = true; + qWarning() << qPrintable(versionInformation()); + m_showMainWindow = false; } else if(arguments().at(i) == "-s" || arguments().at(i) == "--sql") { // Run SQL file: If file exists add it to list of scripts to execute if(++i >= arguments().size()) - qWarning() << qPrintable(tr("The -s/--sql option requires an argument")); + qWarning() << qPrintable(tr("The %1 option requires an argument").arg("-s/--sql")); else if(!QFile::exists(arguments().at(i))) qWarning() << qPrintable(tr("The file %1 does not exist").arg(arguments().at(i))); else sqlToExecute.append(arguments().at(i)); } else if(arguments().at(i) == "-t" || arguments().at(i) == "--table") { if(++i >= arguments().size()) - qWarning() << qPrintable(tr("The -t/--table option requires an argument")); + qWarning() << qPrintable(tr("The %1 option requires an argument").arg("-t/--table")); else tableToBrowse.push_back(arguments().at(i)); + } else if(arguments().at(i) == "--import-csv") { + if(++i >= arguments().size()) + qWarning() << qPrintable(tr("The %1 option requires an argument").arg("--import-csv")); + else if(!QFile::exists(arguments().at(i))) + qWarning() << qPrintable(tr("The file %1 does not exist").arg(arguments().at(i))); + else + csvToImport.push_back(arguments().at(i)); } else if(arguments().at(i) == "-q" || arguments().at(i) == "--quit") { - m_dontShowMainWindow = true; + m_showMainWindow = false; } else if(arguments().at(i) == "-R" || arguments().at(i) == "--read-only") { readOnly = true; + } else if(arguments().at(i) == "-S" || arguments().at(i) == "--settings") { + // This option has already been handled above + // For here, only print the error when no parameter value is given + if(++i >= arguments().size()) + qWarning() << qPrintable(tr("The -S/--settings option requires an argument. The option is ignored.")); } else if(arguments().at(i) == "-o" || arguments().at(i) == "--option" || arguments().at(i) == "-O" || arguments().at(i) == "--save-option") { const QString optionWarning = tr("The -o/--option and -O/--save-option options require an argument in the form group/setting=value"); @@ -141,7 +263,7 @@ Application::Application(int& argc, char** argv) : value = option.at(1).split(","); else value = option.at(1); - Settings::setValue(setting.at(0).toStdString(), setting.at(1).toStdString(), value, !saveToDisk); + Settings::setValue(setting.at(0).toStdString(), setting.at(1).toStdString(), value, saveToDisk); } } } @@ -154,11 +276,15 @@ Application::Application(int& argc, char** argv) : } } - if(m_dontShowMainWindow) { + if(!m_showMainWindow) { m_mainWindow = nullptr; return; } + // Set StyleProxy + QScreen *screen = primaryScreen(); + setStyle(new DB4SProxyStyle(18, screen != nullptr ? screen->logicalDotsPerInch() : 96, style())); + // Show main window m_mainWindow = new MainWindow(); m_mainWindow->show(); @@ -185,6 +311,15 @@ Application::Application(int& argc, char** argv) : // Jump to table if the -t/--table parameter was set for(const QString& t : tableToBrowse) m_mainWindow->switchToBrowseDataTab(sqlb::ObjectIdentifier("main", t.toStdString())); + if(!tableToBrowse.empty()) + m_mainWindow->refresh(); + } + } + if(!csvToImport.empty()) { + if(tableToBrowse.empty()) { + m_mainWindow->importCSVfiles(csvToImport); + } else { + m_mainWindow->importCSVfiles(csvToImport, tableToBrowse.front()); } } } @@ -220,6 +355,23 @@ QString Application::versionString() #endif } +QString Application::versionInformation() +{ + QString sqlite_version, sqlcipher_version; + DBBrowserDB::getSqliteVersion(sqlite_version, sqlcipher_version); + if(sqlcipher_version.isNull()) + sqlite_version = tr("SQLite Version ") + sqlite_version; + else + sqlite_version = tr("SQLCipher Version %1 (based on SQLite %2)").arg(sqlcipher_version, sqlite_version); + + return + tr("DB Browser for SQLite Version %1.").arg(versionString() + "\n\n" + + tr("Built for %1, running on %2").arg(QSysInfo::buildAbi(), QSysInfo::currentCpuArchitecture()) + "\n" + + tr("Qt Version %1").arg(QT_VERSION_STR) + "\n" + + sqlite_version + ); +} + void Application::reloadSettings() { // Network settings diff --git a/src/Application.h b/src/Application.h index bb1abeca6..fe7bdd09f 100644 --- a/src/Application.h +++ b/src/Application.h @@ -17,11 +17,14 @@ class Application : public QApplication explicit Application(int& argc, char** argv); ~Application() override; - bool dontShowMainWindow() const { return m_dontShowMainWindow; } + bool showMainWindow() const { return m_showMainWindow; } MainWindow* mainWindow() { return m_mainWindow; } + // DB4S version number as string static QString versionString(); + // Version of DB4S and dependencies as string + static QString versionInformation(); static void reloadSettings(); @@ -29,7 +32,7 @@ class Application : public QApplication bool event(QEvent* event) override; private: - bool m_dontShowMainWindow; + bool m_showMainWindow; MainWindow* m_mainWindow; QTranslator* m_translatorQt; QTranslator* m_translatorApp; diff --git a/src/CipherDialog.cpp b/src/CipherDialog.cpp index 6b0096195..7090e0cdb 100644 --- a/src/CipherDialog.cpp +++ b/src/CipherDialog.cpp @@ -79,10 +79,9 @@ CipherSettings CipherDialog::getCipherSettings() const void CipherDialog::checkInputFields() { + CipherSettings::KeyFormats keyFormat = CipherSettings::getKeyFormat(ui->comboKeyFormat->currentIndex()); if(sender() == ui->comboKeyFormat) { - CipherSettings::KeyFormats keyFormat = CipherSettings::getKeyFormat(ui->comboKeyFormat->currentIndex()); - if(keyFormat == CipherSettings::KeyFormats::Passphrase) { ui->editPassword->setValidator(nullptr); @@ -99,8 +98,14 @@ void CipherDialog::checkInputFields() } bool valid = true; - if(encryptMode) - valid = ui->editPassword->text() == ui->editPassword2->text(); + if(encryptMode) { + const QString password1 = ui->editPassword->text(); + valid = password1 == ui->editPassword2->text(); + + if (keyFormat == CipherSettings::KeyFormats::RawKey) { + valid &= password1.isEmpty() || password1.length() > 2; + } + } ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(valid); } diff --git a/src/CipherSettings.cpp b/src/CipherSettings.cpp index f7e321555..1a25ae123 100644 --- a/src/CipherSettings.cpp +++ b/src/CipherSettings.cpp @@ -16,7 +16,11 @@ std::string CipherSettings::getPassword() const return sqlb::escapeString(password); } else { // Remove the '0x' part at the beginning - return "\"x'" + password.substr(2) + "'\""; + if (password.length() > 2) { + return "\"x'" + password.substr(2) + "'\""; + } + + return "''"; } } diff --git a/src/ColumnDisplayFormatDialog.cpp b/src/ColumnDisplayFormatDialog.cpp index 66699a776..3ba019ff4 100644 --- a/src/ColumnDisplayFormatDialog.cpp +++ b/src/ColumnDisplayFormatDialog.cpp @@ -36,38 +36,51 @@ ColumnDisplayFormatDialog::ColumnDisplayFormatDialog(DBBrowserDB& db, const sqlb ui->comboDisplayFormat->addItem(tr("Upper case"), "upper"); ui->comboDisplayFormat->insertSeparator(ui->comboDisplayFormat->count()); ui->comboDisplayFormat->addItem(tr("Binary GUID to text"), "guid"); + ui->comboDisplayFormat->addItem(tr("SpatiaLite Geometry to SVG"), "geomToSVG"); ui->comboDisplayFormat->insertSeparator(ui->comboDisplayFormat->count()); ui->comboDisplayFormat->addItem(tr("Custom"), "custom"); ui->labelDisplayFormat->setText(ui->labelDisplayFormat->text().arg(column_name)); - formatFunctions["decimal"] = "printf('%d', " + sqlb::escapeIdentifier(column_name) + ")"; - formatFunctions["exponent"] = "printf('%e', " + sqlb::escapeIdentifier(column_name) + ")"; - formatFunctions["hexblob"] = "hex(" + sqlb::escapeIdentifier(column_name) + ")"; - formatFunctions["hex"] = "printf('0x%x', " + sqlb::escapeIdentifier(column_name) + ")"; - formatFunctions["octal"] = "printf('%o', " + sqlb::escapeIdentifier(column_name) + ")"; - formatFunctions["round"] = "round(" + sqlb::escapeIdentifier(column_name) + ")"; - formatFunctions["appleDate"] = "datetime('2001-01-01', " + sqlb::escapeIdentifier(column_name) + " || ' seconds')"; - formatFunctions["javaEpoch"] = "strftime('%Y-%m-%d %H:%M:%S.', " + sqlb::escapeIdentifier(column_name) + - "/1000, 'unixepoch') || (" + sqlb::escapeIdentifier(column_name) + "%1000)"; - formatFunctions["dotNetTicks"] = "datetime(" + sqlb::escapeIdentifier(column_name) + " / 10000000 - 62135596800, 'unixepoch')"; - formatFunctions["julian"] = "datetime(" + sqlb::escapeIdentifier(column_name) + ")"; - formatFunctions["epoch"] = "datetime(" + sqlb::escapeIdentifier(column_name) + ", 'unixepoch')"; - formatFunctions["epochLocalTime"] = "datetime(" + sqlb::escapeIdentifier(column_name) + ", 'unixepoch', 'localtime')"; - formatFunctions["winDate"] = "datetime('1899-12-30', " + sqlb::escapeIdentifier(column_name) + " || ' days')"; - formatFunctions["ddmmyyyyDate"] = "strftime('%d/%m/%Y', " + sqlb::escapeIdentifier(column_name) + ")"; - formatFunctions["lower"] = "lower(" + sqlb::escapeIdentifier(column_name) + ")"; - formatFunctions["upper"] = "upper(" + sqlb::escapeIdentifier(column_name) + ")"; - formatFunctions["guid"] = "substr(hex(" + sqlb::escapeIdentifier(column_name) + "), 7, 2) || " + - "substr(hex(" + sqlb::escapeIdentifier(column_name) + "), 5, 2) || " + - "substr(hex(" + sqlb::escapeIdentifier(column_name) + "), 3, 2) || " + - "substr(hex(" + sqlb::escapeIdentifier(column_name) + "), 1, 2) || '-' || " + - "substr(hex(" + sqlb::escapeIdentifier(column_name) + "), 11, 2) || " + - "substr(hex(" + sqlb::escapeIdentifier(column_name) + "), 9, 2) || '-' || " + - "substr(hex(" + sqlb::escapeIdentifier(column_name) + "), 15, 2) || " + - "substr(hex(" + sqlb::escapeIdentifier(column_name) + "), 13, 2) || '-' || " + - "substr(hex(" + sqlb::escapeIdentifier(column_name) + "), 17, 4) || '-' || " + - "substr(hex(" + sqlb::escapeIdentifier(column_name) + "), 21, 12)"; + const QString e_column_name = sqlb::escapeIdentifier(column_name); + + formatFunctions["decimal"] = "printf('%d', " + e_column_name + ")"; + formatFunctions["exponent"] = "printf('%e', " + e_column_name + ")"; + formatFunctions["hexblob"] = "hex(" + e_column_name + ")"; + formatFunctions["hex"] = "printf('0x%x', " + e_column_name + ")"; + formatFunctions["octal"] = "printf('%o', " + e_column_name + ")"; + formatFunctions["round"] = "round(" + e_column_name + ")"; + formatFunctions["appleDate"] = "datetime('2001-01-01', " + e_column_name + " || ' seconds')"; + formatFunctions["javaEpoch"] = "strftime('%Y-%m-%d %H:%M:%S.', " + e_column_name + + "/1000, 'unixepoch') || (" + e_column_name + "%1000)"; + formatFunctions["dotNetTicks"] = "datetime(" + e_column_name + " / 10000000 - 62135596800, 'unixepoch')"; + formatFunctions["julian"] = "datetime(" + e_column_name + ")"; + formatFunctions["epoch"] = "datetime(" + e_column_name + ", 'unixepoch')"; + formatFunctions["epochLocalTime"] = "datetime(" + e_column_name + ", 'unixepoch', 'localtime')"; + formatFunctions["winDate"] = "datetime('1899-12-30', " + e_column_name + " || ' days')"; + formatFunctions["ddmmyyyyDate"] = "strftime('%d/%m/%Y', " + e_column_name + ")"; + formatFunctions["lower"] = "lower(" + e_column_name + ")"; + formatFunctions["upper"] = "upper(" + e_column_name + ")"; + formatFunctions["guid"] = "substr(hex(" + e_column_name + "), 7, 2) || " + + "substr(hex(" + e_column_name + "), 5, 2) || " + + "substr(hex(" + e_column_name + "), 3, 2) || " + + "substr(hex(" + e_column_name + "), 1, 2) || '-' || " + + "substr(hex(" + e_column_name + "), 11, 2) || " + + "substr(hex(" + e_column_name + "), 9, 2) || '-' || " + + "substr(hex(" + e_column_name + "), 15, 2) || " + + "substr(hex(" + e_column_name + "), 13, 2) || '-' || " + + "substr(hex(" + e_column_name + "), 17, 4) || '-' || " + + "substr(hex(" + e_column_name + "), 21, 12)"; + formatFunctions["geomToSVG"] = QString( +R"('' +|| '' +|| '')").arg(e_column_name); // Set the current format, if it's empty set the default format if(current_format.isEmpty()) @@ -92,6 +105,11 @@ ColumnDisplayFormatDialog::~ColumnDisplayFormatDialog() delete ui; } +void ColumnDisplayFormatDialog::showEvent(QShowEvent *) +{ + adjustSize(); +} + QString ColumnDisplayFormatDialog::selectedDisplayFormat() const { if(ui->comboDisplayFormat->currentData().toString() == "default") diff --git a/src/ColumnDisplayFormatDialog.h b/src/ColumnDisplayFormatDialog.h index 136061295..5ddd706d9 100644 --- a/src/ColumnDisplayFormatDialog.h +++ b/src/ColumnDisplayFormatDialog.h @@ -25,6 +25,9 @@ class ColumnDisplayFormatDialog : public QDialog QString selectedDisplayFormat() const; +protected: + void showEvent(QShowEvent *) override; + private slots: void updateSqlCode(); void accept() override; diff --git a/src/CondFormat.cpp b/src/CondFormat.cpp index 059702665..12797cfde 100644 --- a/src/CondFormat.cpp +++ b/src/CondFormat.cpp @@ -99,11 +99,11 @@ std::string CondFormat::filterToSqlCondition(const QString& value, const QString op = value.left(2); val = value.mid(2); } - } else if(value.left(1) == ">" || value.left(1) == "<") { + } else if(value.at(0) == '>' || value.at(0) == '<') { value.midRef(1).toFloat(&numeric); op = value.at(0); val = value.mid(1); - } else if(value.left(1) == "=") { + } else if(value.at(0) == '=') { val = value.mid(1); // Check if value to compare with is 'NULL' @@ -117,7 +117,7 @@ std::string CondFormat::filterToSqlCondition(const QString& value, const QString op = "IS"; numeric = true; } - } else if(value.left(1) == "/" && value.right(1) == "/" && value.size() > 2) { + } else if(value.at(0) == '/' && value.at(value.size()-1) == '/' && value.size() > 2) { val = value.mid(1, value.length() - 2); op = "REGEXP"; numeric = false; diff --git a/src/CondFormatManager.cpp b/src/CondFormatManager.cpp index 4b47c77ea..3f568d694 100644 --- a/src/CondFormatManager.cpp +++ b/src/CondFormatManager.cpp @@ -123,6 +123,10 @@ void CondFormatManager::addItem(const CondFormat& aCondFormat) newItem->setText(ColumnFilter, aCondFormat.filter()); ui->tableCondFormats->insertTopLevelItem(i, newItem); + + for(int col = ColumnForeground; col < ColumnFilter; ++col) { + ui->tableCondFormats->resizeColumnToContents(col); + } } void CondFormatManager::removeItem() diff --git a/src/CondFormatManager.ui b/src/CondFormatManager.ui index 41ead4de7..aeec94f52 100644 --- a/src/CondFormatManager.ui +++ b/src/CondFormatManager.ui @@ -188,7 +188,7 @@ - :/icons/text_bold.png:/icons/text_bold.png + :/icons/text_bold:/icons/text_bold @@ -200,7 +200,7 @@ - :/icons/text_italic.png:/icons/text_italic.png + :/icons/text_italic:/icons/text_italic @@ -212,7 +212,7 @@ - :/icons/text_underline.png:/icons/text_underline.png + :/icons/text_underline:/icons/text_underline diff --git a/src/Data.cpp b/src/Data.cpp index 3429bd83c..30e344d28 100644 --- a/src/Data.cpp +++ b/src/Data.cpp @@ -4,7 +4,9 @@ #include #include #include +#include #include +#include #include @@ -46,8 +48,27 @@ bool isTextOnly(QByteArray data, const QString& encoding, bool quickTest) } else { // Convert to Unicode if necessary data = decodeString(data, encoding); + QString text (data); + bool isPrintable = true; + for(QChar character : text) { + if(character.isNonCharacter() || (character.category() == QChar::Other_Control && !character.isSpace())) { + isPrintable = false; + break; + } + } // Perform check - return QString(data).toUtf8() == data; + return isPrintable && text.toUtf8() == data; + } +} + +bool isTextOnlyFile(const QString& fileName) +{ + QFile file(fileName); + if (file.open(QFile::ReadOnly)) { + QByteArray data = file.read(512); + return !data.isEmpty() && isTextOnly(data); + } else { + return false; } } @@ -155,3 +176,59 @@ QString isoDateTimeStringToLocalDateTimeString(const QString& date_string) { return QLocale::system().toString(QDateTime::fromString(date_string, Qt::ISODate).toLocalTime(), QLocale::ShortFormat); } + +void removeCommentsFromQuery(QString& query) +{ + // Store the current size so we can easily check later if the string has been changed + int oldSize = query.size(); + + // This implements a simple state machine to strip the query from comments + QChar quote; + for(int i=0;i #include #include -#include -#include DbStructureModel::DbStructureModel(DBBrowserDB& db, QObject* parent) : QAbstractItemModel(parent), @@ -225,16 +223,16 @@ QMimeData* DbStructureModel::mimeData(const QModelIndexList& indices) const // For names, export a (qualified) (escaped) identifier of the item for statement composition in SQL editor. if(objectType == "field") - namesData.append(getNameForDropping(item->text(ColumnSchema), item->parent()->text(ColumnName), item->text(ColumnName))); + namesData.append(getNameForDropping(item->text(ColumnSchema), item->parent()->text(ColumnName), item->text(ColumnName)).toUtf8()); else if(objectType == "database") - namesData.append(getNameForDropping(item->text(ColumnName), "", "")); + namesData.append(getNameForDropping(item->text(ColumnName), "", "").toUtf8()); else if(!objectType.isEmpty()) - namesData.append(getNameForDropping(item->text(ColumnSchema), item->text(ColumnName), "")); + namesData.append(getNameForDropping(item->text(ColumnSchema), item->text(ColumnName), "").toUtf8()); if(objectType != "field" && index.column() == ColumnSQL) { // Add the SQL code used to create the object - sqlData.append(data(index, Qt::DisplayRole).toString() + ";\n"); + sqlData.append(data(index, Qt::DisplayRole).toByteArray() + ";\n"); // If it is a table also add the content if(objectType == "table") @@ -254,7 +252,7 @@ QMimeData* DbStructureModel::mimeData(const QModelIndexList& indices) const insertStatement += QString("'%1',").arg(tableModel.data(tableModel.index(i, j), Qt::EditRole).toString()); insertStatement.chop(1); insertStatement += ");\n"; - sqlData.append(insertStatement); + sqlData.append(insertStatement.toUtf8()); } } } @@ -304,108 +302,78 @@ bool DbStructureModel::dropMimeData(const QMimeData* data, Qt::DropAction action } } -static long calc_number_of_objects_by_type(const objectMap& objmap, const std::string& type) -{ - auto objects = objmap.equal_range(type); - if(objects.first == objmap.end()) - return 0; - else - return std::distance(objects.first, objects.second); -} - void DbStructureModel::buildTree(QTreeWidgetItem* parent, const std::string& schema) { - // Build a map from object type to tree node to simplify finding the correct tree node later - std::unordered_map typeToParentItem; - // Get object map for the given schema - objectMap objmap = m_db.schemata[schema]; + const objectMap& objmap = m_db.schemata.at(schema); // Prepare tree + auto num_tables = std::count_if(objmap.tables.begin(), objmap.tables.end(), [](const auto& t) { return !t.second->isView(); }); QTreeWidgetItem* itemTables = new QTreeWidgetItem(parent); itemTables->setIcon(ColumnName, IconCache::get("table")); - itemTables->setText(ColumnName, tr("Tables (%1)").arg(calc_number_of_objects_by_type(objmap, "table"))); - typeToParentItem.insert({"table", itemTables}); + itemTables->setText(ColumnName, tr("Tables (%1)").arg(num_tables)); QTreeWidgetItem* itemIndices = new QTreeWidgetItem(parent); itemIndices->setIcon(ColumnName, IconCache::get("index")); - itemIndices->setText(ColumnName, tr("Indices (%1)").arg(calc_number_of_objects_by_type(objmap, "index"))); - typeToParentItem.insert({"index", itemIndices}); + itemIndices->setText(ColumnName, tr("Indices (%1)").arg(objmap.indices.size())); + auto num_views = std::count_if(objmap.tables.begin(), objmap.tables.end(), [](const auto& t) { return t.second->isView(); }); QTreeWidgetItem* itemViews = new QTreeWidgetItem(parent); itemViews->setIcon(ColumnName, IconCache::get("view")); - itemViews->setText(ColumnName, tr("Views (%1)").arg(calc_number_of_objects_by_type(objmap, "view"))); - typeToParentItem.insert({"view", itemViews}); + itemViews->setText(ColumnName, tr("Views (%1)").arg(num_views)); QTreeWidgetItem* itemTriggers = new QTreeWidgetItem(parent); itemTriggers->setIcon(ColumnName, IconCache::get("trigger")); - itemTriggers->setText(ColumnName, tr("Triggers (%1)").arg(calc_number_of_objects_by_type(objmap, "trigger"))); - typeToParentItem.insert({"trigger", itemTriggers}); - - // Get all database objects and sort them by their name. - // This needs to be a multimap because SQLite allows views and triggers with the same name which means that names can appear twice. - std::multimap dbobjs; - for(const auto& it : objmap) - dbobjs.insert({it.second->name(), it.second}); + itemTriggers->setText(ColumnName, tr("Triggers (%1)").arg(objmap.triggers.size())); - // Add the database objects to the tree nodes - for(const auto& obj : dbobjs) + // Add tables and views + for(const auto& obj : objmap.tables) { - sqlb::ObjectPtr it = obj.second; + QTreeWidgetItem* item = addNode(schema, obj.second->name(), obj.second->isView() ? "view" : "table", obj.second->originalSql(), obj.second->isView() ? itemViews : itemTables); - // Object node - QTreeWidgetItem* item = addNode(typeToParentItem.at(sqlb::Object::typeToString(it->type())), it, schema); + // Add an extra node for the browsable section + addNode(schema, obj.second->name(), obj.second->isView() ? "view" : "table", obj.second->originalSql(), browsablesRootItem); - // If it is a table or view add the field nodes, add an extra node for the browsable section - if(it->type() == sqlb::Object::Types::Table || it->type() == sqlb::Object::Types::View) - addNode(browsablesRootItem, it, schema); + sqlb::StringVector pk_columns; + if(!obj.second->isView()) + { + const auto pk = obj.second->primaryKey(); + if(pk) + pk_columns = pk->columnList(); + } - // Add field nodes if there are any - sqlb::FieldInfoList fieldList = it->fieldInformation(); - if(!fieldList.empty()) + for(const auto& field : obj.second->fields) { - sqlb::StringVector pk_columns; - if(it->type() == sqlb::Object::Types::Table) - { - const auto pk = std::dynamic_pointer_cast(it)->primaryKey(); - if(pk) - pk_columns = pk->columnList(); - } + bool isPK = contains(pk_columns, field.name()); + bool isFK = obj.second->constraint({field.name()}, sqlb::Constraint::ForeignKeyConstraintType) != nullptr; - for(const sqlb::FieldInfo& field : fieldList) - { - QTreeWidgetItem *fldItem = new QTreeWidgetItem(item); - bool isFK = false; - if(it->type() == sqlb::Object::Types::Table) - isFK = std::dynamic_pointer_cast(it)->constraint({field.name}, sqlb::Constraint::ForeignKeyConstraintType) != nullptr; - - fldItem->setText(ColumnName, QString::fromStdString(field.name)); - fldItem->setText(ColumnObjectType, "field"); - fldItem->setText(ColumnDataType, QString::fromStdString(field.type)); - fldItem->setText(ColumnSQL, QString::fromStdString(field.sql)); - fldItem->setText(ColumnSchema, QString::fromStdString(schema)); - if(contains(pk_columns, field.name)) - fldItem->setIcon(ColumnName, IconCache::get("field_key")); - else if(isFK) - fldItem->setIcon(ColumnName, IconCache::get("field_fk")); - else - fldItem->setIcon(ColumnName, IconCache::get("field")); - } + addNode(schema, field.name(), "field", field.toString(" ", " "), item, field.type(), isPK ? "_key" : (isFK ? "_fk" : std::string{})); } } + + // Add indices + for(const auto& obj : objmap.indices) + { + QTreeWidgetItem* item = addNode(schema, obj.second->name(), "index", obj.second->originalSql(), itemIndices); + + for(const auto& field : obj.second->fields) + addNode(schema, field.name(), "field", field.toString(" ", " "), item, field.order()); + } + + // Add triggers + for(const auto& obj : objmap.triggers) + addNode(schema, obj.second->name(), "trigger", obj.second->originalSql(), itemTriggers); } -QTreeWidgetItem* DbStructureModel::addNode(QTreeWidgetItem* parent, const sqlb::ObjectPtr& object, const std::string& schema) +QTreeWidgetItem* DbStructureModel::addNode(const std::string& schema, const std::string& name, const std::string& object_type, const std::string& sql, QTreeWidgetItem* parent_item, const std::string& data_type, const std::string& icon_suffix) { - std::string type = sqlb::Object::typeToString(object->type()); - - QTreeWidgetItem *item = new QTreeWidgetItem(parent); - item->setIcon(ColumnName, IconCache::get(type)); - item->setText(ColumnName, QString::fromStdString(object->name())); - item->setText(ColumnObjectType, QString::fromStdString(type)); - item->setText(ColumnSQL, QString::fromStdString(object->originalSql())); + QTreeWidgetItem* item = new QTreeWidgetItem(parent_item); + item->setText(ColumnName, QString::fromStdString(name)); + item->setText(ColumnObjectType, QString::fromStdString(object_type)); + item->setText(ColumnDataType, QString::fromStdString(data_type)); + item->setText(ColumnSQL, QString::fromStdString(sql)); item->setText(ColumnSchema, QString::fromStdString(schema)); - + item->setIcon(ColumnName, IconCache::get(object_type + icon_suffix)); return item; } diff --git a/src/DbStructureModel.h b/src/DbStructureModel.h index c5a6e4d3f..864334d8a 100644 --- a/src/DbStructureModel.h +++ b/src/DbStructureModel.h @@ -6,7 +6,6 @@ class DBBrowserDB; class QTreeWidgetItem; -namespace sqlb { class Object; using ObjectPtr = std::shared_ptr; } class DbStructureModel : public QAbstractItemModel { @@ -50,7 +49,7 @@ public slots: bool m_dropEnquotedNames; void buildTree(QTreeWidgetItem* parent, const std::string& schema); - QTreeWidgetItem* addNode(QTreeWidgetItem* parent, const sqlb::ObjectPtr& object, const std::string& schema); + QTreeWidgetItem* addNode(const std::string& schema, const std::string& name, const std::string& object_type, const std::string& sql, QTreeWidgetItem* parent_item, const std::string& data_type = {}, const std::string& icon_suffix = {}); QString getNameForDropping(const QString& domain, const QString& object, const QString& field) const; }; diff --git a/src/EditDialog.cpp b/src/EditDialog.cpp index c0fe45713..b226ce0f4 100644 --- a/src/EditDialog.cpp +++ b/src/EditDialog.cpp @@ -1,6 +1,5 @@ #include "EditDialog.h" #include "ui_EditDialog.h" -#include "sqlitedb.h" #include "Settings.h" #include "qhexedit.h" #include "docktextedit.h" @@ -113,6 +112,22 @@ EditDialog::~EditDialog() void EditDialog::setCurrentIndex(const QModelIndex& idx) { + if (m_currentIndex != QPersistentModelIndex(idx) && ui->buttonApply->isEnabled() && + (sciEdit->isModified() || ui->qtEdit->document()->isModified() || hexEdit->isModified())) { + + QMessageBox::StandardButton reply = QMessageBox::question( + this, + tr("Unsaved data in the cell editor"), + tr("The cell editor contains data not yet applied to the database.\n" + "Do you want to apply the edited data?"), + QMessageBox::Apply | QMessageBox::Discard); + + if (reply == QMessageBox::Apply) + accept(); + } + + setDisabled(!idx.isValid()); + m_currentIndex = QPersistentModelIndex(idx); QByteArray bArrData = idx.data(Qt::EditRole).toByteArray(); @@ -120,6 +135,8 @@ void EditDialog::setCurrentIndex(const QModelIndex& idx) updateCellInfoAndMode(bArrData); ui->buttonApply->setDisabled(true); + sciEdit->setModified(false); + ui->qtEdit->document()->setModified(false); } void EditDialog::showEvent(QShowEvent*) @@ -163,6 +180,7 @@ void EditDialog::loadData(const QByteArray& bArrdata) case TextEditor: case JsonEditor: case XmlEditor: + case SqlEvaluator: // The JSON widget buffer is now the main data source dataSource = SciBuffer; @@ -216,6 +234,7 @@ void EditDialog::loadData(const QByteArray& bArrdata) case TextEditor: case JsonEditor: case XmlEditor: + case SqlEvaluator: setDataInBuffer(bArrdata, SciBuffer); break; case RtlTextEditor: @@ -247,8 +266,9 @@ void EditDialog::loadData(const QByteArray& bArrdata) // Update the display if in text edit or image viewer mode switch (editMode) { case TextEditor: - case XmlEditor: case JsonEditor: + case XmlEditor: + case SqlEvaluator: // Disable text editing, and use a warning message as the contents sciEdit->setText(tr("Image data can't be viewed in this mode.") % '\n' % tr("Try switching to Image or Binary mode.")); @@ -279,7 +299,7 @@ void EditDialog::loadData(const QByteArray& bArrdata) case TextEditor: case JsonEditor: case XmlEditor: - + case SqlEvaluator: setDataInBuffer(bArrdata, SciBuffer); break; @@ -316,6 +336,7 @@ void EditDialog::loadData(const QByteArray& bArrdata) case TextEditor: case JsonEditor: case XmlEditor: + case SqlEvaluator: // Disable text editing, and use a warning message as the contents sciEdit->setText(QString(tr("Binary data can't be viewed in this mode.") % '\n' % tr("Try switching to Binary mode."))); @@ -367,6 +388,7 @@ void EditDialog::importData(bool asLink) switch (mode) { case TextEditor: case RtlTextEditor: + case SqlEvaluator: selectedFilter = FILE_FILTER_TXT; break; case HexEditor: @@ -432,7 +454,7 @@ void EditDialog::exportData() break; case RtlText: case Text: - // Include the XML case on the text data type, since XML detection is not very sofisticated. + // Include the XML case on the text data type, since XML detection is not very sophisticated. if (ui->comboMode->currentIndex() == XmlEditor) filters << FILE_FILTER_XML << FILE_FILTER_TXT; @@ -620,6 +642,9 @@ void EditDialog::accept() emit recordTextUpdated(m_currentIndex, newData.toUtf8(), false); } break; + case DockTextEdit::SQL: + emit evaluateText(m_currentIndex, sciEdit->text().toStdString()); + break; } break; case HexBuffer: @@ -632,7 +657,6 @@ void EditDialog::accept() } if (!newTextData.isEmpty()) { - QString oldData = m_currentIndex.data(Qt::EditRole).toString(); // Check first for null case, otherwise empty strings cannot overwrite NULL values if ((m_currentIndex.data(Qt::EditRole).isNull() && dataType != Null) || oldData != newTextData) @@ -675,6 +699,7 @@ void EditDialog::setDataInBuffer(const QByteArray& bArrdata, DataSources source) case SciBuffer: switch (sciEdit->language()) { case DockTextEdit::PlainText: + case DockTextEdit::SQL: { // Load the text into the text editor, remove BOM first if there is one QByteArray dataWithoutBom = bArrdata; @@ -756,6 +781,10 @@ void EditDialog::editModeChanged(int newMode) ui->actionIndent->setEnabled(newMode == JsonEditor || newMode == XmlEditor); setStackCurrentIndex(newMode); + // Change focus from the mode combo to the editor to start typing. + if (ui->comboMode->hasFocus()) + setFocus(); + // * If the dataSource is the text buffer, the data is always text * switch (dataSource) { case QtBuffer: @@ -767,7 +796,7 @@ void EditDialog::editModeChanged(int newMode) case TextEditor: // Switching to one of the Scintilla editor modes case JsonEditor: case XmlEditor: - + case SqlEvaluator: setDataInBuffer(ui->qtEdit->toPlainText().toUtf8(), SciBuffer); break; @@ -820,9 +849,10 @@ void EditDialog::editModeChanged(int newMode) } break; - case TextEditor: // Switching to the text editor - case JsonEditor: // Switching to the JSON editor - case XmlEditor: // Switching to the XML editor + case TextEditor: + case JsonEditor: + case XmlEditor: + case SqlEvaluator: // The text is already in the Sci buffer but we need to perform the necessary formatting. setDataInBuffer(sciEdit->text().toUtf8(), SciBuffer); @@ -981,6 +1011,7 @@ void EditDialog::switchEditorMode(bool autoSwitchForType) // Switch automatically the editing mode according to the detected data. switch (dataType) { case Image: + case SVG: ui->comboMode->setCurrentIndex(ImageEditor); break; case Binary: @@ -996,7 +1027,6 @@ void EditDialog::switchEditorMode(bool autoSwitchForType) case JSON: ui->comboMode->setCurrentIndex(JsonEditor); break; - case SVG: case XML: ui->comboMode->setCurrentIndex(XmlEditor); break; @@ -1117,6 +1147,11 @@ void EditDialog::setStackCurrentIndex(int editMode) ui->editorStack->setCurrentIndex(TextEditor); sciEdit->setLanguage(DockTextEdit::XML); break; + case SqlEvaluator: + // Scintilla case: switch to the single Scintilla editor and set language + ui->editorStack->setCurrentIndex(TextEditor); + sciEdit->setLanguage(DockTextEdit::SQL); + break; } } @@ -1131,7 +1166,7 @@ void EditDialog::openPrintDialog() QPrinter printer; QPrintPreviewDialog *dialog = new QPrintPreviewDialog(&printer); - connect(dialog, &QPrintPreviewDialog::paintRequested, [this](QPrinter *previewPrinter) { + connect(dialog, &QPrintPreviewDialog::paintRequested, this, [this](QPrinter *previewPrinter) { QTextDocument document; switch (dataSource) { case SciBuffer: @@ -1202,37 +1237,46 @@ void EditDialog::openDataWithExternal() case Null: return; } - QTemporaryFile file (QDir::tempPath() + QString("/DB4S-XXXXXX") + extension); + QTemporaryFile* file = new QTemporaryFile (QDir::tempPath() + QString("/DB4S-XXXXXX") + extension); - if(file.open()) - { + if(!file->open()) { + QMessageBox::warning(this, qApp->applicationName(), + tr("Couldn't save file: %1.").arg(file->fileName())); + delete file; + } else { switch (dataSource) { case HexBuffer: - file.write(hexEdit->data()); + file->write(hexEdit->data()); break; case SciBuffer: - file.write(sciEdit->text().toUtf8()); + file->write(sciEdit->text().toUtf8()); break; case QtBuffer: - file.write(ui->qtEdit->toPlainText().toUtf8()); + file->write(ui->qtEdit->toPlainText().toUtf8()); break; } - file.close(); - - emit requestUrlOrFileOpen(file.fileName()); + // We don't want the file to be automatically removed by Qt when destroyed. + file->setAutoRemove(false); + // But we don't want Qt to keep the file open (and locked in Windows), + // and the only way is to destroy the object. + QString fileName = file->fileName(); + delete file; + emit requestUrlOrFileOpen(fileName); QMessageBox::StandardButton reply = QMessageBox::information (nullptr, QApplication::applicationName(), tr("The data has been saved to a temporary file and has been opened with the default application. " - "You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes."), + "You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes."), QMessageBox::Apply | QMessageBox::Cancel); - QFile readFile(file.fileName()); + QFile readFile(fileName); if(reply == QMessageBox::Apply && readFile.open(QIODevice::ReadOnly)){ QByteArray d = readFile.readAll(); loadData(d); readFile.close(); + accept(); } + readFile.remove(); } } diff --git a/src/EditDialog.h b/src/EditDialog.h index 53c972c0b..9c7a13f19 100644 --- a/src/EditDialog.h +++ b/src/EditDialog.h @@ -51,6 +51,7 @@ private slots: signals: void recordTextUpdated(const QPersistentModelIndex& idx, const QByteArray& bArrdata, bool isBlob); + void evaluateText(const QPersistentModelIndex& idx, const std::string& text); void requestUrlOrFileOpen(const QString& urlString); private: @@ -84,7 +85,7 @@ private slots: }; // Edit modes and editor stack (this must be aligned with the UI). - // Note that text modes (plain, JSON and XML) share the Scintilla widget, + // Note that text modes (plain, JSON, XML and SQL evaluator) share the Scintilla widget, // Consequently the editor stack range is TextEditor..ImageViewer. enum EditModes { // Modes with their own widget in the stack: @@ -94,7 +95,8 @@ private slots: ImageEditor = 3, // Modes in the Scintilla editor: JsonEditor = 4, - XmlEditor = 5 + XmlEditor = 5, + SqlEvaluator = 6 }; int checkDataType(const QByteArray& bArrdata) const; diff --git a/src/EditDialog.ui b/src/EditDialog.ui index c09116c5d..0ee996921 100644 --- a/src/EditDialog.ui +++ b/src/EditDialog.ui @@ -88,6 +88,11 @@ XML + + + Evaluation + + @@ -107,7 +112,7 @@ :/icons/keyword - :/icons/cog_go.png:/icons/keyword + :/icons/cog_go:/icons/keyword true @@ -153,11 +158,16 @@ The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. -Errors are indicated with a red squiggle underline. +Errors are indicated with a red squiggle underline. + +In the Evaluation mode, entered SQLite expressions are evaluated and the result applied to the cell. + + 0 + 0 diff --git a/src/EditIndexDialog.cpp b/src/EditIndexDialog.cpp index d8449b715..c627d22be 100644 --- a/src/EditIndexDialog.cpp +++ b/src/EditIndexDialog.cpp @@ -25,20 +25,18 @@ EditIndexDialog::EditIndexDialog(DBBrowserDB& db, const sqlb::ObjectIdentifier& { for(const auto& it : pdb.schemata) { - auto tables = it.second.equal_range("table"); - for(auto jt=tables.first;jt!=tables.second;++jt) + for(const auto& jt : it.second.tables) { // Only show the schema name for non-main schemata - sqlb::ObjectIdentifier obj(it.first, jt->second->name()); + sqlb::ObjectIdentifier obj(it.first, jt.first); dbobjs.insert({obj.toDisplayString(), obj}); } } } else { // If this is an existing index, only offer tables of the current database schema - auto tables = pdb.schemata[curIndex.schema()].equal_range("table"); - for(auto it=tables.first;it!=tables.second;++it) + for(const auto& it : pdb.schemata[curIndex.schema()].tables) { // Only show the schema name for non-main schemata - sqlb::ObjectIdentifier obj(curIndex.schema(), it->second->name()); + sqlb::ObjectIdentifier obj(curIndex.schema(), it.first); dbobjs.insert({obj.toDisplayString(), obj}); } } @@ -54,7 +52,7 @@ EditIndexDialog::EditIndexDialog(DBBrowserDB& db, const sqlb::ObjectIdentifier& if(!newIndex) { // Load the current layout and fill in the dialog fields - index = *(pdb.getObjectByName(curIndex)); + index = *pdb.getIndexByName(curIndex); ui->editIndexName->blockSignals(true); ui->editIndexName->setText(QString::fromStdString(index.name())); @@ -75,7 +73,7 @@ EditIndexDialog::EditIndexDialog(DBBrowserDB& db, const sqlb::ObjectIdentifier& } // Add event handler for index column name changes. These are only allowed for expression columns, though. - connect(ui->tableIndexColumns, &QTableWidget::itemChanged, + connect(ui->tableIndexColumns, &QTableWidget::itemChanged, this, [=](QTableWidgetItem* item) { index.fields[static_cast(item->row())].setName(item->text().toStdString()); @@ -114,26 +112,25 @@ void EditIndexDialog::tableChanged(const QString& new_table, bool initialLoad) void EditIndexDialog::updateColumnLists() { // Fill the table column list - sqlb::TablePtr table = pdb.getObjectByName(sqlb::ObjectIdentifier(ui->comboTableName->currentData().toString().toStdString())); + sqlb::TablePtr table = pdb.getTableByName(sqlb::ObjectIdentifier(ui->comboTableName->currentData().toString().toStdString())); if(!table) return; - sqlb::FieldInfoList tableFields = table->fieldInformation(); - ui->tableTableColumns->setRowCount(static_cast(tableFields.size())); + ui->tableTableColumns->setRowCount(static_cast(table->fields.size())); int tableRows = 0; - for(size_t i=0;ifields) { // When we're doing the initial loading and this field already is in the index to edit, then don't add it to the // list of table columns. It will be added to the list of index columns in the next step. When this is not the initial // loading, the index column list is empty, so this check will always be true. - if(sqlb::findField(index, tableFields.at(i).name) == index.fields.end()) + if(sqlb::findField(index, field.name()) == index.fields.end()) { // Put the name of the field in the first column - QTableWidgetItem* name = new QTableWidgetItem(QString::fromStdString(tableFields.at(i).name)); + QTableWidgetItem* name = new QTableWidgetItem(QString::fromStdString(field.name())); name->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); ui->tableTableColumns->setItem(tableRows, 0, name); // Put the data type in the second column - QTableWidgetItem* type = new QTableWidgetItem(QString::fromStdString(tableFields.at(i).type)); + QTableWidgetItem* type = new QTableWidgetItem(QString::fromStdString(field.type())); type->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); ui->tableTableColumns->setItem(tableRows, 1, type); @@ -141,7 +138,7 @@ void EditIndexDialog::updateColumnLists() } } - // Set row count to actual count. This is needed for the intial loading, when some rows might have been omitted because they were used in the index + // Set row count to actual count. This is needed for the initial loading, when some rows might have been omitted because they were used in the index ui->tableTableColumns->setRowCount(tableRows); // Fill the index column list. This is done separately from the table column to include expression columns (these are not found in the original @@ -166,7 +163,7 @@ void EditIndexDialog::updateColumnLists() order->addItem("DESC"); order->setCurrentText(QString::fromStdString(indexFields.at(i).order()).toUpper()); ui->tableIndexColumns->setCellWidget(static_cast(i), 1, order); - connect(order, &QComboBox::currentTextChanged, + connect(order, &QComboBox::currentTextChanged, this, [=](QString new_order) { auto colnum = sqlb::findField(index, indexFields.at(i).name()); diff --git a/src/EditIndexDialog.ui b/src/EditIndexDialog.ui index 4477fbcf8..05271d1d3 100644 --- a/src/EditIndexDialog.ui +++ b/src/EditIndexDialog.ui @@ -173,7 +173,7 @@ - :/icons/cog_go.png:/icons/cog_go.png + :/icons/cog_go:/icons/cog_go diff --git a/src/EditTableDialog.cpp b/src/EditTableDialog.cpp index 85011085d..e0b116741 100644 --- a/src/EditTableDialog.cpp +++ b/src/EditTableDialog.cpp @@ -58,10 +58,10 @@ EditTableDialog::EditTableDialog(DBBrowserDB& db, const sqlb::ObjectIdentifier& constraint_menu->addAction(ui->actionAddForeignKey); constraint_menu->addAction(ui->actionAddUniqueConstraint); constraint_menu->addAction(ui->actionAddCheckConstraint); - connect(ui->actionAddPrimaryKey, &QAction::triggered, [this]() { addConstraint(sqlb::Constraint::PrimaryKeyConstraintType); }); - connect(ui->actionAddForeignKey, &QAction::triggered, [this]() { addConstraint(sqlb::Constraint::ForeignKeyConstraintType); }); - connect(ui->actionAddUniqueConstraint, &QAction::triggered, [this]() { addConstraint(sqlb::Constraint::UniqueConstraintType); }); - connect(ui->actionAddCheckConstraint, &QAction::triggered, [this]() { addConstraint(sqlb::Constraint::CheckConstraintType); }); + connect(ui->actionAddPrimaryKey, &QAction::triggered, this, [this]() { addConstraint(sqlb::Constraint::PrimaryKeyConstraintType); }); + connect(ui->actionAddForeignKey, &QAction::triggered, this, [this]() { addConstraint(sqlb::Constraint::ForeignKeyConstraintType); }); + connect(ui->actionAddUniqueConstraint, &QAction::triggered, this, [this]() { addConstraint(sqlb::Constraint::UniqueConstraintType); }); + connect(ui->actionAddCheckConstraint, &QAction::triggered, this, [this]() { addConstraint(sqlb::Constraint::CheckConstraintType); }); ui->buttonAddConstraint->setMenu(constraint_menu); // Get list of all collations @@ -78,7 +78,7 @@ EditTableDialog::EditTableDialog(DBBrowserDB& db, const sqlb::ObjectIdentifier& if(m_bNewTable == false) { // Existing table, so load and set the current layout - m_table = *(pdb.getObjectByName(curTable)); + m_table = *pdb.getTableByName(curTable); ui->labelEditWarning->setVisible(!m_table.fullyParsed()); // Initialise the list of tracked columns for table layout changes @@ -96,6 +96,13 @@ EditTableDialog::EditTableDialog(DBBrowserDB& db, const sqlb::ObjectIdentifier& ui->comboSchema->setCurrentText(QString::fromStdString(curTable.schema())); ui->comboSchema->blockSignals(false); + if(m_table.primaryKey()) + { + ui->checkWithoutRowid->blockSignals(true); + ui->comboOnConflict->setCurrentText(QString::fromStdString(m_table.primaryKey()->conflictAction()).toUpper()); + ui->checkWithoutRowid->blockSignals(false); + } + populateFields(); populateConstraints(); } else { @@ -106,7 +113,7 @@ EditTableDialog::EditTableDialog(DBBrowserDB& db, const sqlb::ObjectIdentifier& } // Enable/disable remove constraint button depending on whether a constraint is selected - connect(ui->tableConstraints, &QTableWidget::itemSelectionChanged, [this]() { + connect(ui->tableConstraints, &QTableWidget::itemSelectionChanged, this, [this]() { bool hasSelection = ui->tableConstraints->selectionModel()->hasSelection(); ui->buttonRemoveConstraint->setEnabled(hasSelection); }); @@ -119,7 +126,7 @@ EditTableDialog::EditTableDialog(DBBrowserDB& db, const sqlb::ObjectIdentifier& updateColumnWidth(); // Allow editing of constraint columns by double clicking the columns column of the constraints table - connect(ui->tableConstraints, &QTableWidget::itemDoubleClicked, [this](QTableWidgetItem* item) { + connect(ui->tableConstraints, &QTableWidget::itemDoubleClicked, this, [this](QTableWidgetItem* item) { // Check whether the double clicked item is in the columns column if(item->column() == kConstraintColumns) { @@ -137,7 +144,7 @@ EditTableDialog::EditTableDialog(DBBrowserDB& db, const sqlb::ObjectIdentifier& dialog->show(); // When clicking the Apply button in the popup dialog, save the new columns list - connect(dialog, &SelectItemsPopup::accepted, [this, dialog, constraint]() { + connect(dialog, &SelectItemsPopup::accepted, this, [this, dialog, constraint]() { // Check if column selection changed at all sqlb::StringVector new_columns = dialog->selectedItems(); if(constraint->columnList() != new_columns) @@ -183,11 +190,11 @@ void EditTableDialog::keyPressEvent(QKeyEvent *evt) void EditTableDialog::updateColumnWidth() { ui->treeWidget->setColumnWidth(kName, 190); - ui->treeWidget->setColumnWidth(kType, 100); - ui->treeWidget->setColumnWidth(kNotNull, 30); - ui->treeWidget->setColumnWidth(kPrimaryKey, 30); - ui->treeWidget->setColumnWidth(kAutoIncrement, 30); - ui->treeWidget->setColumnWidth(kUnique, 30); + ui->treeWidget->setColumnWidth(kType, 150); + ui->treeWidget->setColumnWidth(kNotNull, 25); + ui->treeWidget->setColumnWidth(kPrimaryKey, 25); + ui->treeWidget->setColumnWidth(kAutoIncrement, 25); + ui->treeWidget->setColumnWidth(kUnique, 25); ui->treeWidget->setColumnWidth(kForeignKey, 500); ui->tableConstraints->setColumnWidth(kConstraintColumns, 180); @@ -234,7 +241,7 @@ void EditTableDialog::populateFields() // For the default value check if it is surrounded by parentheses and if that's the case // add a '=' character before the entire string to match the input format we're expecting // from the user when using functions in the default value field. - if(f.defaultValue().front() == '(' && f.defaultValue().back() == ')') + if(!f.defaultValue().empty() && f.defaultValue().front() == '(' && f.defaultValue().back() == ')') tbitem->setText(kDefault, "=" + QString::fromStdString(f.defaultValue())); else tbitem->setText(kDefault, QString::fromStdString(f.defaultValue())); @@ -292,7 +299,7 @@ void EditTableDialog::populateConstraints() type->addItem(tr("Foreign Key")); type->addItem(tr("Check")); type->setCurrentIndex(constraint->type()); - connect(type, static_cast(&QComboBox::currentIndexChanged), [this, type, constraint](int index) { + connect(type, static_cast(&QComboBox::currentIndexChanged), this, [this, type, constraint](int index) { // Handle change of constraint type. Effectively this means removing the old constraint and replacing it by an entirely new one. // Only the column list and the name can be migrated to the new constraint. @@ -492,13 +499,11 @@ void EditTableDialog::fieldItemChanged(QTreeWidgetItem *item, int column) if(!m_bNewTable) { const auto pk = m_table.primaryKey(); - const auto tables = pdb.schemata[curTable.schema()].equal_range("table"); - for(auto it=tables.first;it!=tables.second;++it) + for(const auto& it : pdb.schemata[curTable.schema()].tables) { - const sqlb::ObjectPtr& fkobj = it->second; - + const sqlb::TablePtr& fkobj = it.second; - auto fks = std::dynamic_pointer_cast(fkobj)->constraints({}, sqlb::Constraint::ForeignKeyConstraintType); + auto fks = fkobj->constraints({}, sqlb::Constraint::ForeignKeyConstraintType); for(const sqlb::ConstraintPtr& fkptr : fks) { auto fk = std::dynamic_pointer_cast(fkptr); @@ -591,7 +596,7 @@ void EditTableDialog::fieldItemChanged(QTreeWidgetItem *item, int column) // to at least replace all troublesome NULL values by the default value SqliteTableModel m(pdb, this); m.setQuery(QString("SELECT COUNT(%1) FROM %2 WHERE coalesce(NULL,%3) IS NULL;").arg( - QString::fromStdString(sqlb::joinStringVector(sqlb::escapeIdentifier(pdb.getObjectByName(curTable)->rowidColumns()), ",")), + QString::fromStdString(sqlb::joinStringVector(sqlb::escapeIdentifier(pdb.getTableByName(curTable)->rowidColumns()), ",")), QString::fromStdString(curTable.toString()), QString::fromStdString(sqlb::escapeIdentifier(field.name())))); if(!m.completeCache()) @@ -983,6 +988,26 @@ void EditTableDialog::changeSchema(const QString& /*schema*/) updateSqlText(); } +void EditTableDialog::setOnConflict(const QString& on_conflict) +{ + if(m_table.primaryKey()) + { + m_table.primaryKey()->setConflictAction(on_conflict.toStdString()); + } else { + QMessageBox::information(this, QApplication::applicationName(), + tr("Please add a field which meets the following criteria before setting the on conflict action:\n" + " - Primary key flag set")); + + ui->comboOnConflict->blockSignals(true); + ui->comboOnConflict->setCurrentText(QString()); + ui->comboOnConflict->blockSignals(false); + return; + } + + // Update the SQL preview + updateSqlText(); +} + void EditTableDialog::removeConstraint() { // Is there any item selected to delete? diff --git a/src/EditTableDialog.h b/src/EditTableDialog.h index 7c7191af6..6c46f33d5 100644 --- a/src/EditTableDialog.h +++ b/src/EditTableDialog.h @@ -85,6 +85,7 @@ private slots: void changeSchema(const QString& schema); void removeConstraint(); void addConstraint(sqlb::Constraint::ConstraintTypes type); + void setOnConflict(const QString& on_conflict); private: Ui::EditTableDialog* ui; diff --git a/src/EditTableDialog.ui b/src/EditTableDialog.ui index 967f55e7f..b11caa3fd 100644 --- a/src/EditTableDialog.ui +++ b/src/EditTableDialog.ui @@ -86,6 +86,47 @@ + + + + On Conflict + + + + + + + + + + + + + ROLLBACK + + + + + ABORT + + + + + FAIL + + + + + IGNORE + + + + + REPLACE + + + + @@ -778,6 +819,22 @@ + + comboOnConflict + currentIndexChanged(QString) + EditTableDialog + setOnConflict(QString) + + + 371 + 168 + + + 490 + 211 + + + fieldSelectionChanged() @@ -793,5 +850,6 @@ removeConstraint() moveTop() moveBottom() + setOnConflict(QString) diff --git a/src/ExportDataDialog.cpp b/src/ExportDataDialog.cpp index 6d2e38209..2c647ad1e 100644 --- a/src/ExportDataDialog.cpp +++ b/src/ExportDataDialog.cpp @@ -5,6 +5,7 @@ #include "sqlite.h" #include "FileDialog.h" #include "IconCache.h" +#include "Data.h" #include #include @@ -46,18 +47,10 @@ ExportDataDialog::ExportDataDialog(DBBrowserDB& db, ExportFormats format, QWidge // Get list of tables to export for(const auto& it : pdb.schemata) { - const auto tables = it.second.equal_range("table"); - const auto views = it.second.equal_range("view"); - std::map objects; - for(auto jt=tables.first;jt!=tables.second;++jt) - objects.insert({jt->second->name(), jt->second}); - for(auto jt=views.first;jt!=views.second;++jt) - objects.insert({jt->second->name(), jt->second}); - - for(const auto& jt : objects) + for(const auto& jt : it.second.tables) { - sqlb::ObjectIdentifier obj(it.first, jt.second->name()); - QListWidgetItem* item = new QListWidgetItem(IconCache::get(sqlb::Object::typeToString(jt.second->type())), QString::fromStdString(obj.toDisplayString())); + sqlb::ObjectIdentifier obj(it.first, jt.first); + QListWidgetItem* item = new QListWidgetItem(IconCache::get(jt.second->isView() ? "view" : "table"), QString::fromStdString(obj.toDisplayString())); item->setData(Qt::UserRole, QString::fromStdString(obj.toSerialised())); ui->listTables->addItem(item); } @@ -155,13 +148,16 @@ bool ExportDataDialog::exportQueryCsv(const std::string& sQuery, const QString& { for (int i = 0; i < columns; ++i) { - QString content = QString::fromUtf8( - reinterpret_cast(sqlite3_column_blob(stmt, i)), - sqlite3_column_bytes(stmt, i)); + QByteArray blob (reinterpret_cast(sqlite3_column_blob(stmt, i)), + sqlite3_column_bytes(stmt, i)); + QString content = QString::fromUtf8(blob); + // Convert to base64 if the data is binary. This case doesn't need quotes. + if(!isTextOnly(blob)) + stream << blob.toBase64(); // If no quote char is set but the content contains a line break, we enforce some quote characters. This probably isn't entirely correct // but still better than having the line breaks unquoted and effectively outputting a garbage file. - if(quoteChar.isNull() && content.contains(newlineStr)) + else if(quoteChar.isNull() && content.contains(newlineStr)) stream << '"' << content.replace('"', "\"\"") << '"'; // If the content needs to be quoted, quote it. But only if a quote char has been specified else if(!quoteChar.isNull() && content.toStdString().find_first_of(special_chars) != std::string::npos) diff --git a/src/ExportSqlDialog.cpp b/src/ExportSqlDialog.cpp index 6e9b510c8..2363e0754 100644 --- a/src/ExportSqlDialog.cpp +++ b/src/ExportSqlDialog.cpp @@ -26,12 +26,12 @@ ExportSqlDialog::ExportSqlDialog(DBBrowserDB* db, QWidget* parent, const QString // Load settings ui->checkColNames->setChecked(Settings::getValue("exportsql", "insertcolnames").toBool()); ui->checkMultiple->setChecked(Settings::getValue("exportsql", "insertmultiple").toBool()); + ui->checkOriginal->setChecked(Settings::getValue("exportsql", "keeporiginal").toBool()); ui->comboOldSchema->setCurrentIndex(Settings::getValue("exportsql", "oldschema").toInt()); // Get list of tables to export - const auto objects = pdb->schemata["main"].equal_range("table"); - for(auto it=objects.first;it!=objects.second;++it) - ui->listTables->addItem(new QListWidgetItem(IconCache::get(sqlb::Object::typeToString(it->second->type())), QString::fromStdString(it->second->name()))); + for(const auto& it : pdb->schemata["main"].tables) + ui->listTables->addItem(new QListWidgetItem(IconCache::get(it.second->isView() ? "view" : "table"), QString::fromStdString(it.first))); // Sort list of tables and select the table specified in the // selection parameter or all tables if table not specified @@ -95,6 +95,7 @@ void ExportSqlDialog::accept() // Save settings Settings::setValue("exportsql", "insertcolnames", ui->checkColNames->isChecked()); Settings::setValue("exportsql", "insertmultiple", ui->checkMultiple->isChecked()); + Settings::setValue("exportsql", "keeporiginal", ui->checkOriginal->isChecked()); Settings::setValue("exportsql", "oldschema", ui->comboOldSchema->currentIndex()); std::vector tables; @@ -111,6 +112,7 @@ void ExportSqlDialog::accept() tables, ui->checkColNames->isChecked(), ui->checkMultiple->isChecked(), + ui->checkOriginal->isChecked(), exportSchema, exportData, keepSchema); diff --git a/src/ExportSqlDialog.ui b/src/ExportSqlDialog.ui index b65fcca47..604983196 100644 --- a/src/ExportSqlDialog.ui +++ b/src/ExportSqlDialog.ui @@ -89,14 +89,7 @@ - - - - Multiple rows (VALUES) per INSERT statement - - - - + Qt::Vertical @@ -109,39 +102,53 @@ - - + + - Export everything + Keep old schema (CREATE TABLE IF NOT EXISTS) - Export schema only + Overwrite old schema (DROP TABLE, then CREATE TABLE) + + + + + + Multiple rows (VALUES) per INSERT statement + + + + + - Export data only + Export everything - - - - - Keep old schema (CREATE TABLE IF NOT EXISTS) + Export schema only - Overwrite old schema (DROP TABLE, then CREATE TABLE) + Export data only + + + + Keep original CREATE statements + + + diff --git a/src/ExtendedScintilla.cpp b/src/ExtendedScintilla.cpp index c3ded8b9a..a2f48f574 100644 --- a/src/ExtendedScintilla.cpp +++ b/src/ExtendedScintilla.cpp @@ -89,7 +89,11 @@ void ExtendedScintilla::updateLineNumberAreaWidth() // Calculate the width of this number if it was all zeros (this is because a 1 might require less space than a 0 and this could // cause some flickering depending on the font) and set the new margin width. +#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) setMarginWidth(0, QFontMetrics(font()).width(QString("0").repeated(digits)) + 5); +#else + setMarginWidth(0, QFontMetrics(font()).horizontalAdvance(QString("0").repeated(digits)) + 5); +#endif } void ExtendedScintilla::dropEvent(QDropEvent* e) @@ -138,8 +142,12 @@ void ExtendedScintilla::reloadCommonSettings() setMarginsForegroundColor(QPalette().color(QPalette::Active, QPalette::WindowText)); break; case Settings::DarkStyle : - setMarginsBackgroundColor(QColor("#32414B")); - setMarginsForegroundColor(QColor("#EFF0F1")); + setMarginsBackgroundColor(QColor(0x32, 0x41, 0x4B)); + setMarginsForegroundColor(QColor(0xEF, 0xF0, 0xF1)); + break; + case Settings::LightStyle : + setMarginsBackgroundColor(QColor("#C9CDD0")); + setMarginsForegroundColor(QColor("#000000")); break; } setPaper(Settings::getValue("syntaxhighlighter", "background_colour").toString()); @@ -197,8 +205,10 @@ void ExtendedScintilla::reloadLexerSettings(QsciLexer *lexer) setCaretLineBackgroundColor(QColor(Settings::getValue("syntaxhighlighter", "currentline_colour").toString())); setCaretForegroundColor(foreground); - // Set tab width + // Set tab settings setTabWidth(Settings::getValue("editor", "tabsize").toInt()); + setIndentationsUseTabs(Settings::getValue("editor", "indentation_use_tabs").toBool()); + if(lexer) lexer->refreshProperties(); @@ -304,7 +314,7 @@ void ExtendedScintilla::openPrintDialog() QsciPrinter printer; QPrintPreviewDialog *dialog = new QPrintPreviewDialog(&printer); - connect(dialog, &QPrintPreviewDialog::paintRequested, [&](QPrinter *previewPrinter) { + connect(dialog, &QPrintPreviewDialog::paintRequested, this, [&](QPrinter *previewPrinter) { QsciPrinter* sciPrinter = static_cast(previewPrinter); sciPrinter->printRange(this); }); diff --git a/src/ExtendedTableWidget.cpp b/src/ExtendedTableWidget.cpp index c141813b7..ec58aa08a 100644 --- a/src/ExtendedTableWidget.cpp +++ b/src/ExtendedTableWidget.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -139,12 +140,12 @@ QWidget* ExtendedTableWidgetEditorDelegate::createEditor(QWidget* parent, const std::string column; // If no column name is set, assume the primary key is meant if(fk.columns().empty()) { - sqlb::TablePtr obj = m->db().getObjectByName(foreignTable); + sqlb::TablePtr obj = m->db().getTableByName(foreignTable); column = obj->primaryKey()->columnList().front(); } else column = fk.columns().at(0); - sqlb::TablePtr currentTable = m->db().getObjectByName(m->currentTableName()); + sqlb::TablePtr currentTable = m->db().getTableByName(m->currentTableName()); QString query = QString("SELECT %1 FROM %2").arg(QString::fromStdString(sqlb::escapeIdentifier(column)), QString::fromStdString(foreignTable.toString())); // if the current column of the current table does NOT have not-null constraint, @@ -222,9 +223,30 @@ void ExtendedTableWidgetEditorDelegate::updateEditorGeometry(QWidget* editor, co editor->setGeometry(option.rect); } +class ItemBorderDelegate : public QStyledItemDelegate +{ +public: + explicit ItemBorderDelegate(QObject* parent = nullptr) + : QStyledItemDelegate(parent) + { + } + + void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override + { + QStyledItemDelegate::paint(painter, option, index); + QRect border(option.rect); + border.translate(border.width() - 1, 0); + border.setWidth(2); + painter->fillRect(border, Qt::black); + } +}; + ExtendedTableWidget::ExtendedTableWidget(QWidget* parent) : - QTableView(parent) + QTableView(parent), + m_frozen_table_view(qobject_cast(parent) ? nullptr : new ExtendedTableWidget(this)), + m_frozen_column_count(0), + m_item_border_delegate(new ItemBorderDelegate(this)) { setHorizontalScrollMode(ExtendedTableWidget::ScrollPerPixel); // Force ScrollPerItem, so scrolling shows all table rows @@ -308,7 +330,7 @@ ExtendedTableWidget::ExtendedTableWidget(QWidget* parent) : printAction->setShortcut(QKeySequence::Print); // Set up context menu actions - connect(this, &QTableView::customContextMenuRequested, + connect(this, &QTableView::customContextMenuRequested, this, [=](const QPoint& pos) { // Deactivate context menu options if there is no model set @@ -336,90 +358,150 @@ ExtendedTableWidget::ExtendedTableWidget(QWidget* parent) : // Show menu m_contextMenu->popup(viewport()->mapToGlobal(pos)); }); - connect(filterAction, &QAction::triggered, [&]() { + connect(filterAction, &QAction::triggered, this, [&]() { useAsFilter(QString ("=")); }); - connect(containingAction, &QAction::triggered, [&]() { + connect(containingAction, &QAction::triggered, this, [&]() { useAsFilter(QString ("")); }); // Use a regular expression for the not containing filter. Simplify this if we ever support the NOT LIKE filter. - connect(notContainingAction, &QAction::triggered, [&]() { + connect(notContainingAction, &QAction::triggered, this, [&]() { useAsFilter(QString ("/^((?!"), /* binary */ false, QString (").)*$/")); }); - connect(notEqualToAction, &QAction::triggered, [&]() { + connect(notEqualToAction, &QAction::triggered, this, [&]() { useAsFilter(QString ("<>")); }); - connect(greaterThanAction, &QAction::triggered, [&]() { + connect(greaterThanAction, &QAction::triggered, this, [&]() { useAsFilter(QString (">")); }); - connect(lessThanAction, &QAction::triggered, [&]() { + connect(lessThanAction, &QAction::triggered, this, [&]() { useAsFilter(QString ("<")); }); - connect(greaterEqualAction, &QAction::triggered, [&]() { + connect(greaterEqualAction, &QAction::triggered, this, [&]() { useAsFilter(QString (">=")); }); - connect(lessEqualAction, &QAction::triggered, [&]() { + connect(lessEqualAction, &QAction::triggered, this, [&]() { useAsFilter(QString ("<=")); }); - connect(inRangeAction, &QAction::triggered, [&]() { + connect(inRangeAction, &QAction::triggered, this, [&]() { useAsFilter(QString ("~"), /* binary */ true); }); - connect(regexpAction, &QAction::triggered, [&]() { + connect(regexpAction, &QAction::triggered, this, [&]() { useAsFilter(QString ("/"), /* binary */ false, QString ("/")); }); - connect(condFormatAction, &QAction::triggered, [&]() { + connect(condFormatAction, &QAction::triggered, this, [&]() { emit editCondFormats(currentIndex().column()); }); - connect(nullAction, &QAction::triggered, [&]() { + connect(nullAction, &QAction::triggered, this, [&]() { setToNull(selectedIndexes()); }); - connect(copyAction, &QAction::triggered, [&]() { + connect(copyAction, &QAction::triggered, this, [&]() { copy(false, false); }); connect(cutAction, &QAction::triggered, this, &ExtendedTableWidget::cut); - connect(copyWithHeadersAction, &QAction::triggered, [&]() { + connect(copyWithHeadersAction, &QAction::triggered, this, [&]() { copy(true, false); }); - connect(copyAsSQLAction, &QAction::triggered, [&]() { + connect(copyAsSQLAction, &QAction::triggered, this, [&]() { copy(false, true); }); - connect(pasteAction, &QAction::triggered, [&]() { + connect(pasteAction, &QAction::triggered, this, [&]() { paste(); }); - connect(printAction, &QAction::triggered, [&]() { + connect(printAction, &QAction::triggered, this, [&]() { openPrintDialog(); }); // Add spreadsheet shortcuts for selecting entire columns or entire rows. QShortcut* selectColumnShortcut = new QShortcut(QKeySequence("Ctrl+Space"), this); - connect(selectColumnShortcut, &QShortcut::activated, [this]() { + connect(selectColumnShortcut, &QShortcut::activated, this, [this]() { if(!hasFocus() || selectionModel()->selectedIndexes().isEmpty()) return; - selectionModel()->select(QItemSelection(selectionModel()->selectedIndexes().first(), selectionModel()->selectedIndexes().last()), QItemSelectionModel::Select | QItemSelectionModel::Columns); + selectionModel()->select(selectionModel()->selection(), QItemSelectionModel::Select | QItemSelectionModel::Columns); }); QShortcut* selectRowShortcut = new QShortcut(QKeySequence("Shift+Space"), this); - connect(selectRowShortcut, &QShortcut::activated, [this]() { + connect(selectRowShortcut, &QShortcut::activated, this, [this]() { if(!hasFocus() || selectionModel()->selectedIndexes().isEmpty()) return; - selectionModel()->select(QItemSelection(selectionModel()->selectedIndexes().first(), selectionModel()->selectedIndexes().last()), QItemSelectionModel::Select | QItemSelectionModel::Rows); + selectionModel()->select(selectionModel()->selection(), QItemSelectionModel::Select | QItemSelectionModel::Rows); }); + // Set up frozen columns child widget + if(m_frozen_table_view) + { + // Set up widget + m_frozen_table_view->setFocusPolicy(Qt::NoFocus); + m_frozen_table_view->verticalHeader()->hide(); + m_frozen_table_view->setStyleSheet("QTableView { border: none; }" + "QTableView::item:selected{ background-color: " + palette().color(QPalette::Active, QPalette::Highlight).name() + "}"); + m_frozen_table_view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + m_frozen_table_view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + m_frozen_table_view->setVerticalScrollMode(verticalScrollMode()); + viewport()->stackUnder(m_frozen_table_view); + m_tableHeader->stackUnder(m_frozen_table_view); + + // Keep both widgets in sync + connect(horizontalHeader(), &QHeaderView::sectionResized, this, &ExtendedTableWidget::updateSectionWidth); + connect(m_frozen_table_view->horizontalHeader(), &QHeaderView::sectionResized, this, &ExtendedTableWidget::updateSectionWidth); + connect(verticalHeader(), &QHeaderView::sectionResized, this, &ExtendedTableWidget::updateSectionHeight); + connect(m_frozen_table_view->verticalHeader(), &QHeaderView::sectionResized, this, &ExtendedTableWidget::updateSectionHeight); + connect(m_frozen_table_view->verticalScrollBar(), &QAbstractSlider::valueChanged, verticalScrollBar(), &QAbstractSlider::setValue); + connect(verticalScrollBar(), &QAbstractSlider::valueChanged, m_frozen_table_view->verticalScrollBar(), &QAbstractSlider::setValue); + + // Forward signals from frozen table view widget to the main table view widget + connect(m_frozen_table_view, &ExtendedTableWidget::doubleClicked, this, &ExtendedTableWidget::doubleClicked); + connect(m_frozen_table_view->filterHeader(), &FilterTableHeader::sectionClicked, filterHeader(), &FilterTableHeader::sectionClicked); + connect(m_frozen_table_view->filterHeader(), &QHeaderView::sectionDoubleClicked, filterHeader(), &QHeaderView::sectionDoubleClicked); + connect(m_frozen_table_view->verticalHeader(), &QHeaderView::sectionResized, verticalHeader(), &QHeaderView::sectionResized); + connect(m_frozen_table_view->horizontalHeader(), &QHeaderView::customContextMenuRequested, horizontalHeader(), &QHeaderView::customContextMenuRequested); + connect(m_frozen_table_view->verticalHeader(), &QHeaderView::customContextMenuRequested, verticalHeader(), &QHeaderView::customContextMenuRequested); + connect(m_frozen_table_view, &ExtendedTableWidget::openFileFromDropEvent, this, &ExtendedTableWidget::openFileFromDropEvent); + connect(m_frozen_table_view, &ExtendedTableWidget::selectedRowsToBeDeleted, this, &ExtendedTableWidget::selectedRowsToBeDeleted); + connect(m_frozen_table_view->filterHeader(), &FilterTableHeader::filterChanged, filterHeader(), &FilterTableHeader::filterChanged); + connect(m_frozen_table_view->filterHeader(), &FilterTableHeader::addCondFormat, filterHeader(), &FilterTableHeader::addCondFormat); + connect(m_frozen_table_view->filterHeader(), &FilterTableHeader::allCondFormatsCleared, filterHeader(), &FilterTableHeader::allCondFormatsCleared); + connect(m_frozen_table_view->filterHeader(), &FilterTableHeader::condFormatsEdited, filterHeader(), &FilterTableHeader::condFormatsEdited); + connect(m_frozen_table_view, &ExtendedTableWidget::editCondFormats, this, &ExtendedTableWidget::editCondFormats); + connect(m_frozen_table_view, &ExtendedTableWidget::dataAboutToBeEdited, this, &ExtendedTableWidget::dataAboutToBeEdited); + connect(m_frozen_table_view, &ExtendedTableWidget::foreignKeyClicked, this, &ExtendedTableWidget::foreignKeyClicked); + connect(m_frozen_table_view, &ExtendedTableWidget::currentIndexChanged, this, &ExtendedTableWidget::currentIndexChanged); + } + #if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0) && QT_VERSION < QT_VERSION_CHECK(5, 12, 3) // This work arounds QTBUG-73721 and it is applied only for the affected version range. setWordWrap(false); #endif } +ExtendedTableWidget::~ExtendedTableWidget() +{ + delete m_frozen_table_view; +} + +void ExtendedTableWidget::setModel(QAbstractItemModel* item_model) +{ + // Set model + QTableView::setModel(item_model); + + // Set up frozen table view widget + if(item_model) + setFrozenColumns(m_frozen_column_count); + else + m_frozen_table_view->hide(); +} + void ExtendedTableWidget::reloadSettings() { - // Set the new font and font size + // We only get the font here to get its metrics. The actual font for the view is set in the model QFont dataBrowserFont(Settings::getValue("databrowser", "font").toString()); dataBrowserFont.setPointSize(Settings::getValue("databrowser", "fontsize").toInt()); - setFont(dataBrowserFont); // Set new default row height depending on the font size - verticalHeader()->setDefaultSectionSize(verticalHeader()->fontMetrics().height()+10); + QFontMetrics fontMetrics(dataBrowserFont); + verticalHeader()->setDefaultSectionSize(fontMetrics.height()+10); + if(m_frozen_table_view) + m_frozen_table_view->reloadSettings(); } void ExtendedTableWidget::copyMimeData(const QModelIndexList& fromIndices, QMimeData* mimeData, const bool withHeaders, const bool inSQL) @@ -491,6 +573,13 @@ void ExtendedTableWidget::copyMimeData(const QModelIndexList& fromIndices, QMime htmlResult.append("" ""); + // Insert the columns in a set, since they could be non-contiguous. + std::set colsInIndexes, rowsInIndexes; + for(const QModelIndex & idx : indices) { + colsInIndexes.insert(idx.column()); + rowsInIndexes.insert(idx.row()); + } + int currentRow = indices.first().row(); const QString fieldSepText = "\t"; @@ -504,10 +593,11 @@ void ExtendedTableWidget::copyMimeData(const QModelIndexList& fromIndices, QMime // Table headers if (withHeaders || inSQL) { htmlResult.append("
    "); - int firstColumn = indices.front().column(); - for(int i = firstColumn; i <= indices.back().column(); i++) { - QByteArray headerText = model()->headerData(i, Qt::Horizontal, Qt::EditRole).toByteArray(); - if (i != firstColumn) { + int firstColumn = *colsInIndexes.begin(); + + for(int col : colsInIndexes) { + QByteArray headerText = model()->headerData(col, Qt::Horizontal, Qt::EditRole).toByteArray(); + if (col != firstColumn) { result.append(fieldSepText); htmlResult.append(""); sqlInsertStatement.append(", "); @@ -522,79 +612,89 @@ void ExtendedTableWidget::copyMimeData(const QModelIndexList& fromIndices, QMime sqlInsertStatement.append(") VALUES ("); } - // Table data rows - for(const QModelIndex& index : indices) { - QFont font; - font.fromString(index.data(Qt::FontRole).toString()); - const QString fontStyle(font.italic() ? "italic" : "normal"); - const QString fontWeigth(font.bold() ? "bold" : "normal"); - const QString fontDecoration(font.underline() ? " text-decoration: underline;" : ""); - const QColor bgColor(index.data(Qt::BackgroundRole).toString()); - const QColor fgColor(index.data(Qt::ForegroundRole).toString()); - const Qt::Alignment align(index.data(Qt::TextAlignmentRole).toInt()); - const QString textAlign(CondFormat::alignmentTexts().at(CondFormat::fromCombinedAlignment(align)).toLower()); - const QString style = QString("font-family: '%1'; font-size: %2pt; font-style: %3; font-weight: %4;%5 " - "background-color: %6; color: %7; text-align: %8").arg( - font.family().toHtmlEscaped(), - QString::number(font.pointSize()), - fontStyle, - fontWeigth, - fontDecoration, - bgColor.name(), - fgColor.name(), - textAlign); - - // Separators. For first cell, only opening table row tags must be added for the HTML and nothing for the text version. - if (indices.first() == index) { - htmlResult.append(QString("
    ").arg(style)); - sqlResult.append(sqlInsertStatement); - } else if (index.row() != currentRow) { - result.append(rowSepText); - htmlResult.append(QString("
    ").arg(style)); - sqlResult.append(");" + rowSepText + sqlInsertStatement); - } else { - result.append(fieldSepText); - htmlResult.append(QString("").arg(style)); - sqlResult.append(", "); - } - currentRow = index.row(); + // Iterate over rows x cols checking if the index actually exists when needed, in order + // to support non-rectangular selections. + for(const int row : rowsInIndexes) { + for(const int column : colsInIndexes) { + + const QModelIndex index = indices.first().sibling(row, column); + QString style; + if(indices.contains(index)) { + QFont font; + font.fromString(index.data(Qt::FontRole).toString()); + const QString fontStyle(font.italic() ? "italic" : "normal"); + const QString fontWeigth(font.bold() ? "bold" : "normal"); + const QString fontDecoration(font.underline() ? " text-decoration: underline;" : ""); + const QColor bgColor(index.data(Qt::BackgroundRole).toString()); + const QColor fgColor(index.data(Qt::ForegroundRole).toString()); + const Qt::Alignment align(index.data(Qt::TextAlignmentRole).toInt()); + const QString textAlign(CondFormat::alignmentTexts().at(CondFormat::fromCombinedAlignment(align)).toLower()); + style = QString("style=\"font-family: '%1'; font-size: %2pt; font-style: %3; font-weight: %4;%5 " + "background-color: %6; color: %7; text-align: %8\"").arg( + font.family().toHtmlEscaped(), + QString::number(font.pointSize()), + fontStyle, + fontWeigth, + fontDecoration, + bgColor.name(), + fgColor.name(), + textAlign); + } - QImage img; - QVariant bArrdata = index.data(Qt::EditRole); + // Separators. For first cell, only opening table row tags must be added for the HTML and nothing for the text version. + if (index.row() == *rowsInIndexes.begin() && index.column() == *colsInIndexes.begin()) { + htmlResult.append(QString("
    ").arg(style)); + sqlResult.append(sqlInsertStatement); + } else if (index.row() != currentRow) { + result.append(rowSepText); + htmlResult.append(QString("
    ").arg(style)); + sqlResult.append(");" + rowSepText + sqlInsertStatement); + } else { + result.append(fieldSepText); + htmlResult.append(QString("").arg(style)); + sqlResult.append(", "); + } - // Table cell data: image? Store it as an embedded image in HTML - if (!inSQL && img.loadFromData(bArrdata.toByteArray())) - { - QByteArray ba; - QBuffer buffer(&ba); - buffer.open(QIODevice::WriteOnly); - img.save(&buffer, "PNG"); - buffer.close(); - - QString imageBase64 = ba.toBase64(); - htmlResult.append("\"Image\""); - } else { - QByteArray text; - if (!m->isBinary(index)) { - text = bArrdata.toByteArray(); - - // Table cell data: text - if (text.contains('\n') || text.contains('\t')) - htmlResult.append("
    " + QString(text).toHtmlEscaped() + "
    "); - else - htmlResult.append(QString(text).toHtmlEscaped()); - - result.append(text); - sqlResult.append(sqlb::escapeString(text)); - } else - // Table cell data: binary. Save as BLOB literal in SQL - sqlResult.append( "X'" + bArrdata.toByteArray().toHex() + "'" ); + currentRow = index.row(); + + QImage img; + QVariant bArrdata = indices.contains(index) ? index.data(Qt::EditRole) : QVariant(); + // Table cell data: image? Store it as an embedded image in HTML + if (!inSQL && img.loadFromData(bArrdata.toByteArray())) + { + QByteArray ba; + QBuffer buffer(&ba); + buffer.open(QIODevice::WriteOnly); + img.save(&buffer, "PNG"); + buffer.close(); + + QString imageBase64 = ba.toBase64(); + htmlResult.append("\"Image\""); + } else { + if (bArrdata.isNull()) { + sqlResult.append("NULL"); + } else if(!m->isBinary(index)) { + QByteArray text = bArrdata.toByteArray(); + + // Table cell data: text + if (text.contains('\n') || text.contains('\t')) + htmlResult.append("
    " + QString(text).toHtmlEscaped() + "
    "); + else + htmlResult.append(QString(text).toHtmlEscaped()); + + result.append(text); + sqlResult.append(sqlb::escapeString(text)); + } else + // Table cell data: binary. Save as BLOB literal in SQL + sqlResult.append( "X'" + bArrdata.toByteArray().toHex() + "'" ); + } } } + sqlResult.append(");"); if ( inSQL ) @@ -730,7 +830,7 @@ void ExtendedTableWidget::cut() { const QModelIndexList& indices = selectionModel()->selectedIndexes(); SqliteTableModel* m = qobject_cast(model()); - sqlb::TablePtr currentTable = m->db().getObjectByName(m->currentTableName()); + sqlb::TablePtr currentTable = m->db().getTableByName(m->currentTableName()); copy(false, false); @@ -851,7 +951,10 @@ void ExtendedTableWidget::keyPressEvent(QKeyEvent* event) } else { // When pressing Delete only set the value to empty string for(const QModelIndex& index : selectedIndexes()) - model()->setData(index, ""); + { + if(!model()->setData(index, "")) + return; + } } } } else if(event->modifiers().testFlag(Qt::ControlModifier) && (event->key() == Qt::Key_PageUp || event->key() == Qt::Key_PageDown)) { @@ -872,13 +975,21 @@ void ExtendedTableWidget::updateGeometries() // Call the parent implementation first - it does most of the actual logic QTableView::updateGeometries(); + // Update frozen columns view too + if(m_frozen_table_view) + m_frozen_table_view->updateGeometries(); + // Check if a model has already been set yet if(model()) { // If so and if it is a SqliteTableModel and if the parent implementation of this method decided that a scrollbar is needed, update its maximum value SqliteTableModel* m = qobject_cast(model()); if(m && verticalScrollBar()->maximum()) + { verticalScrollBar()->setMaximum(m->rowCount() - numVisibleRows() + 1); + if(m_frozen_table_view) + m_frozen_table_view->verticalScrollBar()->setMaximum(verticalScrollBar()->maximum()); + } } } @@ -932,6 +1043,14 @@ std::unordered_set ExtendedTableWidget::colsInSelection() const return colsInSelection; } +std::set ExtendedTableWidget::rowsInSelection() const +{ + std::set rowsInSelection; + for(const QModelIndex & idx : selectedIndexes()) + rowsInSelection.insert(static_cast(idx.row())); + return rowsInSelection; +} + void ExtendedTableWidget::cellClicked(const QModelIndex& index) { // If Ctrl-Shift is pressed try to jump to the row referenced by the foreign key of the clicked cell @@ -1061,7 +1180,7 @@ void ExtendedTableWidget::openPrintDialog() QPrinter printer; QPrintPreviewDialog *dialog = new QPrintPreviewDialog(&printer); - connect(dialog, &QPrintPreviewDialog::paintRequested, [mimeData](QPrinter *previewPrinter) { + connect(dialog, &QPrintPreviewDialog::paintRequested, this, [mimeData](QPrinter *previewPrinter) { QTextDocument document; document.setHtml(mimeData->html()); document.print(previewPrinter); @@ -1073,17 +1192,15 @@ void ExtendedTableWidget::openPrintDialog() delete mimeData; } -void ExtendedTableWidget::sortByColumns(const std::vector& columns) +void ExtendedTableWidget::sortByColumns(const std::vector& columns) { // Are there even any columns to sort by? if(columns.size() == 0) return; - // Are we using a SqliteTableModel as a model? These support multiple sort columns. Other models might not; for those we just use the first sort column + // We only support sorting for SqliteTableModels with support for multiple and named sort columns SqliteTableModel* sqlite_model = dynamic_cast(model()); - if(sqlite_model == nullptr) - model()->sort(static_cast(columns.front().column), columns.front().direction == sqlb::Ascending ? Qt::AscendingOrder : Qt::DescendingOrder); - else + if(sqlite_model) sqlite_model->sort(columns); } @@ -1096,7 +1213,7 @@ void ExtendedTableWidget::currentChanged(const QModelIndex ¤t, const QMode void ExtendedTableWidget::setToNull(const QModelIndexList& indices) { SqliteTableModel* m = qobject_cast(model()); - sqlb::TablePtr currentTable = m->db().getObjectByName(m->currentTableName()); + sqlb::TablePtr currentTable = m->db().getTableByName(m->currentTableName()); // Check if some column in the selection has a NOT NULL constraint, before trying to update the cells. if(currentTable) { @@ -1120,3 +1237,128 @@ void ExtendedTableWidget::setToNull(const QModelIndexList& indices) return; } } + +void ExtendedTableWidget::setFrozenColumns(size_t count) +{ + if(!m_frozen_table_view) + return; + + m_frozen_column_count = count; + + // Set up frozen table view widget + m_frozen_table_view->setModel(model()); + m_frozen_table_view->setSelectionModel(selectionModel()); + for(int i=0;icolumnCount();i++) + m_frozen_table_view->setItemDelegateForColumn(i, nullptr); + m_frozen_table_view->setItemDelegateForColumn(static_cast(m_frozen_column_count-1), m_item_border_delegate); + + // Only show frozen columns in extra table view and copy column widths + m_frozen_table_view->horizontalHeader()->blockSignals(true); // Signals need to be blocked because hiding a column would emit resizedSection + for(size_t col=0;col(model()->columnCount());++col) + m_frozen_table_view->setColumnHidden(static_cast(col), col >= count); + m_frozen_table_view->horizontalHeader()->blockSignals(false); + for(int col=0;col(count);++col) + m_frozen_table_view->setColumnWidth(col, columnWidth(col)); + + updateFrozenTableGeometry(); + + // Only show extra table view when there are frozen columns to see + if(count) + m_frozen_table_view->show(); + else + m_frozen_table_view->hide(); +} + +void ExtendedTableWidget::generateFilters(size_t number, bool show_rowid) +{ + m_tableHeader->generateFilters(number, m_frozen_column_count); + + if(m_frozen_table_view) + { + size_t frozen_columns = std::min(m_frozen_column_count, number); + m_frozen_table_view->m_tableHeader->generateFilters(frozen_columns, show_rowid ? 0 : 1); + } +} + +void ExtendedTableWidget::updateSectionWidth(int logicalIndex, int /* oldSize */, int newSize) +{ + if(!m_frozen_table_view) + return; + + if(logicalIndex < static_cast(m_frozen_column_count)) + { + m_frozen_table_view->setColumnWidth(logicalIndex, newSize); + setColumnWidth(logicalIndex, newSize); + updateFrozenTableGeometry(); + } +} + +void ExtendedTableWidget::updateSectionHeight(int logicalIndex, int /* oldSize */, int newSize) +{ + if(!m_frozen_table_view) + return; + + m_frozen_table_view->setRowHeight(logicalIndex, newSize); +} + +void ExtendedTableWidget::resizeEvent(QResizeEvent* event) +{ + QTableView::resizeEvent(event); + updateFrozenTableGeometry(); +} + +QModelIndex ExtendedTableWidget::moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) +{ + QModelIndex current = QTableView::moveCursor(cursorAction, modifiers); + if(!m_frozen_table_view) + return current; + + int width = 0; + for(int i=0;i(m_frozen_column_count);i++) + width += m_frozen_table_view->columnWidth(i); + + if(cursorAction == MoveLeft && current.column() > 0 && visualRect(current).topLeft().x() < width) + { + const int newValue = horizontalScrollBar()->value() + visualRect(current).topLeft().x() - width; + horizontalScrollBar()->setValue(newValue); + } + return current; +} + +void ExtendedTableWidget::scrollTo(const QModelIndex& index, ScrollHint hint) +{ + if(index.column() >= static_cast(m_frozen_column_count)) + QTableView::scrollTo(index, hint); +} + +void ExtendedTableWidget::updateFrozenTableGeometry() +{ + if(!m_frozen_table_view) + return; + + int width = 0; + for(int i=0;i(m_frozen_column_count);i++) + { + if(!isColumnHidden(i)) + width += columnWidth(i); + } + + m_frozen_table_view->setGeometry(verticalHeader()->width() + frameWidth(), + frameWidth(), + width, + viewport()->height() + horizontalHeader()->height()); +} + +void ExtendedTableWidget::setEditTriggers(QAbstractItemView::EditTriggers editTriggers) +{ + QTableView::setEditTriggers(editTriggers); + if(m_frozen_table_view) + m_frozen_table_view->setEditTriggers(editTriggers); +} + +void ExtendedTableWidget::setFilter(size_t column, const QString& value) +{ + filterHeader()->setFilter(column, value); + if(m_frozen_table_view) + m_frozen_table_view->filterHeader()->setFilter(column, value); +} diff --git a/src/ExtendedTableWidget.h b/src/ExtendedTableWidget.h index dea8cc3dd..ee574fb0d 100644 --- a/src/ExtendedTableWidget.h +++ b/src/ExtendedTableWidget.h @@ -5,6 +5,7 @@ #include #include #include +#include #include "sql/Query.h" @@ -14,6 +15,7 @@ class QDropEvent; class QDragMoveEvent; class FilterTableHeader; +class ItemBorderDelegate; namespace sqlb { class ObjectIdentifier; } // Filter proxy model that only accepts distinct non-empty values. @@ -51,18 +53,28 @@ class ExtendedTableWidget : public QTableView public: explicit ExtendedTableWidget(QWidget* parent = nullptr); + ~ExtendedTableWidget() override; FilterTableHeader* filterHeader() { return m_tableHeader; } + void generateFilters(size_t number, bool show_rowid); public: // Get set of selected columns (all cells in column has to be selected) std::unordered_set selectedCols() const; - // Get set of columns traversed by selection (only some cells in column has to be selected) + // Get set of columns traversed by selection (only some cells in column have to be selected) std::unordered_set colsInSelection() const; + // Get set of ordered rows traversed by selection (only some cells in row have to be selected) + std::set rowsInSelection() const; int numVisibleRows() const; - void sortByColumns(const std::vector& columns); + void sortByColumns(const std::vector& columns); + + void setFrozenColumns(size_t count); + + void setModel(QAbstractItemModel* item_model) override; + + void setEditTriggers(QAbstractItemView::EditTriggers editTriggers); public slots: void reloadSettings(); @@ -70,6 +82,7 @@ public slots: void selectTableLines(int firstLine, int count); void selectAll() override; void openPrintDialog(); + void setFilter(size_t column, const QString& value); signals: void foreignKeyClicked(const sqlb::ObjectIdentifier& table, const std::string& column, const QByteArray& value); @@ -95,9 +108,16 @@ public slots: static std::vector> m_buffer; static QString m_generatorStamp; + ExtendedTableWidget* m_frozen_table_view; + size_t m_frozen_column_count; + ItemBorderDelegate* m_item_border_delegate; + void updateFrozenTableGeometry(); + private slots: void vscrollbarChanged(int value); void cellClicked(const QModelIndex& index); + void updateSectionWidth(int logicalIndex, int oldSize, int newSize); + void updateSectionHeight(int logicalIndex, int oldSize, int newSize); protected: void keyPressEvent(QKeyEvent* event) override; @@ -107,6 +127,10 @@ private slots: void dropEvent(QDropEvent* event) override; void currentChanged(const QModelIndex ¤t, const QModelIndex &previous) override; + void resizeEvent(QResizeEvent* event) override; + QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override; + void scrollTo(const QModelIndex& index, ScrollHint hint = EnsureVisible) override; + FilterTableHeader* m_tableHeader; QMenu* m_contextMenu; ExtendedTableWidgetEditorDelegate* m_editorDelegate; diff --git a/src/FileDialog.cpp b/src/FileDialog.cpp index 6f96293b1..bd5b51702 100644 --- a/src/FileDialog.cpp +++ b/src/FileDialog.cpp @@ -70,7 +70,7 @@ void FileDialog::setFileDialogPath(const FileDialogTypes dialogType, const QStri Settings::setValue("db", "lastlocations", lastLocations); break; case 2: // Remember last location for current session only - Settings::setValue("db", "lastlocations", lastLocations, true); + Settings::setValue("db", "lastlocations", lastLocations, false); break; case 1: // Always use this locations break; // Do nothing diff --git a/src/FileDialog.h b/src/FileDialog.h index 6b4999fd7..3c678ec2b 100644 --- a/src/FileDialog.h +++ b/src/FileDialog.h @@ -56,6 +56,9 @@ static const QString FILE_FILTER_HEX(QObject::tr("Hex Dump Files (*.dat *.bin)") // Dynamic/Shared Objects File Extension Filter static const QString FILE_FILTER_DYN(QObject::tr("Extensions (*.so *.dylib *.dll)")); +// Initialization File Extension Filter +static const QString FILE_FILTER_INI(QObject::tr("Initialization File (*.ini)")); + enum FileDialogTypes { NoSpecificType, @@ -74,7 +77,10 @@ enum FileDialogTypes { OpenDataFile, OpenExtensionFile, - OpenCertificateFile + OpenCertificateFile, + + CreateSettingsFile, + OpenSettingsFile }; class FileDialog : public QFileDialog diff --git a/src/FilterLineEdit.cpp b/src/FilterLineEdit.cpp index 73e8e7488..44b45f1f2 100644 --- a/src/FilterLineEdit.cpp +++ b/src/FilterLineEdit.cpp @@ -85,7 +85,7 @@ void FilterLineEdit::keyReleaseEvent(QKeyEvent* event) void FilterLineEdit::clear() { - // When programatically clearing the line edit's value make sure the effects are applied immediately, i.e. + // When programmatically clearing the line edit's value make sure the effects are applied immediately, i.e. // bypass the delayed signal timer QLineEdit::clear(); delayedSignalTimerTriggered(); @@ -93,7 +93,7 @@ void FilterLineEdit::clear() void FilterLineEdit::setText(const QString& text) { - // When programatically setting the line edit's value make sure the effects are applied immediately, i.e. + // When programmatically setting the line edit's value make sure the effects are applied immediately, i.e. // bypass the delayed signal timer QLineEdit::setText(text); delayedSignalTimerTriggered(); @@ -116,65 +116,65 @@ void FilterLineEdit::showContextMenu(const QPoint &pos) QMenu* filterMenu = editContextMenu->addMenu(tr("Set Filter Expression")); QAction* whatsThisAction = new QAction(QIcon(":/icons/whatis"), tr("What's This?"), editContextMenu); - connect(whatsThisAction, &QAction::triggered, [&]() { + connect(whatsThisAction, &QAction::triggered, this, [&]() { QWhatsThis::showText(pos, whatsThis(), this); }); QAction* isNullAction = new QAction(tr("Is NULL"), editContextMenu); - connect(isNullAction, &QAction::triggered, [&]() { + connect(isNullAction, &QAction::triggered, this, [&]() { setText("=NULL"); }); QAction* isNotNullAction = new QAction(tr("Is not NULL"), editContextMenu); - connect(isNotNullAction, &QAction::triggered, [&]() { + connect(isNotNullAction, &QAction::triggered, this, [&]() { setText("<>NULL"); }); QAction* isEmptyAction = new QAction(tr("Is empty"), editContextMenu); - connect(isEmptyAction, &QAction::triggered, [&]() { + connect(isEmptyAction, &QAction::triggered, this, [&]() { setText("=''"); }); QAction* isNotEmptyAction = new QAction(tr("Is not empty"), editContextMenu); - connect(isNotEmptyAction, &QAction::triggered, [&]() { + connect(isNotEmptyAction, &QAction::triggered, this, [&]() { setText("<>''"); }); // Simplify this if we ever support a NOT LIKE filter QAction* notContainingAction = new QAction(tr("Not containing..."), editContextMenu); - connect(notContainingAction, &QAction::triggered, [&]() { + connect(notContainingAction, &QAction::triggered, this, [&]() { setFilterHelper(QString ("/^((?!"), QString(").)*$/")); }); QAction* equalToAction = new QAction(tr("Equal to..."), editContextMenu); - connect(equalToAction, &QAction::triggered, [&]() { + connect(equalToAction, &QAction::triggered, this, [&]() { setFilterHelper(QString ("=")); }); QAction* notEqualToAction = new QAction(tr("Not equal to..."), editContextMenu); - connect(notEqualToAction, &QAction::triggered, [&]() { + connect(notEqualToAction, &QAction::triggered, this, [&]() { setFilterHelper(QString ("<>")); }); QAction* greaterThanAction = new QAction(tr("Greater than..."), editContextMenu); - connect(greaterThanAction, &QAction::triggered, [&]() { + connect(greaterThanAction, &QAction::triggered, this, [&]() { setFilterHelper(QString (">")); }); QAction* lessThanAction = new QAction(tr("Less than..."), editContextMenu); - connect(lessThanAction, &QAction::triggered, [&]() { + connect(lessThanAction, &QAction::triggered, this, [&]() { setFilterHelper(QString ("<")); }); QAction* greaterEqualAction = new QAction(tr("Greater or equal..."), editContextMenu); - connect(greaterEqualAction, &QAction::triggered, [&]() { + connect(greaterEqualAction, &QAction::triggered, this, [&]() { setFilterHelper(QString (">=")); }); QAction* lessEqualAction = new QAction(tr("Less or equal..."), editContextMenu); - connect(lessEqualAction, &QAction::triggered, [&]() { + connect(lessEqualAction, &QAction::triggered, this, [&]() { setFilterHelper(QString ("<=")); }); QAction* inRangeAction = new QAction(tr("In range..."), editContextMenu); - connect(inRangeAction, &QAction::triggered, [&]() { + connect(inRangeAction, &QAction::triggered, this, [&]() { setFilterHelper(QString ("?~")); }); QAction* regexpAction = new QAction(tr("Regular expression..."), editContextMenu); - connect(regexpAction, &QAction::triggered, [&]() { + connect(regexpAction, &QAction::triggered, this, [&]() { setFilterHelper(QString ("/"), QString ("/")); }); @@ -184,17 +184,17 @@ void FilterLineEdit::showContextMenu(const QPoint &pos) QAction* conditionalFormatAction; if (text().isEmpty()) { conditionalFormatAction = new QAction(QIcon(":/icons/clear_cond_formats"), tr("Clear All Conditional Formats"), editContextMenu); - connect(conditionalFormatAction, &QAction::triggered, [&]() { + connect(conditionalFormatAction, &QAction::triggered, this, [&]() { emit clearAllCondFormats(); }); } else { conditionalFormatAction = new QAction(QIcon(":/icons/add_cond_format"), tr("Use for Conditional Format"), editContextMenu); - connect(conditionalFormatAction, &QAction::triggered, [&]() { + connect(conditionalFormatAction, &QAction::triggered, this, [&]() { emit addFilterAsCondFormat(text()); }); } QAction* editCondFormatsAction = new QAction(QIcon(":/icons/edit_cond_formats"), tr("Edit Conditional Formats..."), editContextMenu); - connect(editCondFormatsAction, &QAction::triggered, [&]() { + connect(editCondFormatsAction, &QAction::triggered, this, [&]() { emit editCondFormats(); }); editContextMenu->addSeparator(); diff --git a/src/FilterLineEdit.h b/src/FilterLineEdit.h index 5a7c16db9..f3922123e 100644 --- a/src/FilterLineEdit.h +++ b/src/FilterLineEdit.h @@ -14,7 +14,7 @@ class FilterLineEdit : public QLineEdit public: explicit FilterLineEdit(QWidget* parent, std::vector* filters = nullptr, size_t columnnum = 0); - // Override methods for programatically changing the value of the line edit + // Override methods for programmatically changing the value of the line edit void clear(); void setText(const QString& text); diff --git a/src/FilterTableHeader.cpp b/src/FilterTableHeader.cpp index 0149e39ee..d46e8b923 100644 --- a/src/FilterTableHeader.cpp +++ b/src/FilterTableHeader.cpp @@ -29,7 +29,7 @@ FilterTableHeader::FilterTableHeader(QTableView* parent) : setContextMenuPolicy(Qt::CustomContextMenu); } -void FilterTableHeader::generateFilters(size_t number, bool showFirst) +void FilterTableHeader::generateFilters(size_t number, size_t number_of_hidden_filters) { // Delete all the current filter widgets qDeleteAll(filterWidgets); @@ -39,10 +39,7 @@ void FilterTableHeader::generateFilters(size_t number, bool showFirst) for(size_t i=0;i < number; ++i) { FilterLineEdit* l = new FilterLineEdit(this, &filterWidgets, i); - if(!showFirst && i == 0) // This hides the first input widget which belongs to the hidden rowid column - l->setVisible(false); - else - l->setVisible(true); + l->setVisible(i >= number_of_hidden_filters); connect(l, &FilterLineEdit::delayedTextChanged, this, &FilterTableHeader::inputChanged); connect(l, &FilterLineEdit::addFilterAsCondFormat, this, &FilterTableHeader::addFilterAsCondFormat); connect(l, &FilterLineEdit::clearAllCondFormats, this, &FilterTableHeader::clearAllCondFormats); @@ -51,7 +48,7 @@ void FilterTableHeader::generateFilters(size_t number, bool showFirst) } // Position them correctly - adjustPositions(); + updateGeometries(); } QSize FilterTableHeader::sizeHint() const @@ -113,7 +110,7 @@ void FilterTableHeader::clearAllCondFormats() void FilterTableHeader::editCondFormats() { - // Just get the column number and the new value and send them to anybody interested in editting conditional formatting + // Just get the column number and the new value and send them to anybody interested in editing conditional formatting emit condFormatsEdited(sender()->property("column").toUInt()); } @@ -128,3 +125,8 @@ void FilterTableHeader::setFilter(size_t column, const QString& value) if(column < filterWidgets.size()) filterWidgets.at(column)->setText(value); } + +QString FilterTableHeader::filterValue(size_t column) const +{ + return filterWidgets[column]->text(); +} diff --git a/src/FilterTableHeader.h b/src/FilterTableHeader.h index ef64eaf23..0f32f561c 100644 --- a/src/FilterTableHeader.h +++ b/src/FilterTableHeader.h @@ -15,9 +15,10 @@ class FilterTableHeader : public QHeaderView explicit FilterTableHeader(QTableView* parent = nullptr); QSize sizeHint() const override; bool hasFilters() const {return (filterWidgets.size() > 0);} + QString filterValue(size_t column) const; public slots: - void generateFilters(size_t number, bool showFirst = false); + void generateFilters(size_t number, size_t number_of_hidden_filters = 1); void adjustPositions(); void clearFilters(); void setFilter(size_t column, const QString& value); diff --git a/src/ForeignKeyEditorDelegate.cpp b/src/ForeignKeyEditorDelegate.cpp index dd8bfc447..389a6ea3c 100644 --- a/src/ForeignKeyEditorDelegate.cpp +++ b/src/ForeignKeyEditorDelegate.cpp @@ -30,14 +30,14 @@ class ForeignKeyEditor : public QWidget layout->setMargin(0); setLayout(layout); - connect(m_btnReset, &QPushButton::clicked, [&] + connect(m_btnReset, &QPushButton::clicked, this, [&] { tablesComboBox->setCurrentIndex(-1); idsComboBox->setCurrentIndex(-1); clauseEdit->clear(); }); - connect(tablesComboBox, static_cast(&QComboBox::currentIndexChanged), + connect(tablesComboBox, static_cast(&QComboBox::currentIndexChanged), this, [=](int index) { // reset ids combo box @@ -83,11 +83,11 @@ ForeignKeyEditorDelegate::ForeignKeyEditorDelegate(const DBBrowserDB& db, sqlb:: { for(const auto& it : m_db.schemata) { - for(const auto& jt : it.second) + for(const auto& jt : it.second.tables) { // Don't insert the current table into the list. The name and fields of the current table are always taken from the m_table reference - if(jt.second->type() == sqlb::Object::Types::Table && jt.second->name() != m_table.name()) - m_tablesIds.insert({jt.second->name(), std::dynamic_pointer_cast(jt.second)->fieldNames()}); + if(jt.first != m_table.name()) + m_tablesIds.insert({jt.first, jt.second->fieldNames()}); } } } @@ -100,9 +100,11 @@ QWidget* ForeignKeyEditorDelegate::createEditor(QWidget* parent, const QStyleOpt ForeignKeyEditor* editor = new ForeignKeyEditor(parent); editor->setAutoFillBackground(true); - connect(editor->tablesComboBox, static_cast(&QComboBox::currentIndexChanged), - [=](const QString& tableName) + connect(editor->tablesComboBox, static_cast(&QComboBox::currentIndexChanged), this, + [=](int idx) { + QString tableName = editor->tablesComboBox->itemText(idx); + QComboBox* box = editor->idsComboBox; box->clear(); box->addItem(QString()); // for those heroes who don't like to specify key explicitly @@ -122,9 +124,10 @@ QWidget* ForeignKeyEditorDelegate::createEditor(QWidget* parent, const QStyleOpt }); editor->tablesComboBox->clear(); + editor->tablesComboBox->addItem(QString::fromStdString(m_table.name())); // For recursive foreign keys + editor->tablesComboBox->insertSeparator(1); for(const auto& i : m_tablesIds) editor->tablesComboBox->addItem(QString::fromStdString(i.first)); - editor->tablesComboBox->addItem(QString::fromStdString(m_table.name())); // For recursive foreign keys return editor; } diff --git a/src/ForeignKeyEditorDelegate.h b/src/ForeignKeyEditorDelegate.h index 076706a91..58a788975 100644 --- a/src/ForeignKeyEditorDelegate.h +++ b/src/ForeignKeyEditorDelegate.h @@ -2,7 +2,7 @@ #define FOREIGNKEYDELEGATE_H #include -#include +#include #include #include @@ -28,7 +28,7 @@ class ForeignKeyEditorDelegate : public QStyledItemDelegate private: const DBBrowserDB& m_db; sqlb::Table& m_table; - mutable std::unordered_map> m_tablesIds; + mutable std::map> m_tablesIds; }; #endif // FOREIGNKEYDELEGATE_H diff --git a/src/ImageViewer.cpp b/src/ImageViewer.cpp index d69e32979..cb1e440c8 100644 --- a/src/ImageViewer.cpp +++ b/src/ImageViewer.cpp @@ -1,17 +1,23 @@ #include "ImageViewer.h" #include "ui_ImageViewer.h" -#include -#include +#include #include +#include +#include +#include #include +#include ImageViewer::ImageViewer(QWidget* parent) : QWidget(parent), - ui(new Ui::ImageViewer) + ui(new Ui::ImageViewer), + m_image_size(0, 0), + m_pan_mode{false} { ui->setupUi(this); - connect(ui->buttonOriginalSize, &QToolButton::clicked, [this]{ scaleImage(100); }); + ui->scrollArea->viewport()->installEventFilter(this); + connect(ui->buttonOriginalSize, &QToolButton::clicked, this, [this]{ scaleImage(100); }); ui->labelView->addAction(ui->actionPrintImage); } @@ -28,29 +34,88 @@ void ImageViewer::resetImage() void ImageViewer::setImage(const QImage& image) { + auto widget_size = ui->scrollArea->viewport()->size(); + m_image_size = image.size(); + ui->labelView->setMaximumSize(m_image_size.scaled(widget_size, Qt::KeepAspectRatio)); + ui->labelView->setPixmap(QPixmap::fromImage(image)); // If the image is larger than the viewport scale it to fit the viewport. // If the image is smaller than the viewport show it in its original size. - if(image.size().width() > ui->labelView->size().width() || image.size().height() > ui->labelView->size().height()) + if(!isQSizeCovered(m_image_size)) ui->buttonFitToWindow->setChecked(true); else scaleImage(100); } +bool ImageViewer::isQSizeCovered(QSize rect) +{ + auto widget_size = ui->scrollArea->viewport()->size(); + return widget_size.width() >= rect.width() && widget_size.height() >= rect.height(); +} + +bool ImageViewer::eventFilter(QObject *obj, QEvent *e) { + auto e_type = e->type(); + + if (e_type == QEvent::Wheel) { + auto *wheel_event = static_cast(e); + auto step = ui->sliderScale->pageStep(); + if (wheel_event->angleDelta().y() < 0) { + step = -step; + } + scaleImage(ui->sliderScale->value() + step); + e->accept(); + return true; + } + + if (ui->buttonFitToWindow->isChecked()) { + if (e_type == QEvent::Resize) + scaleToFitWindow(true); + } else if (e_type >= QEvent::MouseButtonPress && e_type <= QEvent::MouseMove) { + auto *mouse_event = static_cast(e); + if (e_type == QEvent::MouseButtonPress && mouse_event->button() == Qt::LeftButton && + !isQSizeCovered(ui->labelView->size())) { + m_mouse_down = mouse_event->globalPos(); + m_pan_mode = true; + ui->scrollArea->setCursor(Qt::ClosedHandCursor); + } else if (e_type == QEvent::MouseMove && m_pan_mode) { + auto dx = mouse_event->globalX() - m_mouse_down.x(); + auto dy = mouse_event->globalY() - m_mouse_down.y(); + m_mouse_down = mouse_event->globalPos(); + if (dx != 0) { + ui->scrollArea->horizontalScrollBar()->setValue(ui->scrollArea->horizontalScrollBar()->value() - dx); + } + + if (dy != 0) { + ui->scrollArea->verticalScrollBar()->setValue(ui->scrollArea->verticalScrollBar()->value() - dy); + } + } else if (e_type == QEvent::MouseButtonRelease && mouse_event->button() == Qt::LeftButton) { + m_pan_mode = false; + ui->scrollArea->setCursor(Qt::ArrowCursor); + } + } + return false; +} + void ImageViewer::openPrintImageDialog() { QPrinter printer; QPrintPreviewDialog dialog(&printer); - connect(&dialog, &QPrintPreviewDialog::paintRequested, [&](QPrinter* previewPrinter) { + connect(&dialog, &QPrintPreviewDialog::paintRequested, &dialog, [&](QPrinter* previewPrinter) { QPainter painter(previewPrinter); QRect rect = painter.viewport(); - QSize size = ui->labelView->pixmap()->size(); +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + QPixmap pixmap = *ui->labelView->pixmap(); +#else + QPixmap pixmap = ui->labelView->pixmap(Qt::ReturnByValue); +#endif + + QSize size = pixmap.size(); size.scale(rect.size(), Qt::KeepAspectRatio); painter.setViewport(rect.x(), rect.y(), size.width(), size.height()); - painter.setWindow(ui->labelView->pixmap()->rect()); - painter.drawPixmap(0, 0, *ui->labelView->pixmap()); + painter.setWindow(pixmap.rect()); + painter.drawPixmap(0, 0, pixmap); }); dialog.exec(); @@ -62,26 +127,52 @@ void ImageViewer::scaleToFitWindow(bool enabled) ui->scrollArea->setWidgetResizable(enabled); // When disabling the fit to window scaling, revert back to the original image size - if(!enabled) + if(!enabled) { scaleImage(100); + } else { + ui->labelView->setMaximumSize(m_image_size.scaled(ui->scrollArea->viewport()->size(), Qt::KeepAspectRatio)); + setSliderValueWithoutSignal(ui->labelView->maximumWidth() / static_cast(m_image_size.width()) * 100); + } +} + +void ImageViewer::setNoFitWithoutSignal() +{ + if (ui->buttonFitToWindow->isChecked()) { + ui->buttonFitToWindow->blockSignals(true); + ui->scrollArea->setWidgetResizable(false); + ui->buttonFitToWindow->setChecked(false); + ui->buttonFitToWindow->blockSignals(false); + } +} + +void ImageViewer::setSliderValueWithoutSignal(int value) +{ + ui->sliderScale->blockSignals(true); + ui->sliderScale->setValue(value); + ui->sliderScale->blockSignals(false); } void ImageViewer::scaleImage(int scale) { - // Make sure the slider is updated when this is called programatically - ui->sliderScale->setValue(scale); + // Clamp scale to the sliderScale min/max + scale = std::min(ui->sliderScale->maximum(), std::max(ui->sliderScale->minimum(), scale)); + + // Make sure the slider is updated when this is called programmatically + setSliderValueWithoutSignal(scale); + + // Uncheck the fit to window button + setNoFitWithoutSignal(); // Update our scale factor - qreal factor_change = (scale / 100.0) / m_scale_factor; - m_scale_factor = scale / 100.0; + auto scale_factor = scale / 100.0; // Resize the image - ui->labelView->resize(m_scale_factor * ui->labelView->pixmap()->size()); - - // Uncheck the fit to window button - ui->buttonFitToWindow->setChecked(false); + auto max_size_old = ui->labelView->maximumSize(); + ui->labelView->setMaximumSize(m_image_size * scale_factor); + ui->labelView->resize(ui->labelView->maximumSize()); + auto factor_change = ui->labelView->maximumWidth() / static_cast(max_size_old.width()); - // Fix scroll bars to zoom into center of viewport instead of tthe upper left corner + // Fix scroll bars to zoom into center of viewport instead of the upper left corner const auto adjust_scrollbar = [](QScrollBar* scroll_bar, qreal factor) { scroll_bar->setValue(static_cast(factor * scroll_bar->value() + ((factor - 1) * scroll_bar->pageStep() / 2))); }; diff --git a/src/ImageViewer.h b/src/ImageViewer.h index 7ca5ddf68..79803c7e7 100644 --- a/src/ImageViewer.h +++ b/src/ImageViewer.h @@ -13,7 +13,7 @@ class ImageViewer : public QWidget public: explicit ImageViewer(QWidget* parent = nullptr); - ~ImageViewer(); + ~ImageViewer() override; void resetImage(); void setImage(const QImage& image); @@ -27,8 +27,14 @@ private slots: private: Ui::ImageViewer* ui; - - qreal m_scale_factor; + QSize m_image_size; + bool m_pan_mode; + QPoint m_mouse_down; + + bool eventFilter(QObject *obj, QEvent *e) override; + bool isQSizeCovered(QSize rect); + void setNoFitWithoutSignal(); + void setSliderValueWithoutSignal(int value); }; #endif diff --git a/src/ImageViewer.ui b/src/ImageViewer.ui index 470cea932..64535c6ed 100644 --- a/src/ImageViewer.ui +++ b/src/ImageViewer.ui @@ -31,6 +31,9 @@ + + Qt::AlignCenter + @@ -104,7 +107,7 @@ - :/icons/monitor_link.png:/icons/monitor_link.png + :/icons/monitor_link:/icons/monitor_link true diff --git a/src/ImportCsvDialog.cpp b/src/ImportCsvDialog.cpp index cbbc6a523..7ccb97bb0 100644 --- a/src/ImportCsvDialog.cpp +++ b/src/ImportCsvDialog.cpp @@ -26,7 +26,19 @@ #include #endif -ImportCsvDialog::ImportCsvDialog(const std::vector& filenames, DBBrowserDB* db, QWidget* parent) +QChar ImportCsvDialog::getSettingsChar(const std::string& group, const std::string& name) +{ + QVariant value = Settings::getValue(group, name); + // QVariant is not able to return the character as a QChar when QString is stored. + // We do it manually, since it is versatile, when the option is passed from the command line, + // for example. + if(value.userType() == QMetaType::QString) + return value.toString().at(0); + else + return value.toChar(); +} + +ImportCsvDialog::ImportCsvDialog(const std::vector& filenames, DBBrowserDB* db, QWidget* parent, const QString& table) : QDialog(parent), ui(new Ui::ImportCsvDialog), csvFilenames(filenames), @@ -37,10 +49,14 @@ ImportCsvDialog::ImportCsvDialog(const std::vector& filenames, DBBrowse // Hide "Advanced" section of the settings toggleAdvancedSection(false); - // Get the actual file name out of the provided path and use it as the default table name for import - // For importing several files at once, the fields have to be the same so we can safely use the first - QFileInfo file(filenames.front()); - ui->editName->setText(file.baseName()); + if(!table.isEmpty()) { + ui->editName->setText(table); + } else { + // Get the actual file name out of the provided path and use it as the default table name for import + // For importing several files at once, the fields have to be the same so we can safely use the first + QFileInfo file(filenames.front()); + ui->editName->setText(file.baseName()); + } // Create a list of all available encodings and create an auto completion list from them encodingCompleter = new QCompleter(toStringList(QTextCodec::availableCodecs()), this); @@ -51,6 +67,7 @@ ImportCsvDialog::ImportCsvDialog(const std::vector& filenames, DBBrowse ui->checkboxHeader->blockSignals(true); ui->checkBoxTrimFields->blockSignals(true); ui->checkBoxSeparateTables->blockSignals(true); + ui->checkLocalConventions->blockSignals(true); ui->comboSeparator->blockSignals(true); ui->comboQuote->blockSignals(true); ui->comboEncoding->blockSignals(true); @@ -58,13 +75,15 @@ ImportCsvDialog::ImportCsvDialog(const std::vector& filenames, DBBrowse ui->checkboxHeader->setChecked(Settings::getValue("importcsv", "firstrowheader").toBool()); ui->checkBoxTrimFields->setChecked(Settings::getValue("importcsv", "trimfields").toBool()); ui->checkBoxSeparateTables->setChecked(Settings::getValue("importcsv", "separatetables").toBool()); - setSeparatorChar(Settings::getValue("importcsv", "separator").toChar()); - setQuoteChar(Settings::getValue("importcsv", "quotecharacter").toChar()); + ui->checkLocalConventions->setChecked(Settings::getValue("importcsv", "localconventions").toBool()); + setSeparatorChar(getSettingsChar("importcsv", "separator")); + setQuoteChar(getSettingsChar("importcsv", "quotecharacter")); setEncoding(Settings::getValue("importcsv", "encoding").toString()); ui->checkboxHeader->blockSignals(false); ui->checkBoxTrimFields->blockSignals(false); ui->checkBoxSeparateTables->blockSignals(false); + ui->checkLocalConventions->blockSignals(false); ui->comboSeparator->blockSignals(false); ui->comboQuote->blockSignals(false); ui->comboEncoding->blockSignals(false); @@ -169,6 +188,7 @@ void ImportCsvDialog::accept() Settings::setValue("importcsv", "quotecharacter", currentQuoteChar()); Settings::setValue("importcsv", "trimfields", ui->checkBoxTrimFields->isChecked()); Settings::setValue("importcsv", "separatetables", ui->checkBoxSeparateTables->isChecked()); + Settings::setValue("importcsv", "localconventions", ui->checkLocalConventions->isChecked()); Settings::setValue("importcsv", "encoding", currentEncoding()); // Get all the selected files and start the import @@ -242,8 +262,7 @@ void ImportCsvDialog::updatePreview() // Set horizontal header data QStringList horizontalHeader; - for(const sqlb::Field& field : fieldList) - horizontalHeader.push_back(QString::fromStdString(field.name())); + std::transform(fieldList.begin(), fieldList.end(), std::back_inserter(horizontalHeader), [](const auto& field) { return QString::fromStdString(field.name()); }); ui->tablePreview->setHorizontalHeaderLabels(horizontalHeader); // Parse file @@ -398,14 +417,8 @@ sqlb::FieldVector ImportCsvDialog::generateFieldList(const QString& filename) co // If the user wants to use the first row as table header and if this is the first row, extract a field name if(rowNum == 0 && ui->checkboxHeader->isChecked()) { - // Take field name from CSV and remove invalid characters + // Take field name from CSV fieldname = std::string(rowData.fields[i].data, rowData.fields[i].data_length); - fieldname.erase(std::remove(fieldname.begin(), fieldname.end(), '`'), fieldname.end()); - fieldname.erase(std::remove(fieldname.begin(), fieldname.end(), ' '), fieldname.end()); - fieldname.erase(std::remove(fieldname.begin(), fieldname.end(), '"'), fieldname.end()); - fieldname.erase(std::remove(fieldname.begin(), fieldname.end(), '\''), fieldname.end()); - fieldname.erase(std::remove(fieldname.begin(), fieldname.end(), ','), fieldname.end()); - fieldname.erase(std::remove(fieldname.begin(), fieldname.end(), ';'), fieldname.end()); } // If we don't have a field name by now, generate one @@ -428,23 +441,24 @@ sqlb::FieldVector ImportCsvDialog::generateFieldList(const QString& filename) co if(old_type != "TEXT") { QString content = QString::fromUtf8(rowData.fields[i].data, static_cast(rowData.fields[i].data_length)); + const QLocale &locale = ui->checkLocalConventions->isChecked() ? QLocale::system() : QLocale::c(); - // Check if the content can be converted to an integer or to float - bool convert_to_int, convert_to_float; - content.toInt(&convert_to_int); - content.toFloat(&convert_to_float); + // Check if the content can be converted to an integer or to real + bool convert_to_integer, convert_to_real; + locale.toLongLong(content, &convert_to_integer); + locale.toDouble(content, &convert_to_real); // Set new data type. If we don't find any better data type, we fall back to the TEXT data type std::string new_type = "TEXT"; - if(old_type == "INTEGER" && !convert_to_int && convert_to_float) // So far it's integer, but now it's only convertible to float + if(old_type == "INTEGER" && !convert_to_integer && convert_to_real) // So far it's integer, but now it's only convertible to float new_type = "REAL"; - else if(old_type.empty() && convert_to_int) // No type yet, but this bit is convertible to integer + else if(old_type.empty() && convert_to_integer) // No type yet, but this bit is convertible to integer new_type = "INTEGER"; - else if(old_type.empty() && convert_to_float) // No type yet and only convertible to float (less 'difficult' than integer) + else if(old_type.empty() && convert_to_real) // No type yet and only convertible to float (less 'difficult' than integer) new_type = "REAL"; - else if(old_type == "REAL" && convert_to_float) // It was float so far and still is + else if(old_type == "REAL" && convert_to_real) // It was float so far and still is new_type = "INTEGER"; - else if(old_type == "INTEGER" && convert_to_int) // It was integer so far and still is + else if(old_type == "INTEGER" && convert_to_integer) // It was integer so far and still is new_type = "INTEGER"; fieldList.at(i).setType(new_type); @@ -495,33 +509,41 @@ bool ImportCsvDialog::importCsv(const QString& fileName, const QString& name) // Are we importing into an existing table? bool importToExistingTable = false; - const sqlb::ObjectPtr obj = pdb->getObjectByName(sqlb::ObjectIdentifier("main", tableName.toStdString())); - if(obj && obj->type() == sqlb::Object::Types::Table) + const sqlb::TablePtr tbl = pdb->getTableByName(sqlb::ObjectIdentifier("main", tableName.toStdString())); + if(tbl) { - if(std::dynamic_pointer_cast(obj)->fields.size() != fieldList.size()) + if(tbl->fields.size() != fieldList.size()) { QMessageBox::warning(this, QApplication::applicationName(), tr("There is already a table named '%1' and an import into an existing table is only possible if the number of columns match.").arg(tableName)); return true; } else { - // Only ask whether to import into the existing table if the 'Yes all' button has not been clicked (yet) - if(!dontAskForExistingTableAgain.contains(tableName)) + // Only ask whether to import into any table if the 'Yes to All' button has not been clicked (yet) (empty string is included). + // Only ask whether to import into the existing table if the 'Yes' button has not been clicked (yet) for that table. + if(!dontAskForExistingTableAgain.contains("") && !dontAskForExistingTableAgain.contains(tableName)) { int answer = QMessageBox::question(this, QApplication::applicationName(), tr("There is already a table named '%1'. Do you want to import the data into it?").arg(tableName), QMessageBox::Yes | QMessageBox::No | QMessageBox::YesAll | QMessageBox::Cancel, QMessageBox::No); // Stop now if the No button has been clicked - if(answer == QMessageBox::No) + switch (answer) { + case QMessageBox::No: return true; // Stop now if the Cancel button has been clicked. But also indicate, that the entire import process should be stopped. - if(answer == QMessageBox::Cancel) + case QMessageBox::Cancel: return false; - // If the 'Yes all' button has been clicked, save that for later - if(answer == QMessageBox::YesAll) + // If the 'Yes' button has been clicked, save the answer for that table for later + case QMessageBox::Yes: dontAskForExistingTableAgain.append(tableName); + break; + // If the 'Yes to All' button has been clicked, save the answer for any future table name. An empty string is used in that case. + case QMessageBox::YesAll: + dontAskForExistingTableAgain.append(""); + break; + } } // If we reached this point, this means that either the 'Yes' or the 'Yes all' button has been clicked or that no message box was shown at all @@ -560,7 +582,6 @@ bool ImportCsvDialog::importCsv(const QString& fileName, const QString& name) // Prepare the values for each table column that are to be inserted if the field in the CSV file is empty. Depending on the data type // and the constraints of a field, we need to handle this case differently. - sqlb::TablePtr tbl = pdb->getObjectByName(sqlb::ObjectIdentifier("main", tableName.toStdString())); if(tbl) { for(const sqlb::Field& f : tbl->fields) @@ -621,7 +642,7 @@ bool ImportCsvDialog::importCsv(const QString& fileName, const QString& name) qint64 timeAtStartOfRowFunction = timer.elapsed(); #endif - // Save row num for later use. This is used in the case of an error to tell the user in which row the error ocurred + // Save row num for later use. This is used in the case of an error to tell the user in which row the error occurred lastRowNum = rowNum; // If this is the first row and we want to use the first row as table header, skip it now because this is the data import, not the header parsing @@ -647,8 +668,26 @@ bool ImportCsvDialog::importCsv(const QString& fileName, const QString& name) } else if(!importToExistingTable && rowData.fields[i].data_length == 0) { // No need to bind NULL values here as that is the default bound value in SQLite } else { - // This is a non-empty value, or we want to insert the empty string. Just add it to the statement - sqlite3_bind_text(stmt, static_cast(i)+1, rowData.fields[i].data, static_cast(rowData.fields[i].data_length), SQLITE_STATIC); + // This is a non-empty value, or we want to insert the empty string. Just add it to the statement. + bool convert_ok = false; + if(ui->checkLocalConventions->isChecked()) { + // Find the correct data type taking into account the locale. + QString content = QString::fromUtf8(rowData.fields[i].data, static_cast(rowData.fields[i].data_length)); + sqlite_int64 int64_value = QLocale::system().toLongLong(content, &convert_ok); + if(convert_ok) { + sqlite3_bind_int64(stmt, static_cast(i)+1, int64_value); + } else { + double value = QLocale::system().toDouble(content, &convert_ok); + if(convert_ok) + sqlite3_bind_double(stmt, static_cast(i)+1, value); + } + } + + if(!convert_ok) { + // If we don't find any better data type or we want SQLite to apply the type affinity + // (impossible when using local conventions), we fall back to the TEXT data type. + sqlite3_bind_text(stmt, static_cast(i)+1, rowData.fields[i].data, static_cast(rowData.fields[i].data_length), SQLITE_STATIC); + } } } @@ -822,6 +861,8 @@ void ImportCsvDialog::toggleAdvancedSection(bool show) { ui->labelNoTypeDetection->setVisible(show); ui->checkNoTypeDetection->setVisible(show); + ui->labelLocalConventions->setVisible(show); + ui->checkLocalConventions->setVisible(show); ui->labelFailOnMissing->setVisible(show); ui->checkFailOnMissing->setVisible(show); ui->labelIgnoreDefaults->setVisible(show); diff --git a/src/ImportCsvDialog.h b/src/ImportCsvDialog.h index 6e7f92eef..fcc21c555 100644 --- a/src/ImportCsvDialog.h +++ b/src/ImportCsvDialog.h @@ -19,7 +19,7 @@ class ImportCsvDialog : public QDialog Q_OBJECT public: - explicit ImportCsvDialog(const std::vector& filenames, DBBrowserDB* db, QWidget* parent = nullptr); + explicit ImportCsvDialog(const std::vector& filenames, DBBrowserDB* db, QWidget* parent = nullptr, const QString& table = QString()); ~ImportCsvDialog() override; private slots: @@ -62,6 +62,8 @@ private slots: std::string currentOnConflictStrategy() const; char32_t toUtf8(const QString& s) const; + + static QChar getSettingsChar(const std::string& group, const std::string& name); }; #endif diff --git a/src/ImportCsvDialog.ui b/src/ImportCsvDialog.ui index c470c8db2..a711aa2a1 100644 --- a/src/ImportCsvDialog.ui +++ b/src/ImportCsvDialog.ui @@ -299,14 +299,14 @@ - + When importing an empty value from the CSV file into an existing table with a default value for this column, that default value is inserted. Activate this option to insert an empty value instead. - + Ignore default &values @@ -350,6 +350,23 @@ + + + + Use local number conventions + + + checkLocalConventions + + + + + + + Use decimal and thousands separators according to the system locale. + + + @@ -492,6 +509,7 @@ buttonAdvanced checkIgnoreDefaults checkNoTypeDetection + checkLocalConventions checkFailOnMissing comboOnConflictStrategy filePicker diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 44d27eff1..b53eac13e 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -49,6 +49,8 @@ #include #include #include +#include +#include #include #ifdef Q_OS_MACX //Needed only on macOS @@ -101,22 +103,20 @@ void MainWindow::init() // Automatic update check #ifdef CHECKNEWVERSION - connect(&RemoteNetwork::get(), &RemoteNetwork::networkReady, [this]() { - // Check for a new version if automatic update check aren't disabled in the settings dialog - if(Settings::getValue("checkversion", "enabled").toBool()) - { - RemoteNetwork::get().fetch(QUrl("https://download.sqlitebrowser.org/currentrelease"), RemoteNetwork::RequestTypeCustom, - QString(), [this](const QByteArray& reply) { - QList info = reply.split('\n'); - if(info.size() >= 2) - { - QString version = info.at(0).trimmed(); - QString url = info.at(1).trimmed(); - checkNewVersion(version, url); - } - }); - } - }); + // Check for a new version if automatic update check aren't disabled in the settings dialog + if(Settings::getValue("checkversion", "enabled").toBool()) + { + RemoteNetwork::get().fetch(QUrl("https://download.sqlitebrowser.org/currentrelease"), RemoteNetwork::RequestTypeCustom, + QString(), [this](const QByteArray& reply) { + QList info = reply.split('\n'); + if(info.size() >= 2) + { + QString version = info.at(0).trimmed(); + QString url = info.at(1).trimmed(); + checkNewVersion(version, url); + } + }, false, true); + } #endif // create facade objects to dbTreeWidgets @@ -181,6 +181,8 @@ void MainWindow::init() connect(shortcutBrowseRefreshF5, &QShortcut::activated, this, &MainWindow::refresh); QShortcut* shortcutBrowseRefreshCtrlR = new QShortcut(QKeySequence("Ctrl+R"), this); connect(shortcutBrowseRefreshCtrlR, &QShortcut::activated, this, &MainWindow::refresh); + QShortcut* shortcutBrowseRefreshCtrlEnter = new QShortcut(QKeySequence("Ctrl+Enter"), this); + connect(shortcutBrowseRefreshCtrlEnter, &QShortcut::activated, this, &MainWindow::refresh); // Add print shortcut for the DB Structure tab (dbTreeWidget) with context to the widget, so other print shortcuts aren't eclipsed. QShortcut* shortcutPrint = new QShortcut(QKeySequence(QKeySequence::Print), ui->dbTreeWidget, nullptr, nullptr, Qt::WidgetShortcut); @@ -264,6 +266,7 @@ void MainWindow::init() popupSaveSqlResultsMenu = new QMenu(this); popupSaveSqlResultsMenu->addAction(ui->actionSqlResultsExportCsv); + popupSaveSqlResultsMenu->addAction(ui->actionSqlResultsExportJson); popupSaveSqlResultsMenu->addAction(ui->actionSqlResultsSaveAsView); ui->actionSqlResultsSave->setMenu(popupSaveSqlResultsMenu); qobject_cast(ui->toolbarSql->widgetForAction(ui->actionSqlResultsSave))->setPopupMode(QToolButton::InstantPopup); @@ -308,13 +311,14 @@ void MainWindow::init() // Add entries for toggling the visibility of main tabs for (QWidget* widget : {ui->structure, ui->browser, ui->pragmas, ui->query}) { QAction* action = ui->viewMenu->addAction(QIcon(":/icons/open_sql"), widget->accessibleName()); + action->setObjectName(widget->accessibleName()); action->setCheckable(true); action->setChecked(ui->mainTab->indexOf(widget) != -1); - connect(action, &QAction::toggled, [=](bool show) { toggleTabVisible(widget, show); }); - // Connect tabCloseRequested for setting checked the appropiate menu entry. + connect(action, &QAction::toggled, this, [=](bool show) { toggleTabVisible(widget, show); }); + // Connect tabCloseRequested for setting checked the appropriate menu entry. // Note these are called after the actual tab is closed only because they are connected // after connecting closeTab. - connect(ui->mainTab, &QTabWidget::tabCloseRequested, [=](int /*index*/) { + connect(ui->mainTab, &QTabWidget::tabCloseRequested, this, [=](int /*index*/) { action->setChecked(ui->mainTab->indexOf(widget) != -1); }); } @@ -326,14 +330,17 @@ void MainWindow::init() QAction* resetLayoutAction = layoutMenu->addAction(tr("Reset Window Layout")); resetLayoutAction->setShortcut(QKeySequence(tr("Alt+0"))); - connect(resetLayoutAction, &QAction::triggered, [=]() { + connect(resetLayoutAction, &QAction::triggered, this, [=]() { restoreState(defaultWindowState); restoreOpenTabs(defaultOpenTabs); + ui->viewDBToolbarAction->setChecked(!ui->toolbarDB->isHidden()); + ui->viewExtraDBToolbarAction->setChecked(!ui->toolbarExtraDB->isHidden()); + ui->viewProjectToolbarAction->setChecked(!ui->toolbarProject->isHidden()); }); QAction* simplifyLayoutAction = layoutMenu->addAction(tr("Simplify Window Layout")); simplifyLayoutAction->setShortcut(QKeySequence(tr("Shift+Alt+0"))); - connect(simplifyLayoutAction, &QAction::triggered, [=]() { - toggleTabVisible(ui->pragmas, false); + connect(simplifyLayoutAction, &QAction::triggered, this, [=]() { + ui->viewMenu->findChild(ui->pragmas->accessibleName())->activate(QAction::Trigger); ui->dockLog->hide(); ui->dockPlot->hide(); ui->dockSchema->hide(); @@ -341,15 +348,15 @@ void MainWindow::init() ui->dockRemote->hide(); }); QAction* atBottomLayoutAction = layoutMenu->addAction(tr("Dock Windows at Bottom")); - connect(atBottomLayoutAction, &QAction::triggered, [=]() { + connect(atBottomLayoutAction, &QAction::triggered, this, [=]() { moveDocksTo(Qt::BottomDockWidgetArea); }); QAction* atLeftLayoutAction = layoutMenu->addAction(tr("Dock Windows at Left Side")); - connect(atLeftLayoutAction, &QAction::triggered, [=]() { + connect(atLeftLayoutAction, &QAction::triggered, this, [=]() { moveDocksTo(Qt::LeftDockWidgetArea); }); QAction* atTopLayoutAction = layoutMenu->addAction(tr("Dock Windows at Top")); - connect(atTopLayoutAction, &QAction::triggered, [=]() { + connect(atTopLayoutAction, &QAction::triggered, this, [=]() { moveDocksTo(Qt::TopDockWidgetArea); }); @@ -357,13 +364,13 @@ void MainWindow::init() // Note that it is safe to call setCurrentIndex with a tab that is currently closed, // since setCurrentIndex does nothing in that case. QShortcut* setTab1Shortcut = new QShortcut(QKeySequence("Alt+1"), this); - connect(setTab1Shortcut, &QShortcut::activated, [this]() { ui->mainTab->setCurrentIndex(0); }); + connect(setTab1Shortcut, &QShortcut::activated, this, [this]() { ui->mainTab->setCurrentIndex(0); }); QShortcut* setTab2Shortcut = new QShortcut(QKeySequence("Alt+2"), this); - connect(setTab2Shortcut, &QShortcut::activated, [this]() { ui->mainTab->setCurrentIndex(1); }); + connect(setTab2Shortcut, &QShortcut::activated, this, [this]() { ui->mainTab->setCurrentIndex(1); }); QShortcut* setTab3Shortcut = new QShortcut(QKeySequence("Alt+3"), this); - connect(setTab3Shortcut, &QShortcut::activated, [this]() { ui->mainTab->setCurrentIndex(2); }); + connect(setTab3Shortcut, &QShortcut::activated, this, [this]() { ui->mainTab->setCurrentIndex(2); }); QShortcut* setTab4Shortcut = new QShortcut(QKeySequence("Alt+4"), this); - connect(setTab4Shortcut, &QShortcut::activated, [this]() { ui->mainTab->setCurrentIndex(3); }); + connect(setTab4Shortcut, &QShortcut::activated, this, [this]() { ui->mainTab->setCurrentIndex(3); }); // If we're not compiling in SQLCipher, hide its FAQ link in the help menu #ifndef ENABLE_SQLCIPHER @@ -406,24 +413,25 @@ void MainWindow::init() ui->statusbar->addPermanentWidget(statusEncodingLabel); // When changing the text of the toolbar actions, also automatically change their icon text and their tooltip text - connect(ui->editModifyObjectAction, &QAction::changed, [=]() { + connect(ui->editModifyObjectAction, &QAction::changed, this, [=]() { ui->editModifyObjectAction->setIconText(ui->editModifyObjectAction->text()); ui->editModifyObjectAction->setToolTip(ui->editModifyObjectAction->text()); }); - connect(ui->editDeleteObjectAction, &QAction::changed, [=]() { + connect(ui->editDeleteObjectAction, &QAction::changed, this, [=]() { ui->editDeleteObjectAction->setIconText(ui->editDeleteObjectAction->text()); ui->editDeleteObjectAction->setToolTip(ui->editDeleteObjectAction->text()); }); // When clicking the interrupt query button in the status bar, ask SQLite to interrupt the current query - connect(statusStopButton, &QToolButton::clicked, [this]() { + connect(statusStopButton, &QToolButton::clicked, this, [this]() { db.interruptQuery(); }); // Connect some more signals and slots connect(editDock, &EditDialog::recordTextUpdated, this, &MainWindow::updateRecordText); + connect(editDock, &EditDialog::evaluateText, this, &MainWindow::evaluateText); connect(editDock, &EditDialog::requestUrlOrFileOpen, this, &MainWindow::openUrlOrFile); - connect(ui->dbTreeWidget->selectionModel(), &QItemSelectionModel::currentChanged, this, &MainWindow::changeTreeSelection); + connect(ui->dbTreeWidget->selectionModel(), &QItemSelectionModel::selectionChanged, this, &MainWindow::changeTreeSelection); connect(ui->dockEdit, &QDockWidget::visibilityChanged, this, &MainWindow::toggleEditDock); connect(remoteDock, SIGNAL(openFile(QString)), this, SLOT(fileOpen(QString))); connect(ui->actionDropQualifiedCheck, &QAction::toggled, dbStructureModel, &DbStructureModel::setDropQualifiedNames); @@ -433,27 +441,27 @@ void MainWindow::init() ui->actionDropQualifiedCheck->setChecked(Settings::getValue("SchemaDock", "dropQualifiedNames").toBool()); ui->actionEnquoteNamesCheck->setChecked(Settings::getValue("SchemaDock", "dropEnquotedNames").toBool()); - connect(ui->actionSqlStop, &QAction::triggered, [this]() { + connect(ui->actionSqlStop, &QAction::triggered, this, [this]() { if(execute_sql_worker && execute_sql_worker->isRunning()) execute_sql_worker->stop(); }); // Connect tool pragmas - connect(ui->actionIntegrityCheck, &QAction::triggered, [this]() { + connect(ui->actionIntegrityCheck, &QAction::triggered, this, [this]() { runSqlNewTab("PRAGMA integrity_check;", ui->actionIntegrityCheck->text(), "https://www.sqlite.org/pragma.html#pragma_integrity_check"); }); - connect(ui->actionQuickCheck, &QAction::triggered, [this]() { + connect(ui->actionQuickCheck, &QAction::triggered, this, [this]() { runSqlNewTab("PRAGMA quick_check;", ui->actionQuickCheck->text(), "https://www.sqlite.org/pragma.html#pragma_quick_check"); }); - connect(ui->actionForeignKeyCheck, &QAction::triggered, [this]() { + connect(ui->actionForeignKeyCheck, &QAction::triggered, this, [this]() { runSqlNewTab("PRAGMA foreign_key_check;", ui->actionForeignKeyCheck->text(), "https://www.sqlite.org/pragma.html#pragma_foreign_key_check"); }); - connect(ui->actionOptimize, &QAction::triggered, [this]() { + connect(ui->actionOptimize, &QAction::triggered, this, [this]() { runSqlNewTab("PRAGMA optimize;", ui->actionOptimize->text(), "https://www.sqlite.org/pragma.html#pragma_optimize"); }); // Action for switching the table via the Database Structure tab - connect(ui->actionPopupSchemaDockBrowseTable, &QAction::triggered, [this]() { + connect(ui->actionPopupSchemaDockBrowseTable, &QAction::triggered, this, [this]() { switchToBrowseDataTab(dockDbSelected->object()); refresh(); // Required in case the Browse Data tab already was the active main tab }); @@ -465,6 +473,7 @@ void MainWindow::init() // Add the documentation of shortcuts, which aren't otherwise visible in the user interface, to some buttons. addShortcutsTooltip(ui->actionDbPrint); addShortcutsTooltip(ui->actionSqlOpenTab); + addShortcutsTooltip(ui->actionSqlOpenFile); addShortcutsTooltip(ui->actionSqlPrint); addShortcutsTooltip(ui->actionExecuteSql, {shortcutBrowseRefreshF5->key(), shortcutBrowseRefreshCtrlR->key()}); addShortcutsTooltip(ui->actionSqlExecuteLine); @@ -472,6 +481,12 @@ void MainWindow::init() addShortcutsTooltip(ui->actionSqlFindReplace); addShortcutsTooltip(ui->actionSqlToggleComment); + // Since in some keyboards pressing F keys is cumbersome, add an alternate shortcut and document + // it in the toolbar. + ui->fileCloseAction->setShortcuts({QKeySequence(tr("Ctrl+F4")), QKeySequence(tr("Ctrl+Alt+W"))}); + ui->actionCloseProject->setShortcuts({QKeySequence(tr("Ctrl+Shift+W")), QKeySequence(tr("Ctrl+Shift+F4"))}); + addShortcutsTooltip(ui->fileCloseAction); + // Load all settings reloadSettings(); @@ -517,6 +532,10 @@ bool MainWindow::fileOpen(const QString& fileName, bool openFromProject, bool re if(loadProject(wFile, readOnly)) { retval = true; + } else if(isTextOnlyFile(wFile)) { + // If it's a text file, cannot be an SQLite/SQLCipher database, + // so try to import it as CSV. + importCSVfiles({wFile}); } else { // Close the database. If the user didn't want to close it, though, stop here if (db.isOpen()) @@ -548,7 +567,7 @@ bool MainWindow::fileOpen(const QString& fileName, bool openFromProject, bool re else if(ui->mainTab->currentWidget() == ui->pragmas) loadPragmas(); - refreshTableBrowsers(true); + refreshTableBrowsers(); // Update remote dock remoteDock->fileOpened(wFile); @@ -588,7 +607,7 @@ void MainWindow::fileNew() } } -void MainWindow::fileNewInMemoryDatabase() +void MainWindow::fileNewInMemoryDatabase(bool open_create_dialog) { // Open an in-memory database. We use open() instead of create() here because the extra work create() does is not needed // when no files are stored on disk. @@ -602,7 +621,8 @@ void MainWindow::fileNewInMemoryDatabase() refreshTableBrowsers(); if(ui->tabSqlAreas->count() == 0) openSqlTab(true); - createTable(); + if(open_create_dialog) + createTable(); } void MainWindow::populateStructure(const std::vector& old_tables) @@ -628,16 +648,12 @@ void MainWindow::populateStructure(const std::vector& ol { SqlUiLexer::TablesAndColumnsMap tablesToColumnsMap; - for(const auto& jt : it.second) + for(const auto& jt : it.second.tables) { - if(jt.second->type() == sqlb::Object::Types::Table || jt.second->type() == sqlb::Object::Types::View) - { - QString objectname = QString::fromStdString(jt.second->name()); + QString objectname = QString::fromStdString(jt.first); - sqlb::FieldInfoList fi = jt.second->fieldInformation(); - for(const sqlb::FieldInfo& f : fi) - tablesToColumnsMap[objectname].push_back(QString::fromStdString(f.name)); - } + for(const auto& f : jt.second->fields) + tablesToColumnsMap[objectname].push_back(QString::fromStdString(f.name())); } qualifiedTablesMap[QString::fromStdString(it.first)] = tablesToColumnsMap; @@ -657,14 +673,14 @@ void MainWindow::populateStructure(const std::vector& ol ui->treeSchemaDock->resizeColumnToContents(DbStructureModel::ColumnName); } -void MainWindow::refreshTableBrowsers(bool force_refresh) +void MainWindow::refreshTableBrowsers() { QApplication::setOverrideCursor(Qt::WaitCursor); for(const auto& d : allTableBrowserDocks()) { // When in the Browse Data tab update all docks. Otherwise just update the floating ones because they might // be visible even when another tab is active. - if(force_refresh || ui->mainTab->currentWidget() == ui->browser || d->isFloating()) + if(ui->mainTab->currentWidget() == ui->browser || d->isFloating()) { TableBrowser* t = d->tableBrowser(); if(t) @@ -674,6 +690,30 @@ void MainWindow::refreshTableBrowsers(bool force_refresh) QApplication::restoreOverrideCursor(); } +bool MainWindow::fileSaveAs() { + + QString fileName = FileDialog::getSaveFileName( + OpenDatabaseFile, + this, + tr("Choose a database file to save under"), + FileDialog::getSqlDatabaseFileFilter() + ); + // catch situation where user has canceled file selection from dialog + if(!fileName.isEmpty()) { + bool result = db.saveAs(fileName.toStdString()); + if(result) { + setCurrentFile(fileName); + addToRecentFilesMenu(fileName); + } else { + QMessageBox::warning(this, QApplication::applicationName(), + tr("Error while saving the database to the new file.")); + } + return result; + } else { + return false; + } +} + bool MainWindow::fileClose() { // Stop any running SQL statements before closing the database @@ -740,6 +780,8 @@ void MainWindow::closeEvent( QCloseEvent* event ) SqlExecutionArea::saveState(); + Settings::sync(); + QMainWindow::closeEvent(event); } else { event->ignore(); @@ -950,14 +992,14 @@ void MainWindow::editObject() if(dialog.exec()) refreshTableBrowsers(); } else if(type == "view") { - sqlb::ViewPtr view = db.getObjectByName(obj); - runSqlNewTab(QString("DROP VIEW %1;\n%2").arg(QString::fromStdString(obj.toString())).arg(QString::fromStdString(view->sql())), + sqlb::TablePtr view = db.getTableByName(obj); + runSqlNewTab(QString("DROP VIEW IF EXISTS %1;\n%2").arg(QString::fromStdString(obj.toString()), QString::fromStdString(view->sql())), tr("Edit View %1").arg(QString::fromStdString(obj.toDisplayString())), "https://www.sqlite.org/lang_createview.html", /* autoRun */ false); } else if(type == "trigger") { - sqlb::TriggerPtr trigger = db.getObjectByName(obj); - runSqlNewTab(QString("DROP TRIGGER %1;\n%2").arg(QString::fromStdString(obj.toString())).arg(QString::fromStdString(trigger->sql())), + sqlb::TriggerPtr trigger = db.getTriggerByName(obj); + runSqlNewTab(QString("DROP TRIGGER %1;\n%2").arg(QString::fromStdString(obj.toString()), QString::fromStdString(trigger->sql())), tr("Edit Trigger %1").arg(QString::fromStdString(obj.toDisplayString())), "https://www.sqlite.org/lang_createtrigger.html", /* autoRun */ false); @@ -980,6 +1022,12 @@ void MainWindow::updateRecordText(const QPersistentModelIndex& idx, const QByteA m_currentTabTableModel->setTypedData(idx, isBlob, text); } +void MainWindow::evaluateText(const QPersistentModelIndex& idx, const std::string& text) +{ + QByteArray value = db.querySingleValueFromDb("SELECT " + text, /* log */ true, DBBrowserDB::Wait); + m_currentTabTableModel->setTypedData(idx, !isTextOnly(value), value); +} + void MainWindow::toggleEditDock(bool visible) { if (!visible) { @@ -1025,7 +1073,9 @@ void MainWindow::dataTableSelectionChanged(const QModelIndex& index) return; } - changeTableBrowserTab(qobject_cast(index.model()->parent()->parent())); + TableBrowserDock* dock = qobject_cast(index.model()->parent()->parent()); + if(dock) + changeTableBrowserTab(dock); bool editingAllowed = !db.readOnly() && currentTableBrowser && m_currentTabTableModel == currentTableBrowser->model() && currentTableBrowser->model()->isEditable(index); @@ -1074,6 +1124,8 @@ void MainWindow::executeQuery() // Remove any error indicators editor->clearErrorIndicators(); + sqlWidget->getStatusEdit()->clear(); + sqlWidget->getStatusEdit()->setStyleSheet(""); // Determine execution mode: execute all, execute selection or execute current line enum executionMode @@ -1188,19 +1240,15 @@ void MainWindow::executeQuery() connect(execute_sql_worker.get(), &RunSql::structureUpdated, sqlWidget, [this]() { db.updateSchema(); }, Qt::QueuedConnection); - connect(execute_sql_worker.get(), &RunSql::statementErrored, sqlWidget, [query_logger, this, sqlWidget](const QString& status_message, int from_position, int to_position) { - sqlWidget->getModel()->reset(); + connect(execute_sql_worker.get(), &RunSql::statementErrored, sqlWidget, [query_logger, this](const QString& status_message, int from_position, int to_position) { ui->actionSqlResultsSave->setEnabled(false); ui->actionSqlResultsSaveAsView->setEnabled(false); - attachPlot(sqlWidget->getTableResult(), sqlWidget->getModel()); query_logger(false, status_message, from_position, to_position); }, Qt::QueuedConnection); - connect(execute_sql_worker.get(), &RunSql::statementExecuted, sqlWidget, [query_logger, this, sqlWidget](const QString& status_message, int from_position, int to_position) { - sqlWidget->getModel()->reset(); + connect(execute_sql_worker.get(), &RunSql::statementExecuted, sqlWidget, [query_logger, this](const QString& status_message, int from_position, int to_position) { ui->actionSqlResultsSave->setEnabled(false); ui->actionSqlResultsSaveAsView->setEnabled(false); - attachPlot(sqlWidget->getTableResult(), sqlWidget->getModel()); query_logger(true, status_message, from_position, to_position); execute_sql_worker->startNextStatement(); @@ -1216,23 +1264,19 @@ void MainWindow::executeQuery() // Wait until the initial loading of data (= first chunk and row count) has been performed auto conn = std::make_shared(); - *conn = connect(model, &SqliteTableModel::finishedFetch, [=](int fetched_row_begin, int fetched_row_end) { - // Avoid attaching the plot when the signal is notifying the row count, since the - // data wouldn't be available yet. - if(fetched_row_begin != fetched_row_end && fetched_row_begin != model->rowCount()) { - // Disconnect this connection right now. This avoids calling this slot multiple times - disconnect(*conn); - - attachPlot(sqlWidget->getTableResult(), sqlWidget->getModel()); - } else { - connect(sqlWidget->getTableResult()->selectionModel(), &QItemSelectionModel::currentChanged, this, &MainWindow::dataTableSelectionChanged); - connect(sqlWidget->getTableResult(), &QTableView::doubleClicked, this, &MainWindow::doubleClickTable); + *conn = connect(model, &SqliteTableModel::finishedFetch, this, [=](int, int) { + // Disconnect this connection right now. This avoids calling this slot another time for the row count + disconnect(*conn); - auto time_end = std::chrono::high_resolution_clock::now(); - auto time_in_ms = std::chrono::duration_cast(time_end-time_start); - query_logger(true, tr("%1 rows returned in %2ms").arg(model->rowCount()).arg(time_in_ms.count()+time_in_ms_so_far), from_position, to_position); - execute_sql_worker->startNextStatement(); - } + attachPlot(sqlWidget->getTableResult(), sqlWidget->getModel()); + + connect(sqlWidget->getTableResult()->selectionModel(), &QItemSelectionModel::currentChanged, this, &MainWindow::dataTableSelectionChanged); + connect(sqlWidget->getTableResult(), &QTableView::doubleClicked, this, &MainWindow::doubleClickTable); + + auto time_end = std::chrono::high_resolution_clock::now(); + auto time_in_ms = std::chrono::duration_cast(time_end-time_start); + query_logger(true, tr("%1 rows returned in %2ms").arg(model->rowCount()).arg(time_in_ms.count()+time_in_ms_so_far), from_position, to_position); + execute_sql_worker->startNextStatement(); }); }, Qt::QueuedConnection); connect(execute_sql_worker.get(), &RunSql::confirmSaveBeforePragmaOrVacuum, sqlWidget, [this]() { @@ -1280,6 +1324,10 @@ void MainWindow::executeQuery() // Make the SQL editor widget read-only. We do this because the error indicators would be misplaced if the user changed the SQL text during execution sqlWidget->getEditor()->setReadOnly(true); + // Reset model and clear plot dock + sqlWidget->getModel()->reset(); + attachPlot(sqlWidget->getTableResult(), sqlWidget->getModel()); + // Start the execution execute_sql_worker->start(); } @@ -1304,34 +1352,64 @@ void MainWindow::mainTabSelected(int /*tabindex*/) } } -void MainWindow::importTableFromCSV() +void MainWindow::importCSVfiles(const std::vector& inputFiles, const QString& table) { - QStringList file_filter; - file_filter << FILE_FILTER_CSV - << FILE_FILTER_TSV - << FILE_FILTER_DSV - << FILE_FILTER_TXT - << FILE_FILTER_DAT - << FILE_FILTER_ALL; + if (!inputFiles.empty()) + { + // Allow importing to a new in-memory database that can be saved later. + if(!db.isOpen()) + fileNewInMemoryDatabase(/* open_create_dialog */ false); - QStringList wFiles = FileDialog::getOpenFileNames( - OpenCSVFile, - this, - tr("Choose text files"), - file_filter.join(";;")); + ImportCsvDialog dialog(inputFiles, &db, this, table); + if (dialog.exec()) + refreshTableBrowsers(); + } +} +void MainWindow::importTableFromCSV() +{ std::vector validFiles; - for(const auto& file : wFiles) { - if (QFile::exists(file)) - validFiles.push_back(file); - } - if (!validFiles.empty()) + // Are we importing from a file or from the clipboard? + if(sender() == ui->fileImportCSVAction) { - ImportCsvDialog dialog(validFiles, &db, this); - if (dialog.exec()) - refreshTableBrowsers(); + // Ask user to specify file(s) + + QStringList file_filter; + file_filter << FILE_FILTER_CSV + << FILE_FILTER_TSV + << FILE_FILTER_DSV + << FILE_FILTER_TXT + << FILE_FILTER_DAT + << FILE_FILTER_ALL; + + QStringList wFiles = FileDialog::getOpenFileNames( + OpenCSVFile, + this, + tr("Choose text files"), + file_filter.join(";;")); + + for(const auto& file : wFiles) { + if (QFile::exists(file)) + validFiles.push_back(file); + } + importCSVfiles(validFiles); + + } else if(sender() == ui->actionFileImportCsvClipboard) { + // Save clipboard content to temporary file + + QTemporaryFile temp("csv_clipboard"); + temp.open(); + QClipboard* clipboard = QGuiApplication::clipboard(); + temp.write(clipboard->text().toUtf8()); + temp.close(); + validFiles.push_back(temp.fileName()); + + // Note that the temporary file will be removed when the object is + // destroyed, so the reading must be done in the same scope. + importCSVfiles(validFiles); } + } void MainWindow::exportTableToCSV() @@ -1378,6 +1456,9 @@ void MainWindow::dbState(bool dirty) { ui->fileSaveAction->setEnabled(dirty); ui->fileRevertAction->setEnabled(dirty); + // Unfortunately, sqlite does not allow to backup the DB while there are pending savepoints, + // so we cannot "Save As" when the DB is dirty. + ui->fileSaveAsAction->setEnabled(!dirty); } void MainWindow::fileSave() @@ -1615,6 +1696,10 @@ void MainWindow::openRecentFile() read_only = true; } + // Holding the Shift key while opening a recent file inverts the read only flag + if(Application::keyboardModifiers().testFlag(Qt::ShiftModifier)) + read_only = !read_only; + if(fileOpen(file, false, read_only)) { if(read_only) @@ -1667,7 +1752,12 @@ void MainWindow::updateRecentFileActions() // Add shortcut for opening the file using the keyboard. However, if the application is configured to store // more than nine recently opened files don't set shortcuts for the later ones which wouldn't be single digit anymore. if(i < 9) - recentFileActs[i]->setShortcut(QKeySequence(static_cast(Qt::CTRL + (Qt::Key_1+static_cast(i))))); + { + recentFileActs[i]->setShortcuts({ + QKeySequence(static_cast(Qt::CTRL + (Qt::Key_1+static_cast(i)))), + QKeySequence(static_cast(Qt::CTRL + Qt::SHIFT + (Qt::Key_1+static_cast(i)))) + }); + } } for (int j = numRecentFiles; j < MaxRecentFiles; ++j) recentFileActs[j]->setVisible(false); @@ -1778,12 +1868,14 @@ void MainWindow::activateFields(bool enable) bool tempDb = db.currentFile() == ":memory:"; ui->fileCloseAction->setEnabled(enable); + ui->fileSaveAsAction->setEnabled(enable); ui->fileAttachAction->setEnabled(enable); ui->fileCompactAction->setEnabled(enable && write); ui->fileExportJsonAction->setEnabled(enable); ui->fileExportCSVAction->setEnabled(enable); ui->fileExportSQLAction->setEnabled(enable); ui->fileImportCSVAction->setEnabled(enable && write); + ui->actionFileImportCsvClipboard->setEnabled(enable && write); ui->editCreateTableAction->setEnabled(enable && write); ui->editCreateIndexAction->setEnabled(enable && write); ui->actionDbPrint->setEnabled(enable); @@ -1800,6 +1892,7 @@ void MainWindow::activateFields(bool enable) ui->actionQuickCheck->setEnabled(enable); ui->actionForeignKeyCheck->setEnabled(enable); ui->actionOptimize->setEnabled(enable); + ui->actionRowCounts->setEnabled(enable); ui->dockEdit->setEnabled(enable); ui->dockPlot->setEnabled(enable); @@ -1918,9 +2011,10 @@ void MainWindow::logSql(const QString& sql, int msgtype) bool MainWindow::askSaveSqlTab(int index, bool& ignoreUnattachedBuffers) { SqlExecutionArea* sqlExecArea = qobject_cast(ui->tabSqlAreas->widget(index)); + const bool isPromptSQLTabsInNewProject = Settings::getValue("General", "promptsqltabsinnewproject").toBool(); if(sqlExecArea->getEditor()->isModified()) { - if(sqlExecArea->fileName().isEmpty() && !ignoreUnattachedBuffers) { + if(sqlExecArea->fileName().isEmpty() && !ignoreUnattachedBuffers && isPromptSQLTabsInNewProject) { // Once the project is saved, remaining SQL tabs will not be modified, so this is only expected to be asked once. QString message = currentProjectFilename.isEmpty() ? tr("Do you want to save the changes made to SQL tabs in a new project file?") : @@ -2053,7 +2147,7 @@ void MainWindow::openSqlFile() tr("Select SQL file to open"), tr("Text files(*.sql *.txt);;All files(*)")); - for(QString file: wfiles) + for(const QString& file: wfiles) { if(QFile::exists(file)) { @@ -2126,6 +2220,11 @@ void MainWindow::saveSqlResultsAsCsv() qobject_cast(ui->tabSqlAreas->currentWidget())->saveAsCsv(); } +void MainWindow::saveSqlResultsAsJson() +{ + qobject_cast(ui->tabSqlAreas->currentWidget())->saveAsJson(); +} + void MainWindow::saveSqlResultsAsView() { saveAsView(qobject_cast(ui->tabSqlAreas->currentWidget())->getModel()->query()); @@ -2195,13 +2294,16 @@ void MainWindow::reloadSettings() updateRecentFileActions(); } - switch (static_cast(Settings::getValue("General", "appStyle").toInt())) { + Settings::AppStyle style = static_cast(Settings::getValue("General", "appStyle").toInt()); + + switch (style) { case Settings::FollowDesktopStyle : qApp->setStyleSheet(""); break; case Settings::DarkStyle : - QFile f(":qdarkstyle/style.qss"); + case Settings::LightStyle : + QFile f(style == Settings::DarkStyle ? ":qdarkstyle/dark/style.qss" : ":qdarkstyle/light/style.qss"); if (!f.exists()) { QMessageBox::warning(this, qApp->applicationName(), tr("Could not find resource file: %1").arg(f.fileName())); @@ -2245,7 +2347,7 @@ void MainWindow::reloadSettings() db.loadExtensionsFromSettings(); // Refresh view - db.structureUpdated(); + emit db.structureUpdated(); refreshTableBrowsers(); // Hide or show the remote dock as needed @@ -2322,7 +2424,7 @@ void MainWindow::on_actionWiki_triggered() const QDesktopServices::openUrl(QUrl("https://github.com/sqlitebrowser/sqlitebrowser/wiki")); } -// 'Help | Bug Report...' link will set an appropiate body, add the system information and set the label 'bug' automatically to the issue +// 'Help | Bug Report...' link will set an appropriate body, add the system information and set the label 'bug' automatically to the issue void MainWindow::on_actionBug_report_triggered() const { const QString version = Application::versionString(); @@ -2361,7 +2463,7 @@ void MainWindow::on_actionBug_report_triggered() const QDesktopServices::openUrl(url); } -// 'Help | Feature Request...' link will set an appropiate body and add the label 'enhancement' automatically to the issue +// 'Help | Feature Request...' link will set an appropriate body and add the label 'enhancement' automatically to the issue void MainWindow::on_actionFeature_Request_triggered() const { QUrlQuery query; @@ -2423,12 +2525,14 @@ static void loadCondFormatMap(BrowseDataTableSettings::CondFormatMap& condFormat } } -static void loadBrowseDataTableSettings(BrowseDataTableSettings& settings, QXmlStreamReader& xml) +static void loadBrowseDataTableSettings(BrowseDataTableSettings& settings, sqlb::TablePtr obj, QXmlStreamReader& xml) { settings.showRowid = xml.attributes().value("show_row_id").toInt(); settings.encoding = xml.attributes().value("encoding").toString(); settings.plotXAxis = xml.attributes().value("plot_x_axis").toString(); settings.unlockViewPk = xml.attributes().value("unlock_view_pk").toString(); + if(xml.attributes().hasAttribute("freeze_columns")) + settings.frozenColumns = xml.attributes().value("freeze_columns").toUInt(); while(xml.readNext() != QXmlStreamReader::EndElement && xml.name() != "table") { if(xml.name() == "sort") @@ -2439,7 +2543,8 @@ static void loadBrowseDataTableSettings(BrowseDataTableSettings& settings, QXmlS { int index = xml.attributes().value("index").toInt(); int mode = xml.attributes().value("mode").toInt(); - settings.sortColumns.emplace_back(index, mode == Qt::AscendingOrder ? sqlb::Ascending : sqlb::Descending); + if(static_cast(index) < obj->fields.size()) + settings.sortColumns.emplace_back(obj->fields.at(static_cast(index)).name(), mode == Qt::AscendingOrder ? sqlb::OrderBy::Ascending : sqlb::OrderBy::Descending); xml.skipCurrentElement(); } } @@ -2457,7 +2562,7 @@ static void loadBrowseDataTableSettings(BrowseDataTableSettings& settings, QXmlS size_t index = xml.attributes().value("index").toUInt(); QString value = xml.attributes().value("value").toString(); if(!value.isEmpty()) - settings.filterValues[index] = value; + settings.filterValues[obj->fields.at(index).name()] = value; xml.skipCurrentElement(); } } @@ -2712,7 +2817,7 @@ bool MainWindow::loadProject(QString filename, bool readOnly) "it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format.")); msgBox.exec(); if(msgBox.clickedButton() == idontcarebutton) - Settings::setValue("idontcare", "projectBrowseTable", true); + Settings::setValue("idontcare", "projectBrowseTable", false); } xml.skipCurrentElement(); @@ -2725,7 +2830,7 @@ bool MainWindow::loadProject(QString filename, bool readOnly) sqlb::ObjectIdentifier (xml.attributes().value("schema").toString().toStdString(), xml.attributes().value("name").toString().toStdString()); BrowseDataTableSettings settings; - loadBrowseDataTableSettings(settings, xml); + loadBrowseDataTableSettings(settings, db.getTableByName(tableIdentifier), xml); TableBrowser::setSettings(tableIdentifier, settings); } } @@ -2797,7 +2902,7 @@ static void saveCondFormatMap(const QString& elementName, const BrowseDataTableS for(auto iter=condFormats.cbegin(); iter!=condFormats.cend(); ++iter) { xml.writeStartElement("column"); xml.writeAttribute("index", QString::number(iter->first)); - for(auto format : iter->second) { + for(const auto& format : iter->second) { xml.writeStartElement("format"); xml.writeAttribute("condition", format.filter()); xml.writeAttribute("background", format.backgroundColor().name()); @@ -2811,18 +2916,19 @@ static void saveCondFormatMap(const QString& elementName, const BrowseDataTableS xml.writeEndElement(); } -static void saveBrowseDataTableSettings(const BrowseDataTableSettings& object, QXmlStreamWriter& xml) +static void saveBrowseDataTableSettings(const BrowseDataTableSettings& object, sqlb::TablePtr obj, QXmlStreamWriter& xml) { xml.writeAttribute("show_row_id", QString::number(object.showRowid)); xml.writeAttribute("encoding", object.encoding); xml.writeAttribute("plot_x_axis", object.plotXAxis); xml.writeAttribute("unlock_view_pk", object.unlockViewPk); + xml.writeAttribute("freeze_columns", QString::number(object.frozenColumns)); xml.writeStartElement("sort"); for(const auto& column : object.sortColumns) { xml.writeStartElement("column"); - xml.writeAttribute("index", QString::number(column.column)); + xml.writeAttribute("index", QString::number(sqlb::getFieldNumber(obj, column.expr))); xml.writeAttribute("mode", QString::number(column.direction)); xml.writeEndElement(); } @@ -2839,7 +2945,7 @@ static void saveBrowseDataTableSettings(const BrowseDataTableSettings& object, Q xml.writeStartElement("filter_values"); for(auto iter=object.filterValues.cbegin(); iter!=object.filterValues.cend(); ++iter) { xml.writeStartElement("column"); - xml.writeAttribute("index", QString::number(iter->first)); + xml.writeAttribute("index", QString::number(sqlb::getFieldNumber(obj, iter->first))); xml.writeAttribute("value", iter->second); xml.writeEndElement(); } @@ -2933,7 +3039,15 @@ void MainWindow::saveProject(const QString& currentFilename) // Database file name xml.writeStartElement("db"); - xml.writeAttribute("path", db.currentFile()); + QFileInfo dbFileInfo (db.currentFile()); + QFileInfo projectFileInfo (filename); + + // Store a relative filename if the path to project and to DB is the same. + if(dbFileInfo.absolutePath() == projectFileInfo.absolutePath()) + xml.writeAttribute("path", dbFileInfo.fileName()); + else + xml.writeAttribute("path", db.currentFile()); + xml.writeAttribute("readonly", QString::number(db.readOnly())); xml.writeAttribute("foreign_keys", db.getPragma("foreign_keys")); xml.writeAttribute("case_sensitive_like", db.getPragma("case_sensitive_like")); @@ -3006,7 +3120,9 @@ void MainWindow::saveProject(const QString& currentFilename) xml.writeStartElement("table"); xml.writeAttribute("schema", QString::fromStdString(tableIt->first.schema())); xml.writeAttribute("name", QString::fromStdString(tableIt->first.name())); - saveBrowseDataTableSettings(tableIt->second, xml); + + auto obj = db.getTableByName(tableIt->first); + saveBrowseDataTableSettings(tableIt->second, obj, xml); xml.writeEndElement(); } // @@ -3092,10 +3208,12 @@ void MainWindow::editEncryption() bool ok = db.releaseAllSavepoints(); qApp->processEvents(); + const QString temporalFile = db.currentFile() + ".enctemp"; + // Create the new file first or it won't work if(ok) { - QFile file(db.currentFile() + ".enctemp"); + QFile file(temporalFile); file.open(QFile::WriteOnly); file.close(); } @@ -3105,7 +3223,7 @@ void MainWindow::editEncryption() // Attach a new database using the new settings qApp->processEvents(); if(ok) - ok = db.executeSQL("ATTACH DATABASE '" + db.currentFile().toStdString() + ".enctemp' AS sqlitebrowser_edit_encryption KEY " + cipherSettings.getPassword() + ";", + ok = db.executeSQL("ATTACH DATABASE '" + temporalFile.toStdString() + "' AS sqlitebrowser_edit_encryption KEY " + cipherSettings.getPassword() + ";", false, false); qApp->processEvents(); if(ok) @@ -3140,11 +3258,12 @@ void MainWindow::editEncryption() { // No errors: Then close the current database, switch names, open the new one and if that succeeded delete the old one + const QString currentFile = db.currentFile(); fileClose(); - QFile::rename(db.currentFile(), db.currentFile() + ".enctempold"); - QFile::rename(db.currentFile() + ".enctemp", db.currentFile()); - if(fileOpen(db.currentFile())) - QFile::remove(db.currentFile() + ".enctempold"); + QFile::rename(currentFile, temporalFile + "old"); + QFile::rename(temporalFile, currentFile); + if(fileOpen(currentFile)) + QFile::remove(temporalFile + "old"); } else { QMessageBox::warning(this, qApp->applicationName(), db.lastError()); } @@ -3192,18 +3311,14 @@ void MainWindow::fileDetachTreeSchemaDock() void MainWindow::fileDetachTreeViewSelected(QTreeView* treeView) { + // Cancel here if there is no selection if (!treeView || !treeView->selectionModel()->hasSelection()) { return; } - sqlb::ObjectIdentifier attachedDatabase = sqlb::ObjectIdentifier(); // get the currently selected attached database from treeView parameter - // Cancel here if there is no selection - attachedDatabase.setSchema(treeView->model()->data(treeView->currentIndex().sibling(treeView->currentIndex().row(), DbStructureModel::ColumnSchema), Qt::EditRole).toString().toStdString()); - attachedDatabase.setName(treeView->model()->data(treeView->currentIndex().sibling(treeView->currentIndex().row(), DbStructureModel::ColumnName), Qt::EditRole).toString().toStdString()); - - QString attached_as = QString::fromStdString(attachedDatabase.name()); + std::string attached_as = treeView->model()->data(treeView->currentIndex().sibling(treeView->currentIndex().row(), DbStructureModel::ColumnSchema), Qt::EditRole).toString().toStdString(); if (db.detach(attached_as)) { isProjectModified = true; @@ -3250,7 +3365,7 @@ void MainWindow::requestCollation(const QString& name, int eTextRep) // Cancel here if the No button was clicked if(msgbox.clickedButton() == button_dont_ask_again) { - Settings::setValue("db", "dont_ask_collation", true); + Settings::setValue("db", "dont_ask_collation", false); } else if(reply == QMessageBox::No) { return; } @@ -3320,7 +3435,7 @@ void MainWindow::saveAsView(const std::string& query) name = QInputDialog::getText(this, qApp->applicationName(), tr("Please specify the view name")).trimmed(); if(name.isNull()) return; - if(db.getObjectByName(sqlb::ObjectIdentifier("main", name.toStdString())) != nullptr) + if(db.getTableByName(sqlb::ObjectIdentifier("main", name.toStdString()))) QMessageBox::warning(this, qApp->applicationName(), tr("There is already an object with that name. Please choose a different name.")); else break; @@ -3342,13 +3457,20 @@ void MainWindow::runSqlNewTab(const QString& query, const QString& title, const else message = tr("This action will open a new SQL tab with the following statements for you to edit and run:"); - message += QString("
    %1
    ").arg(query) + - tr("Press Help for opening the corresponding SQLite reference page."); + message += QString("
    %1
    ").arg(query.size() > 1000 ? query.left(1000) + "\n[...]" : query); + if(!helpUrl.isEmpty()) + message += tr("Press Help for opening the corresponding SQLite reference page."); QString windowTitle = title; windowTitle.remove('&'); - - switch (QMessageBox::information(this, windowTitle, message, QMessageBox::Ok | QMessageBox::Default, QMessageBox::Cancel | QMessageBox::Escape, QMessageBox::Help)) + auto result = QMessageBox::information(this, + windowTitle, + message, + QMessageBox::Ok | QMessageBox::Default, + QMessageBox::Cancel | QMessageBox::Escape, + helpUrl.isEmpty() ? 0 : QMessageBox::Help); + + switch (result) { case QMessageBox::Ok: { if (ui->mainTab->indexOf(ui->query) == -1) @@ -3442,7 +3564,7 @@ void MainWindow::printDbStructure () printer.setDocName(treeView->windowTitle()); QPrintPreviewDialog *dialog = new QPrintPreviewDialog(&printer); - connect(dialog, &QPrintPreviewDialog::paintRequested, [strStream](QPrinter *previewPrinter) { + connect(dialog, &QPrintPreviewDialog::paintRequested, this, [strStream](QPrinter *previewPrinter) { QTextDocument document; document.setHtml(strStream); document.print(previewPrinter); @@ -3460,7 +3582,6 @@ void MainWindow::updateDatabaseBusyStatus(bool busy, const QString& user) statusStopButton->setVisible(busy); } - void MainWindow::closeTab(int index) { ui->mainTab->removeTab(index); @@ -3476,9 +3597,13 @@ void MainWindow::toggleTabVisible(QWidget* tabWidget, bool show) void MainWindow::restoreOpenTabs(QString tabs) { - // Split the tab list, skiping the empty parts so the empty string turns to an empty list + // Split the tab list, skipping the empty parts so the empty string turns to an empty list // and not a list of one empty string. +#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) QStringList tabList = tabs.split(' ', QString::SkipEmptyParts); +#else + QStringList tabList = tabs.split(' ', Qt::SkipEmptyParts); +#endif // Clear the tabs and then add them in the order specified by the setting. // Use the accessibleName attribute for restoring the tab label. @@ -3537,13 +3662,13 @@ void MainWindow::showContextMenuSqlTabBar(const QPoint& pos) // Prepare all menu actions QAction* actionRename = new QAction(this); actionRename->setText(tr("Rename Tab")); - connect(actionRename, &QAction::triggered, [this, tab]() { + connect(actionRename, &QAction::triggered, this, [this, tab]() { renameSqlTab(tab); }); QAction* actionDuplicate = new QAction(this); actionDuplicate->setText(tr("Duplicate Tab")); - connect(actionDuplicate, &QAction::triggered, [this, tab]() { + connect(actionDuplicate, &QAction::triggered, this, [this, tab]() { QString tab_name = ui->tabSqlAreas->tabText(tab).remove("&").remove(QRegExp(" \\(\\d+\\)$")); QString new_tab_name; for(int i=1;;i++) @@ -3574,7 +3699,7 @@ void MainWindow::showContextMenuSqlTabBar(const QPoint& pos) QAction* actionClose = new QAction(this); actionClose->setText(tr("Close Tab")); actionClose->setShortcut(tr("Ctrl+W")); - connect(actionClose, &QAction::triggered, [this, tab]() { + connect(actionClose, &QAction::triggered, this, [this, tab]() { closeSqlTab(tab); }); @@ -3643,8 +3768,9 @@ void MainWindow::tableBrowserTabClosed() // If the currently active tab is closed activate another tab if(currentTableBrowser && sender() == currentTableBrowser->parent()) { - allTableBrowserDocks().front()->activateWindow(); - changeTableBrowserTab(allTableBrowserDocks().front()); + auto all_docks = allTableBrowserDocks(); + all_docks.front()->activateWindow(); + changeTableBrowserTab(all_docks.front()); } } } @@ -3660,7 +3786,7 @@ TableBrowserDock* MainWindow::newTableBrowserTab(const sqlb::ObjectIdentifier& t d->tableBrowser()->setEnabled(ui->fileCloseAction->isEnabled()); // Connect signals and slots - connect(d, &TableBrowserDock::newDockRequested, [this]() { + connect(d, &TableBrowserDock::newDockRequested, this, [this]() { newTableBrowserTab(); }); connect(d->tableBrowser(), &TableBrowser::projectModified, this, [this]() { @@ -3678,13 +3804,13 @@ TableBrowserDock* MainWindow::newTableBrowserTab(const sqlb::ObjectIdentifier& t connect(d->tableBrowser(), &TableBrowser::statusMessageRequested, ui->statusbar, [this](const QString& message) { ui->statusbar->showMessage(message); }); - connect(d->tableBrowser(), &TableBrowser::foreignKeyClicked, [this](const sqlb::ObjectIdentifier& table, std::string column, const QByteArray& value) { + connect(d->tableBrowser(), &TableBrowser::foreignKeyClicked, this, [this](const sqlb::ObjectIdentifier& table, std::string column, const QByteArray& value) { TableBrowserDock* foreign_key_dock = newTableBrowserTab(table); foreign_key_dock->tableBrowser()->jumpToRow(table, column, value); Application::processEvents(); // For some reason this is required for raise() to work here. foreign_key_dock->raise(); }); - connect(d->tableBrowser()->model(), &SqliteTableModel::finishedFetch, [this, d](){ + connect(d->tableBrowser()->model(), &SqliteTableModel::finishedFetch, this, [this, d](){ auto& settings = d->tableBrowser()->settings(d->tableBrowser()->currentlyBrowsedTableName()); plotDock->updatePlot(d->tableBrowser()->model(), &settings, true, false); }); @@ -3692,12 +3818,18 @@ TableBrowserDock* MainWindow::newTableBrowserTab(const sqlb::ObjectIdentifier& t // Set up dock and add it to the tab ui->tabBrowsers->addDockWidget(Qt::TopDockWidgetArea, d); if(allTableBrowserDocks().size() > 1) +#if QT_VERSION < QT_VERSION_CHECK(5, 6, 0) ui->tabBrowsers->tabifyDockWidget(allTableBrowserDocks().front(), d); +#else + ui->tabBrowsers->tabifyDockWidget(allTableBrowserDocks().constFirst(), d); +#endif // Set current model and browser d->activateWindow(); changeTableBrowserTab(d); + d->tableBrowser()->refresh(); + return d; } @@ -3713,7 +3845,9 @@ void MainWindow::changeTableBrowserTab(TableBrowserDock* dock) dock->setFocusStyle(true); m_currentTabTableModel = dock->tableBrowser()->model(); - plotDock->updatePlot(m_currentTabTableModel, &dock->tableBrowser()->settings(dock->tableBrowser()->currentlyBrowsedTableName()), true, false); + const auto current_table_name = dock->tableBrowser()->currentlyBrowsedTableName(); + if(!current_table_name.isEmpty()) + plotDock->updatePlot(m_currentTabTableModel, &dock->tableBrowser()->settings(current_table_name), true, false); } } @@ -3721,3 +3855,18 @@ QList MainWindow::allTableBrowserDocks() const { return ui->tabBrowsers->findChildren(); } + +void MainWindow::newRowCountsTab() +{ + QString sql; + for(const auto& it : db.schemata["main"].tables) + { + sql += QString("SELECT %1 AS \"name\", '%2' AS \"type\", COUNT(*) AS \"rows\" FROM %3\nUNION ").arg( + QString::fromStdString(sqlb::escapeString(it.first)), + QString::fromStdString(it.second->isView() ? "view" : "table"), + QString::fromStdString(sqlb::escapeIdentifier(it.first))); + } + sql.chop(7); // Remove the last "\nUNION " at the end + + runSqlNewTab(sql, ui->actionRowCounts->text()); +} diff --git a/src/MainWindow.h b/src/MainWindow.h index 843e326b4..94ec0ba38 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -158,15 +158,17 @@ public slots: void fileDetachTreeViewSelected(QTreeView* treeView); void reloadSettings(); bool closeFiles(); + void importCSVfiles(const std::vector& inputFiles, const QString& table = QString()); private slots: void createTreeContextMenu(const QPoint & qPoint); void createSchemaDockContextMenu(const QPoint & qPoint); void changeTreeSelection(); void fileNew(); - void fileNewInMemoryDatabase(); - void refreshTableBrowsers(bool force_refresh = false); + void fileNewInMemoryDatabase(bool open_create_dialog = true); + void refreshTableBrowsers(); bool fileClose(); + bool fileSaveAs(); void createTable(); void createIndex(); void compact(); @@ -175,6 +177,7 @@ private slots: void helpWhatsThis(); void helpAbout(); void updateRecordText(const QPersistentModelIndex& idx, const QByteArray& text, bool isBlob); + void evaluateText(const QPersistentModelIndex& idx, const std::string& text); void toggleEditDock(bool visible); void dataTableSelectionChanged(const QModelIndex& index); void doubleClickTable(const QModelIndex& index); @@ -195,6 +198,7 @@ private slots: void saveSqlFile(); void saveSqlFileAs(); void saveSqlResultsAsCsv(); + void saveSqlResultsAsJson(); void saveSqlResultsAsView(); void loadExtension(); void checkNewVersion(const QString& versionstring, const QString& url); @@ -216,7 +220,7 @@ private slots: void openFindReplaceDialog(); void toggleSqlBlockComment(); void openSqlPrintDialog(); - void runSqlNewTab(const QString& query, const QString& title, const QString& helpUrl, const bool autoRun = true); + void runSqlNewTab(const QString& query, const QString& title, const QString& helpUrl = QString(), const bool autoRun = true); void printDbStructure(); void updateDatabaseBusyStatus(bool busy, const QString& user); void openPreferences(); @@ -225,6 +229,7 @@ private slots: void saveSqlFile(int tabIndex); void saveAll(); void openUrlOrFile(const QString& urlString); + void newRowCountsTab(); int openSqlTab(bool resetCounter = false); void closeSqlTab(int index, bool force = false, bool askSaving = true); diff --git a/src/MainWindow.ui b/src/MainWindow.ui index 24979d9b5..b478b288c 100644 --- a/src/MainWindow.ui +++ b/src/MainWindow.ui @@ -181,7 +181,7 @@ You can drag SQL statements from an object row and drop them into other applicat 0 0 - 641 + 676 544
    @@ -764,6 +764,7 @@ You can drag SQL statements from an object row and drop them into other applicat +
    @@ -775,7 +776,7 @@ You can drag SQL statements from an object row and drop them into other applicat - Recent Files + &Recent Files @@ -784,6 +785,7 @@ You can drag SQL statements from an object row and drop them into other applicat + @@ -851,6 +853,7 @@ You can drag SQL statements from an object row and drop them into other applicat + @@ -968,7 +971,7 @@ You can drag SQL statements from an object row and drop them into other applicat
    - + 0 @@ -1546,6 +1549,9 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed This button opens files containing SQL statements and loads them in new editor tabs + + Ctrl+Shift+T + @@ -1913,6 +1919,11 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Export to &CSV + + + Export to &JSON + + Save as &view @@ -2191,8 +2202,11 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Close project and database files and return to the initial state + + Close project and database files and return to the initial state + - Ctrl+Shift+F4 + Ctrl+Shift+W @@ -2219,6 +2233,37 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed Detach database file attached to the current database connection + + + Table from CSV data in Clipboard... + + + This treats the current clipboard contents as a CSV file and opens the same import wizard that is used for importing CSV data from a file. + + + + + Show &Row Counts + + + This shows the number of rows for each table and view in the database. + + + + + false + + + + :/icons/db_save:/icons/db_save + + + Save Database &As... + + + Save the current database as a different file + + @@ -2329,6 +2374,22 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed + + fileSaveAsAction + triggered() + MainWindow + fileSaveAs() + + + -1 + -1 + + + 399 + 299 + + + fileCompactAction triggered() @@ -3081,6 +3142,22 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed + + actionSqlResultsExportJson + triggered() + MainWindow + saveSqlResultsAsJson() + + + -1 + -1 + + + 518 + 314 + + + actionSqlResultsSaveAsView triggered() @@ -3642,14 +3719,30 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - tabBrowsers - customContextMenuRequested(QPoint) + actionFileImportCsvClipboard + triggered() MainWindow - showContextMenuTableBrowserTabBar(QPoint) + importTableFromCSV() - 336 - 347 + -1 + -1 + + + 518 + 314 + + + + + actionRowCounts + triggered() + MainWindow + newRowCountsTab() + + + -1 + -1 518 @@ -3718,5 +3811,6 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed changeTableBrowserTab(int) renameTableBrowserTab(int) showContextMenuTableBrowserTabBar(QPoint) + newRowCountsTab() diff --git a/src/PlotDock.cpp b/src/PlotDock.cpp index f9d71944a..901a43751 100644 --- a/src/PlotDock.cpp +++ b/src/PlotDock.cpp @@ -34,7 +34,8 @@ PlotDock::PlotDock(QWidget* parent) m_currentPlotModel(nullptr), m_currentTableSettings(nullptr), m_showLegend(false), - m_stackedBars(false) + m_stackedBars(false), + m_fixedFormat(false) { ui->setupUi(this); @@ -74,14 +75,14 @@ PlotDock::PlotDock(QWidget* parent) QAction* copyAction = new QAction(QIcon(":/icons/copy"), tr("Copy"), m_contextMenu); copyAction->setShortcut(shortcutCopy->key()); m_contextMenu->addAction(copyAction); - connect(copyAction, &QAction::triggered, [&]() { + connect(copyAction, &QAction::triggered, this, [&]() { copy(); }); QAction* printAction = new QAction(QIcon(":/icons/print"), tr("Print..."), m_contextMenu); printAction->setShortcut(shortcutPrint->key()); m_contextMenu->addAction(printAction); - connect(printAction, &QAction::triggered, [&]() { + connect(printAction, &QAction::triggered, this, [&]() { openPrintDialog(); }); @@ -97,7 +98,18 @@ PlotDock::PlotDock(QWidget* parent) connect(stackedBarsAction, &QAction::toggled, this, &PlotDock::toggleStackedBars); - connect(ui->plotWidget, &QTableView::customContextMenuRequested, + QAction* fixedFormatsAction = new QAction(tr("Fixed number format"), m_contextMenu); + fixedFormatsAction->setCheckable(true); + m_contextMenu->addAction(fixedFormatsAction); + + connect(fixedFormatsAction, &QAction::toggled, this, + [=](bool fixed) { + m_fixedFormat = fixed; + adjustAxisFormat(); + ui->plotWidget->replot(); + }); + + connect(ui->plotWidget, &QTableView::customContextMenuRequested, this, [=](const QPoint& pos) { // Show menu m_contextMenu->popup(ui->plotWidget->mapToGlobal(pos)); @@ -287,7 +299,7 @@ void PlotDock::updatePlot(SqliteTableModel* model, BrowseDataTableSettings* sett // regain the model column index and the datatype // right now datatype is only important for X axis (Y is always numeric) int x = xitem->data(PlotColumnField, Qt::UserRole).toInt(); - int xtype = xitem->data(PlotColumnType, Qt::UserRole).toInt(); + unsigned int xtype = xitem->data(PlotColumnType, Qt::UserRole).toUInt(); ui->plotWidget->xAxis->setTickLabelRotation(0); @@ -540,6 +552,7 @@ void PlotDock::updatePlot(SqliteTableModel* model, BrowseDataTableSettings* sett } adjustBars(); + adjustAxisFormat(); ui->plotWidget->replot(); // Warn user if not all data has been fetched and hint about the button for loading all the data @@ -631,7 +644,7 @@ void PlotDock::on_treePlotColumns_itemDoubleClicked(QTreeWidgetItem* item, int c // disable change updates, or we get unwanted redrawing and weird behavior ui->treePlotColumns->blockSignals(true); - int type = item->data(PlotColumnType, Qt::UserRole).toInt(); + unsigned int type = item->data(PlotColumnType, Qt::UserRole).toUInt(); for(size_t y_ind = 0; y_ind < 2; y_ind++) { @@ -938,7 +951,7 @@ void PlotDock::toggleLegendVisible(bool visible) ui->plotWidget->replot(); } -// Stack or group bars and set the appropiate bar width (since it is not automatically done by QCustomPlot). +// Stack or group bars and set the appropriate bar width (since it is not automatically done by QCustomPlot). void PlotDock::adjustBars() { const double padding = 0.15; @@ -973,6 +986,19 @@ void PlotDock::adjustBars() } } +void PlotDock::adjustAxisFormat() +{ + const QString format = m_fixedFormat? "f" : "gb"; + ui->plotWidget->xAxis->setNumberFormat(format); + ui->plotWidget->yAxis->setNumberFormat(format); + ui->plotWidget->yAxis2->setNumberFormat(format); + + const int precision = m_fixedFormat? 0 : 6; + ui->plotWidget->xAxis->setNumberPrecision(precision); + ui->plotWidget->yAxis->setNumberPrecision(precision); + ui->plotWidget->yAxis2->setNumberPrecision(precision); +} + void PlotDock::toggleStackedBars(bool stacked) { m_stackedBars = stacked; diff --git a/src/PlotDock.h b/src/PlotDock.h index 2c3276b0e..85cc88efa 100644 --- a/src/PlotDock.h +++ b/src/PlotDock.h @@ -96,6 +96,7 @@ public slots: QMenu* m_contextMenu; bool m_showLegend; bool m_stackedBars; + bool m_fixedFormat; Palette m_graphPalette; std::vector yAxes; std::vector PlotColumnY; @@ -108,6 +109,7 @@ public slots: */ QVariant::Type guessDataType(SqliteTableModel* model, int column) const; void adjustBars(); + void adjustAxisFormat(); private slots: void on_treePlotColumns_itemChanged(QTreeWidgetItem* item, int column); diff --git a/src/PreferencesDialog.cpp b/src/PreferencesDialog.cpp index 9d43c3bff..b4f326401 100644 --- a/src/PreferencesDialog.cpp +++ b/src/PreferencesDialog.cpp @@ -49,6 +49,10 @@ PreferencesDialog::PreferencesDialog(QWidget* parent, Tabs tab) // Set current tab ui->tabWidget->setCurrentIndex(tab); + + // Connect 'Export Settings' and 'Import Settings' buttons + connect(ui->buttonExportSettings, &QPushButton::clicked, this, &PreferencesDialog::exportSettings); + connect(ui->buttonImportSettings, &QPushButton::clicked, this, &PreferencesDialog::importSettings); } /* @@ -76,6 +80,7 @@ void PreferencesDialog::loadSettings() ui->encodingComboBox->setCurrentIndex(ui->encodingComboBox->findText(Settings::getValue("db", "defaultencoding").toString(), Qt::MatchFixedString)); ui->comboDefaultLocation->setCurrentIndex(Settings::getValue("db", "savedefaultlocation").toInt()); ui->locationEdit->setText(QDir::toNativeSeparators(Settings::getValue("db", "defaultlocation").toString())); + ui->checkPromptSQLTabsInNewProject->setChecked(Settings::getValue("General", "promptsqltabsinnewproject").toBool()); ui->checkUpdates->setChecked(Settings::getValue("checkversion", "enabled").toBool()); ui->checkHideSchemaLinebreaks->setChecked(Settings::getValue("db", "hideschemalinebreaks").toBool()); @@ -185,6 +190,7 @@ void PreferencesDialog::loadSettings() ui->spinEditorFontSize->setValue(Settings::getValue("editor", "fontsize").toInt()); ui->spinTabSize->setValue(Settings::getValue("editor", "tabsize").toInt()); + ui->checkIndentationUseTabs->setChecked(Settings::getValue("editor", "indentation_use_tabs").toBool()); ui->spinLogFontSize->setValue(Settings::getValue("log", "fontsize").toInt()); ui->wrapComboBox->setCurrentIndex(Settings::getValue("editor", "wrap_lines").toInt()); ui->quoteComboBox->setCurrentIndex(Settings::getValue("editor", "identifier_quotes").toInt()); @@ -209,7 +215,7 @@ void PreferencesDialog::loadSettings() ui->spinMaxRecentFiles->setValue(Settings::getValue("General", "maxRecentFiles").toInt()); } -void PreferencesDialog::saveSettings() +void PreferencesDialog::saveSettings(bool accept) { QApplication::setOverrideCursor(Qt::WaitCursor); @@ -252,6 +258,7 @@ void PreferencesDialog::saveSettings() Settings::setValue("editor", "font", ui->comboEditorFont->currentText()); Settings::setValue("editor", "fontsize", ui->spinEditorFontSize->value()); Settings::setValue("editor", "tabsize", ui->spinTabSize->value()); + Settings::setValue("editor", "indentation_use_tabs", ui->checkIndentationUseTabs->isChecked()); Settings::setValue("log", "fontsize", ui->spinLogFontSize->value()); Settings::setValue("editor", "wrap_lines", ui->wrapComboBox->currentIndex()); Settings::setValue("editor", "identifier_quotes", ui->quoteComboBox->currentIndex()); @@ -262,8 +269,8 @@ void PreferencesDialog::saveSettings() Settings::setValue("editor", "close_button_on_tabs", ui->checkCloseButtonOnTabs->isChecked()); QStringList extList; - for(const QListWidgetItem* item : ui->listExtensions->findItems(QString("*"), Qt::MatchWrap | Qt::MatchWildcard)) - extList.append(item->text()); + for(int i=0;ilistExtensions->count();++i) + extList.append(ui->listExtensions->item(i)->text()); Settings::setValue("extensions", "list", extList); Settings::setValue("extensions", "disableregex", ui->checkRegexDisabled->isChecked()); Settings::setValue("extensions", "enable_load_extension", ui->checkAllowLoadExtension->isChecked()); @@ -339,20 +346,23 @@ void PreferencesDialog::saveSettings() Settings::setValue("General", "DBFileExtensions", m_dbFileExtensions.join(";;") ); Settings::setValue("General", "fontsize", ui->spinGeneralFontSize->value()); Settings::setValue("General", "maxRecentFiles", ui->spinMaxRecentFiles->value()); + Settings::setValue("General", "promptsqltabsinnewproject", ui->checkPromptSQLTabsInNewProject->isChecked()); m_proxyDialog->saveSettings(); - accept(); + if(accept) + PreferencesDialog::accept(); QApplication::restoreOverrideCursor(); } void PreferencesDialog::showColourDialog(QTreeWidgetItem* item, int column) { - if(item->text(column).left(1) != "#") + QString text = item->text(column); + if(!text.size() || text.at(0) != '#') return; - QColor colour = QColorDialog::getColor(QColor(item->text(column)), this); + QColor colour = QColorDialog::getColor(text, this); if(colour.isValid()) { item->setForeground(column, colour); @@ -692,3 +702,36 @@ void PreferencesDialog::configureProxy() { m_proxyDialog->show(); } + +void PreferencesDialog::exportSettings() +{ + saveSettings(false); + + const QString fileName = FileDialog::getSaveFileName(CreateSettingsFile, this, tr("Save Settings File"), tr("Initialization File (*.ini)")); + if(!fileName.isEmpty()) + { + Settings::exportSettings(fileName); + QMessageBox::information(this, QApplication::applicationName(), (tr("The settings file has been saved in location :\n") + fileName)); + } +} + +void PreferencesDialog::importSettings() +{ + const QString fileName = FileDialog::getOpenFileName(OpenSettingsFile, this, tr("Open Settings File"), tr("Initialization File (*.ini)")); + const QVariant existingLanguage = Settings::getValue("General", "language"); + + if(!fileName.isEmpty()) + { + if(Settings::importSettings(fileName)) + { + QMessageBox::information(this, QApplication::applicationName(), tr("The settings file was loaded properly.")); + if (existingLanguage != Settings::getValue("General", "language")) + QMessageBox::information(this, QApplication::applicationName(), + tr("The language will change after you restart the application.")); + + accept(); + } else { + QMessageBox::critical(this, QApplication::applicationName(), tr("The selected settings file is not a normal settings file.\nPlease check again.")); + } + } +} diff --git a/src/PreferencesDialog.h b/src/PreferencesDialog.h index cb6defd16..c09bf1ff6 100644 --- a/src/PreferencesDialog.h +++ b/src/PreferencesDialog.h @@ -34,7 +34,7 @@ class PreferencesDialog : public QDialog private slots: void loadSettings(); - void saveSettings(); + void saveSettings(bool accept=true); void chooseLocation(); void showColourDialog(QTreeWidgetItem* item, int column); @@ -63,6 +63,8 @@ private slots: void setColorSetting(QFrame* frame, const QColor &color); void saveColorSetting(QFrame* frame, const std::string& name); void addClientCertToTable(const QString& path, const QSslCertificate& cert); + void exportSettings(); + void importSettings(); protected: bool eventFilter(QObject *obj, QEvent *event) override; diff --git a/src/PreferencesDialog.ui b/src/PreferencesDialog.ui index 0cece9152..124df7ffd 100644 --- a/src/PreferencesDialog.ui +++ b/src/PreferencesDialog.ui @@ -332,7 +332,7 @@
    - + Show remote options @@ -342,7 +342,7 @@ - + enabled @@ -352,7 +352,7 @@ - + Automatic &updates @@ -362,14 +362,14 @@ - + enabled - + DB file extensions @@ -379,7 +379,7 @@ - + Manage @@ -537,6 +537,11 @@ Dark style + + + Light style + + @@ -582,6 +587,27 @@ + + + + Prompt to save SQL tabs +in new project file + + + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + enabled + + + true + + + @@ -1445,6 +1471,26 @@ Can be set to 0 for disabling completion.
    + + + Use tabs for indentation + + + checkAutoCompletion + + + + + + + When set, the Tab key will insert tab and space characters for indentation. Otherwise, just spaces will be used. + + + enabled + + + + &Wrap lines @@ -1454,7 +1500,7 @@ Can be set to 0 for disabling completion. - + @@ -1478,7 +1524,7 @@ Can be set to 0 for disabling completion. - + &Quotes for identifiers @@ -1488,7 +1534,7 @@ Can be set to 0 for disabling completion. - + Choose the quoting mechanism used by the application for identifiers in SQL code. @@ -1513,7 +1559,7 @@ Can be set to 0 for disabling completion. - + Code co&mpletion @@ -1523,14 +1569,14 @@ Can be set to 0 for disabling completion. - + enabled - + Keywords in &UPPER CASE @@ -1540,7 +1586,7 @@ Can be set to 0 for disabling completion. - + When set, the SQL keywords are completed in UPPER CASE letters. @@ -1550,7 +1596,7 @@ Can be set to 0 for disabling completion. - + Error indicators @@ -1560,7 +1606,7 @@ Can be set to 0 for disabling completion. - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background @@ -1570,7 +1616,7 @@ Can be set to 0 for disabling completion. - + Hori&zontal tiling @@ -1580,7 +1626,7 @@ Can be set to 0 for disabling completion. - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. @@ -1590,7 +1636,7 @@ Can be set to 0 for disabling completion. - + Close button on tabs @@ -1600,7 +1646,7 @@ Can be set to 0 for disabling completion. - + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. @@ -1934,14 +1980,32 @@ Can be set to 0 for disabling completion. - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::RestoreDefaults|QDialogButtonBox::Save - - + + + + + Export Settings + + + + + + + Import Settings + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::RestoreDefaults|QDialogButtonBox::Save + + + + diff --git a/src/ProxyDialog.h b/src/ProxyDialog.h index bdc5c034a..9fbae9902 100644 --- a/src/ProxyDialog.h +++ b/src/ProxyDialog.h @@ -13,7 +13,7 @@ class ProxyDialog : public QDialog public: explicit ProxyDialog(QWidget* parent = nullptr); - ~ProxyDialog(); + ~ProxyDialog() override; void saveSettings() const; diff --git a/src/RemoteCommitsModel.cpp b/src/RemoteCommitsModel.cpp index a114ced20..056af1526 100644 --- a/src/RemoteCommitsModel.cpp +++ b/src/RemoteCommitsModel.cpp @@ -83,7 +83,7 @@ void RemoteCommitsModel::refresh(const std::string& json_data, const std::string item->setFont(0, bold_font); } - parent_id = commit["parent"]; + parent_id = commit["parent"].get(); } // Refresh the view diff --git a/src/RemoteDock.cpp b/src/RemoteDock.cpp index a2b1a15ff..80a973f1a 100644 --- a/src/RemoteDock.cpp +++ b/src/RemoteDock.cpp @@ -53,7 +53,7 @@ RemoteDock::RemoteDock(MainWindow* parent) // When the Preferences link is clicked in the no-certificates-label, open the preferences dialog. For other links than the ones we know, // just open them in a web browser - connect(ui->labelNoCert, &QLabel::linkActivated, [this](const QString& link) { + connect(ui->labelNoCert, &QLabel::linkActivated, this, [this](const QString& link) { if(link == "#preferences") { PreferencesDialog dialog(mainWindow, PreferencesDialog::TabRemote); @@ -65,13 +65,13 @@ RemoteDock::RemoteDock(MainWindow* parent) }); // When changing the current branch in the branches combo box, update the tree view accordingly - connect(ui->comboDatabaseBranch, static_cast(&QComboBox::currentIndexChanged), [this](int /*index*/) { + connect(ui->comboDatabaseBranch, static_cast(&QComboBox::currentIndexChanged), this, [this](int /*index*/) { remoteCommitsModel->refresh(current_commit_json, ui->comboDatabaseBranch->currentData().toString().toStdString(), currently_opened_file_info.commit_id); ui->treeDatabaseCommits->expandAll(); }); // Fetch latest commit action - connect(ui->actionFetchLatestCommit, &QAction::triggered, [this]() { + connect(ui->actionFetchLatestCommit, &QAction::triggered, this, [this]() { // Fetch last commit of current branch // The URL and the branch name is that of the currently opened database file. // The latest commit id is stored in the data bits of the branch combo box. @@ -85,20 +85,20 @@ RemoteDock::RemoteDock(MainWindow* parent) }); // Prepare context menu for list of remote databases - connect(ui->treeRemote->selectionModel(), &QItemSelectionModel::currentChanged, [this](const QModelIndex& index, const QModelIndex&) { + connect(ui->treeRemote->selectionModel(), &QItemSelectionModel::currentChanged, this, [this](const QModelIndex& index, const QModelIndex&) { // Only enable database actions when a database was selected bool enable = index.isValid() && remoteModel->modelIndexToItem(index)->value(RemoteModelColumnType).toString() == "database"; ui->actionCloneDatabaseDoubleClick->setEnabled(enable); }); - ui->treeRemote->selectionModel()->currentChanged(QModelIndex(), QModelIndex()); // Enable/disable all action initially - connect(ui->actionCloneDatabaseDoubleClick, &QAction::triggered, [this]() { + emit ui->treeRemote->selectionModel()->currentChanged(QModelIndex(), QModelIndex()); // Enable/disable all action initially + connect(ui->actionCloneDatabaseDoubleClick, &QAction::triggered, this, [this]() { fetchDatabase(ui->treeRemote->currentIndex()); }); ui->treeRemote->addAction(ui->actionCloneDatabaseDoubleClick); // Prepare context menu for list of local clones - connect(ui->treeLocal->selectionModel(), &QItemSelectionModel::currentChanged, [this](const QModelIndex& index, const QModelIndex&) { + connect(ui->treeLocal->selectionModel(), &QItemSelectionModel::currentChanged, this, [this](const QModelIndex& index, const QModelIndex&) { // Only enable database actions when a database was selected bool enable = index.isValid() && !index.sibling(index.row(), RemoteLocalFilesModel::ColumnFile).data().isNull(); @@ -106,11 +106,11 @@ RemoteDock::RemoteDock(MainWindow* parent) ui->actionPushLocalDatabase->setEnabled(enable); ui->actionDeleteDatabase->setEnabled(enable); }); - ui->treeLocal->selectionModel()->currentChanged(QModelIndex(), QModelIndex()); // Enable/disable all action initially - connect(ui->actionOpenLocalDatabase, &QAction::triggered, [this]() { + emit ui->treeLocal->selectionModel()->currentChanged(QModelIndex(), QModelIndex()); // Enable/disable all action initially + connect(ui->actionOpenLocalDatabase, &QAction::triggered, this, [this]() { openLocalFile(ui->treeLocal->currentIndex()); }); - connect(ui->actionDeleteDatabase, &QAction::triggered, [this]() { + connect(ui->actionDeleteDatabase, &QAction::triggered, this, [this]() { deleteLocalDatabase(ui->treeLocal->currentIndex()); }); ui->treeLocal->addAction(ui->actionOpenLocalDatabase); @@ -118,17 +118,17 @@ RemoteDock::RemoteDock(MainWindow* parent) ui->treeLocal->addAction(ui->actionDeleteDatabase); // Prepare context menu for list of commits - connect(ui->treeDatabaseCommits->selectionModel(), &QItemSelectionModel::currentChanged, [this](const QModelIndex& index, const QModelIndex&) { + connect(ui->treeDatabaseCommits->selectionModel(), &QItemSelectionModel::currentChanged, this, [this](const QModelIndex& index, const QModelIndex&) { // Only enable database actions when a commit was selected bool enable = index.isValid(); ui->actionFetchCommit->setEnabled(enable); ui->actionDownloadCommit->setEnabled(enable); }); - ui->treeDatabaseCommits->selectionModel()->currentChanged(QModelIndex(), QModelIndex()); // Enable/disable all action initially - connect(ui->actionFetchCommit, &QAction::triggered, [this]() { + emit ui->treeDatabaseCommits->selectionModel()->currentChanged(QModelIndex(), QModelIndex()); // Enable/disable all action initially + connect(ui->actionFetchCommit, &QAction::triggered, this, [this]() { fetchCommit(ui->treeDatabaseCommits->currentIndex()); }); - connect(ui->actionDownloadCommit, &QAction::triggered, [this]() { + connect(ui->actionDownloadCommit, &QAction::triggered, this, [this]() { fetchCommit(ui->treeDatabaseCommits->currentIndex(), RemoteNetwork::RequestTypeDownload); }); ui->treeDatabaseCommits->addAction(ui->actionFetchCommit); @@ -379,14 +379,18 @@ void RemoteDock::pushDatabase(const QString& path, const QString& branch) // Build push URL QString url = host; - url.append(RemoteNetwork::get().getInfoFromClientCert(remoteModel->currentClientCertificate(), RemoteNetwork::CertInfoUser)); + url.append(pushDialog.user()); url.append("/"); url.append(pushDialog.name()); - // Check if we are pushing a cloned database. Only in this case we provide the last known commit id + // Check if we are pushing a cloned database. Only in this case we provide the last known commit id. + // For this check we use the branch name which was used for cloning this database rather than the + // branch name which was selected in the push dialog. This is because we want to figure out the + // current commit id of we are currently looking at rather than some other commit id or none at all + // when creating a new branch. QString commit_id; if(path.startsWith(Settings::getValue("remote", "clonedirectory").toString())) - commit_id = QString::fromStdString(remoteDatabase.localLastCommitId(remoteModel->currentClientCertificate(), url, pushDialog.branch().toStdString())); + commit_id = QString::fromStdString(remoteDatabase.localLastCommitId(remoteModel->currentClientCertificate(), url, branch.toStdString())); // Push database RemoteNetwork::get().push(path, url, remoteModel->currentClientCertificate(), pushDialog.name(), diff --git a/src/RemoteDock.ui b/src/RemoteDock.ui index 1ec855f12..b0ffda4af 100644 --- a/src/RemoteDock.ui +++ b/src/RemoteDock.ui @@ -186,121 +186,152 @@ 0 - - - false - - - false - - - - - - - - - - Clone - - - - 0 - - - - - User - - - editDatabaseUser - - - - - - - true - - - - - - - Database - - - editDatabaseFile - - - - - - - true - - - - - - - Branch - - - editDatabaseBranch - - - - - - - true - - - - - - - - - - Commits + + + true - - - 2 - - - 0 - - - 2 + + + + 0 + 0 + 520 + 315 + - - 0 - - - - - - - Commits for + + + 0 + + + 0 + + + 0 + + + 0 + + + + + false + + + false + + + + + + + + + + Clone + + + + 0 + + + + + &User + + + editDatabaseUser + + + + + + + true + + + + + + + &Database + + + editDatabaseFile + + + + + + + true + + + + + + + Branch + + + editDatabaseBranch + + + + + + + true + + + + + + + + + + Commits + + + + 2 + + + 0 - - - - - - - - - - - Qt::ActionsContextMenu - - - - + + 2 + + + 0 + + + + + + + Commits for + + + + + + + + + + + + Qt::ActionsContextMenu + + + + + + + + @@ -452,9 +483,6 @@ Reload all data and update the views - - F5 - diff --git a/src/RemoteNetwork.cpp b/src/RemoteNetwork.cpp index 80bda61c5..e44f21ad0 100644 --- a/src/RemoteNetwork.cpp +++ b/src/RemoteNetwork.cpp @@ -1,6 +1,5 @@ #include #include -#include #include #include #include @@ -27,18 +26,10 @@ using json = nlohmann::json; RemoteNetwork::RemoteNetwork() : m_manager(new QNetworkAccessManager), - m_configurationManager(new QNetworkConfigurationManager), - m_progress(nullptr) + m_progress(nullptr), + m_sslConfiguration(QSslConfiguration::defaultConfiguration()) { - // Update network configurations - connect(m_configurationManager, &QNetworkConfigurationManager::updateCompleted, [this]() { - m_manager->setConfiguration(m_configurationManager->defaultConfiguration()); - - emit networkReady(); - }); - // Set up SSL configuration - m_sslConfiguration = QSslConfiguration::defaultConfiguration(); m_sslConfiguration.setPeerVerifyMode(QSslSocket::VerifyPeer); // Load CA certs from resource file @@ -228,6 +219,8 @@ void RemoteNetwork::gotReply(QNetworkReply* reply) file.close(); } break; + case RequestTypeCustom: + break; } // Delete reply later, i.e. after returning from this slot function @@ -382,15 +375,8 @@ void RemoteNetwork::prepareProgressDialog(QNetworkReply* reply, bool upload, con } void RemoteNetwork::fetch(const QUrl& url, RequestType type, const QString& clientCert, - std::function when_finished, bool synchronous) + std::function when_finished, bool synchronous, bool ignore_errors) { - // Check if network is accessible. If not, abort right here - if(m_manager->networkAccessible() == QNetworkAccessManager::NotAccessible) - { - QMessageBox::warning(nullptr, qApp->applicationName(), tr("Error: The network is not accessible.")); - return; - } - // Build network request QNetworkRequest request; request.setUrl(url); @@ -416,6 +402,7 @@ void RemoteNetwork::fetch(const QUrl& url, RequestType type, const QString& clie QNetworkReply* reply = m_manager->get(request); reply->setProperty("type", type); reply->setProperty("certfile", clientCert); + reply->setProperty("ignore_errors", ignore_errors); // Hook up custom handler when there is one and global handler otherwise if(when_finished) @@ -449,13 +436,6 @@ void RemoteNetwork::push(const QString& filename, const QUrl& url, const QString const QString& commitMessage, const QString& licence, bool isPublic, const QString& branch, bool forcePush, const QString& last_commit) { - // Check if network is accessible. If not, abort right here - if(m_manager->networkAccessible() == QNetworkAccessManager::NotAccessible) - { - QMessageBox::warning(nullptr, qApp->applicationName(), tr("Error: The network is not accessible.")); - return; - } - // Open the file to send and check if it exists QFile* file = new QFile(filename); if(!file->open(QFile::ReadOnly)) @@ -556,7 +536,7 @@ bool RemoteNetwork::handleReply(QNetworkReply* reply) if(reply->error() != QNetworkReply::NoError) { // Do not show error message when operation was cancelled on purpose - if(reply->error() != QNetworkReply::OperationCanceledError) + if(reply->error() != QNetworkReply::OperationCanceledError && !reply->property("ignore_errors").toBool()) { QMessageBox::warning(nullptr, qApp->applicationName(), reply->errorString() + "\n" + reply->readAll()); diff --git a/src/RemoteNetwork.h b/src/RemoteNetwork.h index 7d4132edd..35051f26c 100644 --- a/src/RemoteNetwork.h +++ b/src/RemoteNetwork.h @@ -8,7 +8,6 @@ #include class QNetworkAccessManager; -class QNetworkConfigurationManager; class QNetworkReply; class QProgressDialog; class QNetworkRequest; @@ -46,16 +45,13 @@ class RemoteNetwork : public QObject RequestTypeDownload, }; - void fetch(const QUrl& url, RequestType type, const QString& clientCert = QString(), std::function when_finished = {}, bool synchronous = false); + void fetch(const QUrl& url, RequestType type, const QString& clientCert = QString(), + std::function when_finished = {}, bool synchronous = false, bool ignore_errors = false); void push(const QString& filename, const QUrl& url, const QString& clientCert, const QString& remotename, const QString& commitMessage = QString(), const QString& licence = QString(), bool isPublic = false, const QString& branch = QString("master"), bool forcePush = false, const QString& last_commit = QString()); signals: - // As soon as you can safely open a network connection, this signal is emitted. This can be used to delay early network requests - // which might otherwise fail. - void networkReady(); - // The fetchFinished() signal is emitted when a fetch() call for a database is finished void fetchFinished(QString filename, QString identity, const QUrl& url, std::string new_commit_id, std::string branch, QDateTime last_modified, QIODevice* device); @@ -87,7 +83,6 @@ class RemoteNetwork : public QObject bool handleReply(QNetworkReply* reply); QNetworkAccessManager* m_manager; - QNetworkConfigurationManager* m_configurationManager; QProgressDialog* m_progress; QSslConfiguration m_sslConfiguration; std::map m_clientCertFiles; diff --git a/src/RemotePushDialog.cpp b/src/RemotePushDialog.cpp index 45b791415..01b7bc9e9 100644 --- a/src/RemotePushDialog.cpp +++ b/src/RemotePushDialog.cpp @@ -11,7 +11,7 @@ using json = nlohmann::json; RemotePushDialog::RemotePushDialog(QWidget* parent, const QString& host, const QString& clientCert, - const QString& name, const QString& branch) : + const QString& name, const QString& branch, const QString& user) : QDialog(parent), ui(new Ui::RemotePushDialog), m_host(host), @@ -23,10 +23,16 @@ RemotePushDialog::RemotePushDialog(QWidget* parent, const QString& host, const Q ui->setupUi(this); ui->editName->setValidator(m_nameValidator); ui->comboBranch->setValidator(m_branchValidator); + ui->comboUser->setValidator(m_nameValidator); // Set start values ui->editName->setText(name); + // Fill in usernames + ui->comboUser->addItem(RemoteNetwork::get().getInfoFromClientCert(m_clientCert, RemoteNetwork::CertInfoUser)); + if(!user.isEmpty()) + ui->comboUser->addItem(user); + // Enable/disable accept button checkInput(); @@ -50,7 +56,7 @@ RemotePushDialog::RemotePushDialog(QWidget* parent, const QString& host, const Q ui->comboLicence->addItem(QString::fromStdString(it->second.second), QString::fromStdString(it->second.first)); }); - // Fetch list of exsisting branches + // Fetch list of existing branches reloadBranchList(branch); } @@ -85,6 +91,9 @@ void RemotePushDialog::checkInput() if(ui->comboBranch->currentText().size() < 1 || ui->comboBranch->currentText().size() > 32) valid = false; + if(ui->comboUser->currentText().trimmed().isEmpty()) + valid = false; + ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(valid); } @@ -118,6 +127,11 @@ QString RemotePushDialog::branch() const return ui->comboBranch->currentText(); } +QString RemotePushDialog::user() const +{ + return ui->comboUser->currentText(); +} + bool RemotePushDialog::forcePush() const { return ui->checkForce->isChecked(); @@ -127,7 +141,7 @@ void RemotePushDialog::reloadBranchList(const QString& select_branch) { QUrl url(m_host + "branch/list"); QUrlQuery query; - query.addQueryItem("username", RemoteNetwork::get().getInfoFromClientCert(m_clientCert, RemoteNetwork::CertInfoUser)); + query.addQueryItem("username", ui->comboUser->currentText()); query.addQueryItem("folder", "/"); query.addQueryItem("dbname", ui->editName->text()); url.setQuery(query); @@ -156,5 +170,5 @@ void RemotePushDialog::reloadBranchList(const QString& select_branch) // If a branch was suggested, select it now if(!select_branch.isEmpty()) ui->comboBranch->setCurrentIndex(ui->comboBranch->findText(select_branch)); - }); + }, false, true); } diff --git a/src/RemotePushDialog.h b/src/RemotePushDialog.h index 73b07c165..e2c6b3616 100644 --- a/src/RemotePushDialog.h +++ b/src/RemotePushDialog.h @@ -15,7 +15,7 @@ class RemotePushDialog : public QDialog public: explicit RemotePushDialog(QWidget* parent, const QString& host, const QString& clientCert, - const QString& name = QString(), const QString& branch = QString()); + const QString& name = QString(), const QString& branch = QString(), const QString& user = QString()); ~RemotePushDialog() override; QString name() const; @@ -23,6 +23,7 @@ class RemotePushDialog : public QDialog QString licence() const; bool isPublic() const; QString branch() const; + QString user() const; bool forcePush() const; private: diff --git a/src/RemotePushDialog.ui b/src/RemotePushDialog.ui index 4d0209830..49dab0c22 100644 --- a/src/RemotePushDialog.ui +++ b/src/RemotePushDialog.ui @@ -7,7 +7,7 @@ 0 0 583 - 300 + 315 @@ -46,11 +46,11 @@ - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> +</style></head><body style=" font-family:'Noto Sans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> false @@ -110,7 +110,7 @@ p, li { white-space: pre-wrap; } - + Force push @@ -120,9 +120,26 @@ p, li { white-space: pre-wrap; } - + + + + + Username + + + comboUser + + + + + + + true + + + @@ -143,6 +160,8 @@ p, li { white-space: pre-wrap; } comboBranch checkPublic comboLicence + comboUser + checkForce @@ -153,8 +172,8 @@ p, li { white-space: pre-wrap; } accept() - 248 - 254 + 257 + 305 157 @@ -169,8 +188,8 @@ p, li { white-space: pre-wrap; } reject() - 316 - 260 + 325 + 305 286 @@ -201,8 +220,8 @@ p, li { white-space: pre-wrap; } checkInput() - 171 - 176 + 345 + 181 210 @@ -249,8 +268,8 @@ p, li { white-space: pre-wrap; } checkInput() - 172 - 138 + 346 + 160 33 @@ -265,8 +284,8 @@ p, li { white-space: pre-wrap; } checkInput() - 168 - 240 + 342 + 269 62 @@ -274,6 +293,38 @@ p, li { white-space: pre-wrap; } + + comboUser + currentTextChanged(QString) + RemotePushDialog + reloadBranchList() + + + 373 + 235 + + + 291 + 157 + + + + + comboUser + currentTextChanged(QString) + RemotePushDialog + checkInput() + + + 373 + 235 + + + 291 + 157 + + + checkInput() diff --git a/src/RowLoader.cpp b/src/RowLoader.cpp index e7d4b2cfa..bc16bd77b 100644 --- a/src/RowLoader.cpp +++ b/src/RowLoader.cpp @@ -16,17 +16,18 @@ namespace { } // anon ns -RowLoader::RowLoader ( - std::function(void)> db_getter_, +RowLoader::RowLoader (std::function(void)> db_getter_, std::function statement_logger_, std::vector & headers_, std::mutex & cache_mutex_, Cache & cache_data_ ) - : db_getter(db_getter_), statement_logger(statement_logger_), headers(headers_) + : db_getter(db_getter_), statement_logger(statement_logger_) + , headers(headers_) , cache_mutex(cache_mutex_), cache_data(cache_data_) , query() , countQuery() + , first_chunk_loaded(false) , num_tasks(0) , pDb(nullptr) , stop_requested(false) @@ -39,6 +40,7 @@ void RowLoader::setQuery (const QString& new_query, const QString& newCountQuery { std::lock_guard lk(m); query = new_query; + first_chunk_loaded = false; if (newCountQuery.isEmpty()) // If it is a normal query - hopefully starting with SELECT - just do a COUNT on it and return the results countQuery = QString("SELECT COUNT(*) FROM (%1);").arg(rtrimChar(query, ';')); @@ -218,7 +220,7 @@ void RowLoader::process (Task & t) queryTemp.contains(QRegExp("\\s(UNION)|(INTERSECT)|(EXCEPT)\\s", Qt::CaseInsensitive))) sLimitQuery = queryTemp; else - sLimitQuery = queryTemp + QString(" LIMIT %1, %2;").arg(t.row_begin).arg(t.row_end-t.row_begin); + sLimitQuery = queryTemp + QString(" LIMIT %1 OFFSET %2;").arg(t.row_end-t.row_begin).arg(t.row_begin); } statement_logger(sLimitQuery); @@ -227,10 +229,10 @@ void RowLoader::process (Task & t) auto row = t.row_begin; if(sqlite3_prepare_v2(pDb.get(), utf8Query, utf8Query.size(), &stmt, nullptr) == SQLITE_OK) { - const size_t num_columns = headers.size(); - while(!t.cancel && sqlite3_step(stmt) == SQLITE_ROW) { + size_t num_columns = static_cast(sqlite3_data_count(stmt)); + // Construct a new row object with the right number of columns Cache::value_type rowdata(num_columns); for(size_t i=0;i(row-t.row_begin)); + } } emit fetched(t.token, t.row_begin, row); diff --git a/src/RowLoader.h b/src/RowLoader.h index 772834e61..b3224bcf1 100644 --- a/src/RowLoader.h +++ b/src/RowLoader.h @@ -81,6 +81,8 @@ class RowLoader : public QThread mutable std::future row_counter; + bool first_chunk_loaded; + size_t num_tasks; std::shared_ptr pDb; //< exclusive access while held... diff --git a/src/RunSql.cpp b/src/RunSql.cpp index 482098321..dceaeee2e 100644 --- a/src/RunSql.cpp +++ b/src/RunSql.cpp @@ -1,7 +1,7 @@ #include "RunSql.h" #include "sqlite.h" #include "sqlitedb.h" -#include "sqlitetablemodel.h" +#include "Data.h" #include #include @@ -86,7 +86,7 @@ bool RunSql::executeNextStatement() // Remove trailing comments so we don't get fooled by some trailing text at the end of the stream. // Otherwise we'll pass them to SQLite and its execution will trigger a savepoint that wouldn't be // reverted. - SqliteTableModel::removeCommentsFromQuery(qtail); + removeCommentsFromQuery(qtail); if (qtail.isEmpty()) return false; @@ -162,17 +162,28 @@ bool RunSql::executeNextStatement() QString error; if (sql3status == SQLITE_OK) { - sql3status = sqlite3_step(vm); - sqlite3_finalize(vm); - // Get type StatementType query_part_type = getQueryType(queryPart.trimmed()); - // SQLite returns SQLITE_DONE when a valid SELECT statement was executed but returned no results. To run into the branch that updates - // the status message and the table view anyway manipulate the status value here. This is also done for PRAGMA statements as they (sometimes) - // return rows just like SELECT statements, too. - if((query_part_type == SelectStatement || query_part_type == PragmaStatement) && sql3status == SQLITE_DONE) + // Check if this statement returned any data. We skip this check if this is an ALTER TABLE statement which, for some reason, are reported to return one column. + if(query_part_type != AlterStatement && sqlite3_column_count(vm)) + { + // It did. So it is definitely some SELECT statement or similar and we don't need to actually execute it here sql3status = SQLITE_ROW; + } else { + // It did not. So it's probably some modifying SQL statement and we want to execute it here. If for some reason + // it turns out to return data after all, we just change the status + sql3status = sqlite3_step(vm); + + // SQLite returns SQLITE_DONE when a valid SELECT statement was executed but returned no results. To run into the branch that updates + // the status message and the table view anyway manipulate the status value here. This is also done for PRAGMA statements as they (sometimes) + // return rows just like SELECT statements, too. + if((query_part_type == SelectStatement || query_part_type == PragmaStatement) && sql3status == SQLITE_DONE) + sql3status = SQLITE_ROW; + } + + // Destroy statement + sqlite3_finalize(vm); switch(sql3status) { diff --git a/src/SelectItemsPopup.h b/src/SelectItemsPopup.h index e7fb9e9dd..f4436e8dc 100644 --- a/src/SelectItemsPopup.h +++ b/src/SelectItemsPopup.h @@ -19,7 +19,7 @@ class SelectItemsPopup : public QDialog public: explicit SelectItemsPopup(const std::vector& available, const std::vector& selected = {}, QWidget* parent = nullptr); - ~SelectItemsPopup(); + ~SelectItemsPopup() override; std::vector selectedItems() const; @@ -33,7 +33,7 @@ private slots: void moveItemDown(); protected: - void resizeEvent(QResizeEvent* ev); + void resizeEvent(QResizeEvent* ev) override; private: Ui::SelectItemsPopup* ui; diff --git a/src/Settings.cpp b/src/Settings.cpp index 956605b89..8c06cafe8 100644 --- a/src/Settings.cpp +++ b/src/Settings.cpp @@ -1,6 +1,7 @@ #include "Settings.h" #include +#include #include #include #include @@ -9,6 +10,8 @@ #include #include +QString Settings::userSettingsFile; +QSettings* Settings::settings; std::unordered_map Settings::m_hCache; int Settings::m_defaultFontSize; @@ -17,6 +20,72 @@ static bool ends_with(const std::string& str, const std::string& with) return str.rfind(with) == str.size() - with.size(); } +void Settings::setUserSettingsFile(const QString& userSettingsFileArg) +{ + userSettingsFile = userSettingsFileArg; +} + +bool Settings::isVaildSettingsFile(const QString& userSettingsFile) +{ + /* + Variable that stores whether or not the settings file requested by the user is a normal settings file + If the file does not exist and is newly created, the if statement below is not executed, so the default value is set to true + */ + + bool isNormalUserSettingsFile = true; + + // Code that verifies that the settings file requested by the user is a normal settings file + if(userSettingsFile != nullptr) + { + QFile *file = new QFile; + file->setFileName(userSettingsFile); + + if(file->open(QIODevice::ReadOnly | QIODevice::Text)) + { + if(file->exists() && + QString::compare(QString("[%General]\n"), file->readLine(), Qt::CaseInsensitive) != 0) + isNormalUserSettingsFile = false; + } + + file->close(); + } + + return isNormalUserSettingsFile; +} + +void Settings::setSettingsObject() +{ + // If an object has already been created, it is terminated to reduce overhead + if(settings) + return; + + const bool isNormalUserSettingsFile = isVaildSettingsFile(userSettingsFile); + + if(userSettingsFile == nullptr) + { + settings = new QSettings(QCoreApplication::organizationName(), QCoreApplication::organizationName()); + } else { + if(isNormalUserSettingsFile) + { + settings = new QSettings(userSettingsFile, QSettings::IniFormat); + + // Code to verify that the user does not have access to the requested settings file + if(settings->status() == QSettings::AccessError) { + qWarning() << qPrintable("The given settings file can NOT access. Please check the permission for the file."); + qWarning() << qPrintable("So, the -S/--settings option is ignored."); + + // Since you do not have permission to the file, delete the existing assignment and assign the standard + delete settings; + settings = new QSettings(QCoreApplication::organizationName(), QCoreApplication::organizationName()); + } + } else { + qWarning() << qPrintable("The given settings file is not a normal settings file. Please check again."); + qWarning() << qPrintable("So, the -S/--settings option is ignored."); + settings = new QSettings(QCoreApplication::organizationName(), QCoreApplication::organizationName()); + } + } +} + QVariant Settings::getValue(const std::string& group, const std::string& name) { // Have a look in the cache first @@ -26,8 +95,8 @@ QVariant Settings::getValue(const std::string& group, const std::string& name) return cacheIndex->second; } else { // Nothing found in the cache, so get the value from the settings file or get the default value if there is no value set yet - QSettings settings(QApplication::organizationName(), QApplication::organizationName()); - QVariant value = settings.value(QString::fromStdString(group + "/" + name), getDefaultValue(group, name)); + setSettingsObject(); + QVariant value = settings->value(QString::fromStdString(group + "/" + name), getDefaultValue(group, name)); // Store this value in the cache for further usage and return it afterwards m_hCache.insert({group + name, value}); @@ -35,17 +104,17 @@ QVariant Settings::getValue(const std::string& group, const std::string& name) } } -void Settings::setValue(const std::string& group, const std::string& name, const QVariant& value, bool dont_save_to_disk) +void Settings::setValue(const std::string& group, const std::string& name, const QVariant& value, bool save_to_disk) { // Sometime the value has to be saved for the current session only but get discarded when the application exits. // In order to achieve this this flag can be set which disables the save to disk mechanism and only leaves the save to cache part active. - if(dont_save_to_disk == false) + if(save_to_disk) { + setSettingsObject(); // Set the group and save the given value - QSettings settings(QApplication::organizationName(), QApplication::organizationName()); - settings.beginGroup(QString::fromStdString(group)); - settings.setValue(QString::fromStdString(name), value); - settings.endGroup(); + settings->beginGroup(QString::fromStdString(group)); + settings->setValue(QString::fromStdString(name), value); + settings->endGroup(); } // Also change it in the cache @@ -117,12 +186,14 @@ QVariant Settings::getDefaultValue(const std::string& group, const std::string& return '"'; if(name == "encoding") return "UTF-8"; + if(name == "localconventions") + return false; } // exportsql group? if(group == "exportsql") { - if(name == "insertcolnames" || name == "insertmultiple") + if(name == "insertcolnames" || name == "insertmultiple" || name == "keeporiginal") return false; if(name == "oldschema") return 0; @@ -199,6 +270,10 @@ QVariant Settings::getDefaultValue(const std::string& group, const std::string& if(group == "General" && name == "fontsize") return m_defaultFontSize; + // General/promptsqltabsinnewproject + if(group == "General" && name == "promptsqltabsinnewproject") + return true; + // checkversion group? if(group == "checkversion") { @@ -281,9 +356,9 @@ QVariant Settings::getDefaultValue(const std::string& group, const std::string& if(group == "editor") { if(name == "tabsize") - { return 4; - } + if(name == "indentation_use_tabs") + return true; } // editor/wrap_lines @@ -407,17 +482,27 @@ QColor Settings::getDefaultColorValue(const std::string& group, const std::strin break; case DarkStyle : if(name == "null_fg_colour") - return QColor("#787878"); + return QColor(0x78, 0x78, 0x78); if(name == "null_bg_colour") - return QColor("#19232D"); + return QColor(0x19, 0x23, 0x2D); if(name == "reg_fg_colour") - return QColor("#F0F0F0"); + return QColor(0xF0, 0xF0, 0xF0); if(name == "reg_bg_colour") - return QColor("#19232D"); + return QColor(0x19, 0x23, 0x2D); if(name == "bin_fg_colour") - return QColor("#787878"); + return QColor(0x78, 0x78, 0x78); if(name == "bin_bg_colour") - return QColor("#19232D"); + return QColor(0x19, 0x23, 0x2D); + break; + case LightStyle : + if(name == "null_fg_colour" || name == "bin_fg_colour") + return QColor("#A5A9AC"); + if(name == "null_bg_colour" || name == "bin_bg_colour") + return QColor("#FAFAFA"); + if(name == "reg_fg_colour") + return QColor("#000000"); + if(name == "reg_bg_colour") + return QColor("#FAFAFA"); break; } } @@ -437,8 +522,12 @@ QColor Settings::getDefaultColorValue(const std::string& group, const std::strin foregroundColour = QPalette().color(QPalette::Active, QPalette::Text); break; case DarkStyle : - foregroundColour = QColor("#F0F0F0"); - backgroundColour = QColor("#19232D"); + foregroundColour = QColor(0xF0, 0xF0, 0xF0); + backgroundColour = QColor(0x19, 0x23, 0x2D); + break; + case LightStyle : + foregroundColour = QColor("#000000"); + backgroundColour = QColor("#FAFAFA"); break; } if(name == "foreground_colour") @@ -461,7 +550,7 @@ QColor Settings::getDefaultColorValue(const std::string& group, const std::strin else if(name == "comment_colour") return QColor(Qt::green); else if(name == "identifier_colour") - return QColor(Qt::magenta); + return QColor(221, 160, 221); else if(name == "string_colour") return QColor(Qt::lightGray); else if(name == "currentline_colour") @@ -495,16 +584,65 @@ QColor Settings::getDefaultColorValue(const std::string& group, const std::strin void Settings::clearValue(const std::string& group, const std::string& name) { - QSettings settings(QApplication::organizationName(), QApplication::organizationName()); - settings.beginGroup(QString::fromStdString(group)); - settings.remove(QString::fromStdString(name)); - settings.endGroup(); + setSettingsObject(); + settings->beginGroup(QString::fromStdString(group)); + settings->remove(QString::fromStdString(name)); + settings->endGroup(); m_hCache.clear(); } void Settings::restoreDefaults () { - QSettings settings(QApplication::organizationName(), QApplication::organizationName()); - settings.clear(); + setSettingsObject(); + settings->clear(); + m_hCache.clear(); +} + +void Settings::exportSettings(const QString& fileName) +{ + QSettings* exportSettings = new QSettings(fileName, QSettings::IniFormat); + + const QStringList groups = settings->childGroups(); + for(const QString& currentGroup : groups) + { + settings->beginGroup(currentGroup); + const QStringList keys = settings->childKeys(); + for(const QString& currentKey : keys) + { + exportSettings->beginGroup(currentGroup); + exportSettings->setValue(currentKey, getValue((currentGroup.toStdString()), (currentKey.toStdString()))); + exportSettings->endGroup(); + } + settings->endGroup(); + } +} + +bool Settings::importSettings(const QString& fileName) +{ + if(!isVaildSettingsFile(fileName)) + return false; + + QSettings* importSettings = new QSettings(fileName, QSettings::IniFormat); + + const QStringList groups = importSettings->childGroups(); + for(const QString& currentGroup : groups) + { + importSettings->beginGroup(currentGroup); + const QStringList keys = importSettings->childKeys(); + for(const QString& currentKey : keys) + { + settings->beginGroup(currentGroup); + settings->setValue(currentKey, importSettings->value(currentKey)); + settings->endGroup(); + } + importSettings->endGroup(); + } + m_hCache.clear(); + return true; +} + +void Settings::sync() +{ + settings->sync(); } diff --git a/src/Settings.h b/src/Settings.h index e3cb705d4..5fca0a613 100644 --- a/src/Settings.h +++ b/src/Settings.h @@ -2,6 +2,7 @@ #define SETTINGS_H #include +#include #include class Settings @@ -9,17 +10,22 @@ class Settings friend class PreferencesDialog; public: - enum AppStyle { FollowDesktopStyle, - DarkStyle + DarkStyle, + LightStyle }; + + static void setUserSettingsFile(const QString& userSettingsFileArg); static QVariant getValue(const std::string& group, const std::string& name); - static void setValue(const std::string& group, const std::string& name, const QVariant& value, bool dont_save_to_disk = false); + static void setValue(const std::string& group, const std::string& name, const QVariant& value, bool save_to_disk = true); static void clearValue(const std::string& group, const std::string& name); static void restoreDefaults(); static void rememberDefaultFontSize(int size) { m_defaultFontSize = size; } + static void exportSettings(const QString& fileName); + static bool importSettings(const QString& fileName); + static void sync(); private: Settings() = delete; // class is fully static @@ -31,6 +37,18 @@ class Settings // instead of the current palette. static QColor getDefaultColorValue(const std::string& group, const std::string& name, AppStyle style); + // User settings file path + static QString userSettingsFile; + + // QSettings object + static QSettings* settings; + + // This works verify that the settings file provided by the user is a normal settings file + static bool isVaildSettingsFile(const QString& userSettingsFile); + + // This works initialize QSettings object + static void setSettingsObject(); + // Cache for storing the settings to avoid repeatedly reading the settings file all the time static std::unordered_map m_hCache; diff --git a/src/SqlExecutionArea.cpp b/src/SqlExecutionArea.cpp index f5e3d8348..e4dacb68f 100644 --- a/src/SqlExecutionArea.cpp +++ b/src/SqlExecutionArea.cpp @@ -17,7 +17,8 @@ SqlExecutionArea::SqlExecutionArea(DBBrowserDB& _db, QWidget* parent) : db(_db), ui(new Ui::SqlExecutionArea), m_columnsResized(false), - error_state(false) + error_state(false), + follow_mode(false) { // Create UI ui->setupUi(this); @@ -43,10 +44,10 @@ SqlExecutionArea::SqlExecutionArea(DBBrowserDB& _db, QWidget* parent) : // Save to settings when sppliter is moved, but only to memory. connect(ui->splitter, &QSplitter::splitterMoved, this, [this]() { - Settings::setValue("editor", "splitter1_sizes", ui->splitter->saveState(), /* dont_save_to_disk */ true); + Settings::setValue("editor", "splitter1_sizes", ui->splitter->saveState(), /* save_to_disk */ false); }); connect(ui->splitter_2, &QSplitter::splitterMoved, this, [this]() { - Settings::setValue("editor", "splitter2_sizes", ui->splitter_2->saveState(), /* dont_save_to_disk */ true); + Settings::setValue("editor", "splitter2_sizes", ui->splitter_2->saveState(), /* save_to_disk */ false); }); // Set collapsible the editErrors panel @@ -130,6 +131,12 @@ void SqlExecutionArea::saveAsCsv() dialog.exec(); } +void SqlExecutionArea::saveAsJson() +{ + ExportDataDialog dialog(db, ExportDataDialog::ExportFormatJson, this, model->query()); + dialog.exec(); +} + void SqlExecutionArea::reloadSettings() { // Reload editor and table settings @@ -196,7 +203,7 @@ void SqlExecutionArea::findLineEdit_textChanged(const QString &) // position, or from begin of the selection position. // For incremental search while typing we need to start from the - // begining of the current selection, otherwise we'd jump to the + // beginning of the current selection, otherwise we'd jump to the // next occurrence if (ui->editEditor->hasSelectedText()) { int lineFrom; @@ -257,7 +264,7 @@ void SqlExecutionArea::openFile(const QString& filename) void SqlExecutionArea::saveFile(const QString& filename) { - // Unwatch all files now. By unwathing them before the actual saving, we are not notified of our own changes + // Unwatch all files now. By unwatching them before the actual saving, we are not notified of our own changes if(!fileSystemWatch.files().empty()) fileSystemWatch.removePaths(fileSystemWatch.files()); @@ -291,24 +298,57 @@ void SqlExecutionArea::saveFile(const QString& filename) void SqlExecutionArea::fileChanged(const QString& filename) { + // Ignore the signal if the file is already removed from the watcher. + if(!fileSystemWatch.files().contains(filename)) + return; + + // When in follow_mode and the file is not modified, reload without prompt. + if(follow_mode && !ui->editEditor->isModified()) { + openFile(filename); + return; + } + + // Stop watching the file while the dialog is open. + fileSystemWatch.removePath(filename); + // Check if there are unsaved changes in the file QString changes; if(ui->editEditor->isModified()) - changes = QString(" ") + tr("Your changes will be lost when reloading it!"); + changes = QString(" ") + tr("Your changes will be lost when reloading it!") + QString(""); - // Ask user whether to realod the modified file - if(QMessageBox::question( + // Ask user whether to reload the modified file + QMessageBox::StandardButton reply = QMessageBox::question( this, qApp->applicationName(), - tr("The file \"%1\" was modified by another program. Do you want to reload it?%2").arg(filename, changes), - QMessageBox::Yes | QMessageBox::Ignore) == QMessageBox::Yes) - { - // Read in the file + tr("The file \"%1\" was modified by another program. Do you want to reload it?%2").arg(filename, changes) + + QString("
    • ") + + tr("Answer \"Yes to All\" to reload the file on any external update without further prompting.") + + QString("
    • ") + + tr("Answer \"No to All\" to ignore any external update without further prompting.") + + QString("
    ") + + tr("Modifying and saving the file will restore prompting."), + QMessageBox::Yes | QMessageBox::No | QMessageBox::YesToAll | QMessageBox::NoToAll); + + switch (reply) { + case QMessageBox::Yes: + case QMessageBox::YesToAll: + // Read in the file. This will restore the watcher. openFile(filename); - } else { - // The file does not match the file on the disk anymore. So set the modified flag + break; + case QMessageBox::No: + // The file does not match the file on the disk anymore. So set the modified flag. + ui->editEditor->setModified(true); + // Start watching the file again for further prompting. + fileSystemWatch.addPath(filename); + break; + case QMessageBox::NoToAll: + // Set the modified flag and the watch is not restored until the file is saved again to disk. ui->editEditor->setModified(true); + break; + default: + break; } + follow_mode = reply == QMessageBox::YesToAll; } void SqlExecutionArea::saveState() { diff --git a/src/SqlExecutionArea.h b/src/SqlExecutionArea.h index fa67cf950..da4f4f8f0 100644 --- a/src/SqlExecutionArea.h +++ b/src/SqlExecutionArea.h @@ -46,6 +46,7 @@ class SqlExecutionArea : public QWidget public slots: void finishExecution(const QString& result, const bool ok); void saveAsCsv(); + void saveAsJson(); void reloadSettings(); void fetchedData(); void setFindFrameVisibility(bool show); @@ -71,6 +72,7 @@ private slots: bool m_columnsResized; // This is set to true if the columns of the table view were already adjusted to fit their contents bool showErrorIndicators; bool error_state; + bool follow_mode; }; #endif diff --git a/src/SqlExecutionArea.ui b/src/SqlExecutionArea.ui index 1a187daf3..a6df85829 100644 --- a/src/SqlExecutionArea.ui +++ b/src/SqlExecutionArea.ui @@ -291,6 +291,7 @@ saveAsCsv() + saveAsJson() saveAsView() diff --git a/src/SqlUiLexer.cpp b/src/SqlUiLexer.cpp index bf3f51996..9c279fd93 100644 --- a/src/SqlUiLexer.cpp +++ b/src/SqlUiLexer.cpp @@ -4,6 +4,20 @@ #include "Qsci/qsciapis.h" #include "Settings.h" #include "sqlitedb.h" +#include "sqlite3.h" + +namespace +{ + const int SQLITE_VER_NUMBER_3_35 = 3035000; + + bool enabledMathFunctions() + { + bool enabled = (sqlite3_libversion_number() >= SQLITE_VER_NUMBER_3_35) && + ((sqlite3_compileoption_used("SQLITE_OMIT_COMPILEOPTION_DIAGS") == 1) || + (sqlite3_compileoption_used("SQLITE_ENABLE_MATH_FUNCTIONS") == 1 ) ); + return enabled; + } +} SqlUiLexer::SqlUiLexer(QObject* parent) : QsciLexerSQL(parent) @@ -42,7 +56,7 @@ void SqlUiLexer::setupAutoCompletion() << "OF" << "OFFSET" << "ON" << "OR" << "ORDER" << "OUTER" << "OVER" << "PARTITION" << "PLAN" << "PRAGMA" << "PRECEDING" << "PRIMARY" << "QUERY" << "RAISE" << "RANGE" << "RECURSIVE" << "REFERENCES" << "REGEXP" << "REINDEX" << "RELEASE" - << "RENAME" << "REPLACE" << "RESTRICT" << "RIGHT" << "ROLLBACK" + << "RENAME" << "REPLACE" << "RESTRICT" << "RETURNING" << "RIGHT" << "ROLLBACK" << "ROWID" << "ROW" << "ROWS" << "SAVEPOINT" << "SELECT" << "SET" << "STORED" << "TABLE" << "TEMP" << "TEMPORARY" << "THEN" << "TO" << "TRANSACTION" << "TRIGGER" << "UNBOUNDED" << "UNION" << "UNIQUE" << "UPDATE" << "USING" @@ -136,6 +150,43 @@ void SqlUiLexer::setupAutoCompletion() << "nth_value" + tr("(expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned.") ; + if (enabledMathFunctions()) { + functionPatterns + // Math functions introduced from SQLite 3.35 + << "acos" + tr("(X) Return the arccosine of X. The result is in radians.") + << "acosh" + tr("(X) Return the hyperbolic arccosine of X.") + << "asin" + tr("(X) Return the arcsine of X. The result is in radians.") + << "asinh" + tr("(X) Return the hyperbolic arcsine of X.") + << "atan" + tr("(X) Return the arctangent of X. The result is in radians.") + << "atan2" + tr("(X,Y) Return the arctangent of Y/X. The result is in radians. he result is placed into correct quadrant depending on the signs of X and Y.") + << "atanh" + tr("(X) Return the hyperbolic arctangent of X.") + << "ceil" + tr("(X) Return the first representable integer value greater than or equal to X. For positive values of X, this routine rounds away from zero. For negative values of X, this routine rounds toward zero.") + << "ceiling" + tr("(X) Return the first representable integer value greater than or equal to X. For positive values of X, this routine rounds away from zero. For negative values of X, this routine rounds toward zero.") + << "cos" + tr("(X) Return the cosine of X. X is in radians.") + << "cosh" + tr("(X) Return the hyperbolic cosine of X.") + << "degrees" + tr("(X) Convert value X from radians into degrees.") + << "exp" + tr("(X) Compute e (Euler's number, approximately 2.71828182845905) raised to the power X.") + << "floor" + tr("(X) Return the first representable integer value less than or equal to X. For positive numbers, this function rounds toward zero. For negative numbers, this function rounds away from zero.") + << "ln" + tr("(X) Return the natural logarithm of X.") + << "log" + tr("(B,X) Return the base-B logarithm of X.") + << "log" + tr("(X) Return the base-10 logarithm for X.") + << "log10" + tr("(X) Return the base-10 logarithm for X.") + << "log2" + tr("(X) Return the logarithm base-2 for the number X.") + << "mod" + tr("(X,Y) Return the remainder after dividing X by Y.") + << "pi" + tr("() Return an approximation for π.") + << "pow" + tr("(X,Y) Compute X raised to the power Y.") + << "power" + tr("(X,Y) Compute X raised to the power Y.") + << "radians" + tr("(X) Convert X from degrees into radians.") + << "sin" + tr("(X) Return the sine of X. X is in radians.") + << "sinh" + tr("(X) Return the hyperbolic sine of X.") + << "sqrt" + tr("(X) Return the square root of X. NULL is returned if X is negative.") + << "tan" + tr("(X) Return the tangent of X. X is in radians.") + << "tanh" + tr("(X) Return the hyperbolic tangent of X.") + << "trunc" + tr("(X) Return the representable integer in between X and 0 (inclusive) that is furthest away from zero. Or, in other words, return the integer part of X, rounding toward zero.") + ; + } + + listFunctions.clear(); for(const QString& keyword : functionPatterns) { @@ -212,7 +263,7 @@ QStringList SqlUiLexer::autoCompletionWordSeparators() const QStringList wl; QString escapeSeparator = sqlb::escapeIdentifier(QString(".")); - // Case for non symetric quotes, e.g. "[.]" to "].[" + // Case for non symmetric quotes, e.g. "[.]" to "].[" std::reverse(escapeSeparator.begin(), escapeSeparator.end()); wl << "." << escapeSeparator; diff --git a/src/TableBrowser.cpp b/src/TableBrowser.cpp index cd1fe53d6..951c79d6c 100644 --- a/src/TableBrowser.cpp +++ b/src/TableBrowser.cpp @@ -50,12 +50,14 @@ TableBrowser::TableBrowser(DBBrowserDB* _db, QWidget* parent) : popupSaveFilterAsMenu = new QMenu(this); popupSaveFilterAsMenu->addAction(ui->actionFilteredTableExportCsv); + popupSaveFilterAsMenu->addAction(ui->actionFilteredTableExportJson); popupSaveFilterAsMenu->addAction(ui->actionFilterSaveAsView); ui->actionSaveFilterAsPopup->setMenu(popupSaveFilterAsMenu); qobject_cast(ui->browseToolbar->widgetForAction(ui->actionSaveFilterAsPopup))->setPopupMode(QToolButton::InstantPopup); popupHeaderMenu = new QMenu(this); popupHeaderMenu->addAction(ui->actionShowRowidColumn); + popupHeaderMenu->addAction(ui->actionFreezeColumns); popupHeaderMenu->addAction(ui->actionHideColumns); popupHeaderMenu->addAction(ui->actionShowAllColumns); popupHeaderMenu->addAction(ui->actionSelectColumn); @@ -66,19 +68,25 @@ TableBrowser::TableBrowser(DBBrowserDB* _db, QWidget* parent) : popupHeaderMenu->addAction(ui->actionSetTableEncoding); popupHeaderMenu->addAction(ui->actionSetAllTablesEncoding); - connect(ui->actionSelectColumn, &QAction::triggered, [this]() { + connect(ui->actionSelectColumn, &QAction::triggered, this, [this]() { ui->dataTable->selectColumn(ui->actionBrowseTableEditDisplayFormat->property("clicked_column").toInt()); - }); + }); + connect(ui->actionFreezeColumns, &QAction::triggered, this, [this](bool checked) { + if(checked) + freezeColumns(ui->actionBrowseTableEditDisplayFormat->property("clicked_column").toUInt() + 1); + else + freezeColumns(0); + }); // Set up shortcuts QShortcut* dittoRecordShortcut = new QShortcut(QKeySequence("Ctrl+\""), this); - connect(dittoRecordShortcut, &QShortcut::activated, [this]() { + connect(dittoRecordShortcut, &QShortcut::activated, this, [this]() { int currentRow = ui->dataTable->currentIndex().row(); duplicateRecord(currentRow); }); // Lambda function for keyboard shortcuts for selecting next/previous table in Browse Data tab - connect(ui->dataTable, &ExtendedTableWidget::switchTable, [this](bool next) { + connect(ui->dataTable, &ExtendedTableWidget::switchTable, this, [this](bool next) { int index = ui->comboBrowseTable->currentIndex(); int num_items = ui->comboBrowseTable->count(); if(next) @@ -113,10 +121,15 @@ TableBrowser::TableBrowser(DBBrowserDB* _db, QWidget* parent) : // Set up global filter connect(ui->editGlobalFilter, &FilterLineEdit::delayedTextChanged, this, [this](const QString& value) { // Split up filter values +#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) QStringList values = value.trimmed().split(" ", QString::SkipEmptyParts); +#else + QStringList values = value.trimmed().split(" ", Qt::SkipEmptyParts); +#endif std::vector filters; - for(const auto& s : values) - filters.push_back(s); + std::copy(values.begin(), values.end(), std::back_inserter(filters)); + + ui->actionClearFilters->setEnabled(m_model->filterCount() > 0 || !ui->editGlobalFilter->text().isEmpty()); // Have they changed? BrowseDataTableSettings& settings = m_settings[currentlyBrowsedTableName()]; @@ -144,7 +157,7 @@ TableBrowser::TableBrowser(DBBrowserDB* _db, QWidget* parent) : connect(ui->dataTable, &ExtendedTableWidget::openFileFromDropEvent, this, &TableBrowser::requestFileOpen); connect(ui->dataTable, &ExtendedTableWidget::selectedRowsToBeDeleted, this, &TableBrowser::deleteRecord); - connect(ui->dataTable, &ExtendedTableWidget::foreignKeyClicked, [this](const sqlb::ObjectIdentifier& table, const std::string& column, const QByteArray& value) { + connect(ui->dataTable, &ExtendedTableWidget::foreignKeyClicked, this, [this](const sqlb::ObjectIdentifier& table, const std::string& column, const QByteArray& value) { // Just select the column that was just clicked instead of selecting an entire range which // happens because of the Ctrl and Shift keys. ui->dataTable->selectionModel()->select(ui->dataTable->currentIndex(), QItemSelectionModel::ClearAndSelect); @@ -282,7 +295,7 @@ TableBrowser::TableBrowser(DBBrowserDB* _db, QWidget* parent) : QShortcut* shortcutActionFind = new QShortcut(QKeySequence("Ctrl+F"), this, nullptr, nullptr, Qt::WidgetWithChildrenShortcut); connect(shortcutActionFind, &QShortcut::activated, ui->actionFind, &QAction::trigger); - connect(ui->actionFind, &QAction::triggered, [this](bool checked) { + connect(ui->actionFind, &QAction::triggered, this, [this](bool checked) { if(checked) { ui->widgetReplace->hide(); @@ -296,7 +309,7 @@ TableBrowser::TableBrowser(DBBrowserDB* _db, QWidget* parent) : QShortcut* shortcutActionReplace = new QShortcut(QKeySequence("Ctrl+H"), this, nullptr, nullptr, Qt::WidgetWithChildrenShortcut); connect(shortcutActionReplace, &QShortcut::activated, ui->actionReplace, &QAction::trigger); - connect(ui->actionReplace, &QAction::triggered, [this](bool checked) { + connect(ui->actionReplace, &QAction::triggered, this, [this](bool checked) { if(checked) { ui->widgetReplace->show(); @@ -455,15 +468,15 @@ void TableBrowser::refresh() { ui->dataTable->setModel(m_model); connect(ui->dataTable->selectionModel(), &QItemSelectionModel::currentChanged, this, &TableBrowser::selectionChanged); - connect(ui->dataTable->selectionModel(), &QItemSelectionModel::selectionChanged, [this](const QItemSelection&, const QItemSelection&) { + connect(ui->dataTable->selectionModel(), &QItemSelectionModel::selectionChanged, this, [this](const QItemSelection&, const QItemSelection&) { updateInsertDeleteRecordButton(); const QModelIndexList& sel = ui->dataTable->selectionModel()->selectedIndexes(); QString statusMessage; if (sel.count() > 1) { - int rows = sel.last().row() - sel.first().row() + 1; + int rows = static_cast(ui->dataTable->rowsInSelection().size()); statusMessage = tr("%n row(s)", "", rows); - int columns = sel.last().column() - sel.first().column() + 1; + int columns = static_cast(ui->dataTable->colsInSelection().size()); statusMessage += tr(", %n column(s)", "", columns); if (sel.count() < Settings::getValue("databrowser", "complete_threshold").toInt()) { @@ -499,9 +512,10 @@ void TableBrowser::refresh() emit currentTableChanged(tablename); // Build query and apply settings - applyModelSettings(storedData, buildQuery(storedData, tablename)); - applyViewportSettings(storedData, tablename); - updateRecordsetLabel(); + applyModelSettings(storedData, buildQuery(storedData, tablename)); + applyViewportSettings(storedData, tablename); + updateRecordsetLabel(); + emit updatePlot(ui->dataTable, m_model, &m_settings[tablename], true); } void TableBrowser::clearFilters() @@ -548,17 +562,20 @@ void TableBrowser::updateFilter(size_t column, const QString& value) ui->dataTable->verticalHeader()->setMinimumWidth(ui->dataTable->verticalHeader()->width()); // Update the filter in the model and its query - m_model->updateFilter(column, value); + const std::string column_name = model()->headerData(static_cast(column), Qt::Horizontal, Qt::EditRole).toString().toStdString(); + m_model->updateFilter(column_name, value); + + ui->actionClearFilters->setEnabled(m_model->filterCount() > 0 || !ui->editGlobalFilter->text().isEmpty()); // Save the new filter settings BrowseDataTableSettings& settings = m_settings[currentlyBrowsedTableName()]; if(value.isEmpty()) { - if(settings.filterValues.erase(column) > 0) + if(settings.filterValues.erase(column_name) > 0) emit projectModified(); } else { - if (settings.filterValues[column] != value) { - settings.filterValues[column] = value; + if (settings.filterValues[column_name] != value) { + settings.filterValues[column_name] = value; emit projectModified(); } } @@ -585,7 +602,7 @@ void TableBrowser::addCondFormat(bool isRowIdFormat, size_t column, const CondFo std::vector& formats = isRowIdFormat ? settings.rowIdFormats[column] : settings.condFormats[column]; m_model->addCondFormat(isRowIdFormat, column, newCondFormat); - // Conditionless formats are pushed back and others inserted at the begining, so they aren't eclipsed. + // Conditionless formats are pushed back and others inserted at the beginning, so they aren't eclipsed. if (newCondFormat.filter().isEmpty()) formats.push_back(newCondFormat); else @@ -652,8 +669,9 @@ void TableBrowser::modifyFormat(std::function changeFunction) if (columns.size() > 0) { for (size_t column : columns) { QString filter; - if (m_settings[currentlyBrowsedTableName()].filterValues.count(column) > 0) - filter = m_settings[currentlyBrowsedTableName()].filterValues.at(column); + const std::string column_name = model()->headerData(static_cast(column), Qt::Horizontal, Qt::EditRole).toString().toStdString(); + if (m_settings[currentlyBrowsedTableName()].filterValues.count(column_name) > 0) + filter = m_settings[currentlyBrowsedTableName()].filterValues.at(column_name); modifySingleFormat(false, filter, currentIndex().sibling(currentIndex().row(), static_cast(column)), changeFunction); } } else { @@ -713,10 +731,10 @@ void TableBrowser::updateRecordsetLabel() sqlb::ObjectIdentifier current_table = currentlyBrowsedTableName(); if(!current_table.isEmpty() && !m_model->query().empty()) { - auto obj = db->getObjectByName(current_table); + auto obj = db->getTableByName(current_table); is_table_or_unlocked_view = obj && ( - (obj->type() == sqlb::Object::View && m_model->hasPseudoPk()) || - (obj->type() == sqlb::Object::Table)); + (obj->isView() && m_model->hasPseudoPk()) || + (!obj->isView())); } enableEditing(m_model->rowCountAvailable() != SqliteTableModel::RowCount::Unknown && is_table_or_unlocked_view); @@ -728,19 +746,22 @@ void TableBrowser::updateRecordsetLabel() generateFilters(); ui->dataTable->adjustSize(); } else if(!needs_filters && header->hasFilters()) { - header->generateFilters(0); + ui->dataTable->generateFilters(0, false); } } } sqlb::Query TableBrowser::buildQuery(const BrowseDataTableSettings& storedData, const sqlb::ObjectIdentifier& tablename) const { - sqlb::Query query(tablename); + const auto table = db->getTableByName(tablename); + + sqlb::Query query(tablename, table && table->isView()); // Construct a query from the retrieved settings // Sorting query.setOrderBy(storedData.sortColumns); + ui->actionClearSorting->setEnabled(storedData.sortColumns.size() > 0); // Filters for(auto it=storedData.filterValues.cbegin();it!=storedData.filterValues.cend();++it) @@ -752,20 +773,18 @@ sqlb::Query TableBrowser::buildQuery(const BrowseDataTableSettings& storedData, // Display formats bool only_defaults = true; - const auto table = db->getObjectByName(tablename); if(table) { // When there is at least one custom display format, we have to set all columns for the query explicitly here - const sqlb::FieldInfoList& tablefields = table->fieldInformation(); - for(size_t i=0; ifields.size(); ++i) { QString format = contains(storedData.displayFormats, i+1) ? storedData.displayFormats.at(i+1) : QString(); if(format.size()) { - query.selectedColumns().emplace_back(tablefields.at(i).name, format.toStdString()); + query.selectedColumns().emplace_back(table->fields.at(i).name(), format.toStdString()); only_defaults = false; } else { - query.selectedColumns().emplace_back(tablefields.at(i).name, tablefields.at(i).name); + query.selectedColumns().emplace_back(table->fields.at(i).name(), table->fields.at(i).name()); } } } @@ -825,17 +844,20 @@ void TableBrowser::applyViewportSettings(const BrowseDataTableSettings& storedDa ui->editGlobalFilter->setText(text); // Show/hide some menu options depending on whether this is a table or a view - const auto table = db->getObjectByName(tablename); - if(table) + const auto table = db->getTableByName(tablename); + if(!table->isView()) { // Table ui->actionUnlockViewEditing->setVisible(false); - ui->actionShowRowidColumn->setVisible(!std::dynamic_pointer_cast(table)->withoutRowidTable()); + ui->actionShowRowidColumn->setVisible(!table->withoutRowidTable()); } else { // View ui->actionUnlockViewEditing->setVisible(true); ui->actionShowRowidColumn->setVisible(false); } + + // Frozen columns + freezeColumns(storedData.frozenColumns); } void TableBrowser::enableEditing(bool enable_edit) @@ -850,12 +872,12 @@ void TableBrowser::enableEditing(bool enable_edit) void TableBrowser::showRowidColumn(bool show) { - // Block all signals from the horizontal header. Otherwise the QHeaderView::sectionResized signal causes us trouble - ui->dataTable->horizontalHeader()->blockSignals(true); + // Disconnect the resized signal from the horizontal header. Otherwise it's resetting the automatic column widths + disconnect(ui->dataTable->horizontalHeader(), &QHeaderView::sectionResized, this, &TableBrowser::updateColumnWidth); // WORKAROUND // Set the opposite hidden/visible status of what we actually want for the rowid column. This is to work around a Qt bug which - // is present in at least version 5.7.1. The problem is this: when you browse a table/view with n colums, then switch to a table/view + // is present in at least version 5.7.1. The problem is this: when you browse a table/view with n columns, then switch to a table/view // with less than n columns, you'll be able to resize the first (hidden!) column by resizing the section to the left of the first visible // column. By doing so the table view gets messed up. But even when not resizing the first hidden column, tab-ing through the fields // will stop at the not-so-much-hidden rowid column, too. All this can be fixed by this line. I haven't managed to find another workaround @@ -864,6 +886,8 @@ void TableBrowser::showRowidColumn(bool show) // Show/hide rowid column ui->dataTable->setColumnHidden(0, !show); + if(show) + ui->dataTable->setColumnWidth(0, ui->dataTable->horizontalHeader()->defaultSectionSize()); // Update checked status of the popup menu action ui->actionShowRowidColumn->setChecked(show); @@ -878,35 +902,56 @@ void TableBrowser::showRowidColumn(bool show) // Update the filter row generateFilters(); - // Re-enable signals - ui->dataTable->horizontalHeader()->blockSignals(false); + // Re-enable signal + connect(ui->dataTable->horizontalHeader(), &QHeaderView::sectionResized, this, &TableBrowser::updateColumnWidth); ui->dataTable->update(); } +void TableBrowser::freezeColumns(size_t columns) +{ + // Update checked status of the popup menu action + ui->actionFreezeColumns->setChecked(columns != 0); + + // Save settings for this table + sqlb::ObjectIdentifier current_table = currentlyBrowsedTableName(); + if (m_settings[current_table].frozenColumns != columns) { + emit projectModified(); + m_settings[current_table].frozenColumns = columns; + } + + // Apply settings + ui->dataTable->horizontalHeader()->blockSignals(true); + ui->dataTable->setFrozenColumns(columns); + generateFilters(); + ui->dataTable->horizontalHeader()->blockSignals(false); +} + void TableBrowser::generateFilters() { // Generate a new row of filter line edits const auto& settings = m_settings[currentlyBrowsedTableName()]; - qobject_cast(ui->dataTable->horizontalHeader())->generateFilters(static_cast(m_model->columnCount()), - settings.showRowid); + ui->dataTable->generateFilters(static_cast(m_model->columnCount()), settings.showRowid); // Apply the stored filter strings to the new row of line edits // Set filters blocking signals for this since the filter is already applied to the browse table model FilterTableHeader* filterHeader = qobject_cast(ui->dataTable->horizontalHeader()); bool oldState = filterHeader->blockSignals(true); + auto obj = db->getTableByName(currentlyBrowsedTableName()); for(auto filterIt=settings.filterValues.cbegin();filterIt!=settings.filterValues.cend();++filterIt) - filterHeader->setFilter(static_cast(filterIt->first), filterIt->second); + ui->dataTable->setFilter(sqlb::getFieldNumber(obj, filterIt->first) + 1, filterIt->second); filterHeader->blockSignals(oldState); + + ui->actionClearFilters->setEnabled(m_model->filterCount() > 0 || !ui->editGlobalFilter->text().isEmpty()); } void TableBrowser::unlockViewEditing(bool unlock, QString pk) { sqlb::ObjectIdentifier currentTable = currentlyBrowsedTableName(); - sqlb::ViewPtr obj = db->getObjectByName(currentTable); + sqlb::TablePtr view = db->getTableByName(currentTable); // If this isn't a view just unlock editing and return - if(!obj) + if(!view) { m_model->setPseudoPk(m_model->pseudoPk()); enableEditing(true); @@ -921,7 +966,7 @@ void TableBrowser::unlockViewEditing(bool unlock, QString pk) bool ok; QStringList options; - for(const auto& n : obj->fieldNames()) + for(const auto& n : view->fieldNames()) options.push_back(QString::fromStdString(n)); // Ask for a PK @@ -1032,8 +1077,6 @@ void TableBrowser::updateInsertDeleteRecordButton() { // Update the delete record button to reflect number of selected records - // NOTE: We're assuming here that the selection is always contiguous, i.e. that there are never two selected - // rows with a non-selected row in between. int rows = 0; // If there is no model yet (because e.g. no database file is opened) there is no selection model either. So we need to check for that here @@ -1078,6 +1121,9 @@ void TableBrowser::headerClicked(int logicalindex) // Get the current list of sort columns auto& columns = settings.sortColumns; + // Get the name of the column the user clicked on + std::string column = model()->headerData(logicalindex, Qt::Horizontal, Qt::EditRole).toString().toStdString(); + // Before sorting, first check if the Control key is pressed. If it is, we want to append this column to the list of sort columns. If it is not, // we want to sort only by the new column. if(QApplication::keyboardModifiers().testFlag(Qt::ControlModifier)) @@ -1087,33 +1133,34 @@ void TableBrowser::headerClicked(int logicalindex) // If the column was control+clicked again, change its sort order. // If not already in the sort order, add the column as a new sort column to the list. bool present = false; - for(sqlb::SortedColumn& sortedCol : columns) { - - if(sortedCol.column == static_cast(logicalindex)) { - sortedCol.direction = (sortedCol.direction == sqlb::Ascending ? sqlb::Descending : sqlb::Ascending); + for(sqlb::OrderBy& sortedCol : columns) { + if(sortedCol.expr == column) { + sortedCol.direction = (sortedCol.direction == sqlb::OrderBy::Ascending ? sqlb::OrderBy::Descending : sqlb::OrderBy::Ascending); present = true; break; } } if(!present) - columns.emplace_back(logicalindex, sqlb::Ascending); + columns.emplace_back(column, sqlb::OrderBy::Ascending); } else { // Single column sorting // If we have exactly one sort column and it is the column which was just clicked, change its sort order. // If not, clear the list of sorting columns and replace it by a single new sort column. - if(columns.size() == 1 && columns.front().column == static_cast(logicalindex)) + if(columns.size() == 1 && columns.front().expr == column) { - columns.front().direction = (columns.front().direction == sqlb::Ascending ? sqlb::Descending : sqlb::Ascending); + columns.front().direction = (columns.front().direction == sqlb::OrderBy::Ascending ? sqlb::OrderBy::Descending : sqlb::OrderBy::Ascending); } else { columns.clear(); - columns.emplace_back(logicalindex, sqlb::Ascending); + columns.emplace_back(column, sqlb::OrderBy::Ascending); } } // Do the actual sorting ui->dataTable->sortByColumns(columns); + ui->actionClearSorting->setEnabled(columns.size() > 0); + // select the first item in the column so the header is bold // we might try to select the last selected item ui->dataTable->setCurrentIndex(ui->dataTable->currentIndex().sibling(0, logicalindex)); @@ -1172,12 +1219,12 @@ void TableBrowser::showRecordPopupMenu(const QPoint& pos) QMenu popupRecordMenu(this); // "Delete and duplicate records" can only be done on writable objects - if(db->getObjectByName(currentlyBrowsedTableName())->type() == sqlb::Object::Types::Table && !db->readOnly()) { + if(db->getTableByName(currentlyBrowsedTableName()) && !db->readOnly()) { // Select the row if it is not already in the selection. QModelIndexList rowList = ui->dataTable->selectionModel()->selectedRows(); bool found = false; - for (QModelIndex index : rowList) { + for (const QModelIndex& index : rowList) { if (row == index.row()) { found = true; break; @@ -1195,7 +1242,7 @@ void TableBrowser::showRecordPopupMenu(const QPoint& pos) action->setShortcut(QKeySequence(tr("Ctrl+\""))); popupRecordMenu.addAction(action); - connect(action, &QAction::triggered, [rowList, this]() { + connect(action, &QAction::triggered, this, [rowList, this]() { for (const QModelIndex& index : rowList) duplicateRecord(index.row()); }); @@ -1203,7 +1250,7 @@ void TableBrowser::showRecordPopupMenu(const QPoint& pos) QAction* deleteRecordAction = new QAction(QIcon(":icons/delete_record"), ui->actionDeleteRecord->text(), &popupRecordMenu); popupRecordMenu.addAction(deleteRecordAction); - connect(deleteRecordAction, &QAction::triggered, [&]() { + connect(deleteRecordAction, &QAction::triggered, this, [&]() { deleteRecord(); }); @@ -1216,7 +1263,7 @@ void TableBrowser::showRecordPopupMenu(const QPoint& pos) adjustRowHeightAction->setChecked(m_adjustRows); popupRecordMenu.addAction(adjustRowHeightAction); - connect(adjustRowHeightAction, &QAction::toggled, [&](bool checked) { + connect(adjustRowHeightAction, &QAction::toggled, this, [&](bool checked) { m_adjustRows = checked; refresh(); }); @@ -1256,22 +1303,29 @@ void TableBrowser::deleteRecord() if(ui->dataTable->selectionModel()->selectedIndexes().isEmpty()) return; - int old_row = ui->dataTable->currentIndex().row(); while(ui->dataTable->selectionModel()->hasSelection()) { - int first_selected_row = ui->dataTable->selectionModel()->selectedIndexes().first().row(); - int last_selected_row = ui->dataTable->selectionModel()->selectedIndexes().last().row(); - int selected_rows_count = last_selected_row - first_selected_row + 1; - if(!m_model->removeRows(first_selected_row, selected_rows_count)) + std::set row_set = ui->dataTable->rowsInSelection(); + int first_selected_row = static_cast(*row_set.begin()); + int rows_to_remove = 0; + int previous_row = first_selected_row - 1; + + // Non-contiguous selection: remove only the contiguous + // rows in the selection in each cycle until the entire + // selection has been removed. + for(size_t row : row_set) { + if(previous_row == static_cast(row - 1)) + rows_to_remove++; + else + break; + } + + if(!m_model->removeRows(first_selected_row, rows_to_remove)) { QMessageBox::warning(this, QApplication::applicationName(), tr("Error deleting record:\n%1").arg(db->lastError())); break; } } - - if(old_row > m_model->rowCount()) - old_row = m_model->rowCount(); - selectTableLine(old_row); } else { QMessageBox::information( this, QApplication::applicationName(), tr("Please select a record first")); } @@ -1325,7 +1379,7 @@ void TableBrowser::selectTableLine(int lineToSelect) void TableBrowser::on_actionClearFilters_triggered() { - ui->dataTable->filterHeader()->clearFilters(); + clearFilters(); } void TableBrowser::on_actionClearSorting_triggered() @@ -1335,6 +1389,8 @@ void TableBrowser::on_actionClearSorting_triggered() columns.clear(); // Set cleared vector of sort-by columns m_model->sort(columns); + + ui->actionClearSorting->setEnabled(false); } void TableBrowser::editDisplayFormat() @@ -1344,11 +1400,8 @@ void TableBrowser::editDisplayFormat() // column is always the rowid column. Ultimately, get the column name from the column object sqlb::ObjectIdentifier current_table = currentlyBrowsedTableName(); size_t field_number = sender()->property("clicked_column").toUInt(); - QString field_name; - if (db->getObjectByName(current_table)->type() == sqlb::Object::Table) - field_name = QString::fromStdString(db->getObjectByName(current_table)->fields.at(field_number-1).name()); - else - field_name = QString::fromStdString(db->getObjectByName(current_table)->fieldNames().at(field_number-1)); + QString field_name = QString::fromStdString(db->getTableByName(current_table)->fields.at(field_number-1).name()); + // Get the current display format of the field QString current_displayformat = m_settings[current_table].displayFormats[field_number]; @@ -1369,19 +1422,22 @@ void TableBrowser::editDisplayFormat() } } -void TableBrowser::exportFilteredTable() +void TableBrowser::exportCsvFilteredTable() { ExportDataDialog dialog(*db, ExportDataDialog::ExportFormatCsv, this, m_model->customQuery(false)); dialog.exec(); } +void TableBrowser::exportJsonFilteredTable() +{ + ExportDataDialog dialog(*db, ExportDataDialog::ExportFormatJson, this, m_model->customQuery(false)); + dialog.exec(); +} + void TableBrowser::saveFilterAsView() { - if (m_model->filterCount() > 0) - // Save as view a custom query without rowid - emit createView(m_model->customQuery(false)); - else - QMessageBox::information(this, qApp->applicationName(), tr("There is no filter set for this table. View will not be created.")); + // Save as view a custom query without rowid + emit createView(m_model->customQuery(false)); } void TableBrowser::setTableEncoding(bool forAllTables) @@ -1445,7 +1501,7 @@ void TableBrowser::setDefaultTableEncoding() void TableBrowser::jumpToRow(const sqlb::ObjectIdentifier& table, std::string column, const QByteArray& value) { // First check if table exists - sqlb::TablePtr obj = db->getObjectByName(table); + sqlb::TablePtr obj = db->getTableByName(table); if(!obj) return; @@ -1454,15 +1510,15 @@ void TableBrowser::jumpToRow(const sqlb::ObjectIdentifier& table, std::string co column = obj->primaryKey()->columnList().front(); // If column doesn't exist don't do anything - auto column_index = sqlb::findField(obj, column); - if(column_index == obj->fields.end()) + auto column_it = sqlb::findField(obj, column); + if(column_it == obj->fields.end()) return; // Jump to table setCurrentTable(table); // Set filter - m_settings[table].filterValues[static_cast(column_index-obj->fields.begin()+1)] = value; + m_settings[table].filterValues[column_it->name()] = value; refresh(); } @@ -1492,7 +1548,7 @@ void TableBrowser::find(const QString& expr, bool forward, bool include_first, R // Reset the colour of the line edit, assuming there is no error. ui->editFindExpression->setStyleSheet(""); - // You are not allowed to search for an ampty string + // You are not allowed to search for an empty string if(expr.isEmpty()) return; diff --git a/src/TableBrowser.h b/src/TableBrowser.h index a029c53fa..74293dda8 100644 --- a/src/TableBrowser.h +++ b/src/TableBrowser.h @@ -27,9 +27,9 @@ class TableBrowser; struct BrowseDataTableSettings { using CondFormatMap = std::map>; - std::vector sortColumns; + std::vector sortColumns; std::map columnWidths; - std::map filterValues; + std::map filterValues; CondFormatMap condFormats; CondFormatMap rowIdFormats; std::map displayFormats; @@ -40,11 +40,13 @@ struct BrowseDataTableSettings QString unlockViewPk; std::map hiddenColumns; std::vector globalFilters; + size_t frozenColumns; BrowseDataTableSettings() : showRowid(false), plotYAxes({std::map(), std::map()}), - unlockViewPk("_rowid_") + unlockViewPk("_rowid_"), + frozenColumns(0) { } }; @@ -55,7 +57,8 @@ class TableBrowser : public QWidget public: explicit TableBrowser(DBBrowserDB* _db, QWidget* parent = nullptr); - ~TableBrowser(); + ~TableBrowser() override; + void reset(); static void resetSharedSettings(); @@ -105,6 +108,7 @@ private slots: void editCondFormats(size_t column); void enableEditing(bool enable_edit); void showRowidColumn(bool show); + void freezeColumns(size_t columns); void unlockViewEditing(bool unlock, QString pk = QString()); void hideColumns(int column = -1, bool hide = true); void on_actionShowAllColumns_triggered(); @@ -126,7 +130,8 @@ private slots: void on_actionClearFilters_triggered(); void on_actionClearSorting_triggered(); void editDisplayFormat(); - void exportFilteredTable(); + void exportCsvFilteredTable(); + void exportJsonFilteredTable(); void saveFilterAsView(); void setTableEncoding(bool forAllTables = false); void setDefaultTableEncoding(); diff --git a/src/TableBrowser.ui b/src/TableBrowser.ui index 7b929e70b..4d7369262 100644 --- a/src/TableBrowser.ui +++ b/src/TableBrowser.ui @@ -192,7 +192,7 @@ Qt::CopyAction
    - QAbstractItemView::ContiguousSelection + QAbstractItemView::ExtendedSelection
    @@ -460,7 +460,7 @@ - :/icons/resultset_first.png:/icons/resultset_first.png + :/icons/resultset_first:/icons/resultset_first
    @@ -477,7 +477,7 @@ - :/icons/resultset_previous.png:/icons/resultset_previous.png + :/icons/resultset_previous:/icons/resultset_previous
    @@ -670,6 +670,20 @@ This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. + + + Export to &JSON + + + Export the filtered data to JSON + + + Export the filtered data to JSON + + + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a JSON file. + + Save as &view @@ -836,7 +850,7 @@ - :/icons/text_bold.png:/icons/text_bold.png + :/icons/text_bold:/icons/text_bold Bold @@ -854,7 +868,7 @@ - :/icons/text_italic.png:/icons/text_italic.png + :/icons/text_italic:/icons/text_italic Italic @@ -869,7 +883,7 @@ - :/icons/text_underline.png:/icons/text_underline.png + :/icons/text_underline:/icons/text_underline Underline @@ -887,7 +901,7 @@ - :/icons/text_align_right.png:/icons/text_align_right.png + :/icons/text_align_right:/icons/text_align_right Align Right @@ -902,7 +916,7 @@ - :/icons/text_align_left.png:/icons/text_align_left.png + :/icons/text_align_left:/icons/text_align_left Align Left @@ -917,7 +931,7 @@ - :/icons/text_align_center.png:/icons/text_align_center.png + :/icons/text_align_center:/icons/text_align_center Center Horizontally @@ -932,7 +946,7 @@ - :/icons/text_align_justify.png:/icons/text_align_justify.png + :/icons/text_align_justify:/icons/text_align_justify Justify @@ -1042,6 +1056,17 @@ Replace text in cells + + + true + + + Freeze columns + + + Make all columns from the first column up to this column not move when scrolling horizontally + + @@ -1313,7 +1338,23 @@ actionFilteredTableExportCsv triggered() TableBrowser - exportFilteredTable() + exportCsvFilteredTable() + + + -1 + -1 + + + 518 + 314 + + + + + actionFilteredTableExportJson + triggered() + TableBrowser + exportJsonFilteredTable() -1 @@ -1420,7 +1461,8 @@ addRecord() deleteRecord() insertValues() - exportFilteredTable + exportCsvFilteredTable + exportJsonFilteredTable saveFilterAsView setDefaultTableEncoding() hideColumns() diff --git a/src/TableBrowserDock.cpp b/src/TableBrowserDock.cpp index a64a27c21..f16e37a58 100644 --- a/src/TableBrowserDock.cpp +++ b/src/TableBrowserDock.cpp @@ -28,7 +28,7 @@ TableBrowserDock::TableBrowserDock(QWidget* parent, MainWindow* mainWindow) connect(this, &TableBrowserDock::customContextMenuRequested, this, &TableBrowserDock::showContextMenuTableBrowserTabBar); // Connect browser signals - connect(browser, &TableBrowser::currentTableChanged, [this](const sqlb::ObjectIdentifier& table) { + connect(browser, &TableBrowser::currentTableChanged, this, [this](const sqlb::ObjectIdentifier& table) { // Only update dock name when no custom name was set if(!property("custom_title").toBool()) setWindowTitle(QString::fromStdString(table.toDisplayString())); @@ -50,9 +50,17 @@ void TableBrowserDock::setFocusStyle(bool on) { // Highlight title bar when dock widget is active if(on) - setStyleSheet("QDockWidget::title {background:palette(highlight);}"); + setStyleSheet(QStringLiteral( + "QDockWidget::title {" + "background:palette(AlternateBase);" + "text-align: center;" + "border-bottom: 2px solid palette(highlight);" + "}")); else - setStyleSheet(QString()); + setStyleSheet(QStringLiteral( + "QDockWidget::title {" + "text-align: center;" + "}")); } void TableBrowserDock::showContextMenuTableBrowserTabBar(const QPoint& pos) @@ -64,13 +72,13 @@ void TableBrowserDock::showContextMenuTableBrowserTabBar(const QPoint& pos) QAction* actionRename = new QAction(this); actionRename->setText(tr("Rename Data Browser")); - connect(actionRename, &QAction::triggered, [this]() { + connect(actionRename, &QAction::triggered, this, [this]() { renameTableBrowserTab(); }); QAction* actionClose = new QAction(this); actionClose->setText(tr("Close Data Browser")); - connect(actionClose, &QAction::triggered, [this]() { + connect(actionClose, &QAction::triggered, this, [this]() { deleteLater(); }); diff --git a/src/certs/ca-chain-docker.crt b/src/certs/ca-chain-docker.crt index 20cbb5c60..ec11f01db 100644 --- a/src/certs/ca-chain-docker.crt +++ b/src/certs/ca-chain-docker.crt @@ -1,9 +1,9 @@ -----BEGIN CERTIFICATE----- -MIIGSjCCBDKgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwga8xCzAJBgNVBAYTAkdC +MIIGSjCCBDKgAwIBAgICEAMwDQYJKoZIhvcNAQELBQAwga8xCzAJBgNVBAYTAkdC MRAwDgYDVQQIDAdFbmdsYW5kMREwDwYDVQQKDAhEQkh1Yi5pbzEnMCUGA1UECwwe REJIdWIuaW8gQ2VydGlmaWNhdGUgQXV0aG9yaXR5MSwwKgYDVQQDDCNEQkh1Yi5p byBEb2NrZXIgRGV2ZWxvcG1lbnQgUm9vdCBDQTEkMCIGCSqGSIb3DQEJARYVanVz -dGluQHBvc3RncmVzcWwub3JnMB4XDTIwMDcwODE4NTQ0M1oXDTIxMDcwODE4NTQ0 +dGluQHBvc3RncmVzcWwub3JnMB4XDTIxMDUwMjExMjkxM1oXDTMxMDUwMzExMjkx M1owgbcxCzAJBgNVBAYTAkdCMRAwDgYDVQQIDAdFbmdsYW5kMREwDwYDVQQKDAhE Qkh1Yi5pbzEnMCUGA1UECwweREJIdWIuaW8gQ2VydGlmaWNhdGUgQXV0aG9yaXR5 MTQwMgYDVQQDDCtEQkh1Yi5pbyBEb2NrZXIgRGV2ZWxvcG1lbnQgSW50ZXJtZWRp @@ -20,53 +20,53 @@ vrPZW0LCRZ0rnwHyCLqYTItYUlSItVBJnVJ77z1xVi1bNNHBBy8/1etM+LKMWLMu HmTKZK1dcpOqVZ9oIg3fvL3/8kdkaFVuloj6sU0SpNwDiF839O0sv5a0URrX+23K wjmtLNmXfZtz6ikSfc87mCZePHRqVejv1lQJYf9a5aw9Xm3FTSJDLPThNttsjCKg jVDRnvlT22ywtLNOlQIDAQABo2YwZDAdBgNVHQ4EFgQU/sG8zdpEuNy3LzZho0MA -bWZ/qoowHwYDVR0jBBgwFoAUd7sMPGKVbxpd0JLzVZEL148L0FowEgYDVR0TAQH/ -BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAD7U -xV1jgTfs+I0H1jlJlsz9c4HBW/JKy2QrgYb1UZ1PXMdz9ByDYHHRewlwh7NxY5W1 -0kfqjrZ0ucPyu6W6AhpEB0DI+q72MikB/EpihB2RGYAavhlzwc/wePs6f2YQr0gx -vEItREjprSwrlHEQH7MGscc9TfEZ3ruQ8SYhIKAlGZDFkwo941MJQRMuZhn1bBZ/ -+fAzZOjr7bh5JqQ7/H7XCNcb5dw7P58N+lBOylxPO2WAYsClAzaUbRndWqmzPYd1 -xHQAL8QJr1lgMwRoe5HHiCQHrPfJA8dPSfz3zVqLVMBPXnTYURilfOluS+zzGnvZ -PC2gljzLLiXaHhfldLCnpC1j0R5Rsquin1mkOVHlluHLxOzkiKTCNjMyGT6MtfCe -ndDVEyM/480dHpX7GbMJYClSDg9QvADuaZgZWGsypoG7zv99TlJCPs7C85pi64lY -OFf3TarYSJss8HtZk5Mtfjf3UX5X38DaWbQh/fmj9wZ69exFL0O2ePXBihgxTK3/ -uvYArmnpys/RvQRdgfwYtH5PXXVf4uUYkWQa0f3Dm/Vtd0b4el+RTAd+xDY3b/xC -YJGt90LA7xUIg4s481F3spEpIhm6qI9hE676QivkK6ystpU2USgg/KKJKEgtLyBz -WAwc2tzuzaXJkoptufNjNXTBZ7OOijBw2JYDswQr +bWZ/qoowHwYDVR0jBBgwFoAUQRp62y8gTl4irm8Q2gz7NNf9WSAwEgYDVR0TAQH/ +BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJkN +0y0PnBdC6OwKHEIFXVDauiKvVTdm5/1AGtvE7C1t8cnVb22Jygzaw7TyekYqTaTV +sVW8zXCgNMNvTZOfB17A1jn7zxXjHYi3/IZw5NAzz02SPutxWgetuas4EdDwD9iT +thHxkq2c6/1LaY/ZVHuQvnrIIfec01ZK6LzAlQyD8/v6CIoBTBqEIerVo9YNTimd +l/UF4DVnX17jyZKWJuKqyL8HCC42QqC9smGPGvnE8mVdo0ed40+Dsx82n2vWLNVr +nltNTCww4ryRcmtsuEsdRv1b+MJLJfFVEm9nevXZplAs0XwjEtETvlFWvPQz+zOH +hm6LglP3LXLYIIzHnwSV9e9Qwr4yXAReBZxnfVdUzw0JDZdVUniA7sUSMlRQIg1F +KXU42sT1AcCOuWUaD72MF29xpfOt5pWOM5R76y3xC6bhuRwkneUX9Nf5iHAkwG23 +MwpurAVZiO5VR/LCYuL1vPP2XOmC5a10qbCQzP5hACCTXr5P8xXVtB4tyMZ46Vnw +wnGxZ9bxhiXU8OO/FISWKmb9XFbbiNcJyRFQSjVU1prypvRpbbmwVg9bL1JgemH+ +VQK3XIKr3GHWqAwRVGcNYD4LVLO0HX5kKkeIB2NzfvR8Bxn1WIjJPPZFyc4gAoLg +v57ad/lF+jA0wlW68dB8AGV0HKjxq6b9jAeR+W2h -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIGRjCCBC6gAwIBAgIJAICSSfzvtSR5MA0GCSqGSIb3DQEBCwUAMIGvMQswCQYD -VQQGEwJHQjEQMA4GA1UECAwHRW5nbGFuZDERMA8GA1UECgwIREJIdWIuaW8xJzAl -BgNVBAsMHkRCSHViLmlvIENlcnRpZmljYXRlIEF1dGhvcml0eTEsMCoGA1UEAwwj -REJIdWIuaW8gRG9ja2VyIERldmVsb3BtZW50IFJvb3QgQ0ExJDAiBgkqhkiG9w0B -CQEWFWp1c3RpbkBwb3N0Z3Jlc3FsLm9yZzAeFw0xOTAxMTUwNTUyMTVaFw0yMTAx -MTYwNTUyMTVaMIGvMQswCQYDVQQGEwJHQjEQMA4GA1UECAwHRW5nbGFuZDERMA8G -A1UECgwIREJIdWIuaW8xJzAlBgNVBAsMHkRCSHViLmlvIENlcnRpZmljYXRlIEF1 -dGhvcml0eTEsMCoGA1UEAwwjREJIdWIuaW8gRG9ja2VyIERldmVsb3BtZW50IFJv -b3QgQ0ExJDAiBgkqhkiG9w0BCQEWFWp1c3RpbkBwb3N0Z3Jlc3FsLm9yZzCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM8cDJKcXq/QQMmosVGozmiLHWu4 -v/AYtC21TbAnNB0wWULtMG499QcyPMSkDZgGr0gKg5YcX54rWU7xZRDfbx/jreZE -EiFOTADzFhkT8GMikXwSidJ0JtrojnksxgFXS5icYI9yv31DggwtYVjqPsfpzGSh -ueRXErytYpX1lrOsLbj8SsPBwR+jtc5ki6WBEDf7+MbZ9vJSx4GzjdwUDecVJvy/ -8VrjPvFIAq9XviFL1ajDU4C5s2fzRx1GyskbR23ZbD7smOyhFtag9Cw1xOj16+EM -BzEVzCLJf1JuF3j3s9awKwxKBbNoBQmPXupPtR6KpH0DSCZNkP1pqIok2ceJ0ncn -uKvxDWjelurnxMhlKp8/ZwnSB6Ot4D7yTbPtOr22u/hwckMBxaai+rE2D1/mc5pO -/YPASEwze7rhsh2xitqdMKcqhy/bfgM16HSi6fr0cbnliK+IEzDIe38XGrp8tOZ0 -MX7NmNhetje3uBg8FuIxh4hf7sCm/NObO5YSYTRK0IR7rPovZlPURD8jZ2S/wJ8v -B+ijRfmdxnN5DPUfmXwm1hiasf7ZHjqQzMCTPrVBgGBLCvLMpVrWt+YzgfmG6sH8 -EtOCYbsP4EU728H1BOOIVUrkq3LOzrUSxx4n9BoqbIvRjbxpEBV02MOF42GHK5W9 -bUdT+iE2zKk1omYfAgMBAAGjYzBhMB0GA1UdDgQWBBR3uww8YpVvGl3QkvNVkQvX -jwvQWjAfBgNVHSMEGDAWgBR3uww8YpVvGl3QkvNVkQvXjwvQWjAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAfOEqp1f1 -RdvIDKr2/hHmYup138/ZEsEy8SQmKHZt70KF616i2QR0m3zb5VD0IU800Q2p3FSd -wdxmLyeROJggyjRdR5lVGhWcLCKYCh2tN7glxhmF2LdHWjsHVDrFKxJgk8Y8eDCG -cXr6tE981nWtfGwyP7TFGlk9rziyrfqi6VKlde0fGFliDQH1cKvBh1h9WnaS8zl4 -Kq25SkdBMg/mnJdJfsh+yteuWEGMLoy2ixjWYUodtgvvLMT8+r57VKLWt1tnX5WN -u8UVSXv26IKzFfXxc6rdgfRNxId2CCFP77VOXuFlG9IhRH8i6s+ZIV3Uv/gKZ2Nt -4TLuxt3gDsMTT37ucbi0DyILvEc1UvPGPT1dBNc3yM5W35Sx7Oc0t80eMQebYISS -aO9xGthcFzM1B2RR04cn1zb+X7UbuefvH7vfVp9FhJJ4eRS2gVOwvwGxiqeshmLR -8tOElLck8BUgvBN/XSw7zpPtf93GDsxQdymWyWuDnA7UZ7tH69k8dxugNxWzNBkg -4VuIbkHn0U3kaofsoLWE5j9Kl+xqbBnhy03qw5LeqlipFvKiuj+CyroFb6UEQ5iJ -smNM2cnITFKIrnITQT5HDSWzAUsL/8PBz+3YLmrwXtVo3m5/UGPWQz5hWljbuEc2 -Xhpr4CqdHWRwSMxYOkosajA85nlTNP1L+3k= +MIIGUTCCBDmgAwIBAgIUROzwAIHBoAT1lP4XR65lSC/C+uEwDQYJKoZIhvcNAQEL +BQAwga8xCzAJBgNVBAYTAkdCMRAwDgYDVQQIDAdFbmdsYW5kMREwDwYDVQQKDAhE +Qkh1Yi5pbzEnMCUGA1UECwweREJIdWIuaW8gQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +MSwwKgYDVQQDDCNEQkh1Yi5pbyBEb2NrZXIgRGV2ZWxvcG1lbnQgUm9vdCBDQTEk +MCIGCSqGSIb3DQEJARYVanVzdGluQHBvc3RncmVzcWwub3JnMB4XDTIxMDUwMjEx +MTk0MVoXDTMxMDUwMzExMTk0MVowga8xCzAJBgNVBAYTAkdCMRAwDgYDVQQIDAdF +bmdsYW5kMREwDwYDVQQKDAhEQkh1Yi5pbzEnMCUGA1UECwweREJIdWIuaW8gQ2Vy +dGlmaWNhdGUgQXV0aG9yaXR5MSwwKgYDVQQDDCNEQkh1Yi5pbyBEb2NrZXIgRGV2 +ZWxvcG1lbnQgUm9vdCBDQTEkMCIGCSqGSIb3DQEJARYVanVzdGluQHBvc3RncmVz +cWwub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAx45dv4Ue1YZ8 +7NxY26n3ccMhmtifRatdyCV0XWIIe8zBYQ3R1qSGIDmrNjNSA2i+DVIcktEsWO+B +xPPGneI0NPv1sKnhWBpC93hVm0q8cCh07ud37BsYZEOu+j04Z3hZmJ+LBKhC9kJA +p8bsZPAJokF1ThHmfMCD8Cr0EntnZdRsY+uVpw0AsHvC2PHmQvs5f2K49R4SwVD6 +ehkKaM5qjb5e+TkeuIg16qKeIwyz0qiL41Z07+THw5JBbkVuThLrGQ721iydpxPR +3CJbRtJemNDdrZCEyvcgq8w6jRe519McmCUCEuYZy1rbodng5MOybUyvnLi5AwzA +EeDsHk18yF0P9JhVmPGg8bSswoscYQk3p821IMZpL4DFVLdA0nHdwZeZoD7fw0TV +p5h4oD5t0tsFR/N9cBEUvunwJ4P1WU1MstLrfQf4YVWzYOoZgl8nBf7zqoGwYN9t +NkTgr4fnWZM8rZTzm93Mpr2nZ2r/7hMzadfrQFPRgR4BYFrZzMutUisLqMG5qMdJ +4/z3qRP6+Gwr8cZjRJw7Pv6dDJes/uq1PHdJ8c4pYR+GGmpT2rM8jHX2n8C2vJFG +x19BEjNaqhY34zonTAA/WrFYcrGamzojqIyRBEcc572E0HWShC053HlMmjMHSukh +6uwQ3U6x2ABAqP76qGaj89skELSi6RkCAwEAAaNjMGEwHQYDVR0OBBYEFEEaetsv +IE5eIq5vENoM+zTX/VkgMB8GA1UdIwQYMBaAFEEaetsvIE5eIq5vENoM+zTX/Vkg +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUA +A4ICAQAjZKP5sTXPEXdzv65XCBsEj8kVR6SDs3WTVCU/gU2Lylqe/gB0kKRh2C9K +/DafSfsEYx0qwHXt4qRlTU7ih87CY+QnCw5IBaye0wVCofc1FqjP6T7RC7QNhni8 +mUzeAl9eOf6Idex1wzEhgk+lulrJ3igHczLfR+layr8RLY7De9pO23xPIQoV23Yo +/kYJicKBKOs6U/tM4nzoZsiB9yEUIdnOkF8SGWBbYVMOkxt8CYtChHGqJFeEveuc +5uY5Ot1iPrAPVP30JeVpGu6TQmFWNjXo18eqj/lmw5G1iSAAxSfIeHb1njFlw/++ +irpAnICe6ggSSi8IgEeuwlZfNtTAGjXpqU3xFKvv6vg9Y7D4UlA1ln/Xd2P1Ea7t +Yy0UhBs6a4SbEm7Au4m7SwEMA+ImGcbUacgiLX/EDLqUjM02WtwNeXq3dK4bIbo5 +DhvKvYg11LQT1A1XJQopMFRMo6YNnsWXxy3MWq3l6GAqxmet+vslTAuOUdorS/5t +0yhQo1JtjcxZV7m+7TcwvFs+oeseaBXiLHkHM9P5TKsTJ9vKQuohEc0o1+YS+TqA +Oie7rmViMy8+IKE9pFGNjo9KBtRshqDpz9C5z8X4WDpM7lB+EcFKIMbz0P4vPIcZ +KDeX5COGCBbVnqBR7+MD+jU5k0376ShF+BAM3Ob9qF09aw0vMg== -----END CERTIFICATE----- diff --git a/src/certs/public.cert.pem b/src/certs/public.cert.pem index 7360c47f0..c27afb513 100644 --- a/src/certs/public.cert.pem +++ b/src/certs/public.cert.pem @@ -1,54 +1,54 @@ -----BEGIN CERTIFICATE----- -MIIEmjCCAoKgAwIBAgIQPY6Csi7n3qtvWzrSOevs9jANBgkqhkiG9w0BAQsFADCB +MIIEmjCCAoKgAwIBAgIQRKcXCIHx/VM6mM4J+w/BnTANBgkqhkiG9w0BAQsFADCB ijELMAkGA1UEBhMCR0IxEDAOBgNVBAgMB0VuZ2xhbmQxETAPBgNVBAoMCERCSHVi LmlvMScwJQYDVQQLDB5EQkh1Yi5pbyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxLTAr -BgNVBAMMJERCSHViLmlvIERFVkVMT1BNRU5UIEludGVybWVkaWF0ZSBDQTAeFw0x -OTA1MDMwODQ4MzFaFw0yMTA1MDMwODQ4MzFaMD8xHjAcBgNVBAoTFURCIEJyb3dz +BgNVBAMMJERCSHViLmlvIERFVkVMT1BNRU5UIEludGVybWVkaWF0ZSBDQTAeFw0y +MTA1MDIxMzM0MjFaFw0yNjA1MDIxMzM0MjFaMD8xHjAcBgNVBAoTFURCIEJyb3dz ZXIgZm9yIFNRTGl0ZTEdMBsGA1UEAwwUcHVibGljQGRiNHMuZGJodWIuaW8wggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCh/LexJv5lntYnvTEx1NA57YL5 -+jLVimLziI4GBr7aoNqOix5npjdQY28TilQwAe2Xz6cggP9TyBHZzKVUMnBqDrs6 -xb/EjveMkB/Xb/E3NLTF5ql2C2FRG/X5x17A2sCSGq00/ApnC4CJC1Q2xXFdwa1Z -JYZrG9HELNiE8FMOSb9AejQfHyIxnz+/fbeH5D+uWZIGgpjGKinpHnSCouL5TTTL -90BdtINyfqn5IM+ywZYQVGRmszU6QCg9ci3YA14pIptBfSO5Qh1Y/WcXRiGg9uGN -AyRVXW4HDDRxqkAz+23S+CQOG6RsIsBVCO7lgwhjqgJ0JqTVs8SNJQIzYkyNAgMB +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDtS1Ik94JMX6bZJArL6xPddEZv +yhAyv5BFKSJwm+NjvGQNR0guAZSeWRBVn/pQLvfGQnY+DkX7CQ5Mp6jJARRMjM8+ +MQXkbsoZ3kyFTrMjoezEIoiNI7ndyAwauk1Hh2VfjQ6Ce2FMfFGYZk48dd3m4bvr +nPgdcDnnBFIQ6Np/W76bHSUhkNRivcFyGgWWBCKYlLmMBviN7an9D4zBex7LhL37 +FFCrGgo9vs0qLtX8m5Chtdlvj18CVOvYgSGvqRIj5y2peF+jAgbtyTtWmnT9iqK3 +cBudd2PiWk1l4SvEcR1+ULsyw4LReSin4aHrpZ45WLLBsQICTtcPlqSVrr+tAgMB AAGjRjBEMBMGA1UdJQQMMAoGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHwYDVR0j -BBgwFoAUzl/NZNsCDfwlRFDAZBt/2KfiH+UwDQYJKoZIhvcNAQELBQADggIBAL9U -S7kCHXdeSyiykS2Fj94qpwNCWXXDqitiO0m0u1redSXtYOD/rOn+ZeBfop4PcWrh -y7hPsi6RKAvpwUdp+xTCIczRV5n1Nxw4U0O5xNqbRxuJdG2CCtE3kbPFnQ9XppyX -XmQG6mxSA7UeiUiraCG0zEqp/gGqo5DULb9HrzRN1Kba+E4gyC30MsfNV1M+TrgK -H62afCEdmUAZKUoSpDKsaBBiDHndL4yaapxrFX+A8+Cf21ECVPdj+M3UoW48TTr8 -UH2rpJ2ajhV+v/tYOmN8OZAoZuKQ/FT6n7vURf0tKErvYnDDxoxTHWMgUBNzJhPV -17GzfRrM07uBwJ3HpDL457EpfWjBTt9GLWGrhT0v/7DZ0NxG8ty+RzKGvfSWUJWR -Hat6VJlTn8d81GIE7GAScO1823+4rldVzyqdlQhvmzQN044n1r+AAmKi7GdgIWi6 -KdRphZIivppzq0HFghVtFVTTkKWCvef14z6R+Sd4MmLHphOtdQsBYQCbHqf4V+8J -cT+0+jXc/uqibrLNEAmMCHUfI10qqKoaDTTGy/Q/sof3Us+9VW/liSmlnKGl6m3o -XuBmqD7kMGm29eETr2A35Q7JyZQ2eb1bUAC8K3HusR4eUUYiOigaauMDCFbllHY8 -8rs8Eah6chQyfviFadiGHHwQVW2rXclAXPMgDd6O +BBgwFoAUzl/NZNsCDfwlRFDAZBt/2KfiH+UwDQYJKoZIhvcNAQELBQADggIBAA16 +XYqgzJFZjcrYC2lhpOEgmwlavBMwEP4e/ly37+PbsirIak4bNVyY0zw6tEZCF55r +Rij2LNgaxFJnrZrWdP7yFua9wzf4wQOd+dLLHE9K8E4mAAz8wuof+C0J9nljmD66 +6p3HH6X5TrDaMBILQB4moWrjgGBfey2DufFd8w05M1vPIWisZiUN6gkrAImhGLBt +aXEnCKY5Kby4+SHv2ks+yk7U/cDIOOSwQU2Sgc2gaUM3joofsab5JsChyQrQbEDd +yIM1PtpvZCvyTjlrBb1ic+TlRgDtRCDOEBL7uHgaHJp1s+XZ0axLx9U+qYuBS0P9 +qDTxpewB3JSLZfUu4noeW5Oe9MhiRky7tPTAADehjeuYYWiCBtL1F73x21MUoey9 ++yCnHuWOrr6iMlG7R2Joa+KPZZ1RnMdaH42/DxYzB5rEymqvNQQvwsQJ1KIb3gVp +72AHYXiIbcw0EtDU2Js6K6KfNd14wQmBcyIhfY6NT3GUrFuVamWLiEQZh8H6fBn+ +iSv3QeDF1TJxJ8G88BJbwm+gAsQTL4oyVzZSAFvuGwE1ODmNLm8J52jzsuduTWeb +30/dBeFXL/TC6xw8BsXMjP92CDTI9RM/rpe+b0m+StEOp27k8i6qg/ozTCpdf4dH +XOjJ0KVw3giAvF8+p6WiZnm2UJPqS9hVP9QDBsZR -----END CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- -MIIEogIBAAKCAQEAofy3sSb+ZZ7WJ70xMdTQOe2C+foy1Ypi84iOBga+2qDajose -Z6Y3UGNvE4pUMAHtl8+nIID/U8gR2cylVDJwag67OsW/xI73jJAf12/xNzS0xeap -dgthURv1+cdewNrAkhqtNPwKZwuAiQtUNsVxXcGtWSWGaxvRxCzYhPBTDkm/QHo0 -Hx8iMZ8/v323h+Q/rlmSBoKYxiop6R50gqLi+U00y/dAXbSDcn6p+SDPssGWEFRk -ZrM1OkAoPXIt2ANeKSKbQX0juUIdWP1nF0YhoPbhjQMkVV1uBww0capAM/tt0vgk -DhukbCLAVQju5YMIY6oCdCak1bPEjSUCM2JMjQIDAQABAoIBAF0fl8q0DBQHmD4I -ObvYCE0FCgMDny27/N7cZil4v0eYqYzA1Z3opGwGfdjR8UwYD6ryqbW58w8LOZfo -WjNpO8784Q4MmQ460n1wbZ3AsP93wWT0Ef/W0v95/5K01vgvyf00cNbA/on2xtIC -PUuvfljT+wAA3qG8wH7y+RaTwmu3d32M6xxVI+YCO/f3WEefODIj53xf4Dp1f840 -vRftaCDCzFoqeO/wWwu0kVxqYEhGTM5z2H5vVglFy6BT4dsnfIj8TCbaWYzWbvXe -eUA45D9bP0cp+wnaM0j0aM4IPDdcwAKX+GtJsaW+TRkjzF0CQ3NDYeXOvFrXWqLA -eHAnUYECgYEA0we5VmVKt5Orom4tv+Swk79ywtjVIwhJrXa+dVcnMFCGWr41gfid -AGeJa9CE5gx4JW025/AGqPkwNgIOWyhraeBPGmLUXg+3/qxVerj2LBgljsonwlUX -ALrVRyFL2dxZQ16aUd8LHP3UnLdZYT/khi7FApMbyH8sICCVI0XwnOUCgYEAxIGQ -PPrsCJZ2fuOmO23hPRZrWco7yvWi/dk3jxsauPM6Rhx+8Y6H/GWoQ6tXolBGTpqT -lijVjtT/0qmhuN9PmwZsBlok5XejiJ3VZmJf6Pnb572aVAg67CX5wxaUMvn+sBJN -7Y7pMcsYVRXyfDg7i9874hwgIJLzc6aDkG4VnokCgYA1SOn/aqwnFl5sMS3UGkaL -x/eOQ3nt0pXn+ue0cUEv7eU+3HBeVQwvofUNCCXGgLeFm8IVZoIIAIOv320Ij3gv -z7epjfLZnVZ0M8eRqUpfb+lr2JeZdirMwGBCCaJBbGYNoMGOkqcXtvAMci9bYuqt -Bvov4D1PruzRX+jIc0yCEQKBgE9poNXT/dFWpRqQe1xnAnCCf+2wecuCy1TVFMvj -g0AdI360A2UxWalZl8+JDghNcqxPcbdsVym60Ivc+7tPm8clqEBE68ZEPDV4u4X9 -2Y64cvNLP3QYQ1+t1SrPFCMpvpB/RTjs2TbDQdkY3n7u5rmXBIdTIHSpjnM9ZsvW -gSwpAoGAJSqTNd7WiE+0YANHLb8dIg3Gml7ZLu8MoerPsvsahqbVFpPR5VTJzBSM -JJIGen8v7To6EOkMiGDJmgRiVkDsQyQ0R8saYTxr0hmAuzEj2Y1r5EsoBQveOJd+ -kjkP+NxnfMrBTWGytfw0KqnZYS3CcVOos8CLOG0jNt6gDJkczWM= +MIIEogIBAAKCAQEA7UtSJPeCTF+m2SQKy+sT3XRGb8oQMr+QRSkicJvjY7xkDUdI +LgGUnlkQVZ/6UC73xkJ2Pg5F+wkOTKeoyQEUTIzPPjEF5G7KGd5MhU6zI6HsxCKI +jSO53cgMGrpNR4dlX40OgnthTHxRmGZOPHXd5uG765z4HXA55wRSEOjaf1u+mx0l +IZDUYr3BchoFlgQimJS5jAb4je2p/Q+MwXsey4S9+xRQqxoKPb7NKi7V/JuQobXZ +b49fAlTr2IEhr6kSI+ctqXhfowIG7ck7Vpp0/Yqit3AbnXdj4lpNZeErxHEdflC7 +MsOC0Xkop+Gh66WeOViywbECAk7XD5akla6/rQIDAQABAoIBABz90dhwYPwBx7nJ +3IPTgcbRuPVZg6cfnnnEr8+ATETYNIUmy1vLl6PND+DWPdfkFSOk5Rtp1QT5s0SM +S2PbfOZpYbygcq7ZFloYvdKfreVRmELSUUqlLcU59rihQGXX1fvZmQc6GcYlfjaX +cUGTyPu3YqVDtVCrcHeYIIquWFus1p/MdQg1kDcr/vRAm3A5Evn4zv3D+jN0SX/h +ZO0D3PejDy/TBFEIQnn0c8XKRkVuVAeA8ZRB+lLsOXDzTpDf2QNVOscS/icQ0cXR +1jnGRlr3zATgO1fSh17cWCZgNVNxtijJOE1avHXSGxZMPjkSC8cK4IzfcteplEex +G5kOfCECgYEA9U2NhIyomrUpYb6pnCdHQHTV/Ew2s8ud3wBKAtrmAW9lIHn1j1kX +/I/C0sNuyAaU5Zh81gHcx3KcuwHooTWUVf56FNKqxElafpwCTQTXF0dF3uycVopq +Mt60fntD0LqQ1EhEpnYjIOuu1f4+2Y3o2URUovRVIwbajQ06UFKqi5kCgYEA96Rc +zBMEiffgNRszzYKsBxkKk/ysXXWovZXz998TZ51o1jn50q35HfJPj8yEAlUn1yF9 +htvrWxLRuYuIkDOJmKbG94O3F14p0tuWx5TrnVxLYikCQAl++UZJWEb4a+YhVGra +VGgfioQpYPD0dF2Z1CxGSe9w6u+s0UYxYaceQTUCgYAZR67H9D8EApuLKT0NjLa5 +G9FZuPkCOn/AlaUK+kgt6a8AU9FMvp/MNXycf+uQzazWpIpo+7QnEda5Jw80XfM1 +kY4/Sx6yL+UVmzpZeaA5E+1NdhD+kjEzoOP1DPsGLdPzLKd2iEJCiEdyYktT3F4c +1f/q80c63t/zHWPfF0XgMQKBgHQwpO2HGsEVERg5rCOHZOlroV/v1HuBQeu52J77 +BmK+IzsoNoPX5qNbVmMUxPdHNwskBn5o3tN7T/Vrd2aZF70MuxvUq+oF3z+0kdkQ +kT/i1ue2b/zVt8KDbNRDcDlH32l5PPkPZYUbH0MBquCSLiOzpkL4WhWQ4JfMBE1a +GMLlAoGAOOYr6tCW+MP9PYWWqmoIxwX4q3a72mPkf9Yk2JzMWb0LFuJltXwOx8az +K0c1sviqvzTK75KEHxYYK0ISCsFcEqD/Jf3EYs2v3ORuDvEykSAc4pj3LS4EgoVP +XvP1QYG8f8W5uSB8O3HzoTXVYtAeVtsdvdipzDcnWH+wSi/3EPQ= -----END RSA PRIVATE KEY----- diff --git a/src/csvparser.cpp b/src/csvparser.cpp index 0b8f0787b..e48398c89 100644 --- a/src/csvparser.cpp +++ b/src/csvparser.cpp @@ -101,7 +101,7 @@ inline CSVField* addColumn(CSVRow& r, CSVField* field, bool trim) // This function takes a parsed CSV row and hands it back to the caller of the CSV parser. It returns a null pointer if the parsing should be // aborted, otherwise it returns a pointer to a new field object that can be used for storing the contents of the first field of the next row. -inline CSVField* addRow(CSVParser::csvRowFunction& f, CSVRow& r, size_t& rowCount) +inline CSVField* addRow(CSVParser::csvRowFunction f, CSVRow& r, size_t& rowCount) { // Call row function if(!f(rowCount, r)) @@ -285,7 +285,7 @@ CSVParser::ParserResult CSVParser::parse(csvRowFunction insertFunction, QTextStr { addColumn(record, field, m_bTrimFields); - if(!(field = addRow(insertFunction, record, parsedRows))) + if(!addRow(insertFunction, record, parsedRows)) return ParserResult::ParserResultError; } @@ -310,7 +310,7 @@ bool CSVParser::look_ahead(QTextStream& stream, QByteArray& sBuffer, const char* if(nit == *sBufferEnd && !stream.atEnd()) { // Load one more byte - sBuffer.append(stream.read(1)); + sBuffer.append(stream.read(1).toUtf8()); *sBufferEnd = sBuffer.constEnd(); // Restore both iterators. sBufferEnd points to the imagined char after the last one in the string. So the extra byte we've diff --git a/src/csvparser.h b/src/csvparser.h index 77bcc7d67..117cca921 100644 --- a/src/csvparser.h +++ b/src/csvparser.h @@ -67,7 +67,7 @@ class CSVParser /*! * \brief parse the given stream * @param insertFunction A function pointer that is called for each parsed row. It is passed two parameters, the row number and a list of all parsed columns - * in the row. The called function may return false if an error ocurred to stop the import process. Otherwise it should return true. + * in the row. The called function may return false if an error occurred to stop the import process. Otherwise it should return true. * \param stream Stream with the CSV parser * \param nMaxRecords Max records too read, 0 if unlimited * \return ParserResult value that indicated whether action finished normally, was cancelled or errored. diff --git a/src/docktextedit.cpp b/src/docktextedit.cpp index 39c40f9b9..8c4ade71a 100644 --- a/src/docktextedit.cpp +++ b/src/docktextedit.cpp @@ -1,5 +1,6 @@ #include "docktextedit.h" #include "Settings.h" +#include "SqlUiLexer.h" #include #include @@ -9,7 +10,7 @@ QsciLexerJSON* DockTextEdit::jsonLexer = nullptr; QsciLexerXML* DockTextEdit::xmlLexer = nullptr; DockTextEdit::DockTextEdit(QWidget* parent) : - ExtendedScintilla(parent) + SqlTextEdit(parent) { // Create lexer objects if not done yet if(jsonLexer == nullptr) @@ -29,7 +30,8 @@ DockTextEdit::DockTextEdit(QWidget* parent) : void DockTextEdit::reloadSettings() { - // Set the parent settings for both lexers + // Set the parent settings for all lexers + SqlTextEdit::reloadSettings(); reloadLexerSettings(jsonLexer); reloadLexerSettings(xmlLexer); @@ -94,6 +96,10 @@ void DockTextEdit::setLanguage(Language lang) setLexer(xmlLexer); setFolding(QsciScintilla::BoxedTreeFoldStyle); break; + case SQL: + setLexer(sqlLexer); + setFolding(QsciScintilla::BoxedTreeFoldStyle); + break; } } diff --git a/src/docktextedit.h b/src/docktextedit.h index c5d32369b..00c1bf25b 100644 --- a/src/docktextedit.h +++ b/src/docktextedit.h @@ -1,16 +1,17 @@ #ifndef DOCKTEXTEDIT_H #define DOCKTEXTEDIT_H -#include "ExtendedScintilla.h" +#include "sqltextedit.h" class QsciLexerJSON; class QsciLexerXML; +class SqlUiLexer; /** * @brief The DockTextEdit class - * This class is based on our Extended QScintilla widget + * This class extends our QScintilla SQL Text Edit adding XML, JSON and plain text modes. */ -class DockTextEdit : public ExtendedScintilla +class DockTextEdit : public SqlTextEdit { Q_OBJECT @@ -22,7 +23,8 @@ class DockTextEdit : public ExtendedScintilla { PlainText, JSON, - XML + XML, + SQL }; void setLanguage(Language lang); @@ -40,6 +42,7 @@ public slots: protected: static QsciLexerJSON* jsonLexer; static QsciLexerXML* xmlLexer; + private: Language m_language; QFont plainTextFont; diff --git a/src/extensions/extension-functions.c b/src/extensions/extension-functions.c index 465f62154..ea9d4859d 100644 --- a/src/extensions/extension-functions.c +++ b/src/extensions/extension-functions.c @@ -330,7 +330,7 @@ static int sqlite3Utf8CharLen(const char *z, int nByte){ #define sqliteCharVal(X) sqlite3ReadUtf8(X) /* -** This is a macro that facilitates writting wrappers for math.h functions +** This is a macro that facilitates writing wrappers for math.h functions ** it creates code for a function to use in SQlite that gets one numeric input ** and returns a floating point value. ** @@ -582,7 +582,7 @@ static void atn2Func(sqlite3_context *context, int argc, sqlite3_value **argv){ ** Implementation of the sign() function ** return one of 3 possibilities +1,0 or -1 when the argument is respectively ** positive, 0 or negative. -** When the argument is NULL the result is also NULL (completly conventional) +** When the argument is NULL the result is also NULL (completely conventional) */ static void signFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ double rVal=0.0; @@ -755,7 +755,7 @@ static void properFunc(sqlite3_context *context, int argc, sqlite3_value **argv) } /* -** given an input string (s) and an integer (n) adds spaces at the begining of s +** given an input string (s) and an integer (n) adds spaces at the beginning of s ** until it has a length of n characters. ** When s has a length >=n it's a NOP ** padl(NULL) = NULL @@ -863,7 +863,7 @@ static void padrFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ /* ** given an input string (s) and an integer (n) appends spaces at the end of s -** and adds spaces at the begining of s until it has a length of n characters. +** and adds spaces at the beginning of s until it has a length of n characters. ** Tries to add has many characters at the left as at the right. ** When s has a length >=n it's a NOP ** padl(NULL) = NULL @@ -1149,7 +1149,7 @@ static void rightFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ #ifndef HAVE_TRIM /* -** removes the whitespaces at the begining of a string. +** removes the whitespaces at the beginning of a string. */ const char* ltrim(const char* s){ while( *s==' ' ) @@ -1169,7 +1169,7 @@ void rtrim(char* s){ } /* -** Removes the whitespace at the begining of a string +** Removes the whitespace at the beginning of a string */ static void ltrimFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ const char *z; diff --git a/src/i18n.pri b/src/i18n.pri deleted file mode 100644 index 5f201e5fb..000000000 --- a/src/i18n.pri +++ /dev/null @@ -1,48 +0,0 @@ -# This file is taken from the project https://gitorious.org/qop/qop/. -# For autocompiling qm-files. - -#rules to generate ts -isEmpty(QMAKE_LUPDATE) { - win32: QMAKE_LUPDATE = $$[QT_INSTALL_BINS]/lupdate.exe - unix { - QMAKE_LUPDATE = $$[QT_INSTALL_BINS]/lupdate - !exists($$QMAKE_LUPDATE) { QMAKE_LUPDATE = lupdate-qt4 } - } else { - !exists($$QMAKE_LUPDATE) { QMAKE_LUPDATE = lupdate } - } -} -#limitation: only on ts can be generated -updatets.name = Creating or updating ts-files... -updatets.input = _PRO_FILE_ -updatets.output = $$TRANSLATIONS -updatets.commands = $$QMAKE_LUPDATE ${QMAKE_FILE_IN} -updatets.CONFIG += no_link no_clean -QMAKE_EXTRA_COMPILERS += updatets - -#rules for ts->qm -isEmpty(QMAKE_LRELEASE) { -#a qm generated by lrelease-qt3 can be used for qt2, qt3, qt4! - win32: QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease.exe - unix { - QMAKE_LRELEASE = lrelease-qt3 - !exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease } - !exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease } - !exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease-qt4 } - } else { - !exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease } - } -} -updatets.name = Compiling qm-files... -updateqm.input = TRANSLATIONS -updateqm.output = ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.qm -updateqm.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.qm -updateqm.CONFIG += no_link no_clean target_predeps -updateqm.variable_out = copytranslations.files -QMAKE_EXTRA_COMPILERS += updateqm - -# Copy translations into the bundle when one is created -mac:contains(CONFIG, "app_bundle") { - copytranslations.path = Contents/MacOS/translations - copytranslations.depends = updateqm - QMAKE_BUNDLE_DATA += copytranslations -} diff --git a/src/icons/application_go.png b/src/icons/application_go.png deleted file mode 100644 index 5cc2b0dd3..000000000 Binary files a/src/icons/application_go.png and /dev/null differ diff --git a/src/icons/application_go.svg b/src/icons/application_go.svg new file mode 100644 index 000000000..3ef61c6ac --- /dev/null +++ b/src/icons/application_go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/application_link.png b/src/icons/application_link.png deleted file mode 100644 index f8fbb3ed9..000000000 Binary files a/src/icons/application_link.png and /dev/null differ diff --git a/src/icons/application_link.svg b/src/icons/application_link.svg new file mode 100644 index 000000000..238c5ce31 --- /dev/null +++ b/src/icons/application_link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/application_side_list.png b/src/icons/application_side_list.png deleted file mode 100644 index 37b4131e8..000000000 Binary files a/src/icons/application_side_list.png and /dev/null differ diff --git a/src/icons/application_side_list.svg b/src/icons/application_side_list.svg new file mode 100644 index 000000000..cb12b33b5 --- /dev/null +++ b/src/icons/application_side_list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/arrow_refresh_small.svg b/src/icons/arrow_refresh_small.svg new file mode 100644 index 000000000..96d0e8ed1 --- /dev/null +++ b/src/icons/arrow_refresh_small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/bullet_arrow_bottom.png b/src/icons/bullet_arrow_bottom.png deleted file mode 100644 index 1a28d8250..000000000 Binary files a/src/icons/bullet_arrow_bottom.png and /dev/null differ diff --git a/src/icons/bullet_arrow_bottom.svg b/src/icons/bullet_arrow_bottom.svg new file mode 100644 index 000000000..a66320c42 --- /dev/null +++ b/src/icons/bullet_arrow_bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/bullet_arrow_down.png b/src/icons/bullet_arrow_down.png deleted file mode 100644 index 9b23c06d7..000000000 Binary files a/src/icons/bullet_arrow_down.png and /dev/null differ diff --git a/src/icons/bullet_arrow_down.svg b/src/icons/bullet_arrow_down.svg new file mode 100644 index 000000000..dbf419eea --- /dev/null +++ b/src/icons/bullet_arrow_down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/bullet_arrow_top.png b/src/icons/bullet_arrow_top.png deleted file mode 100644 index 0ce86d2b2..000000000 Binary files a/src/icons/bullet_arrow_top.png and /dev/null differ diff --git a/src/icons/bullet_arrow_top.svg b/src/icons/bullet_arrow_top.svg new file mode 100644 index 000000000..8f920e083 --- /dev/null +++ b/src/icons/bullet_arrow_top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/bullet_arrow_up.png b/src/icons/bullet_arrow_up.png deleted file mode 100644 index 24df0f421..000000000 Binary files a/src/icons/bullet_arrow_up.png and /dev/null differ diff --git a/src/icons/bullet_arrow_up.svg b/src/icons/bullet_arrow_up.svg new file mode 100644 index 000000000..554e0742a --- /dev/null +++ b/src/icons/bullet_arrow_up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/cancel.png b/src/icons/cancel.png deleted file mode 100644 index c149c2bc0..000000000 Binary files a/src/icons/cancel.png and /dev/null differ diff --git a/src/icons/cancel.svg b/src/icons/cancel.svg new file mode 100644 index 000000000..9647fab8d --- /dev/null +++ b/src/icons/cancel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/chart_curve.png b/src/icons/chart_curve.png deleted file mode 100644 index 01e933a61..000000000 Binary files a/src/icons/chart_curve.png and /dev/null differ diff --git a/src/icons/chart_curve.svg b/src/icons/chart_curve.svg new file mode 100644 index 000000000..ebd50f656 --- /dev/null +++ b/src/icons/chart_curve.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/clear_filters.png b/src/icons/clear_filters.png deleted file mode 100644 index 16288fdbe..000000000 Binary files a/src/icons/clear_filters.png and /dev/null differ diff --git a/src/icons/clear_sorting.png b/src/icons/clear_sorting.png deleted file mode 100644 index be27fea4c..000000000 Binary files a/src/icons/clear_sorting.png and /dev/null differ diff --git a/src/icons/clear_sorting.svg b/src/icons/clear_sorting.svg new file mode 100644 index 000000000..161052c2a --- /dev/null +++ b/src/icons/clear_sorting.svg @@ -0,0 +1,297 @@ + + + + + + image/svg+xml + + Arrow Up + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Arrow Up + Arrow Up Top + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/cog.png b/src/icons/cog.png deleted file mode 100644 index 67de2c6cc..000000000 Binary files a/src/icons/cog.png and /dev/null differ diff --git a/src/icons/cog.svg b/src/icons/cog.svg new file mode 100644 index 000000000..ea843f8ec --- /dev/null +++ b/src/icons/cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/cog_go.png b/src/icons/cog_go.png deleted file mode 100644 index 3262767cd..000000000 Binary files a/src/icons/cog_go.png and /dev/null differ diff --git a/src/icons/cog_go.svg b/src/icons/cog_go.svg new file mode 100644 index 000000000..3053112c1 --- /dev/null +++ b/src/icons/cog_go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/color_swatch.png b/src/icons/color_swatch.png deleted file mode 100644 index 6e6e85212..000000000 Binary files a/src/icons/color_swatch.png and /dev/null differ diff --git a/src/icons/color_swatch.svg b/src/icons/color_swatch.svg new file mode 100644 index 000000000..124ec3ee6 --- /dev/null +++ b/src/icons/color_swatch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/color_wheel.svg b/src/icons/color_wheel.svg new file mode 100644 index 000000000..d3d60970d --- /dev/null +++ b/src/icons/color_wheel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/comment_block.png b/src/icons/comment_block.png deleted file mode 100644 index 3b3ee4c48..000000000 Binary files a/src/icons/comment_block.png and /dev/null differ diff --git a/src/icons/cross.png b/src/icons/cross.png deleted file mode 100644 index 1514d51a3..000000000 Binary files a/src/icons/cross.png and /dev/null differ diff --git a/src/icons/cross.svg b/src/icons/cross.svg new file mode 100644 index 000000000..9a0d2ff14 --- /dev/null +++ b/src/icons/cross.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/cut.png b/src/icons/cut.png deleted file mode 100644 index f215d6f6b..000000000 Binary files a/src/icons/cut.png and /dev/null differ diff --git a/src/icons/database.png b/src/icons/database.png deleted file mode 100644 index 3d09261a2..000000000 Binary files a/src/icons/database.png and /dev/null differ diff --git a/src/icons/database.svg b/src/icons/database.svg new file mode 100644 index 000000000..25dcd7176 --- /dev/null +++ b/src/icons/database.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/database_add.png b/src/icons/database_add.png deleted file mode 100644 index 802bd6cde..000000000 Binary files a/src/icons/database_add.png and /dev/null differ diff --git a/src/icons/database_add.svg b/src/icons/database_add.svg new file mode 100644 index 000000000..1ad18926d --- /dev/null +++ b/src/icons/database_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/database_go.png b/src/icons/database_go.png deleted file mode 100644 index 61a8556c4..000000000 Binary files a/src/icons/database_go.png and /dev/null differ diff --git a/src/icons/database_go.svg b/src/icons/database_go.svg new file mode 100644 index 000000000..15b6451b2 --- /dev/null +++ b/src/icons/database_go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/database_link.png b/src/icons/database_link.png deleted file mode 100644 index 4c8204af1..000000000 Binary files a/src/icons/database_link.png and /dev/null differ diff --git a/src/icons/database_link.svg b/src/icons/database_link.svg new file mode 100644 index 000000000..f48b0464b --- /dev/null +++ b/src/icons/database_link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/database_link_broken.png b/src/icons/database_link_broken.png deleted file mode 100644 index 780ececf6..000000000 Binary files a/src/icons/database_link_broken.png and /dev/null differ diff --git a/src/icons/database_refresh.png b/src/icons/database_refresh.png deleted file mode 100644 index ff803be12..000000000 Binary files a/src/icons/database_refresh.png and /dev/null differ diff --git a/src/icons/database_refresh.svg b/src/icons/database_refresh.svg new file mode 100644 index 000000000..ada718914 --- /dev/null +++ b/src/icons/database_refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/database_save.png b/src/icons/database_save.png deleted file mode 100644 index 44c06dddf..000000000 Binary files a/src/icons/database_save.png and /dev/null differ diff --git a/src/icons/database_save.svg b/src/icons/database_save.svg new file mode 100644 index 000000000..ee26191ed --- /dev/null +++ b/src/icons/database_save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/document-link.png b/src/icons/document-link.png deleted file mode 100644 index 06df131a5..000000000 Binary files a/src/icons/document-link.png and /dev/null differ diff --git a/src/icons/document-open.png b/src/icons/document-open.png deleted file mode 100644 index ab940462f..000000000 Binary files a/src/icons/document-open.png and /dev/null differ diff --git a/src/icons/edit_cond_formats.png b/src/icons/edit_cond_formats.png deleted file mode 100644 index 3b69aa075..000000000 Binary files a/src/icons/edit_cond_formats.png and /dev/null differ diff --git a/src/icons/edit_cut.svg b/src/icons/edit_cut.svg new file mode 100644 index 000000000..3abc76739 --- /dev/null +++ b/src/icons/edit_cut.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/filter.png b/src/icons/filter.png deleted file mode 100644 index 58ec8744a..000000000 Binary files a/src/icons/filter.png and /dev/null differ diff --git a/src/icons/find_edit.svg b/src/icons/find_edit.svg new file mode 100644 index 000000000..17db094c0 --- /dev/null +++ b/src/icons/find_edit.svg @@ -0,0 +1,478 @@ + + + + + + image/svg+xml + + Find Edit + + + + + Find Edit + Find Edit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/folder.png b/src/icons/folder.png deleted file mode 100644 index 784e8fa48..000000000 Binary files a/src/icons/folder.png and /dev/null differ diff --git a/src/icons/folder.svg b/src/icons/folder.svg new file mode 100644 index 000000000..9c2ce8ac6 --- /dev/null +++ b/src/icons/folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/folder_page.svg b/src/icons/folder_page.svg new file mode 100644 index 000000000..fc87c537d --- /dev/null +++ b/src/icons/folder_page.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/folder_user.png b/src/icons/folder_user.png deleted file mode 100644 index f021c3e12..000000000 Binary files a/src/icons/folder_user.png and /dev/null differ diff --git a/src/icons/folder_user.svg b/src/icons/folder_user.svg new file mode 100644 index 000000000..7bcfe0f6f --- /dev/null +++ b/src/icons/folder_user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/font.svg b/src/icons/font.svg new file mode 100644 index 000000000..c149d1e22 --- /dev/null +++ b/src/icons/font.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/font_add.svg b/src/icons/font_add.svg new file mode 100644 index 000000000..f1e98cc5e --- /dev/null +++ b/src/icons/font_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/font_delete.svg b/src/icons/font_delete.svg new file mode 100644 index 000000000..d389e6257 --- /dev/null +++ b/src/icons/font_delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/font_edit.svg b/src/icons/font_edit.svg new file mode 100644 index 000000000..0a187ea60 --- /dev/null +++ b/src/icons/font_edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/funnel.svg b/src/icons/funnel.svg new file mode 100644 index 000000000..7f77114b4 --- /dev/null +++ b/src/icons/funnel.svg @@ -0,0 +1,32 @@ + + + + Funnel + Funnel + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/funnel_delete.svg b/src/icons/funnel_delete.svg new file mode 100644 index 000000000..ae28e4e39 --- /dev/null +++ b/src/icons/funnel_delete.svg @@ -0,0 +1,49 @@ + + + + Funnel Delete + Funnel Delete + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/help.png b/src/icons/help.png deleted file mode 100644 index 5c870176d..000000000 Binary files a/src/icons/help.png and /dev/null differ diff --git a/src/icons/help.svg b/src/icons/help.svg new file mode 100644 index 000000000..5dc92b7c0 --- /dev/null +++ b/src/icons/help.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/hourglass.png b/src/icons/hourglass.png deleted file mode 100644 index 57b03ce7a..000000000 Binary files a/src/icons/hourglass.png and /dev/null differ diff --git a/src/icons/hourglass.svg b/src/icons/hourglass.svg new file mode 100644 index 000000000..18c6ba96d --- /dev/null +++ b/src/icons/hourglass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/icons.qrc b/src/icons/icons.qrc index c18f103bf..96383cd9d 100644 --- a/src/icons/icons.qrc +++ b/src/icons/icons.qrc @@ -1,109 +1,108 @@ - database_add.png - database_go.png - database_refresh.png - database_save.png - table_add.png - table_delete.png - table_edit.png - tag_blue_add.png - tag_blue_delete.png - page_edit.png - page_delete.png - page_add.png - page_green.png - table.png - tag_blue.png - view-refresh.png - picture_delete.png - picture.png - picture_add.png - script.png - script_add.png - script_delete.png - wrench.png - help.png - tab_add.png - resultset_next.png - page_save.png - page_white_database.png - plugin_add.png - plugin_delete.png - table_save.png - resultset_last.png - layout_sidebar.png - bullet_arrow_down.png - bullet_arrow_up.png + application_go.svg + application_link.svg + application_side_list.svg + arrow_refresh_small.svg + bullet_arrow_bottom.svg + bullet_arrow_down.svg + bullet_arrow_top.svg + bullet_arrow_up.svg + cancel.svg + chart_curve.svg + funnel_delete.svg + clear_sorting.svg + cog.svg + cog_go.svg + color_swatch.svg + cross.svg + edit_cut.svg + database.svg + database_add.svg + database_go.svg + database_link.svg + database_refresh.svg + database_save.svg + database_save.svg + funnel.svg + folder.svg + folder_page.svg + folder_user.svg + font.svg + font_add.svg + font_delete.svg + font_edit.svg + help.svg + hourglass.svg + key.svg + layout_sidebar.svg + link_break.svg + monitor_link.svg + package.svg + package_go.svg + package_rename.svg + package_save.svg + page_add.svg + page_copy.svg + script_copy.svg + page_delete.svg + page_edit.svg + page_find.svg + page_green.svg + page_key.svg + page_link.svg + page_white_color.svg + page_paste.svg + page_save.svg + page_white_copy.svg + page_white_database.svg + page_white_text.svg + picture.svg + picture_add.svg + picture_delete.svg + picture_edit.svg + picture_save.svg + plugin_add.svg + plugin_delete.svg + printer.svg + resultset_first.svg + resultset_last.svg + resultset_next.svg + resultset_previous.svg + script.svg + script_add.svg + script_delete.svg + script_edit.svg + script_link.svg + server_add.svg + server_go.svg sqlitebrowser.png - internet-web-browser.png - package.png - package_go.png - page_key.png - key.png - document-open.png - chart_curve.png - cog.png - clear_filters.png - page_copy.png - resultset_previous.png - resultset_first.png - picture_edit.png - script_edit.png - tag_blue_edit.png - folder.png - database.png - cog_go.png - page_paste.png - folder_user.png - server_go.png - page_find.png - cross.png - page_white_copy.png - page_copy_sql.png - text_replace.png - picture_save.png - application_side_list.png - database_link.png - text_indent.png - printer.png - package_save.png - cancel.png - comment_block.png - hourglass.png - table_row_delete.png - table_row_insert.png - textfield_delete.png - filter.png - tab.png - package_rename.png - page_foreign_key.png - save_all.png - page_white_text.png - color_swatch.png - edit_cond_formats.png - clear_sorting.png - bullet_arrow_bottom.png - bullet_arrow_top.png - text_bold.png - text_italic.png - text_underline.png - text_align_center.png - text_align_justify.png - text_align_left.png - text_align_right.png - page_paintbrush.png - text_paintbrush.png - style.png - style_edit.png - style_delete.png - style_add.png - application_link.png - document-link.png - application_go.png - monitor_link.png - server_add.png - cut.png - database_link_broken.png + tab.svg + tab_add.svg + table.svg + table_add.svg + table_delete.svg + table_edit.svg + table_key.svg + table_row_delete.svg + table_row_insert.svg + table_save.svg + tag_blue.svg + tag_blue_add.svg + tag_blue_delete.svg + tag_blue_edit.svg + text_align_center.svg + text_align_justify.svg + text_align_left.svg + text_align_right.svg + text_bold.svg + text_italic.svg + text_padding_left.svg + text_padding_top.svg + color_wheel.svg + find_edit.svg + text_underlined.svg + textfield_delete.svg + wrench.svg diff --git a/src/icons/internet-web-browser.png b/src/icons/internet-web-browser.png deleted file mode 100644 index ac5957ad6..000000000 Binary files a/src/icons/internet-web-browser.png and /dev/null differ diff --git a/src/icons/key.png b/src/icons/key.png deleted file mode 100644 index 4ec1a9281..000000000 Binary files a/src/icons/key.png and /dev/null differ diff --git a/src/icons/key.svg b/src/icons/key.svg new file mode 100644 index 000000000..96100c2d7 --- /dev/null +++ b/src/icons/key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/layout_sidebar.png b/src/icons/layout_sidebar.png deleted file mode 100644 index 3be27bb9b..000000000 Binary files a/src/icons/layout_sidebar.png and /dev/null differ diff --git a/src/icons/layout_sidebar.svg b/src/icons/layout_sidebar.svg new file mode 100644 index 000000000..936bb8def --- /dev/null +++ b/src/icons/layout_sidebar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/link_break.svg b/src/icons/link_break.svg new file mode 100644 index 000000000..a05a23ba5 --- /dev/null +++ b/src/icons/link_break.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/monitor_link.png b/src/icons/monitor_link.png deleted file mode 100644 index a014b025a..000000000 Binary files a/src/icons/monitor_link.png and /dev/null differ diff --git a/src/icons/monitor_link.svg b/src/icons/monitor_link.svg new file mode 100644 index 000000000..70738ecc2 --- /dev/null +++ b/src/icons/monitor_link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/package.png b/src/icons/package.png deleted file mode 100644 index da3c2a2d7..000000000 Binary files a/src/icons/package.png and /dev/null differ diff --git a/src/icons/package.svg b/src/icons/package.svg new file mode 100644 index 000000000..cca19521e --- /dev/null +++ b/src/icons/package.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/package_go.png b/src/icons/package_go.png deleted file mode 100644 index aace63ad6..000000000 Binary files a/src/icons/package_go.png and /dev/null differ diff --git a/src/icons/package_go.svg b/src/icons/package_go.svg new file mode 100644 index 000000000..c68be1917 --- /dev/null +++ b/src/icons/package_go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/package_rename.png b/src/icons/package_rename.png deleted file mode 100644 index 41bf2be9e..000000000 Binary files a/src/icons/package_rename.png and /dev/null differ diff --git a/src/icons/package_rename.svg b/src/icons/package_rename.svg new file mode 100644 index 000000000..b9afe334f --- /dev/null +++ b/src/icons/package_rename.svg @@ -0,0 +1,357 @@ + + + + + + image/svg+xml + + Package + + + + + + + + + + + + + + + + + + Package + Package Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/package_save.png b/src/icons/package_save.png deleted file mode 100644 index 35eb7632b..000000000 Binary files a/src/icons/package_save.png and /dev/null differ diff --git a/src/icons/package_save.svg b/src/icons/package_save.svg new file mode 100644 index 000000000..9978fdaed --- /dev/null +++ b/src/icons/package_save.svg @@ -0,0 +1,603 @@ + + + + + + image/svg+xml + + Package + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Package + Package Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/package_world.svg b/src/icons/package_world.svg new file mode 100644 index 000000000..e42fd3e37 --- /dev/null +++ b/src/icons/package_world.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/page_add.png b/src/icons/page_add.png deleted file mode 100644 index d5bfa0719..000000000 Binary files a/src/icons/page_add.png and /dev/null differ diff --git a/src/icons/page_add.svg b/src/icons/page_add.svg new file mode 100644 index 000000000..5074d0c64 --- /dev/null +++ b/src/icons/page_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/page_copy.png b/src/icons/page_copy.png deleted file mode 100644 index 195dc6d6c..000000000 Binary files a/src/icons/page_copy.png and /dev/null differ diff --git a/src/icons/page_copy.svg b/src/icons/page_copy.svg new file mode 100644 index 000000000..c58143387 --- /dev/null +++ b/src/icons/page_copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/page_copy_sql.png b/src/icons/page_copy_sql.png deleted file mode 100644 index 3b0e3f84b..000000000 Binary files a/src/icons/page_copy_sql.png and /dev/null differ diff --git a/src/icons/page_delete.png b/src/icons/page_delete.png deleted file mode 100644 index 3141467c6..000000000 Binary files a/src/icons/page_delete.png and /dev/null differ diff --git a/src/icons/page_delete.svg b/src/icons/page_delete.svg new file mode 100644 index 000000000..73900ae0c --- /dev/null +++ b/src/icons/page_delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/page_edit.png b/src/icons/page_edit.png deleted file mode 100644 index 046811ed7..000000000 Binary files a/src/icons/page_edit.png and /dev/null differ diff --git a/src/icons/page_edit.svg b/src/icons/page_edit.svg new file mode 100644 index 000000000..26c4b76f8 --- /dev/null +++ b/src/icons/page_edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/page_find.png b/src/icons/page_find.png deleted file mode 100644 index 2f193889f..000000000 Binary files a/src/icons/page_find.png and /dev/null differ diff --git a/src/icons/page_find.svg b/src/icons/page_find.svg new file mode 100644 index 000000000..b0eccb65c --- /dev/null +++ b/src/icons/page_find.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/page_foreign_key.png b/src/icons/page_foreign_key.png deleted file mode 100644 index 62dc6d42d..000000000 Binary files a/src/icons/page_foreign_key.png and /dev/null differ diff --git a/src/icons/page_green.png b/src/icons/page_green.png deleted file mode 100644 index de8e003f9..000000000 Binary files a/src/icons/page_green.png and /dev/null differ diff --git a/src/icons/page_green.svg b/src/icons/page_green.svg new file mode 100644 index 000000000..f56563b11 --- /dev/null +++ b/src/icons/page_green.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/page_key.png b/src/icons/page_key.png deleted file mode 100644 index d6626cb09..000000000 Binary files a/src/icons/page_key.png and /dev/null differ diff --git a/src/icons/page_key.svg b/src/icons/page_key.svg new file mode 100644 index 000000000..82ac955e1 --- /dev/null +++ b/src/icons/page_key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/page_link.svg b/src/icons/page_link.svg new file mode 100644 index 000000000..fc4eea23b --- /dev/null +++ b/src/icons/page_link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/page_paintbrush.png b/src/icons/page_paintbrush.png deleted file mode 100644 index 246a2f0b4..000000000 Binary files a/src/icons/page_paintbrush.png and /dev/null differ diff --git a/src/icons/page_paste.png b/src/icons/page_paste.png deleted file mode 100644 index 968f073fd..000000000 Binary files a/src/icons/page_paste.png and /dev/null differ diff --git a/src/icons/page_paste.svg b/src/icons/page_paste.svg new file mode 100644 index 000000000..9d44b1b16 --- /dev/null +++ b/src/icons/page_paste.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/page_save.png b/src/icons/page_save.png deleted file mode 100644 index caea546af..000000000 Binary files a/src/icons/page_save.png and /dev/null differ diff --git a/src/icons/page_save.svg b/src/icons/page_save.svg new file mode 100644 index 000000000..42f7a12bf --- /dev/null +++ b/src/icons/page_save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/page_white_color.svg b/src/icons/page_white_color.svg new file mode 100644 index 000000000..de305e43d --- /dev/null +++ b/src/icons/page_white_color.svg @@ -0,0 +1,86 @@ + + + + White Page Color + White Page Color + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/page_white_copy.png b/src/icons/page_white_copy.png deleted file mode 100644 index a9f31a278..000000000 Binary files a/src/icons/page_white_copy.png and /dev/null differ diff --git a/src/icons/page_white_copy.svg b/src/icons/page_white_copy.svg new file mode 100644 index 000000000..f49900b06 --- /dev/null +++ b/src/icons/page_white_copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/page_white_database.png b/src/icons/page_white_database.png deleted file mode 100644 index bddba1f98..000000000 Binary files a/src/icons/page_white_database.png and /dev/null differ diff --git a/src/icons/page_white_database.svg b/src/icons/page_white_database.svg new file mode 100644 index 000000000..632cc2ad9 --- /dev/null +++ b/src/icons/page_white_database.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/page_white_text.png b/src/icons/page_white_text.png deleted file mode 100644 index 813f712f7..000000000 Binary files a/src/icons/page_white_text.png and /dev/null differ diff --git a/src/icons/page_white_text.svg b/src/icons/page_white_text.svg new file mode 100644 index 000000000..ca5950b3b --- /dev/null +++ b/src/icons/page_white_text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/picture.png b/src/icons/picture.png deleted file mode 100644 index 4a158fef7..000000000 Binary files a/src/icons/picture.png and /dev/null differ diff --git a/src/icons/picture.svg b/src/icons/picture.svg new file mode 100644 index 000000000..608ab8412 --- /dev/null +++ b/src/icons/picture.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/picture_add.png b/src/icons/picture_add.png deleted file mode 100644 index d6d3f8564..000000000 Binary files a/src/icons/picture_add.png and /dev/null differ diff --git a/src/icons/picture_add.svg b/src/icons/picture_add.svg new file mode 100644 index 000000000..98c1c4cda --- /dev/null +++ b/src/icons/picture_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/picture_delete.png b/src/icons/picture_delete.png deleted file mode 100644 index cca9f535d..000000000 Binary files a/src/icons/picture_delete.png and /dev/null differ diff --git a/src/icons/picture_delete.svg b/src/icons/picture_delete.svg new file mode 100644 index 000000000..f8a239fb8 --- /dev/null +++ b/src/icons/picture_delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/picture_edit.png b/src/icons/picture_edit.png deleted file mode 100644 index 9a70c3499..000000000 Binary files a/src/icons/picture_edit.png and /dev/null differ diff --git a/src/icons/picture_edit.svg b/src/icons/picture_edit.svg new file mode 100644 index 000000000..c87ce242b --- /dev/null +++ b/src/icons/picture_edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/picture_save.png b/src/icons/picture_save.png deleted file mode 100644 index 777fb5d2e..000000000 Binary files a/src/icons/picture_save.png and /dev/null differ diff --git a/src/icons/picture_save.svg b/src/icons/picture_save.svg new file mode 100644 index 000000000..af8f848e5 --- /dev/null +++ b/src/icons/picture_save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/plugin_add.png b/src/icons/plugin_add.png deleted file mode 100644 index ae43690ec..000000000 Binary files a/src/icons/plugin_add.png and /dev/null differ diff --git a/src/icons/plugin_add.svg b/src/icons/plugin_add.svg new file mode 100644 index 000000000..b416e14ce --- /dev/null +++ b/src/icons/plugin_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/plugin_delete.png b/src/icons/plugin_delete.png deleted file mode 100644 index d9c3376d4..000000000 Binary files a/src/icons/plugin_delete.png and /dev/null differ diff --git a/src/icons/plugin_delete.svg b/src/icons/plugin_delete.svg new file mode 100644 index 000000000..a2e2d8ac2 --- /dev/null +++ b/src/icons/plugin_delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/printer.png b/src/icons/printer.png deleted file mode 100644 index a350d1871..000000000 Binary files a/src/icons/printer.png and /dev/null differ diff --git a/src/icons/printer.svg b/src/icons/printer.svg new file mode 100644 index 000000000..56b5787b4 --- /dev/null +++ b/src/icons/printer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/resultset_first.png b/src/icons/resultset_first.png deleted file mode 100644 index b03eaf8b5..000000000 Binary files a/src/icons/resultset_first.png and /dev/null differ diff --git a/src/icons/resultset_first.svg b/src/icons/resultset_first.svg new file mode 100644 index 000000000..2aaef03de --- /dev/null +++ b/src/icons/resultset_first.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/resultset_last.png b/src/icons/resultset_last.png deleted file mode 100644 index 8ec894784..000000000 Binary files a/src/icons/resultset_last.png and /dev/null differ diff --git a/src/icons/resultset_last.svg b/src/icons/resultset_last.svg new file mode 100644 index 000000000..129e02a8a --- /dev/null +++ b/src/icons/resultset_last.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/resultset_next.png b/src/icons/resultset_next.png deleted file mode 100644 index e252606d3..000000000 Binary files a/src/icons/resultset_next.png and /dev/null differ diff --git a/src/icons/resultset_next.svg b/src/icons/resultset_next.svg new file mode 100644 index 000000000..901b7562d --- /dev/null +++ b/src/icons/resultset_next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/resultset_previous.png b/src/icons/resultset_previous.png deleted file mode 100644 index 18f9cc109..000000000 Binary files a/src/icons/resultset_previous.png and /dev/null differ diff --git a/src/icons/resultset_previous.svg b/src/icons/resultset_previous.svg new file mode 100644 index 000000000..f5be28d4b --- /dev/null +++ b/src/icons/resultset_previous.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/save_all.png b/src/icons/save_all.png deleted file mode 100644 index 14e2a7c0b..000000000 Binary files a/src/icons/save_all.png and /dev/null differ diff --git a/src/icons/script.png b/src/icons/script.png deleted file mode 100644 index 0f9ed4d48..000000000 Binary files a/src/icons/script.png and /dev/null differ diff --git a/src/icons/script.svg b/src/icons/script.svg new file mode 100644 index 000000000..aaf5e38c0 --- /dev/null +++ b/src/icons/script.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/script_add.png b/src/icons/script_add.png deleted file mode 100644 index d650552d9..000000000 Binary files a/src/icons/script_add.png and /dev/null differ diff --git a/src/icons/script_add.svg b/src/icons/script_add.svg new file mode 100644 index 000000000..5e92d6d06 --- /dev/null +++ b/src/icons/script_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/script_copy.svg b/src/icons/script_copy.svg new file mode 100644 index 000000000..a8438014e --- /dev/null +++ b/src/icons/script_copy.svg @@ -0,0 +1,180 @@ + + + + + + image/svg+xml + + Script + + + + + + + + + + + + + + + Script + Script + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/script_delete.png b/src/icons/script_delete.png deleted file mode 100644 index e6500ced7..000000000 Binary files a/src/icons/script_delete.png and /dev/null differ diff --git a/src/icons/script_delete.svg b/src/icons/script_delete.svg new file mode 100644 index 000000000..2b8ac16cc --- /dev/null +++ b/src/icons/script_delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/script_edit.png b/src/icons/script_edit.png deleted file mode 100644 index b4d31ce28..000000000 Binary files a/src/icons/script_edit.png and /dev/null differ diff --git a/src/icons/script_edit.svg b/src/icons/script_edit.svg new file mode 100644 index 000000000..8f938a304 --- /dev/null +++ b/src/icons/script_edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/script_link.svg b/src/icons/script_link.svg new file mode 100644 index 000000000..ef3fb8541 --- /dev/null +++ b/src/icons/script_link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/server_add.png b/src/icons/server_add.png deleted file mode 100644 index 3f10a3a9f..000000000 Binary files a/src/icons/server_add.png and /dev/null differ diff --git a/src/icons/server_add.svg b/src/icons/server_add.svg new file mode 100644 index 000000000..595fff31b --- /dev/null +++ b/src/icons/server_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/server_go.png b/src/icons/server_go.png deleted file mode 100644 index 540c8e268..000000000 Binary files a/src/icons/server_go.png and /dev/null differ diff --git a/src/icons/server_go.svg b/src/icons/server_go.svg new file mode 100644 index 000000000..4609516a6 --- /dev/null +++ b/src/icons/server_go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/style.png b/src/icons/style.png deleted file mode 100644 index 81e41de7d..000000000 Binary files a/src/icons/style.png and /dev/null differ diff --git a/src/icons/style_add.png b/src/icons/style_add.png deleted file mode 100644 index e0369c6be..000000000 Binary files a/src/icons/style_add.png and /dev/null differ diff --git a/src/icons/style_delete.png b/src/icons/style_delete.png deleted file mode 100644 index 640f187ec..000000000 Binary files a/src/icons/style_delete.png and /dev/null differ diff --git a/src/icons/style_edit.png b/src/icons/style_edit.png deleted file mode 100644 index 25bb5b677..000000000 Binary files a/src/icons/style_edit.png and /dev/null differ diff --git a/src/icons/tab.png b/src/icons/tab.png deleted file mode 100644 index 3d8207fd7..000000000 Binary files a/src/icons/tab.png and /dev/null differ diff --git a/src/icons/tab.svg b/src/icons/tab.svg new file mode 100644 index 000000000..dd926f92c --- /dev/null +++ b/src/icons/tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/tab_add.png b/src/icons/tab_add.png deleted file mode 100644 index d3b99364a..000000000 Binary files a/src/icons/tab_add.png and /dev/null differ diff --git a/src/icons/tab_add.svg b/src/icons/tab_add.svg new file mode 100644 index 000000000..b76986388 --- /dev/null +++ b/src/icons/tab_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/table.png b/src/icons/table.png deleted file mode 100644 index abcd93689..000000000 Binary files a/src/icons/table.png and /dev/null differ diff --git a/src/icons/table.svg b/src/icons/table.svg new file mode 100644 index 000000000..0ff696d2c --- /dev/null +++ b/src/icons/table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/table_add.png b/src/icons/table_add.png deleted file mode 100644 index 2a3e5c4df..000000000 Binary files a/src/icons/table_add.png and /dev/null differ diff --git a/src/icons/table_add.svg b/src/icons/table_add.svg new file mode 100644 index 000000000..5a246ee5d --- /dev/null +++ b/src/icons/table_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/table_delete.png b/src/icons/table_delete.png deleted file mode 100644 index b85916d92..000000000 Binary files a/src/icons/table_delete.png and /dev/null differ diff --git a/src/icons/table_delete.svg b/src/icons/table_delete.svg new file mode 100644 index 000000000..27c3663fb --- /dev/null +++ b/src/icons/table_delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/table_edit.png b/src/icons/table_edit.png deleted file mode 100644 index bfcb0249a..000000000 Binary files a/src/icons/table_edit.png and /dev/null differ diff --git a/src/icons/table_edit.svg b/src/icons/table_edit.svg new file mode 100644 index 000000000..bc95ba8ba --- /dev/null +++ b/src/icons/table_edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/table_key.svg b/src/icons/table_key.svg new file mode 100644 index 000000000..fa36a245b --- /dev/null +++ b/src/icons/table_key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/table_row_delete.png b/src/icons/table_row_delete.png deleted file mode 100644 index d52c57e0d..000000000 Binary files a/src/icons/table_row_delete.png and /dev/null differ diff --git a/src/icons/table_row_delete.svg b/src/icons/table_row_delete.svg new file mode 100644 index 000000000..28c28c06a --- /dev/null +++ b/src/icons/table_row_delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/table_row_insert.png b/src/icons/table_row_insert.png deleted file mode 100644 index cfbfc7535..000000000 Binary files a/src/icons/table_row_insert.png and /dev/null differ diff --git a/src/icons/table_row_insert.svg b/src/icons/table_row_insert.svg new file mode 100644 index 000000000..a8911fade --- /dev/null +++ b/src/icons/table_row_insert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/table_save.png b/src/icons/table_save.png deleted file mode 100644 index 25b74d18f..000000000 Binary files a/src/icons/table_save.png and /dev/null differ diff --git a/src/icons/table_save.svg b/src/icons/table_save.svg new file mode 100644 index 000000000..65a8afbb6 --- /dev/null +++ b/src/icons/table_save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/tag_blue.png b/src/icons/tag_blue.png deleted file mode 100644 index 9757fc6ed..000000000 Binary files a/src/icons/tag_blue.png and /dev/null differ diff --git a/src/icons/tag_blue.svg b/src/icons/tag_blue.svg new file mode 100644 index 000000000..bf9bcc000 --- /dev/null +++ b/src/icons/tag_blue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/tag_blue_add.png b/src/icons/tag_blue_add.png deleted file mode 100644 index f135248f8..000000000 Binary files a/src/icons/tag_blue_add.png and /dev/null differ diff --git a/src/icons/tag_blue_add.svg b/src/icons/tag_blue_add.svg new file mode 100644 index 000000000..11d195a27 --- /dev/null +++ b/src/icons/tag_blue_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/tag_blue_delete.png b/src/icons/tag_blue_delete.png deleted file mode 100644 index 9fbae6725..000000000 Binary files a/src/icons/tag_blue_delete.png and /dev/null differ diff --git a/src/icons/tag_blue_delete.svg b/src/icons/tag_blue_delete.svg new file mode 100644 index 000000000..8a400633d --- /dev/null +++ b/src/icons/tag_blue_delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/tag_blue_edit.png b/src/icons/tag_blue_edit.png deleted file mode 100644 index 2a9f6266e..000000000 Binary files a/src/icons/tag_blue_edit.png and /dev/null differ diff --git a/src/icons/tag_blue_edit.svg b/src/icons/tag_blue_edit.svg new file mode 100644 index 000000000..1cbcf72a0 --- /dev/null +++ b/src/icons/tag_blue_edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/text_align_center.png b/src/icons/text_align_center.png deleted file mode 100644 index 57beb3813..000000000 Binary files a/src/icons/text_align_center.png and /dev/null differ diff --git a/src/icons/text_align_center.svg b/src/icons/text_align_center.svg new file mode 100644 index 000000000..f19046123 --- /dev/null +++ b/src/icons/text_align_center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/text_align_justify.png b/src/icons/text_align_justify.png deleted file mode 100644 index 2fbdd6920..000000000 Binary files a/src/icons/text_align_justify.png and /dev/null differ diff --git a/src/icons/text_align_justify.svg b/src/icons/text_align_justify.svg new file mode 100644 index 000000000..f5e0d738f --- /dev/null +++ b/src/icons/text_align_justify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/text_align_left.png b/src/icons/text_align_left.png deleted file mode 100644 index 6c8fcc116..000000000 Binary files a/src/icons/text_align_left.png and /dev/null differ diff --git a/src/icons/text_align_left.svg b/src/icons/text_align_left.svg new file mode 100644 index 000000000..6bb6b2ffd --- /dev/null +++ b/src/icons/text_align_left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/text_align_right.png b/src/icons/text_align_right.png deleted file mode 100644 index a1502571c..000000000 Binary files a/src/icons/text_align_right.png and /dev/null differ diff --git a/src/icons/text_align_right.svg b/src/icons/text_align_right.svg new file mode 100644 index 000000000..320945361 --- /dev/null +++ b/src/icons/text_align_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/text_bold.png b/src/icons/text_bold.png deleted file mode 100644 index 889ae80e3..000000000 Binary files a/src/icons/text_bold.png and /dev/null differ diff --git a/src/icons/text_bold.svg b/src/icons/text_bold.svg new file mode 100644 index 000000000..e75c7fe2a --- /dev/null +++ b/src/icons/text_bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/text_indent.png b/src/icons/text_indent.png deleted file mode 100644 index 936453234..000000000 Binary files a/src/icons/text_indent.png and /dev/null differ diff --git a/src/icons/text_italic.png b/src/icons/text_italic.png deleted file mode 100644 index 8482ac8cb..000000000 Binary files a/src/icons/text_italic.png and /dev/null differ diff --git a/src/icons/text_italic.svg b/src/icons/text_italic.svg new file mode 100644 index 000000000..caa4f3eb1 --- /dev/null +++ b/src/icons/text_italic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/text_padding_left.svg b/src/icons/text_padding_left.svg new file mode 100644 index 000000000..7546633cb --- /dev/null +++ b/src/icons/text_padding_left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/text_padding_top.svg b/src/icons/text_padding_top.svg new file mode 100644 index 000000000..37dc74939 --- /dev/null +++ b/src/icons/text_padding_top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/text_paintbrush.png b/src/icons/text_paintbrush.png deleted file mode 100644 index 61876930c..000000000 Binary files a/src/icons/text_paintbrush.png and /dev/null differ diff --git a/src/icons/text_replace.png b/src/icons/text_replace.png deleted file mode 100644 index 877f82fea..000000000 Binary files a/src/icons/text_replace.png and /dev/null differ diff --git a/src/icons/text_underline.png b/src/icons/text_underline.png deleted file mode 100644 index 90d0df286..000000000 Binary files a/src/icons/text_underline.png and /dev/null differ diff --git a/src/icons/text_underlined.svg b/src/icons/text_underlined.svg new file mode 100644 index 000000000..df2c8f047 --- /dev/null +++ b/src/icons/text_underlined.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/textfield_delete.png b/src/icons/textfield_delete.png deleted file mode 100644 index c7bd58b21..000000000 Binary files a/src/icons/textfield_delete.png and /dev/null differ diff --git a/src/icons/textfield_delete.svg b/src/icons/textfield_delete.svg new file mode 100644 index 000000000..56494b9c0 --- /dev/null +++ b/src/icons/textfield_delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/view-refresh.png b/src/icons/view-refresh.png deleted file mode 100644 index 3fd71d6e5..000000000 Binary files a/src/icons/view-refresh.png and /dev/null differ diff --git a/src/icons/wrench.png b/src/icons/wrench.png deleted file mode 100644 index 5c8213fef..000000000 Binary files a/src/icons/wrench.png and /dev/null differ diff --git a/src/icons/wrench.svg b/src/icons/wrench.svg new file mode 100644 index 000000000..449acdc97 --- /dev/null +++ b/src/icons/wrench.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index ab83c9aa9..8ec3acecc 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,9 +1,9 @@ + #include "Application.h" #include "sqlite.h" - #include -static QMessageBox* messageBox = nullptr; +static QString message = QString(); void db4sMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) { @@ -14,7 +14,7 @@ void db4sMessageOutput(QtMsgType type, const QMessageLogContext &context, const const char *file = context.file ? context.file : ""; const char *function = context.function ? context.function : ""; - localMsg = QString("%1 (%2, %3:%4)\n").arg(msg).arg(function).arg(file).arg(context.line).toLocal8Bit(); + localMsg = QString("%1 (%2, %3:%4)\n").arg(msg, function, file).arg(context.line).toLocal8Bit(); // Log using the SQLite log mechanism, so it gets the same treatment than messages // reported by SQLite itself. This will allow these messages to be seen in our Log window. @@ -24,18 +24,18 @@ void db4sMessageOutput(QtMsgType type, const QMessageLogContext &context, const void boxMessageOutput(QtMsgType, const QMessageLogContext &, const QString &msg) { - if (!messageBox) - messageBox = new QMessageBox(); - - messageBox->setText(messageBox->text() + msg + "\n"); - - if (!messageBox->isVisible()) - messageBox->show(); + message += msg + "\n"; } int main( int argc, char ** argv ) { - +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + QApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true); +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) + QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); +#endif +#endif + QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps, true); #ifdef Q_OS_WIN // In Windows, there is no output to terminal for a graphical application, so we install // the output to message box, until the main window is shown or the application exits. @@ -45,12 +45,16 @@ int main( int argc, char ** argv ) // Create application object. All the initialisation stuff happens in there Application a(argc, argv); - // If there has been output in the message box, let user see it. - if(messageBox && messageBox->isVisible()) - messageBox->exec(); + // If there has been invocations to the message handler, show it to user in a message box. + if(!message.isEmpty()) { + QMessageBox messageBox; + messageBox.setTextFormat(Qt::RichText); + messageBox.setText("
    " + message.toHtmlEscaped() + "
    "); + messageBox.exec(); + } // Quit application now if user doesn't want to see the UI - if(a.dontShowMainWindow()) + if(!a.showMainWindow()) return 0; qInstallMessageHandler(db4sMessageOutput); diff --git a/src/qdarkstyle/LICENSE.md b/src/qdarkstyle/LICENSE.md deleted file mode 100644 index f8714d070..000000000 --- a/src/qdarkstyle/LICENSE.md +++ /dev/null @@ -1,185 +0,0 @@ -# License - -This is the license of [QDarkStyleSheet](https://github.com/ColinDuquesnoy/QDarkStyleSheet). - -## The MIT License (MIT) - Code - -Copyright (c) 2013-2018 Colin Duquesnoy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -## Creative Commons Attribution International 4.0 - Images - -QDarkStyle (c) 2013-2018 Colin Duquesnoy - -Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. - -### Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. - -* __Considerations for licensors:__ Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. [More considerations for licensors](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensors). - -* __Considerations for the public:__ By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. [More considerations for the public](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensees). - -## Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. - -### Section 1 – Definitions - -a. __Adapted Material__ means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. - -b. __Adapter's License__ means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. - -c. __Copyright and Similar Rights__ means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. - -d. __Effective Technological Measures__ means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. - -e. __Exceptions and Limitations__ means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. - -f. __Licensed Material__ means the artistic or literary work, database, or other material to which the Licensor applied this Public License. - -g. __Licensed Rights__ means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. - -h. __Licensor__ means the individual(s) or entity(ies) granting rights under this Public License. - -i. __Share__ means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. - -j. __Sui Generis Database Rights__ means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. - -k. __You__ means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. - -### Section 2 – Scope - -a. ___License grant.___ - - 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: - - A. reproduce and Share the Licensed Material, in whole or in part; and - - B. produce, reproduce, and Share Adapted Material. - - 2. __Exceptions and Limitations.__ For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. - - 3. __Term.__ The term of this Public License is specified in Section 6(a). - - 4. __Media and formats; technical modifications allowed.__ The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. - - 5. __Downstream recipients.__ - - A. __Offer from the Licensor – Licensed Material.__ Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. - - B. __No downstream restrictions.__ You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. - - 6. __No endorsement.__ Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). - -b. ___Other rights.___ - - 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. - - 2. Patent and trademark rights are not licensed under this Public License. - - 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. - -### Section 3 – License Conditions - -Your exercise of the Licensed Rights is expressly made subject to the following conditions. - -a. ___Attribution.___ - - 1. If You Share the Licensed Material (including in modified form), You must: - - A. retain the following if it is supplied by the Licensor with the Licensed Material: - - i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); - - ii. a copyright notice; - - iii. a notice that refers to this Public License; - - iv. a notice that refers to the disclaimer of warranties; - - v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; - - B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and - - C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. - - 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. - - 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. - - 4. If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License. - -### Section 4 – Sui Generis Database Rights - -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: - -a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; - -b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and - -c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. - -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. - -### Section 5 – Disclaimer of Warranties and Limitation of Liability - -a. __Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.__ - -b. __To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.__ - -c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. - -### Section 6 – Term and Termination - -a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. - -b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: - - 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or - - 2. upon express reinstatement by the Licensor. - - For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. - -c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. - -d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. - -### Section 7 – Other Terms and Conditions - -a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. - -b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. - -### Section 8 – Interpretation - -a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. - -b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. - -c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. - -d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. - -> Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at [creativecommons.org/policies](http://creativecommons.org/policies), Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. -> -> Creative Commons may be contacted at creativecommons.org diff --git a/src/qdarkstyle/LICENSE.rst b/src/qdarkstyle/LICENSE.rst new file mode 100644 index 000000000..e22b68735 --- /dev/null +++ b/src/qdarkstyle/LICENSE.rst @@ -0,0 +1,405 @@ +License +======= + +The MIT License (MIT) - Code +---------------------------- + +Copyright (c) 2013-2019 Colin Duquesnoy + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Creative Commons Attribution International 4.0 - Images +------------------------------------------------------- + +QDarkStyle (c) 2013-2019 Colin Duquesnoy +QDarkStyle (c) 2019-2019 Daniel Cosmo Pizetta + +Creative Commons Corporation (“Creative Commons”) is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an “as-is” basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright and +certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + +- **Considerations for licensors:** Our public licenses are intended + for use by those authorized to give the public permission to use + material in ways otherwise restricted by copyright and certain other + rights. Our licenses are irrevocable. Licensors should read and + understand the terms and conditions of the license they choose before + applying it. Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the material as + expected. Licensors should clearly mark any material not subject to + the license. This includes other CC-licensed material, or material + used under an exception or limitation to copyright. `More + considerations for + licensors `__. + +- **Considerations for the public:** By using one of our public + licenses, a licensor grants the public permission to use the licensed + material under specified terms and conditions. If the licensor’s + permission is not necessary for any reason–for example, because of + any applicable exception or limitation to copyright–then that use is + not regulated by the license. Our licenses grant only permissions + under copyright and certain other rights that a licensor has + authority to grant. Use of the licensed material may still be + restricted for other reasons, including because others have copyright + or other rights in the material. A licensor may make special + requests, such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to respect + those requests where reasonable. `More considerations for the + public `__. + + +Creative Commons Attribution 4.0 International Public License +------------------------------------------------------------- + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of these +terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the Licensed +Material available under these terms and conditions. + +Section 1 – Definitions +~~~~~~~~~~~~~~~~~~~~~~~ + +a. **Adapted Material** means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material and + in which the Licensed Material is translated, altered, arranged, + transformed, or otherwise modified in a manner requiring permission + under the Copyright and Similar Rights held by the Licensor. For + purposes of this Public License, where the Licensed Material is a + musical work, performance, or sound recording, Adapted Material is + always produced where the Licensed Material is synched in timed + relation with a moving image. + +b. **Adapter's License** means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + +c. **Copyright and Similar Rights** means copyright and/or similar + rights closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or categorized. + For purposes of this Public License, the rights specified in Section + 2(b)(1)-(2) are not Copyright and Similar Rights. + +d. **Effective Technological Measures** means those measures that, in + the absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright Treaty + adopted on December 20, 1996, and/or similar international + agreements. + +e. **Exceptions and Limitations** means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + +f. **Licensed Material** means the artistic or literary work, database, + or other material to which the Licensor applied this Public License. + +g. **Licensed Rights** means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to all + Copyright and Similar Rights that apply to Your use of the Licensed + Material and that the Licensor has authority to license. + +h. **Licensor** means the individual(s) or entity(ies) granting rights + under this Public License. + +i. **Share** means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such as + reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the public + may access the material from a place and at a time individually + chosen by them. + +j. **Sui Generis Database Rights** means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, as + amended and/or succeeded, as well as other essentially equivalent + rights anywhere in the world. + +k. **You** means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + +Section 2 – Scope +~~~~~~~~~~~~~~~~~ + +a. **License grant.** + +1. Subject to the terms and conditions of this Public License, the + Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to exercise the + Licensed Rights in the Licensed Material to: + + A. reproduce and Share the Licensed Material, in whole or in part; + and + + B. produce, reproduce, and Share Adapted Material. + +2. **Exceptions and Limitations.** For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public License + does not apply, and You do not need to comply with its terms and + conditions. + +3. **Term.** The term of this Public License is specified in Section + 6(a). + +4. **Media and formats; technical modifications allowed.** The Licensor + authorizes You to exercise the Licensed Rights in all media and + formats whether now known or hereafter created, and to make technical + modifications necessary to do so. The Licensor waives and/or agrees + not to assert any right or authority to forbid You from making + technical modifications necessary to exercise the Licensed Rights, + including technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, simply + making modifications authorized by this Section 2(a)(4) never + produces Adapted Material. + +5. **Downstream recipients.** + + A. **Offer from the Licensor – Licensed Material.** Every recipient + of the Licensed Material automatically receives an offer from the + Licensor to exercise the Licensed Rights under the terms and + conditions of this Public License. + + B. **No downstream restrictions.** You may not offer or impose any + additional or different terms or conditions on, or apply any + Effective Technological Measures to, the Licensed Material if doing + so restricts exercise of the Licensed Rights by any recipient of the + Licensed Material. + +6. **No endorsement.** Nothing in this Public License constitutes or may + be construed as permission to assert or imply that You are, or that + Your use of the Licensed Material is, connected with, or sponsored, + endorsed, or granted official status by, the Licensor or others + designated to receive attribution as provided in Section + 3(a)(1)(A)(i). + +b. **Other rights.** + +1. Moral rights, such as the right of integrity, are not licensed under + this Public License, nor are publicity, privacy, and/or other similar + personality rights; however, to the extent possible, the Licensor + waives and/or agrees not to assert any such rights held by the + Licensor to the limited extent necessary to allow You to exercise the + Licensed Rights, but not otherwise. + +2. Patent and trademark rights are not licensed under this Public + License. + +3. To the extent possible, the Licensor waives any right to collect + royalties from You for the exercise of the Licensed Rights, whether + directly or through a collecting society under any voluntary or + waivable statutory or compulsory licensing scheme. In all other cases + the Licensor expressly reserves any right to collect such royalties. + +Section 3 – License Conditions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + +a. **Attribution.** + +1. If You Share the Licensed Material (including in modified form), You + must: + + A. retain the following if it is supplied by the Licensor with the + Licensed Material: + + i. identification of the creator(s) of the Licensed Material and any + others designated to receive attribution, in any reasonable manner + requested by the Licensor (including by pseudonym if designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of warranties; + + v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; + + B. indicate if You modified the Licensed Material and retain an + indication of any previous modifications; and + + C. indicate the Licensed Material is licensed under this Public + License, and include the text of, or the URI or hyperlink to, this + Public License. + +2. You may satisfy the conditions in Section 3(a)(1) in any reasonable + manner based on the medium, means, and context in which You Share the + Licensed Material. For example, it may be reasonable to satisfy the + conditions by providing a URI or hyperlink to a resource that + includes the required information. + +3. If requested by the Licensor, You must remove any of the information + required by Section 3(a)(1)(A) to the extent reasonably practicable. + +4. If You Share Adapted Material You produce, the Adapter's License You + apply must not prevent recipients of the Adapted Material from + complying with this Public License. + +Section 4 – Sui Generis Database Rights +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Where the Licensed Rights include Sui Generis Database Rights that apply +to Your use of the Licensed Material: + +a. for the avoidance of doubt, Section 2(a)(1) grants You the right to + extract, reuse, reproduce, and Share all or a substantial portion of + the contents of the database; + +b. if You include all or a substantial portion of the database contents + in a database in which You have Sui Generis Database Rights, then the + database in which You have Sui Generis Database Rights (but not its + individual contents) is Adapted Material; and + +c. You must comply with the conditions in Section 3(a) if You Share all + or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + +Section 5 – Disclaimer of Warranties and Limitation of Liability +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +a. Unless otherwise separately undertaken by the Licensor, to the + extent possible, the Licensor offers the Licensed Material as-is and + as-available, and makes no representations or warranties of any kind + concerning the Licensed Material, whether express, implied, + statutory, or other. This includes, without limitation, warranties of + title, merchantability, fitness for a particular purpose, + non-infringement, absence of latent or other defects, accuracy, or + the presence or absence of errors, whether or not known or + discoverable. Where disclaimers of warranties are not allowed in full + or in part, this disclaimer may not apply to You. + +b. To the extent possible, in no event will the Licensor be liable to + You on any legal theory (including, without limitation, negligence) + or otherwise for any direct, special, indirect, incidental, + consequential, punitive, exemplary, or other losses, costs, expenses, + or damages arising out of this Public License or use of the Licensed + Material, even if the Licensor has been advised of the possibility of + such losses, costs, expenses, or damages. Where a limitation of + liability is not allowed in full or in part, this limitation may not + apply to You. + +c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent possible, + most closely approximates an absolute disclaimer and waiver of all + liability. + +Section 6 – Term and Termination +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +a. This Public License applies for the term of the Copyright and Similar + Rights licensed here. However, if You fail to comply with this Public + License, then Your rights under this Public License terminate + automatically. + +b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + +1. automatically as of the date the violation is cured, provided it is + cured within 30 days of Your discovery of the violation; or + +2. upon express reinstatement by the Licensor. + +For the avoidance of doubt, this Section 6(b) does not affect any right +the Licensor may have to seek remedies for Your violations of this +Public License. + +c. For the avoidance of doubt, the Licensor may also offer the Licensed + Material under separate terms or conditions or stop distributing the + Licensed Material at any time; however, doing so will not terminate + this Public License. + +d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + +Section 7 – Other Terms and Conditions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +a. The Licensor shall not be bound by any additional or different terms + or conditions communicated by You unless expressly agreed. + +b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and independent + of the terms and conditions of this Public License. + +Section 8 – Interpretation +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +a. For the avoidance of doubt, this Public License does not, and shall + not be interpreted to, reduce, limit, restrict, or impose conditions + on any use of the Licensed Material that could lawfully be made + without permission under this Public License. + +b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + +c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + +d. Nothing in this Public License constitutes or may be interpreted as a + limitation upon, or waiver of, any privileges and immunities that + apply to the Licensor or You, including from the legal processes of + any jurisdiction or authority. + + Creative Commons is not a party to its public licenses. + Notwithstanding, Creative Commons may elect to apply one of its + public licenses to material it publishes and in those instances will + be considered the “Licensor.” Except for the limited purpose of + indicating that material is shared under a Creative Commons public + license or as otherwise permitted by the Creative Commons policies + published at + `creativecommons.org/policies `__, + Creative Commons does not authorize the use of the trademark + “Creative Commons” or any other trademark or logo of Creative + Commons without its prior written consent including, without + limitation, in connection with any unauthorized modifications to any + of its public licenses or any other arrangements, understandings, or + agreements concerning use of licensed material. For the avoidance of + doubt, this paragraph does not form part of the public licenses. + + Creative Commons may be contacted at creativecommons.org diff --git a/src/qdarkstyle/dark/_variables.scss b/src/qdarkstyle/dark/_variables.scss new file mode 100644 index 000000000..d8f1bbedc --- /dev/null +++ b/src/qdarkstyle/dark/_variables.scss @@ -0,0 +1,33 @@ +// --------------------------------------------------------------------------- +// +// WARNING! File created programmatically. All changes made in this file will be lost! +// +// Created by the qtsass compiler v0.3.0 +// +// The definitions are in the "qdarkstyle.palette" module +// +//---------------------------------------------------------------------------- +$ID: 'dark'; +$COLOR_BACKGROUND_6: #60798B; +$COLOR_BACKGROUND_5: #54687A; +$COLOR_BACKGROUND_4: #455364; +$COLOR_BACKGROUND_2: #293544; +$COLOR_BACKGROUND_3: #37414F; +$COLOR_BACKGROUND_1: #19232D; +$COLOR_TEXT_1: #E0E1E3; +$COLOR_TEXT_2: #C9CDD0; +$COLOR_TEXT_3: #ACB1B6; +$COLOR_TEXT_4: #9DA9B5; +$COLOR_ACCENT_1: #26486B; +$COLOR_ACCENT_2: #346792; +$COLOR_ACCENT_3: #1A72BB; +$COLOR_ACCENT_4: #259AE9; +$OPACITY_TOOLTIP: 230; +$SIZE_BORDER_RADIUS: 4px; +$BORDER_1: 1px solid $COLOR_BACKGROUND_1; +$BORDER_2: 1px solid $COLOR_BACKGROUND_4; +$BORDER_3: 1px solid $COLOR_BACKGROUND_6; +$BORDER_SELECTION_3: 1px solid $COLOR_ACCENT_3; +$BORDER_SELECTION_2: 1px solid $COLOR_ACCENT_2; +$BORDER_SELECTION_1: 1px solid $COLOR_ACCENT_1; +$PATH_RESOURCES: ':/qss_icons'; diff --git a/src/qdarkstyle/dark/darkstyle.qrc b/src/qdarkstyle/dark/darkstyle.qrc new file mode 100644 index 000000000..d74dee00a --- /dev/null +++ b/src/qdarkstyle/dark/darkstyle.qrc @@ -0,0 +1,217 @@ + + + + rc/.keep + rc/arrow_down.png + rc/arrow_down@2x.png + rc/arrow_down_disabled.png + rc/arrow_down_disabled@2x.png + rc/arrow_down_focus.png + rc/arrow_down_focus@2x.png + rc/arrow_down_pressed.png + rc/arrow_down_pressed@2x.png + rc/arrow_left.png + rc/arrow_left@2x.png + rc/arrow_left_disabled.png + rc/arrow_left_disabled@2x.png + rc/arrow_left_focus.png + rc/arrow_left_focus@2x.png + rc/arrow_left_pressed.png + rc/arrow_left_pressed@2x.png + rc/arrow_right.png + rc/arrow_right@2x.png + rc/arrow_right_disabled.png + rc/arrow_right_disabled@2x.png + rc/arrow_right_focus.png + rc/arrow_right_focus@2x.png + rc/arrow_right_pressed.png + rc/arrow_right_pressed@2x.png + rc/arrow_up.png + rc/arrow_up@2x.png + rc/arrow_up_disabled.png + rc/arrow_up_disabled@2x.png + rc/arrow_up_focus.png + rc/arrow_up_focus@2x.png + rc/arrow_up_pressed.png + rc/arrow_up_pressed@2x.png + rc/base_icon.png + rc/base_icon@2x.png + rc/base_icon_disabled.png + rc/base_icon_disabled@2x.png + rc/base_icon_focus.png + rc/base_icon_focus@2x.png + rc/base_icon_pressed.png + rc/base_icon_pressed@2x.png + rc/branch_closed.png + rc/branch_closed@2x.png + rc/branch_closed_disabled.png + rc/branch_closed_disabled@2x.png + rc/branch_closed_focus.png + rc/branch_closed_focus@2x.png + rc/branch_closed_pressed.png + rc/branch_closed_pressed@2x.png + rc/branch_end.png + rc/branch_end@2x.png + rc/branch_end_disabled.png + rc/branch_end_disabled@2x.png + rc/branch_end_focus.png + rc/branch_end_focus@2x.png + rc/branch_end_pressed.png + rc/branch_end_pressed@2x.png + rc/branch_line.png + rc/branch_line@2x.png + rc/branch_line_disabled.png + rc/branch_line_disabled@2x.png + rc/branch_line_focus.png + rc/branch_line_focus@2x.png + rc/branch_line_pressed.png + rc/branch_line_pressed@2x.png + rc/branch_more.png + rc/branch_more@2x.png + rc/branch_more_disabled.png + rc/branch_more_disabled@2x.png + rc/branch_more_focus.png + rc/branch_more_focus@2x.png + rc/branch_more_pressed.png + rc/branch_more_pressed@2x.png + rc/branch_open.png + rc/branch_open@2x.png + rc/branch_open_disabled.png + rc/branch_open_disabled@2x.png + rc/branch_open_focus.png + rc/branch_open_focus@2x.png + rc/branch_open_pressed.png + rc/branch_open_pressed@2x.png + rc/checkbox_checked.png + rc/checkbox_checked@2x.png + rc/checkbox_checked_disabled.png + rc/checkbox_checked_disabled@2x.png + rc/checkbox_checked_focus.png + rc/checkbox_checked_focus@2x.png + rc/checkbox_checked_pressed.png + rc/checkbox_checked_pressed@2x.png + rc/checkbox_indeterminate.png + rc/checkbox_indeterminate@2x.png + rc/checkbox_indeterminate_disabled.png + rc/checkbox_indeterminate_disabled@2x.png + rc/checkbox_indeterminate_focus.png + rc/checkbox_indeterminate_focus@2x.png + rc/checkbox_indeterminate_pressed.png + rc/checkbox_indeterminate_pressed@2x.png + rc/checkbox_unchecked.png + rc/checkbox_unchecked@2x.png + rc/checkbox_unchecked_disabled.png + rc/checkbox_unchecked_disabled@2x.png + rc/checkbox_unchecked_focus.png + rc/checkbox_unchecked_focus@2x.png + rc/checkbox_unchecked_pressed.png + rc/checkbox_unchecked_pressed@2x.png + rc/line_horizontal.png + rc/line_horizontal@2x.png + rc/line_horizontal_disabled.png + rc/line_horizontal_disabled@2x.png + rc/line_horizontal_focus.png + rc/line_horizontal_focus@2x.png + rc/line_horizontal_pressed.png + rc/line_horizontal_pressed@2x.png + rc/line_vertical.png + rc/line_vertical@2x.png + rc/line_vertical_disabled.png + rc/line_vertical_disabled@2x.png + rc/line_vertical_focus.png + rc/line_vertical_focus@2x.png + rc/line_vertical_pressed.png + rc/line_vertical_pressed@2x.png + rc/radio_checked.png + rc/radio_checked@2x.png + rc/radio_checked_disabled.png + rc/radio_checked_disabled@2x.png + rc/radio_checked_focus.png + rc/radio_checked_focus@2x.png + rc/radio_checked_pressed.png + rc/radio_checked_pressed@2x.png + rc/radio_unchecked.png + rc/radio_unchecked@2x.png + rc/radio_unchecked_disabled.png + rc/radio_unchecked_disabled@2x.png + rc/radio_unchecked_focus.png + rc/radio_unchecked_focus@2x.png + rc/radio_unchecked_pressed.png + rc/radio_unchecked_pressed@2x.png + rc/toolbar_move_horizontal.png + rc/toolbar_move_horizontal@2x.png + rc/toolbar_move_horizontal_disabled.png + rc/toolbar_move_horizontal_disabled@2x.png + rc/toolbar_move_horizontal_focus.png + rc/toolbar_move_horizontal_focus@2x.png + rc/toolbar_move_horizontal_pressed.png + rc/toolbar_move_horizontal_pressed@2x.png + rc/toolbar_move_vertical.png + rc/toolbar_move_vertical@2x.png + rc/toolbar_move_vertical_disabled.png + rc/toolbar_move_vertical_disabled@2x.png + rc/toolbar_move_vertical_focus.png + rc/toolbar_move_vertical_focus@2x.png + rc/toolbar_move_vertical_pressed.png + rc/toolbar_move_vertical_pressed@2x.png + rc/toolbar_separator_horizontal.png + rc/toolbar_separator_horizontal@2x.png + rc/toolbar_separator_horizontal_disabled.png + rc/toolbar_separator_horizontal_disabled@2x.png + rc/toolbar_separator_horizontal_focus.png + rc/toolbar_separator_horizontal_focus@2x.png + rc/toolbar_separator_horizontal_pressed.png + rc/toolbar_separator_horizontal_pressed@2x.png + rc/toolbar_separator_vertical.png + rc/toolbar_separator_vertical@2x.png + rc/toolbar_separator_vertical_disabled.png + rc/toolbar_separator_vertical_disabled@2x.png + rc/toolbar_separator_vertical_focus.png + rc/toolbar_separator_vertical_focus@2x.png + rc/toolbar_separator_vertical_pressed.png + rc/toolbar_separator_vertical_pressed@2x.png + rc/transparent.png + rc/transparent@2x.png + rc/transparent_disabled.png + rc/transparent_disabled@2x.png + rc/transparent_focus.png + rc/transparent_focus@2x.png + rc/transparent_pressed.png + rc/transparent_pressed@2x.png + rc/window_close.png + rc/window_close@2x.png + rc/window_close_disabled.png + rc/window_close_disabled@2x.png + rc/window_close_focus.png + rc/window_close_focus@2x.png + rc/window_close_pressed.png + rc/window_close_pressed@2x.png + rc/window_grip.png + rc/window_grip@2x.png + rc/window_grip_disabled.png + rc/window_grip_disabled@2x.png + rc/window_grip_focus.png + rc/window_grip_focus@2x.png + rc/window_grip_pressed.png + rc/window_grip_pressed@2x.png + rc/window_minimize.png + rc/window_minimize@2x.png + rc/window_minimize_disabled.png + rc/window_minimize_disabled@2x.png + rc/window_minimize_focus.png + rc/window_minimize_focus@2x.png + rc/window_minimize_pressed.png + rc/window_minimize_pressed@2x.png + rc/window_undock.png + rc/window_undock@2x.png + rc/window_undock_disabled.png + rc/window_undock_disabled@2x.png + rc/window_undock_focus.png + rc/window_undock_focus@2x.png + rc/window_undock_pressed.png + rc/window_undock_pressed@2x.png + + + style.qss + + diff --git a/src/qdarkstyle/dark/main.scss b/src/qdarkstyle/dark/main.scss new file mode 100644 index 000000000..dc40bc521 --- /dev/null +++ b/src/qdarkstyle/dark/main.scss @@ -0,0 +1,4 @@ +/* Light Style - QDarkStyleSheet ------------------------------------------ */ + +@import '_variables'; +@import '../qss/_styles'; diff --git a/src/qdarkstyle/dark/rc/.keep b/src/qdarkstyle/dark/rc/.keep new file mode 100644 index 000000000..8d1c8b69c --- /dev/null +++ b/src/qdarkstyle/dark/rc/.keep @@ -0,0 +1 @@ + diff --git a/src/qdarkstyle/dark/rc/arrow_down.png b/src/qdarkstyle/dark/rc/arrow_down.png new file mode 100644 index 000000000..5575ab5ce Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_down.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_down@2x.png b/src/qdarkstyle/dark/rc/arrow_down@2x.png new file mode 100644 index 000000000..4596a5ce8 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_down@2x.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_down_disabled.png b/src/qdarkstyle/dark/rc/arrow_down_disabled.png new file mode 100644 index 000000000..bdf8c1abb Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_down_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_down_disabled@2x.png b/src/qdarkstyle/dark/rc/arrow_down_disabled@2x.png new file mode 100644 index 000000000..dc1bcb524 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_down_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_down_focus.png b/src/qdarkstyle/dark/rc/arrow_down_focus.png new file mode 100644 index 000000000..94fcdc359 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_down_focus.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_down_focus@2x.png b/src/qdarkstyle/dark/rc/arrow_down_focus@2x.png new file mode 100644 index 000000000..2b12f74d0 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_down_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_down_pressed.png b/src/qdarkstyle/dark/rc/arrow_down_pressed.png new file mode 100644 index 000000000..4058c58b3 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_down_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_down_pressed@2x.png b/src/qdarkstyle/dark/rc/arrow_down_pressed@2x.png new file mode 100644 index 000000000..d43b0affa Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_down_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_left.png b/src/qdarkstyle/dark/rc/arrow_left.png new file mode 100644 index 000000000..7fbc35065 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_left.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_left@2x.png b/src/qdarkstyle/dark/rc/arrow_left@2x.png new file mode 100644 index 000000000..dc649ca70 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_left@2x.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_left_disabled.png b/src/qdarkstyle/dark/rc/arrow_left_disabled.png new file mode 100644 index 000000000..fa3b282cc Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_left_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_left_disabled@2x.png b/src/qdarkstyle/dark/rc/arrow_left_disabled@2x.png new file mode 100644 index 000000000..87c928ea3 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_left_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_left_focus.png b/src/qdarkstyle/dark/rc/arrow_left_focus.png new file mode 100644 index 000000000..52a0d9102 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_left_focus.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_left_focus@2x.png b/src/qdarkstyle/dark/rc/arrow_left_focus@2x.png new file mode 100644 index 000000000..0ee702924 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_left_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_left_pressed.png b/src/qdarkstyle/dark/rc/arrow_left_pressed.png new file mode 100644 index 000000000..c04ce0943 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_left_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_left_pressed@2x.png b/src/qdarkstyle/dark/rc/arrow_left_pressed@2x.png new file mode 100644 index 000000000..02218c80d Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_left_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_right.png b/src/qdarkstyle/dark/rc/arrow_right.png new file mode 100644 index 000000000..fd31b4f2a Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_right.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_right@2x.png b/src/qdarkstyle/dark/rc/arrow_right@2x.png new file mode 100644 index 000000000..4dbc93120 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_right@2x.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_right_disabled.png b/src/qdarkstyle/dark/rc/arrow_right_disabled.png new file mode 100644 index 000000000..bb4cdb036 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_right_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_right_disabled@2x.png b/src/qdarkstyle/dark/rc/arrow_right_disabled@2x.png new file mode 100644 index 000000000..50f173096 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_right_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_right_focus.png b/src/qdarkstyle/dark/rc/arrow_right_focus.png new file mode 100644 index 000000000..9dd8f0f0b Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_right_focus.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_right_focus@2x.png b/src/qdarkstyle/dark/rc/arrow_right_focus@2x.png new file mode 100644 index 000000000..1ac9d5c9e Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_right_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_right_pressed.png b/src/qdarkstyle/dark/rc/arrow_right_pressed.png new file mode 100644 index 000000000..8ce10fcbe Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_right_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_right_pressed@2x.png b/src/qdarkstyle/dark/rc/arrow_right_pressed@2x.png new file mode 100644 index 000000000..86e3b9286 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_right_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_up.png b/src/qdarkstyle/dark/rc/arrow_up.png new file mode 100644 index 000000000..2ea571e47 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_up.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_up@2x.png b/src/qdarkstyle/dark/rc/arrow_up@2x.png new file mode 100644 index 000000000..51b1d7234 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_up@2x.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_up_disabled.png b/src/qdarkstyle/dark/rc/arrow_up_disabled.png new file mode 100644 index 000000000..146b65f16 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_up_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_up_disabled@2x.png b/src/qdarkstyle/dark/rc/arrow_up_disabled@2x.png new file mode 100644 index 000000000..cacee7f74 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_up_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_up_focus.png b/src/qdarkstyle/dark/rc/arrow_up_focus.png new file mode 100644 index 000000000..ab33162c7 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_up_focus.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_up_focus@2x.png b/src/qdarkstyle/dark/rc/arrow_up_focus@2x.png new file mode 100644 index 000000000..0c8ef33f4 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_up_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_up_pressed.png b/src/qdarkstyle/dark/rc/arrow_up_pressed.png new file mode 100644 index 000000000..c3368d096 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_up_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/arrow_up_pressed@2x.png b/src/qdarkstyle/dark/rc/arrow_up_pressed@2x.png new file mode 100644 index 000000000..a63819665 Binary files /dev/null and b/src/qdarkstyle/dark/rc/arrow_up_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/base_icon.png b/src/qdarkstyle/dark/rc/base_icon.png new file mode 100644 index 000000000..1aeed5554 Binary files /dev/null and b/src/qdarkstyle/dark/rc/base_icon.png differ diff --git a/src/qdarkstyle/dark/rc/base_icon@2x.png b/src/qdarkstyle/dark/rc/base_icon@2x.png new file mode 100644 index 000000000..f42fc6610 Binary files /dev/null and b/src/qdarkstyle/dark/rc/base_icon@2x.png differ diff --git a/src/qdarkstyle/dark/rc/base_icon_disabled.png b/src/qdarkstyle/dark/rc/base_icon_disabled.png new file mode 100644 index 000000000..1aeed5554 Binary files /dev/null and b/src/qdarkstyle/dark/rc/base_icon_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/base_icon_disabled@2x.png b/src/qdarkstyle/dark/rc/base_icon_disabled@2x.png new file mode 100644 index 000000000..f42fc6610 Binary files /dev/null and b/src/qdarkstyle/dark/rc/base_icon_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/base_icon_focus.png b/src/qdarkstyle/dark/rc/base_icon_focus.png new file mode 100644 index 000000000..1aeed5554 Binary files /dev/null and b/src/qdarkstyle/dark/rc/base_icon_focus.png differ diff --git a/src/qdarkstyle/dark/rc/base_icon_focus@2x.png b/src/qdarkstyle/dark/rc/base_icon_focus@2x.png new file mode 100644 index 000000000..f42fc6610 Binary files /dev/null and b/src/qdarkstyle/dark/rc/base_icon_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/base_icon_pressed.png b/src/qdarkstyle/dark/rc/base_icon_pressed.png new file mode 100644 index 000000000..1aeed5554 Binary files /dev/null and b/src/qdarkstyle/dark/rc/base_icon_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/base_icon_pressed@2x.png b/src/qdarkstyle/dark/rc/base_icon_pressed@2x.png new file mode 100644 index 000000000..f42fc6610 Binary files /dev/null and b/src/qdarkstyle/dark/rc/base_icon_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_closed.png b/src/qdarkstyle/dark/rc/branch_closed.png new file mode 100644 index 000000000..d484c324b Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_closed.png differ diff --git a/src/qdarkstyle/dark/rc/branch_closed@2x.png b/src/qdarkstyle/dark/rc/branch_closed@2x.png new file mode 100644 index 000000000..f49651b70 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_closed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_closed_disabled.png b/src/qdarkstyle/dark/rc/branch_closed_disabled.png new file mode 100644 index 000000000..aa622523c Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_closed_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/branch_closed_disabled@2x.png b/src/qdarkstyle/dark/rc/branch_closed_disabled@2x.png new file mode 100644 index 000000000..ac318f5b1 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_closed_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_closed_focus.png b/src/qdarkstyle/dark/rc/branch_closed_focus.png new file mode 100644 index 000000000..0a98eab66 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_closed_focus.png differ diff --git a/src/qdarkstyle/dark/rc/branch_closed_focus@2x.png b/src/qdarkstyle/dark/rc/branch_closed_focus@2x.png new file mode 100644 index 000000000..39fd0d0e2 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_closed_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_closed_pressed.png b/src/qdarkstyle/dark/rc/branch_closed_pressed.png new file mode 100644 index 000000000..049f4bfe5 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_closed_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/branch_closed_pressed@2x.png b/src/qdarkstyle/dark/rc/branch_closed_pressed@2x.png new file mode 100644 index 000000000..f58ae2238 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_closed_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_end.png b/src/qdarkstyle/dark/rc/branch_end.png new file mode 100644 index 000000000..210984565 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_end.png differ diff --git a/src/qdarkstyle/dark/rc/branch_end@2x.png b/src/qdarkstyle/dark/rc/branch_end@2x.png new file mode 100644 index 000000000..91f3bd02d Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_end@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_end_disabled.png b/src/qdarkstyle/dark/rc/branch_end_disabled.png new file mode 100644 index 000000000..fe819bc14 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_end_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/branch_end_disabled@2x.png b/src/qdarkstyle/dark/rc/branch_end_disabled@2x.png new file mode 100644 index 000000000..580247709 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_end_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_end_focus.png b/src/qdarkstyle/dark/rc/branch_end_focus.png new file mode 100644 index 000000000..9a978c0cc Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_end_focus.png differ diff --git a/src/qdarkstyle/dark/rc/branch_end_focus@2x.png b/src/qdarkstyle/dark/rc/branch_end_focus@2x.png new file mode 100644 index 000000000..ece9b825d Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_end_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_end_pressed.png b/src/qdarkstyle/dark/rc/branch_end_pressed.png new file mode 100644 index 000000000..1d4050997 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_end_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/branch_end_pressed@2x.png b/src/qdarkstyle/dark/rc/branch_end_pressed@2x.png new file mode 100644 index 000000000..4822745c4 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_end_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_line.png b/src/qdarkstyle/dark/rc/branch_line.png new file mode 100644 index 000000000..75cc027f8 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_line.png differ diff --git a/src/qdarkstyle/dark/rc/branch_line@2x.png b/src/qdarkstyle/dark/rc/branch_line@2x.png new file mode 100644 index 000000000..727370558 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_line@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_line_disabled.png b/src/qdarkstyle/dark/rc/branch_line_disabled.png new file mode 100644 index 000000000..01c6cffa7 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_line_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/branch_line_disabled@2x.png b/src/qdarkstyle/dark/rc/branch_line_disabled@2x.png new file mode 100644 index 000000000..57789e942 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_line_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_line_focus.png b/src/qdarkstyle/dark/rc/branch_line_focus.png new file mode 100644 index 000000000..599626230 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_line_focus.png differ diff --git a/src/qdarkstyle/dark/rc/branch_line_focus@2x.png b/src/qdarkstyle/dark/rc/branch_line_focus@2x.png new file mode 100644 index 000000000..34e7d603f Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_line_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_line_pressed.png b/src/qdarkstyle/dark/rc/branch_line_pressed.png new file mode 100644 index 000000000..6a54b0948 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_line_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/branch_line_pressed@2x.png b/src/qdarkstyle/dark/rc/branch_line_pressed@2x.png new file mode 100644 index 000000000..fb74fd324 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_line_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_more.png b/src/qdarkstyle/dark/rc/branch_more.png new file mode 100644 index 000000000..045f963fa Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_more.png differ diff --git a/src/qdarkstyle/dark/rc/branch_more@2x.png b/src/qdarkstyle/dark/rc/branch_more@2x.png new file mode 100644 index 000000000..ccde09316 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_more@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_more_disabled.png b/src/qdarkstyle/dark/rc/branch_more_disabled.png new file mode 100644 index 000000000..8630b91c9 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_more_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/branch_more_disabled@2x.png b/src/qdarkstyle/dark/rc/branch_more_disabled@2x.png new file mode 100644 index 000000000..37d2cdbbd Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_more_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_more_focus.png b/src/qdarkstyle/dark/rc/branch_more_focus.png new file mode 100644 index 000000000..38067367f Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_more_focus.png differ diff --git a/src/qdarkstyle/dark/rc/branch_more_focus@2x.png b/src/qdarkstyle/dark/rc/branch_more_focus@2x.png new file mode 100644 index 000000000..d80ccb8cc Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_more_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_more_pressed.png b/src/qdarkstyle/dark/rc/branch_more_pressed.png new file mode 100644 index 000000000..a306eb288 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_more_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/branch_more_pressed@2x.png b/src/qdarkstyle/dark/rc/branch_more_pressed@2x.png new file mode 100644 index 000000000..7044b2822 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_more_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_open.png b/src/qdarkstyle/dark/rc/branch_open.png new file mode 100644 index 000000000..445ec7181 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_open.png differ diff --git a/src/qdarkstyle/dark/rc/branch_open@2x.png b/src/qdarkstyle/dark/rc/branch_open@2x.png new file mode 100644 index 000000000..febb31878 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_open@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_open_disabled.png b/src/qdarkstyle/dark/rc/branch_open_disabled.png new file mode 100644 index 000000000..3b840d767 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_open_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/branch_open_disabled@2x.png b/src/qdarkstyle/dark/rc/branch_open_disabled@2x.png new file mode 100644 index 000000000..d6c5b40ed Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_open_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_open_focus.png b/src/qdarkstyle/dark/rc/branch_open_focus.png new file mode 100644 index 000000000..fecf8733e Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_open_focus.png differ diff --git a/src/qdarkstyle/dark/rc/branch_open_focus@2x.png b/src/qdarkstyle/dark/rc/branch_open_focus@2x.png new file mode 100644 index 000000000..296d17553 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_open_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/branch_open_pressed.png b/src/qdarkstyle/dark/rc/branch_open_pressed.png new file mode 100644 index 000000000..8a7cffab5 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_open_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/branch_open_pressed@2x.png b/src/qdarkstyle/dark/rc/branch_open_pressed@2x.png new file mode 100644 index 000000000..24e282c85 Binary files /dev/null and b/src/qdarkstyle/dark/rc/branch_open_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_checked.png b/src/qdarkstyle/dark/rc/checkbox_checked.png new file mode 100644 index 000000000..aa5f56720 Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_checked.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_checked@2x.png b/src/qdarkstyle/dark/rc/checkbox_checked@2x.png new file mode 100644 index 000000000..60b4fb2ae Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_checked@2x.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_checked_disabled.png b/src/qdarkstyle/dark/rc/checkbox_checked_disabled.png new file mode 100644 index 000000000..208f3709e Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_checked_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_checked_disabled@2x.png b/src/qdarkstyle/dark/rc/checkbox_checked_disabled@2x.png new file mode 100644 index 000000000..7c8ad0c58 Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_checked_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_checked_focus.png b/src/qdarkstyle/dark/rc/checkbox_checked_focus.png new file mode 100644 index 000000000..a35def37f Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_checked_focus.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_checked_focus@2x.png b/src/qdarkstyle/dark/rc/checkbox_checked_focus@2x.png new file mode 100644 index 000000000..925cd3620 Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_checked_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_checked_pressed.png b/src/qdarkstyle/dark/rc/checkbox_checked_pressed.png new file mode 100644 index 000000000..f95dc13eb Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_checked_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_checked_pressed@2x.png b/src/qdarkstyle/dark/rc/checkbox_checked_pressed@2x.png new file mode 100644 index 000000000..641c047ae Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_checked_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_indeterminate.png b/src/qdarkstyle/dark/rc/checkbox_indeterminate.png new file mode 100644 index 000000000..02de1ad2c Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_indeterminate.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_indeterminate@2x.png b/src/qdarkstyle/dark/rc/checkbox_indeterminate@2x.png new file mode 100644 index 000000000..8fabf6ea4 Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_indeterminate@2x.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_indeterminate_disabled.png b/src/qdarkstyle/dark/rc/checkbox_indeterminate_disabled.png new file mode 100644 index 000000000..df99affe0 Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_indeterminate_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_indeterminate_disabled@2x.png b/src/qdarkstyle/dark/rc/checkbox_indeterminate_disabled@2x.png new file mode 100644 index 000000000..3102eaa3f Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_indeterminate_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_indeterminate_focus.png b/src/qdarkstyle/dark/rc/checkbox_indeterminate_focus.png new file mode 100644 index 000000000..370454348 Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_indeterminate_focus.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_indeterminate_focus@2x.png b/src/qdarkstyle/dark/rc/checkbox_indeterminate_focus@2x.png new file mode 100644 index 000000000..8da0a8c98 Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_indeterminate_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_indeterminate_pressed.png b/src/qdarkstyle/dark/rc/checkbox_indeterminate_pressed.png new file mode 100644 index 000000000..b971d7fae Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_indeterminate_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_indeterminate_pressed@2x.png b/src/qdarkstyle/dark/rc/checkbox_indeterminate_pressed@2x.png new file mode 100644 index 000000000..9e37b8433 Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_indeterminate_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_unchecked.png b/src/qdarkstyle/dark/rc/checkbox_unchecked.png new file mode 100644 index 000000000..80bcf2b66 Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_unchecked.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_unchecked@2x.png b/src/qdarkstyle/dark/rc/checkbox_unchecked@2x.png new file mode 100644 index 000000000..df0fa4d5a Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_unchecked@2x.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_unchecked_disabled.png b/src/qdarkstyle/dark/rc/checkbox_unchecked_disabled.png new file mode 100644 index 000000000..ede58c818 Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_unchecked_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_unchecked_disabled@2x.png b/src/qdarkstyle/dark/rc/checkbox_unchecked_disabled@2x.png new file mode 100644 index 000000000..6721b38f5 Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_unchecked_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_unchecked_focus.png b/src/qdarkstyle/dark/rc/checkbox_unchecked_focus.png new file mode 100644 index 000000000..3883d2d5a Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_unchecked_focus.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_unchecked_focus@2x.png b/src/qdarkstyle/dark/rc/checkbox_unchecked_focus@2x.png new file mode 100644 index 000000000..35c061c0d Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_unchecked_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_unchecked_pressed.png b/src/qdarkstyle/dark/rc/checkbox_unchecked_pressed.png new file mode 100644 index 000000000..d98639eed Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_unchecked_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/checkbox_unchecked_pressed@2x.png b/src/qdarkstyle/dark/rc/checkbox_unchecked_pressed@2x.png new file mode 100644 index 000000000..88a52460d Binary files /dev/null and b/src/qdarkstyle/dark/rc/checkbox_unchecked_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/line_horizontal.png b/src/qdarkstyle/dark/rc/line_horizontal.png new file mode 100644 index 000000000..bc858c8d0 Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_horizontal.png differ diff --git a/src/qdarkstyle/dark/rc/line_horizontal@2x.png b/src/qdarkstyle/dark/rc/line_horizontal@2x.png new file mode 100644 index 000000000..7ea4f9c1c Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_horizontal@2x.png differ diff --git a/src/qdarkstyle/dark/rc/line_horizontal_disabled.png b/src/qdarkstyle/dark/rc/line_horizontal_disabled.png new file mode 100644 index 000000000..72e073a78 Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_horizontal_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/line_horizontal_disabled@2x.png b/src/qdarkstyle/dark/rc/line_horizontal_disabled@2x.png new file mode 100644 index 000000000..09a439df9 Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_horizontal_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/line_horizontal_focus.png b/src/qdarkstyle/dark/rc/line_horizontal_focus.png new file mode 100644 index 000000000..c84512bb5 Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_horizontal_focus.png differ diff --git a/src/qdarkstyle/dark/rc/line_horizontal_focus@2x.png b/src/qdarkstyle/dark/rc/line_horizontal_focus@2x.png new file mode 100644 index 000000000..8dd58f609 Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_horizontal_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/line_horizontal_pressed.png b/src/qdarkstyle/dark/rc/line_horizontal_pressed.png new file mode 100644 index 000000000..7ca2605bd Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_horizontal_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/line_horizontal_pressed@2x.png b/src/qdarkstyle/dark/rc/line_horizontal_pressed@2x.png new file mode 100644 index 000000000..bd9661781 Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_horizontal_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/line_vertical.png b/src/qdarkstyle/dark/rc/line_vertical.png new file mode 100644 index 000000000..49a910526 Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_vertical.png differ diff --git a/src/qdarkstyle/dark/rc/line_vertical@2x.png b/src/qdarkstyle/dark/rc/line_vertical@2x.png new file mode 100644 index 000000000..cbb017ee6 Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_vertical@2x.png differ diff --git a/src/qdarkstyle/dark/rc/line_vertical_disabled.png b/src/qdarkstyle/dark/rc/line_vertical_disabled.png new file mode 100644 index 000000000..965854688 Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_vertical_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/line_vertical_disabled@2x.png b/src/qdarkstyle/dark/rc/line_vertical_disabled@2x.png new file mode 100644 index 000000000..7836a9465 Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_vertical_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/line_vertical_focus.png b/src/qdarkstyle/dark/rc/line_vertical_focus.png new file mode 100644 index 000000000..512ee7d23 Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_vertical_focus.png differ diff --git a/src/qdarkstyle/dark/rc/line_vertical_focus@2x.png b/src/qdarkstyle/dark/rc/line_vertical_focus@2x.png new file mode 100644 index 000000000..af503251d Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_vertical_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/line_vertical_pressed.png b/src/qdarkstyle/dark/rc/line_vertical_pressed.png new file mode 100644 index 000000000..b8dd21535 Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_vertical_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/line_vertical_pressed@2x.png b/src/qdarkstyle/dark/rc/line_vertical_pressed@2x.png new file mode 100644 index 000000000..e1d43a83e Binary files /dev/null and b/src/qdarkstyle/dark/rc/line_vertical_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/radio_checked.png b/src/qdarkstyle/dark/rc/radio_checked.png new file mode 100644 index 000000000..2a1d26a4f Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_checked.png differ diff --git a/src/qdarkstyle/dark/rc/radio_checked@2x.png b/src/qdarkstyle/dark/rc/radio_checked@2x.png new file mode 100644 index 000000000..eb2cbb46c Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_checked@2x.png differ diff --git a/src/qdarkstyle/dark/rc/radio_checked_disabled.png b/src/qdarkstyle/dark/rc/radio_checked_disabled.png new file mode 100644 index 000000000..f78c15360 Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_checked_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/radio_checked_disabled@2x.png b/src/qdarkstyle/dark/rc/radio_checked_disabled@2x.png new file mode 100644 index 000000000..30168e86b Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_checked_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/radio_checked_focus.png b/src/qdarkstyle/dark/rc/radio_checked_focus.png new file mode 100644 index 000000000..6d9c9801c Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_checked_focus.png differ diff --git a/src/qdarkstyle/dark/rc/radio_checked_focus@2x.png b/src/qdarkstyle/dark/rc/radio_checked_focus@2x.png new file mode 100644 index 000000000..63476a075 Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_checked_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/radio_checked_pressed.png b/src/qdarkstyle/dark/rc/radio_checked_pressed.png new file mode 100644 index 000000000..421ecb44a Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_checked_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/radio_checked_pressed@2x.png b/src/qdarkstyle/dark/rc/radio_checked_pressed@2x.png new file mode 100644 index 000000000..9030e1013 Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_checked_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/radio_unchecked.png b/src/qdarkstyle/dark/rc/radio_unchecked.png new file mode 100644 index 000000000..23b06ced3 Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_unchecked.png differ diff --git a/src/qdarkstyle/dark/rc/radio_unchecked@2x.png b/src/qdarkstyle/dark/rc/radio_unchecked@2x.png new file mode 100644 index 000000000..41e790ac7 Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_unchecked@2x.png differ diff --git a/src/qdarkstyle/dark/rc/radio_unchecked_disabled.png b/src/qdarkstyle/dark/rc/radio_unchecked_disabled.png new file mode 100644 index 000000000..075ca8557 Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_unchecked_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/radio_unchecked_disabled@2x.png b/src/qdarkstyle/dark/rc/radio_unchecked_disabled@2x.png new file mode 100644 index 000000000..61cd48ffe Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_unchecked_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/radio_unchecked_focus.png b/src/qdarkstyle/dark/rc/radio_unchecked_focus.png new file mode 100644 index 000000000..d58758039 Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_unchecked_focus.png differ diff --git a/src/qdarkstyle/dark/rc/radio_unchecked_focus@2x.png b/src/qdarkstyle/dark/rc/radio_unchecked_focus@2x.png new file mode 100644 index 000000000..0f12c860b Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_unchecked_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/radio_unchecked_pressed.png b/src/qdarkstyle/dark/rc/radio_unchecked_pressed.png new file mode 100644 index 000000000..37c09a6d8 Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_unchecked_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/radio_unchecked_pressed@2x.png b/src/qdarkstyle/dark/rc/radio_unchecked_pressed@2x.png new file mode 100644 index 000000000..9e424e4b3 Binary files /dev/null and b/src/qdarkstyle/dark/rc/radio_unchecked_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_horizontal.png b/src/qdarkstyle/dark/rc/toolbar_move_horizontal.png new file mode 100644 index 000000000..9d2f51f06 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_horizontal.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_horizontal@2x.png b/src/qdarkstyle/dark/rc/toolbar_move_horizontal@2x.png new file mode 100644 index 000000000..c35b46532 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_horizontal@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_horizontal_disabled.png b/src/qdarkstyle/dark/rc/toolbar_move_horizontal_disabled.png new file mode 100644 index 000000000..013ac4578 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_horizontal_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_horizontal_disabled@2x.png b/src/qdarkstyle/dark/rc/toolbar_move_horizontal_disabled@2x.png new file mode 100644 index 000000000..f713dd4d0 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_horizontal_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_horizontal_focus.png b/src/qdarkstyle/dark/rc/toolbar_move_horizontal_focus.png new file mode 100644 index 000000000..6d0d42588 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_horizontal_focus.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_horizontal_focus@2x.png b/src/qdarkstyle/dark/rc/toolbar_move_horizontal_focus@2x.png new file mode 100644 index 000000000..0a5ca39b1 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_horizontal_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_horizontal_pressed.png b/src/qdarkstyle/dark/rc/toolbar_move_horizontal_pressed.png new file mode 100644 index 000000000..e414c0c52 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_horizontal_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_horizontal_pressed@2x.png b/src/qdarkstyle/dark/rc/toolbar_move_horizontal_pressed@2x.png new file mode 100644 index 000000000..e8e8af20f Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_horizontal_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_vertical.png b/src/qdarkstyle/dark/rc/toolbar_move_vertical.png new file mode 100644 index 000000000..140846d75 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_vertical.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_vertical@2x.png b/src/qdarkstyle/dark/rc/toolbar_move_vertical@2x.png new file mode 100644 index 000000000..7edf454a3 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_vertical@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_vertical_disabled.png b/src/qdarkstyle/dark/rc/toolbar_move_vertical_disabled.png new file mode 100644 index 000000000..5cd85dd72 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_vertical_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_vertical_disabled@2x.png b/src/qdarkstyle/dark/rc/toolbar_move_vertical_disabled@2x.png new file mode 100644 index 000000000..07d5ae1bf Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_vertical_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_vertical_focus.png b/src/qdarkstyle/dark/rc/toolbar_move_vertical_focus.png new file mode 100644 index 000000000..9aac0365a Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_vertical_focus.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_vertical_focus@2x.png b/src/qdarkstyle/dark/rc/toolbar_move_vertical_focus@2x.png new file mode 100644 index 000000000..c3b1d1805 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_vertical_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_vertical_pressed.png b/src/qdarkstyle/dark/rc/toolbar_move_vertical_pressed.png new file mode 100644 index 000000000..30b3921e2 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_vertical_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_move_vertical_pressed@2x.png b/src/qdarkstyle/dark/rc/toolbar_move_vertical_pressed@2x.png new file mode 100644 index 000000000..bd0120745 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_move_vertical_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_horizontal.png b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal.png new file mode 100644 index 000000000..96e2689ff Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_horizontal@2x.png b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal@2x.png new file mode 100644 index 000000000..5944e44c9 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_disabled.png b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_disabled.png new file mode 100644 index 000000000..941e14509 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_disabled@2x.png b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_disabled@2x.png new file mode 100644 index 000000000..e44a33be6 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_focus.png b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_focus.png new file mode 100644 index 000000000..590b31471 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_focus.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_focus@2x.png b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_focus@2x.png new file mode 100644 index 000000000..ca88313f6 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_pressed.png b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_pressed.png new file mode 100644 index 000000000..38004682a Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_pressed@2x.png b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_pressed@2x.png new file mode 100644 index 000000000..d4b88c047 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_horizontal_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_vertical.png b/src/qdarkstyle/dark/rc/toolbar_separator_vertical.png new file mode 100644 index 000000000..b503c8093 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_vertical.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_vertical@2x.png b/src/qdarkstyle/dark/rc/toolbar_separator_vertical@2x.png new file mode 100644 index 000000000..2725a7fa1 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_vertical@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_vertical_disabled.png b/src/qdarkstyle/dark/rc/toolbar_separator_vertical_disabled.png new file mode 100644 index 000000000..6aa1fbdd7 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_vertical_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_vertical_disabled@2x.png b/src/qdarkstyle/dark/rc/toolbar_separator_vertical_disabled@2x.png new file mode 100644 index 000000000..8e54cfa8e Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_vertical_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_vertical_focus.png b/src/qdarkstyle/dark/rc/toolbar_separator_vertical_focus.png new file mode 100644 index 000000000..fcdfc0f21 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_vertical_focus.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_vertical_focus@2x.png b/src/qdarkstyle/dark/rc/toolbar_separator_vertical_focus@2x.png new file mode 100644 index 000000000..51b083965 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_vertical_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_vertical_pressed.png b/src/qdarkstyle/dark/rc/toolbar_separator_vertical_pressed.png new file mode 100644 index 000000000..9d6f84d51 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_vertical_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/toolbar_separator_vertical_pressed@2x.png b/src/qdarkstyle/dark/rc/toolbar_separator_vertical_pressed@2x.png new file mode 100644 index 000000000..3876a8e87 Binary files /dev/null and b/src/qdarkstyle/dark/rc/toolbar_separator_vertical_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/transparent.png b/src/qdarkstyle/dark/rc/transparent.png new file mode 100644 index 000000000..3a95111e5 Binary files /dev/null and b/src/qdarkstyle/dark/rc/transparent.png differ diff --git a/src/qdarkstyle/dark/rc/transparent@2x.png b/src/qdarkstyle/dark/rc/transparent@2x.png new file mode 100644 index 000000000..4c4b95225 Binary files /dev/null and b/src/qdarkstyle/dark/rc/transparent@2x.png differ diff --git a/src/qdarkstyle/dark/rc/transparent_disabled.png b/src/qdarkstyle/dark/rc/transparent_disabled.png new file mode 100644 index 000000000..3a95111e5 Binary files /dev/null and b/src/qdarkstyle/dark/rc/transparent_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/transparent_disabled@2x.png b/src/qdarkstyle/dark/rc/transparent_disabled@2x.png new file mode 100644 index 000000000..4c4b95225 Binary files /dev/null and b/src/qdarkstyle/dark/rc/transparent_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/transparent_focus.png b/src/qdarkstyle/dark/rc/transparent_focus.png new file mode 100644 index 000000000..3a95111e5 Binary files /dev/null and b/src/qdarkstyle/dark/rc/transparent_focus.png differ diff --git a/src/qdarkstyle/dark/rc/transparent_focus@2x.png b/src/qdarkstyle/dark/rc/transparent_focus@2x.png new file mode 100644 index 000000000..4c4b95225 Binary files /dev/null and b/src/qdarkstyle/dark/rc/transparent_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/transparent_pressed.png b/src/qdarkstyle/dark/rc/transparent_pressed.png new file mode 100644 index 000000000..3a95111e5 Binary files /dev/null and b/src/qdarkstyle/dark/rc/transparent_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/transparent_pressed@2x.png b/src/qdarkstyle/dark/rc/transparent_pressed@2x.png new file mode 100644 index 000000000..4c4b95225 Binary files /dev/null and b/src/qdarkstyle/dark/rc/transparent_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_close.png b/src/qdarkstyle/dark/rc/window_close.png new file mode 100644 index 000000000..0115ca3f3 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_close.png differ diff --git a/src/qdarkstyle/dark/rc/window_close@2x.png b/src/qdarkstyle/dark/rc/window_close@2x.png new file mode 100644 index 000000000..41dcd8160 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_close@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_close_disabled.png b/src/qdarkstyle/dark/rc/window_close_disabled.png new file mode 100644 index 000000000..55144fff8 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_close_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/window_close_disabled@2x.png b/src/qdarkstyle/dark/rc/window_close_disabled@2x.png new file mode 100644 index 000000000..766aef7c1 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_close_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_close_focus.png b/src/qdarkstyle/dark/rc/window_close_focus.png new file mode 100644 index 000000000..61df25f82 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_close_focus.png differ diff --git a/src/qdarkstyle/dark/rc/window_close_focus@2x.png b/src/qdarkstyle/dark/rc/window_close_focus@2x.png new file mode 100644 index 000000000..2ea50b1a9 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_close_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_close_pressed.png b/src/qdarkstyle/dark/rc/window_close_pressed.png new file mode 100644 index 000000000..042311def Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_close_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/window_close_pressed@2x.png b/src/qdarkstyle/dark/rc/window_close_pressed@2x.png new file mode 100644 index 000000000..b54d9a16d Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_close_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_grip.png b/src/qdarkstyle/dark/rc/window_grip.png new file mode 100644 index 000000000..9ea1c438f Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_grip.png differ diff --git a/src/qdarkstyle/dark/rc/window_grip@2x.png b/src/qdarkstyle/dark/rc/window_grip@2x.png new file mode 100644 index 000000000..b31309e8b Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_grip@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_grip_disabled.png b/src/qdarkstyle/dark/rc/window_grip_disabled.png new file mode 100644 index 000000000..b66e23b99 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_grip_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/window_grip_disabled@2x.png b/src/qdarkstyle/dark/rc/window_grip_disabled@2x.png new file mode 100644 index 000000000..ee3d0ba88 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_grip_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_grip_focus.png b/src/qdarkstyle/dark/rc/window_grip_focus.png new file mode 100644 index 000000000..400af158c Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_grip_focus.png differ diff --git a/src/qdarkstyle/dark/rc/window_grip_focus@2x.png b/src/qdarkstyle/dark/rc/window_grip_focus@2x.png new file mode 100644 index 000000000..83c9ec634 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_grip_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_grip_pressed.png b/src/qdarkstyle/dark/rc/window_grip_pressed.png new file mode 100644 index 000000000..f71dd8c9a Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_grip_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/window_grip_pressed@2x.png b/src/qdarkstyle/dark/rc/window_grip_pressed@2x.png new file mode 100644 index 000000000..109878a35 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_grip_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_minimize.png b/src/qdarkstyle/dark/rc/window_minimize.png new file mode 100644 index 000000000..07517b943 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_minimize.png differ diff --git a/src/qdarkstyle/dark/rc/window_minimize@2x.png b/src/qdarkstyle/dark/rc/window_minimize@2x.png new file mode 100644 index 000000000..434bb07cd Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_minimize@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_minimize_disabled.png b/src/qdarkstyle/dark/rc/window_minimize_disabled.png new file mode 100644 index 000000000..a1ee4aeda Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_minimize_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/window_minimize_disabled@2x.png b/src/qdarkstyle/dark/rc/window_minimize_disabled@2x.png new file mode 100644 index 000000000..8454ad832 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_minimize_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_minimize_focus.png b/src/qdarkstyle/dark/rc/window_minimize_focus.png new file mode 100644 index 000000000..3b56123f1 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_minimize_focus.png differ diff --git a/src/qdarkstyle/dark/rc/window_minimize_focus@2x.png b/src/qdarkstyle/dark/rc/window_minimize_focus@2x.png new file mode 100644 index 000000000..a66fb71ec Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_minimize_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_minimize_pressed.png b/src/qdarkstyle/dark/rc/window_minimize_pressed.png new file mode 100644 index 000000000..9b70c0ade Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_minimize_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/window_minimize_pressed@2x.png b/src/qdarkstyle/dark/rc/window_minimize_pressed@2x.png new file mode 100644 index 000000000..5750a8e7e Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_minimize_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_undock.png b/src/qdarkstyle/dark/rc/window_undock.png new file mode 100644 index 000000000..9be9cdf77 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_undock.png differ diff --git a/src/qdarkstyle/dark/rc/window_undock@2x.png b/src/qdarkstyle/dark/rc/window_undock@2x.png new file mode 100644 index 000000000..40345ab94 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_undock@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_undock_disabled.png b/src/qdarkstyle/dark/rc/window_undock_disabled.png new file mode 100644 index 000000000..ea92aee04 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_undock_disabled.png differ diff --git a/src/qdarkstyle/dark/rc/window_undock_disabled@2x.png b/src/qdarkstyle/dark/rc/window_undock_disabled@2x.png new file mode 100644 index 000000000..fb8d5483c Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_undock_disabled@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_undock_focus.png b/src/qdarkstyle/dark/rc/window_undock_focus.png new file mode 100644 index 000000000..5b0338d9b Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_undock_focus.png differ diff --git a/src/qdarkstyle/dark/rc/window_undock_focus@2x.png b/src/qdarkstyle/dark/rc/window_undock_focus@2x.png new file mode 100644 index 000000000..9fea75b09 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_undock_focus@2x.png differ diff --git a/src/qdarkstyle/dark/rc/window_undock_pressed.png b/src/qdarkstyle/dark/rc/window_undock_pressed.png new file mode 100644 index 000000000..4bc657b21 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_undock_pressed.png differ diff --git a/src/qdarkstyle/dark/rc/window_undock_pressed@2x.png b/src/qdarkstyle/dark/rc/window_undock_pressed@2x.png new file mode 100644 index 000000000..2ea0c2c71 Binary files /dev/null and b/src/qdarkstyle/dark/rc/window_undock_pressed@2x.png differ diff --git a/src/qdarkstyle/dark/style.qss b/src/qdarkstyle/dark/style.qss new file mode 100644 index 000000000..fa61e77ca --- /dev/null +++ b/src/qdarkstyle/dark/style.qss @@ -0,0 +1,2237 @@ +/* --------------------------------------------------------------------------- + + WARNING! File created programmatically. All changes made in this file will be lost! + + Created by the qtsass compiler v0.3.0 + + The definitions are in the "qdarkstyle.qss._styles.scss" module + +--------------------------------------------------------------------------- */ +/* Light Style - QDarkStyleSheet ------------------------------------------ */ +/* + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #19232D; + border: 0px solid #455364; + padding: 0px; + color: #E0E1E3; + selection-background-color: #346792; + selection-color: #E0E1E3; +} + +QWidget:disabled { + background-color: #19232D; + color: #9DA9B5; + selection-background-color: #26486B; + selection-color: #9DA9B5; +} + +QWidget::item:selected { + background-color: #346792; +} + +QWidget::item:hover:!selected { + background-color: #1A72BB; +} + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + background-color: #455364; + border: 0px solid #19232D; + spacing: 0px; + padding: 2px; +} + +QMainWindow::separator:hover { + background-color: #60798B; + border: 0px solid #1A72BB; +} + +QMainWindow::separator:horizontal { + width: 5px; + margin-top: 2px; + margin-bottom: 2px; + image: url(":/qss_icons/dark/rc/toolbar_separator_vertical.png"); +} + +QMainWindow::separator:vertical { + height: 5px; + margin-left: 2px; + margin-right: 2px; + image: url(":/qss_icons/dark/rc/toolbar_separator_horizontal.png"); +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #346792; + color: #E0E1E3; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 1px solid #455364; + /* Fixes Spyder #9120, #9121 */ + background: #455364; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #1A72BB; + border: 1px solid #19232D; + color: #19232D; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + background-color: #19232D; + color: #E0E1E3; + spacing: 4px; + outline: none; + padding-top: 4px; + padding-bottom: 4px; +} + +QCheckBox:focus { + border: none; +} + +QCheckBox QWidget:disabled { + background-color: #19232D; + color: #9DA9B5; +} + +QCheckBox::indicator { + margin-left: 2px; + height: 14px; + width: 14px; +} + +QCheckBox::indicator:unchecked { + image: url(":/qss_icons/dark/rc/checkbox_unchecked.png"); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + border: none; + image: url(":/qss_icons/dark/rc/checkbox_unchecked_focus.png"); +} + +QCheckBox::indicator:unchecked:disabled { + image: url(":/qss_icons/dark/rc/checkbox_unchecked_disabled.png"); +} + +QCheckBox::indicator:checked { + image: url(":/qss_icons/dark/rc/checkbox_checked.png"); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:focus, QCheckBox::indicator:checked:pressed { + border: none; + image: url(":/qss_icons/dark/rc/checkbox_checked_focus.png"); +} + +QCheckBox::indicator:checked:disabled { + image: url(":/qss_icons/dark/rc/checkbox_checked_disabled.png"); +} + +QCheckBox::indicator:indeterminate { + image: url(":/qss_icons/dark/rc/checkbox_indeterminate.png"); +} + +QCheckBox::indicator:indeterminate:disabled { + image: url(":/qss_icons/dark/rc/checkbox_indeterminate_disabled.png"); +} + +QCheckBox::indicator:indeterminate:focus, QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + image: url(":/qss_icons/dark/rc/checkbox_indeterminate_focus.png"); +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #455364; + border-radius: 4px; + padding: 2px; + margin-top: 6px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: -4px; +} + +QGroupBox::indicator { + margin-left: 2px; + margin-top: 2px; + padding: 0; + height: 14px; + width: 14px; +} + +QGroupBox::indicator:unchecked { + border: none; + image: url(":/qss_icons/dark/rc/checkbox_unchecked.png"); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + border: none; + image: url(":/qss_icons/dark/rc/checkbox_unchecked_focus.png"); +} + +QGroupBox::indicator:unchecked:disabled { + image: url(":/qss_icons/dark/rc/checkbox_unchecked_disabled.png"); +} + +QGroupBox::indicator:checked { + border: none; + image: url(":/qss_icons/dark/rc/checkbox_checked.png"); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + border: none; + image: url(":/qss_icons/dark/rc/checkbox_checked_focus.png"); +} + +QGroupBox::indicator:checked:disabled { + image: url(":/qss_icons/dark/rc/checkbox_checked_disabled.png"); +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: #19232D; + color: #E0E1E3; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + border: none; + outline: none; +} + +QRadioButton:focus { + border: none; +} + +QRadioButton:disabled { + background-color: #19232D; + color: #9DA9B5; + border: none; + outline: none; +} + +QRadioButton QWidget { + background-color: #19232D; + color: #E0E1E3; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + border: none; + outline: none; + margin-left: 2px; + height: 14px; + width: 14px; +} + +QRadioButton::indicator:unchecked { + image: url(":/qss_icons/dark/rc/radio_unchecked.png"); +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:focus, QRadioButton::indicator:unchecked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/dark/rc/radio_unchecked_focus.png"); +} + +QRadioButton::indicator:unchecked:disabled { + image: url(":/qss_icons/dark/rc/radio_unchecked_disabled.png"); +} + +QRadioButton::indicator:checked { + border: none; + outline: none; + image: url(":/qss_icons/dark/rc/radio_checked.png"); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:focus, QRadioButton::indicator:checked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/dark/rc/radio_checked_focus.png"); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + image: url(":/qss_icons/dark/rc/radio_checked_disabled.png"); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #455364; + padding: 2px; + border: 1px solid #19232D; + color: #E0E1E3; + selection-background-color: #1A72BB; +} + +QMenuBar:focus { + border: 1px solid #346792; +} + +QMenuBar::item { + background: transparent; + padding: 4px; +} + +QMenuBar::item:selected { + padding: 4px; + background: transparent; + border: 0px solid #455364; + background-color: #1A72BB; +} + +QMenuBar::item:pressed { + padding: 4px; + border: 0px solid #455364; + background-color: #1A72BB; + color: #E0E1E3; + margin-bottom: 0px; + padding-bottom: 0px; +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border: 0px solid #455364; + color: #E0E1E3; + margin: 0px; + background-color: #37414F; + selection-background-color: #1A72BB; +} + +QMenu::separator { + height: 1px; + background-color: #60798B; + color: #E0E1E3; +} + +QMenu::icon { + margin: 0px; + padding-left: 8px; +} + +QMenu::item { + background-color: #37414F; + padding: 4px 24px 4px 8px; + /* Reserve space for selection border */ + border: 1px transparent #455364; +} + +QMenu::item:selected { + color: #E0E1E3; + background-color: #1A72BB; +} + +QMenu::item:pressed { + background-color: #1A72BB; +} + +QMenu::indicator { + width: 14px; + height: 14px; + padding-left: 6px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::indicator:non-exclusive:unchecked { + image: url(":/qss_icons/dark/rc/checkbox_unchecked.png"); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + image: url(":/qss_icons/dark/rc/checkbox_unchecked_focus.png"); +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(":/qss_icons/dark/rc/checkbox_unchecked_disabled.png"); +} + +QMenu::indicator:non-exclusive:checked { + image: url(":/qss_icons/dark/rc/checkbox_checked.png"); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + image: url(":/qss_icons/dark/rc/checkbox_checked_focus.png"); +} + +QMenu::indicator:non-exclusive:checked:disabled { + image: url(":/qss_icons/dark/rc/checkbox_checked_disabled.png"); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(":/qss_icons/dark/rc/checkbox_indeterminate.png"); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(":/qss_icons/dark/rc/checkbox_indeterminate_disabled.png"); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(":/qss_icons/dark/rc/checkbox_indeterminate_focus.png"); +} + +QMenu::indicator:exclusive:unchecked { + image: url(":/qss_icons/dark/rc/radio_unchecked.png"); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/dark/rc/radio_unchecked_focus.png"); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(":/qss_icons/dark/rc/radio_unchecked_disabled.png"); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(":/qss_icons/dark/rc/radio_checked.png"); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/dark/rc/radio_checked_focus.png"); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(":/qss_icons/dark/rc/radio_checked_disabled.png"); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image: url(":/qss_icons/dark/rc/arrow_right.png"); + height: 12px; + width: 12px; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #19232D; + color: #E0E1E3; + border: 1px solid #455364; + border-radius: 4px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: #19232D; + border: 1px solid #455364; + border-radius: 4px; + /* fix #159 */ + padding: 2px; + /* remove min-height to fix #244 */ + color: #E0E1E3; +} + +QAbstractScrollArea:disabled { + color: #9DA9B5; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- */ +QScrollArea QWidget QWidget:disabled { + background-color: #19232D; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 1px solid #455364; + border-radius: 4px; + background-color: #19232D; +} + +QScrollBar:vertical { + background-color: #19232D; + width: 16px; + margin: 16px 2px 16px 2px; + border: 1px solid #455364; + border-radius: 4px; +} + +QScrollBar::handle:horizontal { + background-color: #60798B; + border: 1px solid #455364; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #346792; + border: #346792; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #1A72BB; +} + +QScrollBar::handle:vertical { + background-color: #60798B; + border: 1px solid #455364; + min-height: 8px; + border-radius: 4px; +} + +QScrollBar::handle:vertical:hover { + background-color: #346792; + border: #346792; + border-radius: 4px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #1A72BB; +} + +QScrollBar::add-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(":/qss_icons/dark/rc/arrow_right_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(":/qss_icons/dark/rc/arrow_right.png"); + height: 12px; + width: 12px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 0px; + border-image: url(":/qss_icons/dark/rc/arrow_down_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(":/qss_icons/dark/rc/arrow_down.png"); + height: 12px; + width: 12px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 3px 0px 3px; + border-image: url(":/qss_icons/dark/rc/arrow_left_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(":/qss_icons/dark/rc/arrow_left.png"); + height: 12px; + width: 12px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 0px; + border-image: url(":/qss_icons/dark/rc/arrow_up_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(":/qss_icons/dark/rc/arrow_up.png"); + height: 12px; + width: 12px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #19232D; + color: #E0E1E3; + border-radius: 4px; + border: 1px solid #455364; +} + +QTextEdit:focus { + border: 1px solid #1A72BB; +} + +QTextEdit:selected { + background: #346792; + color: #455364; +} + +/* QPlainTextEdit --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #19232D; + color: #E0E1E3; + border-radius: 4px; + border: 1px solid #455364; +} + +QPlainTextEdit:focus { + border: 1px solid #1A72BB; +} + +QPlainTextEdit:selected { + background: #346792; + color: #455364; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image: url(":/qss_icons/dark/rc/window_grip.png"); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 2px; + border: 1px solid #455364; + border: 1px solid #19232D; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #455364; + border-bottom: 1px solid #19232D; + padding: 1px; + font-weight: bold; + spacing: 2px; +} + +QToolBar QToolButton { + background-color: #455364; + border: 1px solid #455364; + /* This fixes 202 */ +} + +QToolBar QToolButton:hover { + background-color: #54687A; + border: #54687A; +} + +QToolBar QToolButton:checked { + border: #60798B; + background-color: #60798B; +} + +QToolBar QToolButton:checked:hover { + background-color: #60798B; + border: #60798B; +} + +QToolBar QToolButton:pressed { + border: #60798B; + background-color: #60798B; +} + +QToolBar QToolButton:pressed:hover { + background-color: #60798B; + border: #60798B; +} + +QToolBar QToolButton:disabled { + border: #455364; + background-color: #455364; +} + +QToolBar::handle:horizontal { + width: 16px; + image: url(":/qss_icons/dark/rc/toolbar_move_horizontal.png"); +} + +QToolBar::handle:vertical { + height: 16px; + image: url(":/qss_icons/dark/rc/toolbar_move_vertical.png"); +} + +QToolBar::separator:horizontal { + width: 16px; + image: url(":/qss_icons/dark/rc/toolbar_separator_horizontal.png"); +} + +QToolBar::separator:vertical { + height: 16px; + image: url(":/qss_icons/dark/rc/toolbar_separator_vertical.png"); +} + +QToolButton#qt_toolbar_ext_button { + background: #455364; + border: 0px; + color: #E0E1E3; + image: url(":/qss_icons/dark/rc/arrow_right.png"); +} + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox { + background-color: #19232D; + border: 1px solid #455364; + color: #E0E1E3; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + border-radius: 4px; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: transparent #19232D; + subcontrol-origin: border; + subcontrol-position: top right; + border-left: 1px solid #455364; + border-bottom: 1px solid #455364; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin: 1px; + width: 12px; + margin-bottom: -1px; +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(":/qss_icons/dark/rc/arrow_up_disabled.png"); + height: 8px; + width: 8px; +} + +QAbstractSpinBox::up-arrow:hover { + image: url(":/qss_icons/dark/rc/arrow_up.png"); +} + +QAbstractSpinBox:down-button { + background-color: transparent #19232D; + subcontrol-origin: border; + subcontrol-position: bottom right; + border-left: 1px solid #455364; + border-top: 1px solid #455364; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin: 1px; + width: 12px; + margin-top: -1px; +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(":/qss_icons/dark/rc/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QAbstractSpinBox::down-arrow:hover { + image: url(":/qss_icons/dark/rc/arrow_down.png"); +} + +QAbstractSpinBox:hover { + border: 1px solid #346792; + color: #E0E1E3; +} + +QAbstractSpinBox:focus { + border: 1px solid #1A72BB; +} + +QAbstractSpinBox:selected { + background: #346792; + color: #455364; +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: #19232D; + border: 0px solid #455364; + padding: 2px; + margin: 0px; + color: #E0E1E3; +} + +QLabel:disabled { + background-color: #19232D; + border: 0px solid #455364; + color: #9DA9B5; +} + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #19232D; + border: 1px solid #455364; + color: #E0E1E3; + border-radius: 4px; +} + +QTextBrowser:disabled { + background-color: #19232D; + border: 1px solid #455364; + color: #9DA9B5; + border-radius: 4px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #455364; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: #19232D; + border: 1px solid #455364; + color: #E0E1E3; + border-radius: 4px; +} + +QGraphicsView:disabled { + background-color: #19232D; + border: 1px solid #455364; + color: #9DA9B5; + border-radius: 4px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 1px solid #455364; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #455364; + border-radius: 4px; +} + +QCalendarWidget:disabled { + background-color: #19232D; + color: #9DA9B5; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #19232D; + color: #E0E1E3; +} + +QLCDNumber:disabled { + background-color: #19232D; + color: #9DA9B5; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #19232D; + border: 1px solid #455364; + color: #E0E1E3; + border-radius: 4px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #19232D; + border: 1px solid #455364; + color: #9DA9B5; + border-radius: 4px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #346792; + color: #19232D; + border-radius: 4px; +} + +QProgressBar::chunk:disabled { + background-color: #26486B; + color: #9DA9B5; + border-radius: 4px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: #455364; + border: 1px solid #455364; + color: #E0E1E3; + border-radius: 4px; + padding: 3px; + outline: none; +} + +QPushButton:disabled { + background-color: #455364; + border: 1px solid #455364; + color: #9DA9B5; + border-radius: 4px; + padding: 3px; +} + +QPushButton:checked { + background-color: #60798B; + border: #60798B; + border-radius: 4px; + padding: 3px; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #60798B; + border: #60798B; + color: #9DA9B5; + border-radius: 4px; + padding: 3px; + outline: none; +} + +QPushButton:checked:selected { + background: #60798B; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QPushButton:hover { + background-color: #54687A; + border: #54687A; + color: #E0E1E3; +} + +QPushButton:pressed { + background-color: #60798B; + border: #60798B; +} + +QPushButton:selected { + background: #60798B; + color: #E0E1E3; +} + +QDialogButtonBox QPushButton { + /* Issue #194 #248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + border: 1px solid transparent; + border-radius: 4px; + margin: 0px; + padding: 2px; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:checked { + background-color: #37414F; + border: #37414F; +} + +QToolButton:checked:disabled { + background-color: #455364; + border: #455364; +} + +QToolButton:checked:hover { + background-color: #37414F; + border: #37414F; +} + +QToolButton:pressed { + margin: 1px; + background-color: #37414F; + border: #37414F; +} + +QToolButton:pressed:hover { + background-color: #37414F; + border: #37414F; +} + +QToolButton:disabled { + border: none; +} + +QToolButton:hover { + background-color: #293544; + border: #293544; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 2px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 1px solid #1A72BB; + border-radius: 0; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 2px; +} + +QToolButton::menu-button { + padding: 2px; + border-radius: 4px; + border: 1px solid #455364; + width: 12px; + outline: none; +} + +QToolButton::menu-button:hover { + border: 1px solid #346792; +} + +QToolButton::menu-button:checked:hover { + border: 1px solid #346792; +} + +QToolButton::menu-indicator { + image: url(":/qss_icons/dark/rc/arrow_down.png"); + height: 8px; + width: 8px; + top: 0; + /* Exclude a shift for better image */ + left: -2px; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(":/qss_icons/dark/rc/arrow_down.png"); + height: 8px; + width: 8px; +} + +QToolButton::menu-arrow:hover { + image: url(":/qss_icons/dark/rc/arrow_down_focus.png"); +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #455364; + color: #E0E1E3; + border-radius: 4px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #9DA9B5; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid #455364; + border-radius: 4px; + selection-background-color: #346792; + padding-left: 4px; + padding-right: 4px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} + +QComboBox QAbstractItemView { + border: 1px solid #455364; + border-radius: 0; + background-color: #19232D; + selection-background-color: #346792; +} + +QComboBox QAbstractItemView:hover { + background-color: #19232D; + color: #E0E1E3; +} + +QComboBox QAbstractItemView:selected { + background: #346792; + color: #455364; +} + +QComboBox QAbstractItemView:alternate { + background: #19232D; +} + +QComboBox:disabled { + background-color: #19232D; + color: #9DA9B5; +} + +QComboBox:hover { + border: 1px solid #346792; +} + +QComboBox:focus { + border: 1px solid #1A72BB; +} + +QComboBox:on { + selection-background-color: #346792; +} + +QComboBox::indicator { + border: none; + border-radius: 0; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: transparent; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #19232D; +} + +QComboBox::item:alternate { + background: #19232D; +} + +QComboBox::item:checked { + font-weight: bold; +} + +QComboBox::item:selected { + border: 0px solid transparent; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #455364; +} + +QComboBox::down-arrow { + image: url(":/qss_icons/dark/rc/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(":/qss_icons/dark/rc/arrow_down.png"); +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #19232D; +} + +QSlider:focus { + border: none; +} + +QSlider::groove:horizontal { + background: #455364; + border: 1px solid #455364; + height: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::groove:vertical { + background: #455364; + border: 1px solid #455364; + width: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::add-page:vertical { + background: #346792; + border: 1px solid #455364; + width: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::add-page:vertical :disabled { + background: #26486B; +} + +QSlider::sub-page:horizontal { + background: #346792; + border: 1px solid #455364; + height: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::sub-page:horizontal:disabled { + background: #26486B; +} + +QSlider::handle:horizontal { + background: #9DA9B5; + border: 1px solid #455364; + width: 8px; + height: 8px; + margin: -8px 0px; + border-radius: 4px; +} + +QSlider::handle:horizontal:hover { + background: #346792; + border: 1px solid #346792; +} + +QSlider::handle:horizontal:focus { + border: 1px solid #1A72BB; +} + +QSlider::handle:vertical { + background: #9DA9B5; + border: 1px solid #455364; + width: 8px; + height: 8px; + margin: 0 -8px; + border-radius: 4px; +} + +QSlider::handle:vertical:hover { + background: #346792; + border: 1px solid #346792; +} + +QSlider::handle:vertical:focus { + border: 1px solid #1A72BB; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #19232D; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #455364; + border-radius: 4px; + color: #E0E1E3; +} + +QLineEdit:disabled { + background-color: #19232D; + color: #9DA9B5; +} + +QLineEdit:hover { + border: 1px solid #346792; + color: #E0E1E3; +} + +QLineEdit:focus { + border: 1px solid #1A72BB; +} + +QLineEdit:selected { + background-color: #346792; + color: #455364; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #455364; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 4px; +} + +QTabWidget::pane { + border: 1px solid #455364; + border-radius: 4px; + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #455364; + border: 1px solid #346792; +} + +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar { + qproperty-drawBase: 0; + border-radius: 4px; + margin: 0px; + padding: 2px; + border: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button { + border: 0; + margin: 0; + padding: 4px; + image: url(":/qss_icons/dark/rc/window_close.png"); +} + +QTabBar::close-button:hover { + image: url(":/qss_icons/dark/rc/window_close_focus.png"); +} + +QTabBar::close-button:pressed { + image: url(":/qss_icons/dark/rc/window_close_pressed.png"); +} + +QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ +} + +QTabBar::tab:top:selected:disabled { + border-bottom: 3px solid #26486B; + color: #9DA9B5; + background-color: #455364; +} + +QTabBar::tab:bottom:selected:disabled { + border-top: 3px solid #26486B; + color: #9DA9B5; + background-color: #455364; +} + +QTabBar::tab:left:selected:disabled { + border-right: 3px solid #26486B; + color: #9DA9B5; + background-color: #455364; +} + +QTabBar::tab:right:selected:disabled { + border-left: 3px solid #26486B; + color: #9DA9B5; + background-color: #455364; +} + +QTabBar::tab:top:!selected:disabled { + border-bottom: 3px solid #19232D; + color: #9DA9B5; + background-color: #19232D; +} + +QTabBar::tab:bottom:!selected:disabled { + border-top: 3px solid #19232D; + color: #9DA9B5; + background-color: #19232D; +} + +QTabBar::tab:left:!selected:disabled { + border-right: 3px solid #19232D; + color: #9DA9B5; + background-color: #19232D; +} + +QTabBar::tab:right:!selected:disabled { + border-left: 3px solid #19232D; + color: #9DA9B5; + background-color: #19232D; +} + +QTabBar::tab:top:!selected { + border-bottom: 2px solid #19232D; + margin-top: 2px; +} + +QTabBar::tab:bottom:!selected { + border-top: 2px solid #19232D; + margin-bottom: 3px; +} + +QTabBar::tab:left:!selected { + border-left: 2px solid #19232D; + margin-right: 2px; +} + +QTabBar::tab:right:!selected { + border-right: 2px solid #19232D; + margin-left: 2px; +} + +QTabBar::tab:top { + background-color: #455364; + color: #E0E1E3; + margin-left: 2px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 3px solid #455364; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +QTabBar::tab:top:selected { + background-color: #54687A; + color: #E0E1E3; + border-bottom: 3px solid #259AE9; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +QTabBar::tab:top:!selected:hover { + border: 1px solid #1A72BB; + border-bottom: 3px solid #1A72BB; + /* Fixes spyder-ide/spyder#9766 */ + padding-left: 4px; + padding-right: 4px; +} + +QTabBar::tab:bottom { + color: #E0E1E3; + border-top: 3px solid #455364; + background-color: #455364; + margin-left: 2px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + min-width: 5px; +} + +QTabBar::tab:bottom:selected { + color: #E0E1E3; + background-color: #54687A; + border-top: 3px solid #259AE9; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +QTabBar::tab:bottom:!selected:hover { + border: 1px solid #1A72BB; + border-top: 3px solid #1A72BB; + /* Fixes spyder-ide/spyder#9766 */ + padding-left: 4px; + padding-right: 4px; +} + +QTabBar::tab:left { + color: #E0E1E3; + background-color: #455364; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + min-height: 5px; +} + +QTabBar::tab:left:selected { + color: #E0E1E3; + background-color: #54687A; + border-right: 3px solid #259AE9; +} + +QTabBar::tab:left:!selected:hover { + border: 1px solid #1A72BB; + border-right: 3px solid #1A72BB; + padding: 0px; +} + +QTabBar::tab:right { + color: #E0E1E3; + background-color: #455364; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + min-height: 5px; +} + +QTabBar::tab:right:selected { + color: #E0E1E3; + background-color: #54687A; + border-left: 3px solid #259AE9; +} + +QTabBar::tab:right:!selected:hover { + border: 1px solid #1A72BB; + border-left: 3px solid #1A72BB; + padding: 0px; +} + +QTabBar QToolButton { + /* Fixes #136 */ + background-color: #455364; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed { + background-color: #455364; +} + +QTabBar QToolButton:pressed:hover { + border: 1px solid #346792; +} + +QTabBar QToolButton::left-arrow:enabled { + image: url(":/qss_icons/dark/rc/arrow_left.png"); +} + +QTabBar QToolButton::left-arrow:disabled { + image: url(":/qss_icons/dark/rc/arrow_left_disabled.png"); +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(":/qss_icons/dark/rc/arrow_right.png"); +} + +QTabBar QToolButton::right-arrow:disabled { + image: url(":/qss_icons/dark/rc/arrow_right_disabled.png"); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + outline: 1px solid #455364; + background-color: #19232D; + border: 1px solid #455364; + border-radius: 4px; + titlebar-close-icon: url(":/qss_icons/dark/rc/transparent.png"); + titlebar-normal-icon: url(":/qss_icons/dark/rc/transparent.png"); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: #455364; +} + +QDockWidget::close-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(":/qss_icons/dark/rc/window_close.png"); +} + +QDockWidget::close-button:hover { + image: url(":/qss_icons/dark/rc/window_close_focus.png"); +} + +QDockWidget::close-button:pressed { + image: url(":/qss_icons/dark/rc/window_close_pressed.png"); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(":/qss_icons/dark/rc/window_undock.png"); +} + +QDockWidget::float-button:hover { + image: url(":/qss_icons/dark/rc/window_undock_focus.png"); +} + +QDockWidget::float-button:pressed { + image: url(":/qss_icons/dark/rc/window_undock_pressed.png"); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView:branch:selected, QTreeView:branch:hover { + background: url(":/qss_icons/dark/rc/transparent.png"); +} + +QTreeView:branch:has-siblings:!adjoins-item { + border-image: url(":/qss_icons/dark/rc/branch_line.png") 0; +} + +QTreeView:branch:has-siblings:adjoins-item { + border-image: url(":/qss_icons/dark/rc/branch_more.png") 0; +} + +QTreeView:branch:!has-children:!has-siblings:adjoins-item { + border-image: url(":/qss_icons/dark/rc/branch_end.png") 0; +} + +QTreeView:branch:has-children:!has-siblings:closed, QTreeView:branch:closed:has-children:has-siblings { + border-image: none; + image: url(":/qss_icons/dark/rc/branch_closed.png"); +} + +QTreeView:branch:open:has-children:!has-siblings, QTreeView:branch:open:has-children:has-siblings { + border-image: none; + image: url(":/qss_icons/dark/rc/branch_open.png"); +} + +QTreeView:branch:has-children:!has-siblings:closed:hover, QTreeView:branch:closed:has-children:has-siblings:hover { + image: url(":/qss_icons/dark/rc/branch_closed_focus.png"); +} + +QTreeView:branch:open:has-children:!has-siblings:hover, QTreeView:branch:open:has-children:has-siblings:hover { + image: url(":/qss_icons/dark/rc/branch_open_focus.png"); +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(":/qss_icons/dark/rc/checkbox_checked.png"); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(":/qss_icons/dark/rc/checkbox_checked_focus.png"); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(":/qss_icons/dark/rc/checkbox_unchecked.png"); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(":/qss_icons/dark/rc/checkbox_unchecked_focus.png"); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(":/qss_icons/dark/rc/checkbox_indeterminate.png"); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(":/qss_icons/dark/rc/checkbox_indeterminate_focus.png"); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #19232D; + border: 1px solid #455364; + color: #E0E1E3; + gridline-color: #455364; + border-radius: 4px; +} + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #19232D; + color: #9DA9B5; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #346792; + color: #455364; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #1A72BB; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #346792; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #346792; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: #E0E1E3; + background-color: #37414F; +} + +QTableCornerButton::section { + background-color: #19232D; + border: 1px transparent #455364; + border-radius: 0px; +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: #455364; + border: 0px transparent #455364; + padding: 0; + margin: 0; + border-radius: 0; +} + +QHeaderView:disabled { + background-color: #455364; + border: 1px transparent #455364; +} + +QHeaderView::section { + background-color: #455364; + color: #E0E1E3; + border-radius: 0; + text-align: left; + font-size: 13px; +} + +QHeaderView::section:checked { + color: #E0E1E3; + background-color: #346792; +} + +QHeaderView::section:checked:disabled { + color: #9DA9B5; + background-color: #26486B; +} + +QHeaderView::section::horizontal { + padding-top: 0; + padding-bottom: 0; + padding-left: 4px; + padding-right: 4px; + border-left: 1px solid #19232D; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 1px solid #455364; +} + +QHeaderView::section::horizontal:disabled { + color: #9DA9B5; +} + +QHeaderView::section::vertical { + padding-top: 0; + padding-bottom: 0; + padding-left: 4px; + padding-right: 4px; + border-top: 1px solid #19232D; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 1px solid #455364; +} + +QHeaderView::section::vertical:disabled { + color: #9DA9B5; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: #455364; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(":/qss_icons/dark/rc/arrow_down.png"); +} + +QHeaderView::up-arrow { + background-color: #455364; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(":/qss_icons/dark/rc/arrow_up.png"); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 0px; + border: 1px solid #455364; +} + +QToolBox:selected { + padding: 0px; + border: 2px solid #346792; +} + +QToolBox::tab { + background-color: #19232D; + border: 1px solid #455364; + color: #E0E1E3; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QToolBox::tab:disabled { + color: #9DA9B5; +} + +QToolBox::tab:selected { + background-color: #60798B; + border-bottom: 2px solid #346792; +} + +QToolBox::tab:selected:disabled { + background-color: #455364; + border-bottom: 2px solid #26486B; +} + +QToolBox::tab:!selected { + background-color: #455364; + border-bottom: 2px solid #455364; +} + +QToolBox::tab:!selected:disabled { + background-color: #19232D; +} + +QToolBox::tab:hover { + border-color: #1A72BB; + border-bottom: 2px solid #1A72BB; +} + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: #19232D; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 4px; + border: 1px solid #455364; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 4px; + border: 1px transparent #455364; +} + +.QFrame[frameShape="4"] { + max-height: 2px; + border: none; + background-color: #455364; +} + +.QFrame[frameShape="5"] { + max-width: 2px; + border: none; + background-color: #455364; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +--------------------------------------------------------------------------- */ +QSplitter { + background-color: #455364; + spacing: 0px; + padding: 0px; + margin: 0px; +} + +QSplitter::handle { + background-color: #455364; + border: 0px solid #19232D; + spacing: 0px; + padding: 1px; + margin: 0px; +} + +QSplitter::handle:hover { + background-color: #9DA9B5; +} + +QSplitter::handle:horizontal { + width: 5px; + image: url(":/qss_icons/dark/rc/line_vertical.png"); +} + +QSplitter::handle:vertical { + height: 5px; + image: url(":/qss_icons/dark/rc/line_horizontal.png"); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #346792; + border-style: solid; + border: 1px solid #455364; + border-radius: 4px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #346792; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #455364; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(":/qss_icons/dark/rc/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(":/qss_icons/dark/rc/arrow_down.png"); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #19232D; + border-radius: 4px; + border: 1px solid #455364; + selection-background-color: #346792; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #346792; + color: #E0E1E3; +} + +QAbstractView:selected { + background: #346792; + color: #455364; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} diff --git a/src/qdarkstyle/light/_variables.scss b/src/qdarkstyle/light/_variables.scss new file mode 100644 index 000000000..a341ec5e3 --- /dev/null +++ b/src/qdarkstyle/light/_variables.scss @@ -0,0 +1,33 @@ +// --------------------------------------------------------------------------- +// +// WARNING! File created programmatically. All changes made in this file will be lost! +// +// Created by the qtsass compiler v0.3.0 +// +// The definitions are in the "qdarkstyle.palette" module +// +//---------------------------------------------------------------------------- +$ID: 'light'; +$COLOR_BACKGROUND_6: #ACB1B6; +$COLOR_BACKGROUND_5: #B9BDC1; +$COLOR_BACKGROUND_4: #C9CDD0; +$COLOR_BACKGROUND_2: #E0E1E3; +$COLOR_BACKGROUND_3: #CED1D4; +$COLOR_BACKGROUND_1: #FAFAFA; +$COLOR_TEXT_1: #19232D; +$COLOR_TEXT_2: #293544; +$COLOR_TEXT_3: #54687A; +$COLOR_TEXT_4: #788D9C; +$COLOR_ACCENT_1: #DAEDFF; +$COLOR_ACCENT_2: #9FCBFF; +$COLOR_ACCENT_3: #73C7FF; +$COLOR_ACCENT_4: #37AEFE; +$OPACITY_TOOLTIP: 230; +$SIZE_BORDER_RADIUS: 4px; +$BORDER_1: 1px solid $COLOR_BACKGROUND_1; +$BORDER_2: 1px solid $COLOR_BACKGROUND_4; +$BORDER_3: 1px solid $COLOR_BACKGROUND_6; +$BORDER_SELECTION_3: 1px solid $COLOR_ACCENT_3; +$BORDER_SELECTION_2: 1px solid $COLOR_ACCENT_2; +$BORDER_SELECTION_1: 1px solid $COLOR_ACCENT_1; +$PATH_RESOURCES: ':/qss_icons'; diff --git a/src/qdarkstyle/light/lightstyle.qrc b/src/qdarkstyle/light/lightstyle.qrc new file mode 100644 index 000000000..f537c236a --- /dev/null +++ b/src/qdarkstyle/light/lightstyle.qrc @@ -0,0 +1,217 @@ + + + + rc/.keep + rc/arrow_down.png + rc/arrow_down@2x.png + rc/arrow_down_disabled.png + rc/arrow_down_disabled@2x.png + rc/arrow_down_focus.png + rc/arrow_down_focus@2x.png + rc/arrow_down_pressed.png + rc/arrow_down_pressed@2x.png + rc/arrow_left.png + rc/arrow_left@2x.png + rc/arrow_left_disabled.png + rc/arrow_left_disabled@2x.png + rc/arrow_left_focus.png + rc/arrow_left_focus@2x.png + rc/arrow_left_pressed.png + rc/arrow_left_pressed@2x.png + rc/arrow_right.png + rc/arrow_right@2x.png + rc/arrow_right_disabled.png + rc/arrow_right_disabled@2x.png + rc/arrow_right_focus.png + rc/arrow_right_focus@2x.png + rc/arrow_right_pressed.png + rc/arrow_right_pressed@2x.png + rc/arrow_up.png + rc/arrow_up@2x.png + rc/arrow_up_disabled.png + rc/arrow_up_disabled@2x.png + rc/arrow_up_focus.png + rc/arrow_up_focus@2x.png + rc/arrow_up_pressed.png + rc/arrow_up_pressed@2x.png + rc/base_icon.png + rc/base_icon@2x.png + rc/base_icon_disabled.png + rc/base_icon_disabled@2x.png + rc/base_icon_focus.png + rc/base_icon_focus@2x.png + rc/base_icon_pressed.png + rc/base_icon_pressed@2x.png + rc/branch_closed.png + rc/branch_closed@2x.png + rc/branch_closed_disabled.png + rc/branch_closed_disabled@2x.png + rc/branch_closed_focus.png + rc/branch_closed_focus@2x.png + rc/branch_closed_pressed.png + rc/branch_closed_pressed@2x.png + rc/branch_end.png + rc/branch_end@2x.png + rc/branch_end_disabled.png + rc/branch_end_disabled@2x.png + rc/branch_end_focus.png + rc/branch_end_focus@2x.png + rc/branch_end_pressed.png + rc/branch_end_pressed@2x.png + rc/branch_line.png + rc/branch_line@2x.png + rc/branch_line_disabled.png + rc/branch_line_disabled@2x.png + rc/branch_line_focus.png + rc/branch_line_focus@2x.png + rc/branch_line_pressed.png + rc/branch_line_pressed@2x.png + rc/branch_more.png + rc/branch_more@2x.png + rc/branch_more_disabled.png + rc/branch_more_disabled@2x.png + rc/branch_more_focus.png + rc/branch_more_focus@2x.png + rc/branch_more_pressed.png + rc/branch_more_pressed@2x.png + rc/branch_open.png + rc/branch_open@2x.png + rc/branch_open_disabled.png + rc/branch_open_disabled@2x.png + rc/branch_open_focus.png + rc/branch_open_focus@2x.png + rc/branch_open_pressed.png + rc/branch_open_pressed@2x.png + rc/checkbox_checked.png + rc/checkbox_checked@2x.png + rc/checkbox_checked_disabled.png + rc/checkbox_checked_disabled@2x.png + rc/checkbox_checked_focus.png + rc/checkbox_checked_focus@2x.png + rc/checkbox_checked_pressed.png + rc/checkbox_checked_pressed@2x.png + rc/checkbox_indeterminate.png + rc/checkbox_indeterminate@2x.png + rc/checkbox_indeterminate_disabled.png + rc/checkbox_indeterminate_disabled@2x.png + rc/checkbox_indeterminate_focus.png + rc/checkbox_indeterminate_focus@2x.png + rc/checkbox_indeterminate_pressed.png + rc/checkbox_indeterminate_pressed@2x.png + rc/checkbox_unchecked.png + rc/checkbox_unchecked@2x.png + rc/checkbox_unchecked_disabled.png + rc/checkbox_unchecked_disabled@2x.png + rc/checkbox_unchecked_focus.png + rc/checkbox_unchecked_focus@2x.png + rc/checkbox_unchecked_pressed.png + rc/checkbox_unchecked_pressed@2x.png + rc/line_horizontal.png + rc/line_horizontal@2x.png + rc/line_horizontal_disabled.png + rc/line_horizontal_disabled@2x.png + rc/line_horizontal_focus.png + rc/line_horizontal_focus@2x.png + rc/line_horizontal_pressed.png + rc/line_horizontal_pressed@2x.png + rc/line_vertical.png + rc/line_vertical@2x.png + rc/line_vertical_disabled.png + rc/line_vertical_disabled@2x.png + rc/line_vertical_focus.png + rc/line_vertical_focus@2x.png + rc/line_vertical_pressed.png + rc/line_vertical_pressed@2x.png + rc/radio_checked.png + rc/radio_checked@2x.png + rc/radio_checked_disabled.png + rc/radio_checked_disabled@2x.png + rc/radio_checked_focus.png + rc/radio_checked_focus@2x.png + rc/radio_checked_pressed.png + rc/radio_checked_pressed@2x.png + rc/radio_unchecked.png + rc/radio_unchecked@2x.png + rc/radio_unchecked_disabled.png + rc/radio_unchecked_disabled@2x.png + rc/radio_unchecked_focus.png + rc/radio_unchecked_focus@2x.png + rc/radio_unchecked_pressed.png + rc/radio_unchecked_pressed@2x.png + rc/toolbar_move_horizontal.png + rc/toolbar_move_horizontal@2x.png + rc/toolbar_move_horizontal_disabled.png + rc/toolbar_move_horizontal_disabled@2x.png + rc/toolbar_move_horizontal_focus.png + rc/toolbar_move_horizontal_focus@2x.png + rc/toolbar_move_horizontal_pressed.png + rc/toolbar_move_horizontal_pressed@2x.png + rc/toolbar_move_vertical.png + rc/toolbar_move_vertical@2x.png + rc/toolbar_move_vertical_disabled.png + rc/toolbar_move_vertical_disabled@2x.png + rc/toolbar_move_vertical_focus.png + rc/toolbar_move_vertical_focus@2x.png + rc/toolbar_move_vertical_pressed.png + rc/toolbar_move_vertical_pressed@2x.png + rc/toolbar_separator_horizontal.png + rc/toolbar_separator_horizontal@2x.png + rc/toolbar_separator_horizontal_disabled.png + rc/toolbar_separator_horizontal_disabled@2x.png + rc/toolbar_separator_horizontal_focus.png + rc/toolbar_separator_horizontal_focus@2x.png + rc/toolbar_separator_horizontal_pressed.png + rc/toolbar_separator_horizontal_pressed@2x.png + rc/toolbar_separator_vertical.png + rc/toolbar_separator_vertical@2x.png + rc/toolbar_separator_vertical_disabled.png + rc/toolbar_separator_vertical_disabled@2x.png + rc/toolbar_separator_vertical_focus.png + rc/toolbar_separator_vertical_focus@2x.png + rc/toolbar_separator_vertical_pressed.png + rc/toolbar_separator_vertical_pressed@2x.png + rc/transparent.png + rc/transparent@2x.png + rc/transparent_disabled.png + rc/transparent_disabled@2x.png + rc/transparent_focus.png + rc/transparent_focus@2x.png + rc/transparent_pressed.png + rc/transparent_pressed@2x.png + rc/window_close.png + rc/window_close@2x.png + rc/window_close_disabled.png + rc/window_close_disabled@2x.png + rc/window_close_focus.png + rc/window_close_focus@2x.png + rc/window_close_pressed.png + rc/window_close_pressed@2x.png + rc/window_grip.png + rc/window_grip@2x.png + rc/window_grip_disabled.png + rc/window_grip_disabled@2x.png + rc/window_grip_focus.png + rc/window_grip_focus@2x.png + rc/window_grip_pressed.png + rc/window_grip_pressed@2x.png + rc/window_minimize.png + rc/window_minimize@2x.png + rc/window_minimize_disabled.png + rc/window_minimize_disabled@2x.png + rc/window_minimize_focus.png + rc/window_minimize_focus@2x.png + rc/window_minimize_pressed.png + rc/window_minimize_pressed@2x.png + rc/window_undock.png + rc/window_undock@2x.png + rc/window_undock_disabled.png + rc/window_undock_disabled@2x.png + rc/window_undock_focus.png + rc/window_undock_focus@2x.png + rc/window_undock_pressed.png + rc/window_undock_pressed@2x.png + + + style.qss + + diff --git a/src/qdarkstyle/light/main.scss b/src/qdarkstyle/light/main.scss new file mode 100644 index 000000000..5082a46ec --- /dev/null +++ b/src/qdarkstyle/light/main.scss @@ -0,0 +1,4 @@ +/* Dark Style - QDarkStyleSheet ------------------------------------------ */ + +@import '_variables'; +@import '../qss/_styles'; diff --git a/src/qdarkstyle/light/rc/.keep b/src/qdarkstyle/light/rc/.keep new file mode 100644 index 000000000..8d1c8b69c --- /dev/null +++ b/src/qdarkstyle/light/rc/.keep @@ -0,0 +1 @@ + diff --git a/src/qdarkstyle/light/rc/arrow_down.png b/src/qdarkstyle/light/rc/arrow_down.png new file mode 100644 index 000000000..f07aa76f0 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_down.png differ diff --git a/src/qdarkstyle/light/rc/arrow_down@2x.png b/src/qdarkstyle/light/rc/arrow_down@2x.png new file mode 100644 index 000000000..b16b9df17 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_down@2x.png differ diff --git a/src/qdarkstyle/light/rc/arrow_down_disabled.png b/src/qdarkstyle/light/rc/arrow_down_disabled.png new file mode 100644 index 000000000..d94e55b95 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_down_disabled.png differ diff --git a/src/qdarkstyle/light/rc/arrow_down_disabled@2x.png b/src/qdarkstyle/light/rc/arrow_down_disabled@2x.png new file mode 100644 index 000000000..a1bc87416 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_down_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/arrow_down_focus.png b/src/qdarkstyle/light/rc/arrow_down_focus.png new file mode 100644 index 000000000..fcd681205 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_down_focus.png differ diff --git a/src/qdarkstyle/light/rc/arrow_down_focus@2x.png b/src/qdarkstyle/light/rc/arrow_down_focus@2x.png new file mode 100644 index 000000000..a0463e5e9 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_down_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/arrow_down_pressed.png b/src/qdarkstyle/light/rc/arrow_down_pressed.png new file mode 100644 index 000000000..bbe79a97e Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_down_pressed.png differ diff --git a/src/qdarkstyle/light/rc/arrow_down_pressed@2x.png b/src/qdarkstyle/light/rc/arrow_down_pressed@2x.png new file mode 100644 index 000000000..28ae890ae Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_down_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/arrow_left.png b/src/qdarkstyle/light/rc/arrow_left.png new file mode 100644 index 000000000..070870107 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_left.png differ diff --git a/src/qdarkstyle/light/rc/arrow_left@2x.png b/src/qdarkstyle/light/rc/arrow_left@2x.png new file mode 100644 index 000000000..c067c7ac1 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_left@2x.png differ diff --git a/src/qdarkstyle/light/rc/arrow_left_disabled.png b/src/qdarkstyle/light/rc/arrow_left_disabled.png new file mode 100644 index 000000000..76ae59b10 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_left_disabled.png differ diff --git a/src/qdarkstyle/light/rc/arrow_left_disabled@2x.png b/src/qdarkstyle/light/rc/arrow_left_disabled@2x.png new file mode 100644 index 000000000..815f33c07 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_left_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/arrow_left_focus.png b/src/qdarkstyle/light/rc/arrow_left_focus.png new file mode 100644 index 000000000..c0856669a Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_left_focus.png differ diff --git a/src/qdarkstyle/light/rc/arrow_left_focus@2x.png b/src/qdarkstyle/light/rc/arrow_left_focus@2x.png new file mode 100644 index 000000000..48af7238c Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_left_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/arrow_left_pressed.png b/src/qdarkstyle/light/rc/arrow_left_pressed.png new file mode 100644 index 000000000..f47340e3c Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_left_pressed.png differ diff --git a/src/qdarkstyle/light/rc/arrow_left_pressed@2x.png b/src/qdarkstyle/light/rc/arrow_left_pressed@2x.png new file mode 100644 index 000000000..51b5b7a07 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_left_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/arrow_right.png b/src/qdarkstyle/light/rc/arrow_right.png new file mode 100644 index 000000000..45f7857e5 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_right.png differ diff --git a/src/qdarkstyle/light/rc/arrow_right@2x.png b/src/qdarkstyle/light/rc/arrow_right@2x.png new file mode 100644 index 000000000..bafdf16c9 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_right@2x.png differ diff --git a/src/qdarkstyle/light/rc/arrow_right_disabled.png b/src/qdarkstyle/light/rc/arrow_right_disabled.png new file mode 100644 index 000000000..82d1dd284 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_right_disabled.png differ diff --git a/src/qdarkstyle/light/rc/arrow_right_disabled@2x.png b/src/qdarkstyle/light/rc/arrow_right_disabled@2x.png new file mode 100644 index 000000000..8d95d8323 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_right_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/arrow_right_focus.png b/src/qdarkstyle/light/rc/arrow_right_focus.png new file mode 100644 index 000000000..3b3c1b6f8 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_right_focus.png differ diff --git a/src/qdarkstyle/light/rc/arrow_right_focus@2x.png b/src/qdarkstyle/light/rc/arrow_right_focus@2x.png new file mode 100644 index 000000000..8a3870bdd Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_right_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/arrow_right_pressed.png b/src/qdarkstyle/light/rc/arrow_right_pressed.png new file mode 100644 index 000000000..b4176d59d Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_right_pressed.png differ diff --git a/src/qdarkstyle/light/rc/arrow_right_pressed@2x.png b/src/qdarkstyle/light/rc/arrow_right_pressed@2x.png new file mode 100644 index 000000000..24dfe4e19 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_right_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/arrow_up.png b/src/qdarkstyle/light/rc/arrow_up.png new file mode 100644 index 000000000..7e185babf Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_up.png differ diff --git a/src/qdarkstyle/light/rc/arrow_up@2x.png b/src/qdarkstyle/light/rc/arrow_up@2x.png new file mode 100644 index 000000000..6925245e3 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_up@2x.png differ diff --git a/src/qdarkstyle/light/rc/arrow_up_disabled.png b/src/qdarkstyle/light/rc/arrow_up_disabled.png new file mode 100644 index 000000000..54394e210 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_up_disabled.png differ diff --git a/src/qdarkstyle/light/rc/arrow_up_disabled@2x.png b/src/qdarkstyle/light/rc/arrow_up_disabled@2x.png new file mode 100644 index 000000000..0f582d323 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_up_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/arrow_up_focus.png b/src/qdarkstyle/light/rc/arrow_up_focus.png new file mode 100644 index 000000000..4bc54733f Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_up_focus.png differ diff --git a/src/qdarkstyle/light/rc/arrow_up_focus@2x.png b/src/qdarkstyle/light/rc/arrow_up_focus@2x.png new file mode 100644 index 000000000..bdf7f6b2d Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_up_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/arrow_up_pressed.png b/src/qdarkstyle/light/rc/arrow_up_pressed.png new file mode 100644 index 000000000..04bc9e4ec Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_up_pressed.png differ diff --git a/src/qdarkstyle/light/rc/arrow_up_pressed@2x.png b/src/qdarkstyle/light/rc/arrow_up_pressed@2x.png new file mode 100644 index 000000000..cd6231f26 Binary files /dev/null and b/src/qdarkstyle/light/rc/arrow_up_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/base_icon.png b/src/qdarkstyle/light/rc/base_icon.png new file mode 100644 index 000000000..1aeed5554 Binary files /dev/null and b/src/qdarkstyle/light/rc/base_icon.png differ diff --git a/src/qdarkstyle/light/rc/base_icon@2x.png b/src/qdarkstyle/light/rc/base_icon@2x.png new file mode 100644 index 000000000..f42fc6610 Binary files /dev/null and b/src/qdarkstyle/light/rc/base_icon@2x.png differ diff --git a/src/qdarkstyle/light/rc/base_icon_disabled.png b/src/qdarkstyle/light/rc/base_icon_disabled.png new file mode 100644 index 000000000..1aeed5554 Binary files /dev/null and b/src/qdarkstyle/light/rc/base_icon_disabled.png differ diff --git a/src/qdarkstyle/light/rc/base_icon_disabled@2x.png b/src/qdarkstyle/light/rc/base_icon_disabled@2x.png new file mode 100644 index 000000000..f42fc6610 Binary files /dev/null and b/src/qdarkstyle/light/rc/base_icon_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/base_icon_focus.png b/src/qdarkstyle/light/rc/base_icon_focus.png new file mode 100644 index 000000000..1aeed5554 Binary files /dev/null and b/src/qdarkstyle/light/rc/base_icon_focus.png differ diff --git a/src/qdarkstyle/light/rc/base_icon_focus@2x.png b/src/qdarkstyle/light/rc/base_icon_focus@2x.png new file mode 100644 index 000000000..f42fc6610 Binary files /dev/null and b/src/qdarkstyle/light/rc/base_icon_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/base_icon_pressed.png b/src/qdarkstyle/light/rc/base_icon_pressed.png new file mode 100644 index 000000000..1aeed5554 Binary files /dev/null and b/src/qdarkstyle/light/rc/base_icon_pressed.png differ diff --git a/src/qdarkstyle/light/rc/base_icon_pressed@2x.png b/src/qdarkstyle/light/rc/base_icon_pressed@2x.png new file mode 100644 index 000000000..f42fc6610 Binary files /dev/null and b/src/qdarkstyle/light/rc/base_icon_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_closed.png b/src/qdarkstyle/light/rc/branch_closed.png new file mode 100644 index 000000000..f41c767e6 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_closed.png differ diff --git a/src/qdarkstyle/light/rc/branch_closed@2x.png b/src/qdarkstyle/light/rc/branch_closed@2x.png new file mode 100644 index 000000000..24bb5fba2 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_closed@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_closed_disabled.png b/src/qdarkstyle/light/rc/branch_closed_disabled.png new file mode 100644 index 000000000..2a6b24dea Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_closed_disabled.png differ diff --git a/src/qdarkstyle/light/rc/branch_closed_disabled@2x.png b/src/qdarkstyle/light/rc/branch_closed_disabled@2x.png new file mode 100644 index 000000000..91d7d6518 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_closed_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_closed_focus.png b/src/qdarkstyle/light/rc/branch_closed_focus.png new file mode 100644 index 000000000..2058d895f Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_closed_focus.png differ diff --git a/src/qdarkstyle/light/rc/branch_closed_focus@2x.png b/src/qdarkstyle/light/rc/branch_closed_focus@2x.png new file mode 100644 index 000000000..18d665af9 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_closed_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_closed_pressed.png b/src/qdarkstyle/light/rc/branch_closed_pressed.png new file mode 100644 index 000000000..35f982fab Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_closed_pressed.png differ diff --git a/src/qdarkstyle/light/rc/branch_closed_pressed@2x.png b/src/qdarkstyle/light/rc/branch_closed_pressed@2x.png new file mode 100644 index 000000000..2008d6256 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_closed_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_end.png b/src/qdarkstyle/light/rc/branch_end.png new file mode 100644 index 000000000..6b0bfe03d Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_end.png differ diff --git a/src/qdarkstyle/light/rc/branch_end@2x.png b/src/qdarkstyle/light/rc/branch_end@2x.png new file mode 100644 index 000000000..9ce5439cb Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_end@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_end_disabled.png b/src/qdarkstyle/light/rc/branch_end_disabled.png new file mode 100644 index 000000000..dfa9baa8d Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_end_disabled.png differ diff --git a/src/qdarkstyle/light/rc/branch_end_disabled@2x.png b/src/qdarkstyle/light/rc/branch_end_disabled@2x.png new file mode 100644 index 000000000..8ef19e30d Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_end_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_end_focus.png b/src/qdarkstyle/light/rc/branch_end_focus.png new file mode 100644 index 000000000..85f17bad7 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_end_focus.png differ diff --git a/src/qdarkstyle/light/rc/branch_end_focus@2x.png b/src/qdarkstyle/light/rc/branch_end_focus@2x.png new file mode 100644 index 000000000..d756b2919 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_end_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_end_pressed.png b/src/qdarkstyle/light/rc/branch_end_pressed.png new file mode 100644 index 000000000..7a868658e Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_end_pressed.png differ diff --git a/src/qdarkstyle/light/rc/branch_end_pressed@2x.png b/src/qdarkstyle/light/rc/branch_end_pressed@2x.png new file mode 100644 index 000000000..561e6ebf6 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_end_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_line.png b/src/qdarkstyle/light/rc/branch_line.png new file mode 100644 index 000000000..e55608ddc Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_line.png differ diff --git a/src/qdarkstyle/light/rc/branch_line@2x.png b/src/qdarkstyle/light/rc/branch_line@2x.png new file mode 100644 index 000000000..59967fd60 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_line@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_line_disabled.png b/src/qdarkstyle/light/rc/branch_line_disabled.png new file mode 100644 index 000000000..d758b7b6c Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_line_disabled.png differ diff --git a/src/qdarkstyle/light/rc/branch_line_disabled@2x.png b/src/qdarkstyle/light/rc/branch_line_disabled@2x.png new file mode 100644 index 000000000..a35c3a66d Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_line_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_line_focus.png b/src/qdarkstyle/light/rc/branch_line_focus.png new file mode 100644 index 000000000..800cc587c Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_line_focus.png differ diff --git a/src/qdarkstyle/light/rc/branch_line_focus@2x.png b/src/qdarkstyle/light/rc/branch_line_focus@2x.png new file mode 100644 index 000000000..7d21d64a9 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_line_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_line_pressed.png b/src/qdarkstyle/light/rc/branch_line_pressed.png new file mode 100644 index 000000000..638046579 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_line_pressed.png differ diff --git a/src/qdarkstyle/light/rc/branch_line_pressed@2x.png b/src/qdarkstyle/light/rc/branch_line_pressed@2x.png new file mode 100644 index 000000000..7ca30cd61 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_line_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_more.png b/src/qdarkstyle/light/rc/branch_more.png new file mode 100644 index 000000000..140129295 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_more.png differ diff --git a/src/qdarkstyle/light/rc/branch_more@2x.png b/src/qdarkstyle/light/rc/branch_more@2x.png new file mode 100644 index 000000000..5a3b1e98f Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_more@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_more_disabled.png b/src/qdarkstyle/light/rc/branch_more_disabled.png new file mode 100644 index 000000000..d801611bb Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_more_disabled.png differ diff --git a/src/qdarkstyle/light/rc/branch_more_disabled@2x.png b/src/qdarkstyle/light/rc/branch_more_disabled@2x.png new file mode 100644 index 000000000..2505e2a7c Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_more_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_more_focus.png b/src/qdarkstyle/light/rc/branch_more_focus.png new file mode 100644 index 000000000..be5b2cbfa Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_more_focus.png differ diff --git a/src/qdarkstyle/light/rc/branch_more_focus@2x.png b/src/qdarkstyle/light/rc/branch_more_focus@2x.png new file mode 100644 index 000000000..ca0f99e0e Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_more_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_more_pressed.png b/src/qdarkstyle/light/rc/branch_more_pressed.png new file mode 100644 index 000000000..6e744b78e Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_more_pressed.png differ diff --git a/src/qdarkstyle/light/rc/branch_more_pressed@2x.png b/src/qdarkstyle/light/rc/branch_more_pressed@2x.png new file mode 100644 index 000000000..fdaf01f03 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_more_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_open.png b/src/qdarkstyle/light/rc/branch_open.png new file mode 100644 index 000000000..e43b940cb Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_open.png differ diff --git a/src/qdarkstyle/light/rc/branch_open@2x.png b/src/qdarkstyle/light/rc/branch_open@2x.png new file mode 100644 index 000000000..691e38c18 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_open@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_open_disabled.png b/src/qdarkstyle/light/rc/branch_open_disabled.png new file mode 100644 index 000000000..9e445449e Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_open_disabled.png differ diff --git a/src/qdarkstyle/light/rc/branch_open_disabled@2x.png b/src/qdarkstyle/light/rc/branch_open_disabled@2x.png new file mode 100644 index 000000000..246bdbbed Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_open_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_open_focus.png b/src/qdarkstyle/light/rc/branch_open_focus.png new file mode 100644 index 000000000..a4b332e3e Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_open_focus.png differ diff --git a/src/qdarkstyle/light/rc/branch_open_focus@2x.png b/src/qdarkstyle/light/rc/branch_open_focus@2x.png new file mode 100644 index 000000000..27c8dcacf Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_open_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/branch_open_pressed.png b/src/qdarkstyle/light/rc/branch_open_pressed.png new file mode 100644 index 000000000..205f9414e Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_open_pressed.png differ diff --git a/src/qdarkstyle/light/rc/branch_open_pressed@2x.png b/src/qdarkstyle/light/rc/branch_open_pressed@2x.png new file mode 100644 index 000000000..d09878a61 Binary files /dev/null and b/src/qdarkstyle/light/rc/branch_open_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_checked.png b/src/qdarkstyle/light/rc/checkbox_checked.png new file mode 100644 index 000000000..f63f2b38f Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_checked.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_checked@2x.png b/src/qdarkstyle/light/rc/checkbox_checked@2x.png new file mode 100644 index 000000000..7617ed7dc Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_checked@2x.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_checked_disabled.png b/src/qdarkstyle/light/rc/checkbox_checked_disabled.png new file mode 100644 index 000000000..2eab1ba0c Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_checked_disabled.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_checked_disabled@2x.png b/src/qdarkstyle/light/rc/checkbox_checked_disabled@2x.png new file mode 100644 index 000000000..518d55d5e Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_checked_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_checked_focus.png b/src/qdarkstyle/light/rc/checkbox_checked_focus.png new file mode 100644 index 000000000..fccb71edc Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_checked_focus.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_checked_focus@2x.png b/src/qdarkstyle/light/rc/checkbox_checked_focus@2x.png new file mode 100644 index 000000000..e12217d0a Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_checked_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_checked_pressed.png b/src/qdarkstyle/light/rc/checkbox_checked_pressed.png new file mode 100644 index 000000000..d93ca9903 Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_checked_pressed.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_checked_pressed@2x.png b/src/qdarkstyle/light/rc/checkbox_checked_pressed@2x.png new file mode 100644 index 000000000..7ee1d3514 Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_checked_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_indeterminate.png b/src/qdarkstyle/light/rc/checkbox_indeterminate.png new file mode 100644 index 000000000..8f4d0f161 Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_indeterminate.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_indeterminate@2x.png b/src/qdarkstyle/light/rc/checkbox_indeterminate@2x.png new file mode 100644 index 000000000..3d106399b Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_indeterminate@2x.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_indeterminate_disabled.png b/src/qdarkstyle/light/rc/checkbox_indeterminate_disabled.png new file mode 100644 index 000000000..0a093c819 Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_indeterminate_disabled.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_indeterminate_disabled@2x.png b/src/qdarkstyle/light/rc/checkbox_indeterminate_disabled@2x.png new file mode 100644 index 000000000..06db251f9 Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_indeterminate_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_indeterminate_focus.png b/src/qdarkstyle/light/rc/checkbox_indeterminate_focus.png new file mode 100644 index 000000000..33fd572bd Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_indeterminate_focus.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_indeterminate_focus@2x.png b/src/qdarkstyle/light/rc/checkbox_indeterminate_focus@2x.png new file mode 100644 index 000000000..691ddf1da Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_indeterminate_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_indeterminate_pressed.png b/src/qdarkstyle/light/rc/checkbox_indeterminate_pressed.png new file mode 100644 index 000000000..2aff90928 Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_indeterminate_pressed.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_indeterminate_pressed@2x.png b/src/qdarkstyle/light/rc/checkbox_indeterminate_pressed@2x.png new file mode 100644 index 000000000..fb4e03861 Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_indeterminate_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_unchecked.png b/src/qdarkstyle/light/rc/checkbox_unchecked.png new file mode 100644 index 000000000..3c0608784 Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_unchecked.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_unchecked@2x.png b/src/qdarkstyle/light/rc/checkbox_unchecked@2x.png new file mode 100644 index 000000000..fa0648786 Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_unchecked@2x.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_unchecked_disabled.png b/src/qdarkstyle/light/rc/checkbox_unchecked_disabled.png new file mode 100644 index 000000000..bba927e50 Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_unchecked_disabled.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_unchecked_disabled@2x.png b/src/qdarkstyle/light/rc/checkbox_unchecked_disabled@2x.png new file mode 100644 index 000000000..592d5949a Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_unchecked_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_unchecked_focus.png b/src/qdarkstyle/light/rc/checkbox_unchecked_focus.png new file mode 100644 index 000000000..7e460184a Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_unchecked_focus.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_unchecked_focus@2x.png b/src/qdarkstyle/light/rc/checkbox_unchecked_focus@2x.png new file mode 100644 index 000000000..3f96917b5 Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_unchecked_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_unchecked_pressed.png b/src/qdarkstyle/light/rc/checkbox_unchecked_pressed.png new file mode 100644 index 000000000..5fd771d1a Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_unchecked_pressed.png differ diff --git a/src/qdarkstyle/light/rc/checkbox_unchecked_pressed@2x.png b/src/qdarkstyle/light/rc/checkbox_unchecked_pressed@2x.png new file mode 100644 index 000000000..57f25fbae Binary files /dev/null and b/src/qdarkstyle/light/rc/checkbox_unchecked_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/line_horizontal.png b/src/qdarkstyle/light/rc/line_horizontal.png new file mode 100644 index 000000000..22a0b1e2b Binary files /dev/null and b/src/qdarkstyle/light/rc/line_horizontal.png differ diff --git a/src/qdarkstyle/light/rc/line_horizontal@2x.png b/src/qdarkstyle/light/rc/line_horizontal@2x.png new file mode 100644 index 000000000..8bd474944 Binary files /dev/null and b/src/qdarkstyle/light/rc/line_horizontal@2x.png differ diff --git a/src/qdarkstyle/light/rc/line_horizontal_disabled.png b/src/qdarkstyle/light/rc/line_horizontal_disabled.png new file mode 100644 index 000000000..3dc9c69e0 Binary files /dev/null and b/src/qdarkstyle/light/rc/line_horizontal_disabled.png differ diff --git a/src/qdarkstyle/light/rc/line_horizontal_disabled@2x.png b/src/qdarkstyle/light/rc/line_horizontal_disabled@2x.png new file mode 100644 index 000000000..a2d3664af Binary files /dev/null and b/src/qdarkstyle/light/rc/line_horizontal_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/line_horizontal_focus.png b/src/qdarkstyle/light/rc/line_horizontal_focus.png new file mode 100644 index 000000000..136faa84c Binary files /dev/null and b/src/qdarkstyle/light/rc/line_horizontal_focus.png differ diff --git a/src/qdarkstyle/light/rc/line_horizontal_focus@2x.png b/src/qdarkstyle/light/rc/line_horizontal_focus@2x.png new file mode 100644 index 000000000..398d22432 Binary files /dev/null and b/src/qdarkstyle/light/rc/line_horizontal_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/line_horizontal_pressed.png b/src/qdarkstyle/light/rc/line_horizontal_pressed.png new file mode 100644 index 000000000..e2027b14e Binary files /dev/null and b/src/qdarkstyle/light/rc/line_horizontal_pressed.png differ diff --git a/src/qdarkstyle/light/rc/line_horizontal_pressed@2x.png b/src/qdarkstyle/light/rc/line_horizontal_pressed@2x.png new file mode 100644 index 000000000..24b83299b Binary files /dev/null and b/src/qdarkstyle/light/rc/line_horizontal_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/line_vertical.png b/src/qdarkstyle/light/rc/line_vertical.png new file mode 100644 index 000000000..0a4c5f364 Binary files /dev/null and b/src/qdarkstyle/light/rc/line_vertical.png differ diff --git a/src/qdarkstyle/light/rc/line_vertical@2x.png b/src/qdarkstyle/light/rc/line_vertical@2x.png new file mode 100644 index 000000000..e67ccf52b Binary files /dev/null and b/src/qdarkstyle/light/rc/line_vertical@2x.png differ diff --git a/src/qdarkstyle/light/rc/line_vertical_disabled.png b/src/qdarkstyle/light/rc/line_vertical_disabled.png new file mode 100644 index 000000000..9700752d9 Binary files /dev/null and b/src/qdarkstyle/light/rc/line_vertical_disabled.png differ diff --git a/src/qdarkstyle/light/rc/line_vertical_disabled@2x.png b/src/qdarkstyle/light/rc/line_vertical_disabled@2x.png new file mode 100644 index 000000000..0f57c568f Binary files /dev/null and b/src/qdarkstyle/light/rc/line_vertical_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/line_vertical_focus.png b/src/qdarkstyle/light/rc/line_vertical_focus.png new file mode 100644 index 000000000..15ef20825 Binary files /dev/null and b/src/qdarkstyle/light/rc/line_vertical_focus.png differ diff --git a/src/qdarkstyle/light/rc/line_vertical_focus@2x.png b/src/qdarkstyle/light/rc/line_vertical_focus@2x.png new file mode 100644 index 000000000..a35e97ed0 Binary files /dev/null and b/src/qdarkstyle/light/rc/line_vertical_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/line_vertical_pressed.png b/src/qdarkstyle/light/rc/line_vertical_pressed.png new file mode 100644 index 000000000..7399cd38e Binary files /dev/null and b/src/qdarkstyle/light/rc/line_vertical_pressed.png differ diff --git a/src/qdarkstyle/light/rc/line_vertical_pressed@2x.png b/src/qdarkstyle/light/rc/line_vertical_pressed@2x.png new file mode 100644 index 000000000..e018b9af8 Binary files /dev/null and b/src/qdarkstyle/light/rc/line_vertical_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/radio_checked.png b/src/qdarkstyle/light/rc/radio_checked.png new file mode 100644 index 000000000..878b6c53c Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_checked.png differ diff --git a/src/qdarkstyle/light/rc/radio_checked@2x.png b/src/qdarkstyle/light/rc/radio_checked@2x.png new file mode 100644 index 000000000..ed20cd4cf Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_checked@2x.png differ diff --git a/src/qdarkstyle/light/rc/radio_checked_disabled.png b/src/qdarkstyle/light/rc/radio_checked_disabled.png new file mode 100644 index 000000000..1aa26ee00 Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_checked_disabled.png differ diff --git a/src/qdarkstyle/light/rc/radio_checked_disabled@2x.png b/src/qdarkstyle/light/rc/radio_checked_disabled@2x.png new file mode 100644 index 000000000..72b69d59b Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_checked_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/radio_checked_focus.png b/src/qdarkstyle/light/rc/radio_checked_focus.png new file mode 100644 index 000000000..90a54c6e1 Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_checked_focus.png differ diff --git a/src/qdarkstyle/light/rc/radio_checked_focus@2x.png b/src/qdarkstyle/light/rc/radio_checked_focus@2x.png new file mode 100644 index 000000000..81771885f Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_checked_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/radio_checked_pressed.png b/src/qdarkstyle/light/rc/radio_checked_pressed.png new file mode 100644 index 000000000..10170e374 Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_checked_pressed.png differ diff --git a/src/qdarkstyle/light/rc/radio_checked_pressed@2x.png b/src/qdarkstyle/light/rc/radio_checked_pressed@2x.png new file mode 100644 index 000000000..378608298 Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_checked_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/radio_unchecked.png b/src/qdarkstyle/light/rc/radio_unchecked.png new file mode 100644 index 000000000..639a55480 Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_unchecked.png differ diff --git a/src/qdarkstyle/light/rc/radio_unchecked@2x.png b/src/qdarkstyle/light/rc/radio_unchecked@2x.png new file mode 100644 index 000000000..a2f23fd6f Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_unchecked@2x.png differ diff --git a/src/qdarkstyle/light/rc/radio_unchecked_disabled.png b/src/qdarkstyle/light/rc/radio_unchecked_disabled.png new file mode 100644 index 000000000..6f7424ca7 Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_unchecked_disabled.png differ diff --git a/src/qdarkstyle/light/rc/radio_unchecked_disabled@2x.png b/src/qdarkstyle/light/rc/radio_unchecked_disabled@2x.png new file mode 100644 index 000000000..bf9330f24 Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_unchecked_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/radio_unchecked_focus.png b/src/qdarkstyle/light/rc/radio_unchecked_focus.png new file mode 100644 index 000000000..2316d7872 Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_unchecked_focus.png differ diff --git a/src/qdarkstyle/light/rc/radio_unchecked_focus@2x.png b/src/qdarkstyle/light/rc/radio_unchecked_focus@2x.png new file mode 100644 index 000000000..9695890ba Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_unchecked_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/radio_unchecked_pressed.png b/src/qdarkstyle/light/rc/radio_unchecked_pressed.png new file mode 100644 index 000000000..2f2a7ba21 Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_unchecked_pressed.png differ diff --git a/src/qdarkstyle/light/rc/radio_unchecked_pressed@2x.png b/src/qdarkstyle/light/rc/radio_unchecked_pressed@2x.png new file mode 100644 index 000000000..22a7e7139 Binary files /dev/null and b/src/qdarkstyle/light/rc/radio_unchecked_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_horizontal.png b/src/qdarkstyle/light/rc/toolbar_move_horizontal.png new file mode 100644 index 000000000..a1109caf8 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_horizontal.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_horizontal@2x.png b/src/qdarkstyle/light/rc/toolbar_move_horizontal@2x.png new file mode 100644 index 000000000..69bb6347d Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_horizontal@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_horizontal_disabled.png b/src/qdarkstyle/light/rc/toolbar_move_horizontal_disabled.png new file mode 100644 index 000000000..e11055a6a Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_horizontal_disabled.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_horizontal_disabled@2x.png b/src/qdarkstyle/light/rc/toolbar_move_horizontal_disabled@2x.png new file mode 100644 index 000000000..9085b627e Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_horizontal_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_horizontal_focus.png b/src/qdarkstyle/light/rc/toolbar_move_horizontal_focus.png new file mode 100644 index 000000000..3c0be5a0e Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_horizontal_focus.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_horizontal_focus@2x.png b/src/qdarkstyle/light/rc/toolbar_move_horizontal_focus@2x.png new file mode 100644 index 000000000..f01973d05 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_horizontal_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_horizontal_pressed.png b/src/qdarkstyle/light/rc/toolbar_move_horizontal_pressed.png new file mode 100644 index 000000000..94c0f5b6d Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_horizontal_pressed.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_horizontal_pressed@2x.png b/src/qdarkstyle/light/rc/toolbar_move_horizontal_pressed@2x.png new file mode 100644 index 000000000..612ea774f Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_horizontal_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_vertical.png b/src/qdarkstyle/light/rc/toolbar_move_vertical.png new file mode 100644 index 000000000..b16c48c40 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_vertical.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_vertical@2x.png b/src/qdarkstyle/light/rc/toolbar_move_vertical@2x.png new file mode 100644 index 000000000..853962cd6 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_vertical@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_vertical_disabled.png b/src/qdarkstyle/light/rc/toolbar_move_vertical_disabled.png new file mode 100644 index 000000000..9b3caec07 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_vertical_disabled.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_vertical_disabled@2x.png b/src/qdarkstyle/light/rc/toolbar_move_vertical_disabled@2x.png new file mode 100644 index 000000000..bdda6796a Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_vertical_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_vertical_focus.png b/src/qdarkstyle/light/rc/toolbar_move_vertical_focus.png new file mode 100644 index 000000000..6a432a4ba Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_vertical_focus.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_vertical_focus@2x.png b/src/qdarkstyle/light/rc/toolbar_move_vertical_focus@2x.png new file mode 100644 index 000000000..817a8da55 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_vertical_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_vertical_pressed.png b/src/qdarkstyle/light/rc/toolbar_move_vertical_pressed.png new file mode 100644 index 000000000..50228af7b Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_vertical_pressed.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_move_vertical_pressed@2x.png b/src/qdarkstyle/light/rc/toolbar_move_vertical_pressed@2x.png new file mode 100644 index 000000000..1946791ad Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_move_vertical_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_horizontal.png b/src/qdarkstyle/light/rc/toolbar_separator_horizontal.png new file mode 100644 index 000000000..f6661b4b1 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_horizontal.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_horizontal@2x.png b/src/qdarkstyle/light/rc/toolbar_separator_horizontal@2x.png new file mode 100644 index 000000000..77cadc217 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_horizontal@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_horizontal_disabled.png b/src/qdarkstyle/light/rc/toolbar_separator_horizontal_disabled.png new file mode 100644 index 000000000..a65e13e46 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_horizontal_disabled.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_horizontal_disabled@2x.png b/src/qdarkstyle/light/rc/toolbar_separator_horizontal_disabled@2x.png new file mode 100644 index 000000000..77b9abcaf Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_horizontal_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_horizontal_focus.png b/src/qdarkstyle/light/rc/toolbar_separator_horizontal_focus.png new file mode 100644 index 000000000..843633ffa Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_horizontal_focus.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_horizontal_focus@2x.png b/src/qdarkstyle/light/rc/toolbar_separator_horizontal_focus@2x.png new file mode 100644 index 000000000..21d4011fc Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_horizontal_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_horizontal_pressed.png b/src/qdarkstyle/light/rc/toolbar_separator_horizontal_pressed.png new file mode 100644 index 000000000..edf05752f Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_horizontal_pressed.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_horizontal_pressed@2x.png b/src/qdarkstyle/light/rc/toolbar_separator_horizontal_pressed@2x.png new file mode 100644 index 000000000..977ec62a9 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_horizontal_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_vertical.png b/src/qdarkstyle/light/rc/toolbar_separator_vertical.png new file mode 100644 index 000000000..2776d87b5 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_vertical.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_vertical@2x.png b/src/qdarkstyle/light/rc/toolbar_separator_vertical@2x.png new file mode 100644 index 000000000..ab9e773a8 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_vertical@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_vertical_disabled.png b/src/qdarkstyle/light/rc/toolbar_separator_vertical_disabled.png new file mode 100644 index 000000000..cb443940b Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_vertical_disabled.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_vertical_disabled@2x.png b/src/qdarkstyle/light/rc/toolbar_separator_vertical_disabled@2x.png new file mode 100644 index 000000000..f4e241ab2 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_vertical_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_vertical_focus.png b/src/qdarkstyle/light/rc/toolbar_separator_vertical_focus.png new file mode 100644 index 000000000..4a45d55c0 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_vertical_focus.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_vertical_focus@2x.png b/src/qdarkstyle/light/rc/toolbar_separator_vertical_focus@2x.png new file mode 100644 index 000000000..c58d8d120 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_vertical_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_vertical_pressed.png b/src/qdarkstyle/light/rc/toolbar_separator_vertical_pressed.png new file mode 100644 index 000000000..408fa169a Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_vertical_pressed.png differ diff --git a/src/qdarkstyle/light/rc/toolbar_separator_vertical_pressed@2x.png b/src/qdarkstyle/light/rc/toolbar_separator_vertical_pressed@2x.png new file mode 100644 index 000000000..92feb3652 Binary files /dev/null and b/src/qdarkstyle/light/rc/toolbar_separator_vertical_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/transparent.png b/src/qdarkstyle/light/rc/transparent.png new file mode 100644 index 000000000..3a95111e5 Binary files /dev/null and b/src/qdarkstyle/light/rc/transparent.png differ diff --git a/src/qdarkstyle/light/rc/transparent@2x.png b/src/qdarkstyle/light/rc/transparent@2x.png new file mode 100644 index 000000000..4c4b95225 Binary files /dev/null and b/src/qdarkstyle/light/rc/transparent@2x.png differ diff --git a/src/qdarkstyle/light/rc/transparent_disabled.png b/src/qdarkstyle/light/rc/transparent_disabled.png new file mode 100644 index 000000000..3a95111e5 Binary files /dev/null and b/src/qdarkstyle/light/rc/transparent_disabled.png differ diff --git a/src/qdarkstyle/light/rc/transparent_disabled@2x.png b/src/qdarkstyle/light/rc/transparent_disabled@2x.png new file mode 100644 index 000000000..4c4b95225 Binary files /dev/null and b/src/qdarkstyle/light/rc/transparent_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/transparent_focus.png b/src/qdarkstyle/light/rc/transparent_focus.png new file mode 100644 index 000000000..3a95111e5 Binary files /dev/null and b/src/qdarkstyle/light/rc/transparent_focus.png differ diff --git a/src/qdarkstyle/light/rc/transparent_focus@2x.png b/src/qdarkstyle/light/rc/transparent_focus@2x.png new file mode 100644 index 000000000..4c4b95225 Binary files /dev/null and b/src/qdarkstyle/light/rc/transparent_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/transparent_pressed.png b/src/qdarkstyle/light/rc/transparent_pressed.png new file mode 100644 index 000000000..3a95111e5 Binary files /dev/null and b/src/qdarkstyle/light/rc/transparent_pressed.png differ diff --git a/src/qdarkstyle/light/rc/transparent_pressed@2x.png b/src/qdarkstyle/light/rc/transparent_pressed@2x.png new file mode 100644 index 000000000..4c4b95225 Binary files /dev/null and b/src/qdarkstyle/light/rc/transparent_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_close.png b/src/qdarkstyle/light/rc/window_close.png new file mode 100644 index 000000000..607170bae Binary files /dev/null and b/src/qdarkstyle/light/rc/window_close.png differ diff --git a/src/qdarkstyle/light/rc/window_close@2x.png b/src/qdarkstyle/light/rc/window_close@2x.png new file mode 100644 index 000000000..607f894a6 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_close@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_close_disabled.png b/src/qdarkstyle/light/rc/window_close_disabled.png new file mode 100644 index 000000000..449deec63 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_close_disabled.png differ diff --git a/src/qdarkstyle/light/rc/window_close_disabled@2x.png b/src/qdarkstyle/light/rc/window_close_disabled@2x.png new file mode 100644 index 000000000..eda9fb4ce Binary files /dev/null and b/src/qdarkstyle/light/rc/window_close_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_close_focus.png b/src/qdarkstyle/light/rc/window_close_focus.png new file mode 100644 index 000000000..1cd49c73e Binary files /dev/null and b/src/qdarkstyle/light/rc/window_close_focus.png differ diff --git a/src/qdarkstyle/light/rc/window_close_focus@2x.png b/src/qdarkstyle/light/rc/window_close_focus@2x.png new file mode 100644 index 000000000..a13da2129 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_close_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_close_pressed.png b/src/qdarkstyle/light/rc/window_close_pressed.png new file mode 100644 index 000000000..c5e2a9143 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_close_pressed.png differ diff --git a/src/qdarkstyle/light/rc/window_close_pressed@2x.png b/src/qdarkstyle/light/rc/window_close_pressed@2x.png new file mode 100644 index 000000000..278288ed1 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_close_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_grip.png b/src/qdarkstyle/light/rc/window_grip.png new file mode 100644 index 000000000..c03b1dce3 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_grip.png differ diff --git a/src/qdarkstyle/light/rc/window_grip@2x.png b/src/qdarkstyle/light/rc/window_grip@2x.png new file mode 100644 index 000000000..7074bd6d2 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_grip@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_grip_disabled.png b/src/qdarkstyle/light/rc/window_grip_disabled.png new file mode 100644 index 000000000..3c479884b Binary files /dev/null and b/src/qdarkstyle/light/rc/window_grip_disabled.png differ diff --git a/src/qdarkstyle/light/rc/window_grip_disabled@2x.png b/src/qdarkstyle/light/rc/window_grip_disabled@2x.png new file mode 100644 index 000000000..eb4a063a7 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_grip_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_grip_focus.png b/src/qdarkstyle/light/rc/window_grip_focus.png new file mode 100644 index 000000000..46c77d37a Binary files /dev/null and b/src/qdarkstyle/light/rc/window_grip_focus.png differ diff --git a/src/qdarkstyle/light/rc/window_grip_focus@2x.png b/src/qdarkstyle/light/rc/window_grip_focus@2x.png new file mode 100644 index 000000000..f487c6adb Binary files /dev/null and b/src/qdarkstyle/light/rc/window_grip_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_grip_pressed.png b/src/qdarkstyle/light/rc/window_grip_pressed.png new file mode 100644 index 000000000..a4d075905 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_grip_pressed.png differ diff --git a/src/qdarkstyle/light/rc/window_grip_pressed@2x.png b/src/qdarkstyle/light/rc/window_grip_pressed@2x.png new file mode 100644 index 000000000..54dc3d8a8 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_grip_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_minimize.png b/src/qdarkstyle/light/rc/window_minimize.png new file mode 100644 index 000000000..9e1a7f12c Binary files /dev/null and b/src/qdarkstyle/light/rc/window_minimize.png differ diff --git a/src/qdarkstyle/light/rc/window_minimize@2x.png b/src/qdarkstyle/light/rc/window_minimize@2x.png new file mode 100644 index 000000000..dcd2570cc Binary files /dev/null and b/src/qdarkstyle/light/rc/window_minimize@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_minimize_disabled.png b/src/qdarkstyle/light/rc/window_minimize_disabled.png new file mode 100644 index 000000000..9fd0ef169 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_minimize_disabled.png differ diff --git a/src/qdarkstyle/light/rc/window_minimize_disabled@2x.png b/src/qdarkstyle/light/rc/window_minimize_disabled@2x.png new file mode 100644 index 000000000..251cefcce Binary files /dev/null and b/src/qdarkstyle/light/rc/window_minimize_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_minimize_focus.png b/src/qdarkstyle/light/rc/window_minimize_focus.png new file mode 100644 index 000000000..4d748783b Binary files /dev/null and b/src/qdarkstyle/light/rc/window_minimize_focus.png differ diff --git a/src/qdarkstyle/light/rc/window_minimize_focus@2x.png b/src/qdarkstyle/light/rc/window_minimize_focus@2x.png new file mode 100644 index 000000000..97901fed5 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_minimize_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_minimize_pressed.png b/src/qdarkstyle/light/rc/window_minimize_pressed.png new file mode 100644 index 000000000..78de6557b Binary files /dev/null and b/src/qdarkstyle/light/rc/window_minimize_pressed.png differ diff --git a/src/qdarkstyle/light/rc/window_minimize_pressed@2x.png b/src/qdarkstyle/light/rc/window_minimize_pressed@2x.png new file mode 100644 index 000000000..6b961459b Binary files /dev/null and b/src/qdarkstyle/light/rc/window_minimize_pressed@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_undock.png b/src/qdarkstyle/light/rc/window_undock.png new file mode 100644 index 000000000..4da192f33 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_undock.png differ diff --git a/src/qdarkstyle/light/rc/window_undock@2x.png b/src/qdarkstyle/light/rc/window_undock@2x.png new file mode 100644 index 000000000..5cfe75ccc Binary files /dev/null and b/src/qdarkstyle/light/rc/window_undock@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_undock_disabled.png b/src/qdarkstyle/light/rc/window_undock_disabled.png new file mode 100644 index 000000000..b0db9c7a7 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_undock_disabled.png differ diff --git a/src/qdarkstyle/light/rc/window_undock_disabled@2x.png b/src/qdarkstyle/light/rc/window_undock_disabled@2x.png new file mode 100644 index 000000000..9468c9f32 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_undock_disabled@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_undock_focus.png b/src/qdarkstyle/light/rc/window_undock_focus.png new file mode 100644 index 000000000..85fb0468e Binary files /dev/null and b/src/qdarkstyle/light/rc/window_undock_focus.png differ diff --git a/src/qdarkstyle/light/rc/window_undock_focus@2x.png b/src/qdarkstyle/light/rc/window_undock_focus@2x.png new file mode 100644 index 000000000..e13b2f075 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_undock_focus@2x.png differ diff --git a/src/qdarkstyle/light/rc/window_undock_pressed.png b/src/qdarkstyle/light/rc/window_undock_pressed.png new file mode 100644 index 000000000..d368cc9ad Binary files /dev/null and b/src/qdarkstyle/light/rc/window_undock_pressed.png differ diff --git a/src/qdarkstyle/light/rc/window_undock_pressed@2x.png b/src/qdarkstyle/light/rc/window_undock_pressed@2x.png new file mode 100644 index 000000000..b30f0dbb6 Binary files /dev/null and b/src/qdarkstyle/light/rc/window_undock_pressed@2x.png differ diff --git a/src/qdarkstyle/light/style.qss b/src/qdarkstyle/light/style.qss new file mode 100644 index 000000000..1d7f73168 --- /dev/null +++ b/src/qdarkstyle/light/style.qss @@ -0,0 +1,2237 @@ +/* --------------------------------------------------------------------------- + + WARNING! File created programmatically. All changes made in this file will be lost! + + Created by the qtsass compiler v0.3.0 + + The definitions are in the "qdarkstyle.qss._styles.scss" module + +--------------------------------------------------------------------------- */ +/* Dark Style - QDarkStyleSheet ------------------------------------------ */ +/* + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #FAFAFA; + border: 0px solid #C9CDD0; + padding: 0px; + color: #19232D; + selection-background-color: #9FCBFF; + selection-color: #19232D; +} + +QWidget:disabled { + background-color: #FAFAFA; + color: #788D9C; + selection-background-color: #DAEDFF; + selection-color: #788D9C; +} + +QWidget::item:selected { + background-color: #9FCBFF; +} + +QWidget::item:hover:!selected { + background-color: #73C7FF; +} + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + background-color: #C9CDD0; + border: 0px solid #FAFAFA; + spacing: 0px; + padding: 2px; +} + +QMainWindow::separator:hover { + background-color: #ACB1B6; + border: 0px solid #73C7FF; +} + +QMainWindow::separator:horizontal { + width: 5px; + margin-top: 2px; + margin-bottom: 2px; + image: url(":/qss_icons/light/rc/toolbar_separator_vertical.png"); +} + +QMainWindow::separator:vertical { + height: 5px; + margin-left: 2px; + margin-right: 2px; + image: url(":/qss_icons/light/rc/toolbar_separator_horizontal.png"); +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #9FCBFF; + color: #19232D; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 1px solid #C9CDD0; + /* Fixes Spyder #9120, #9121 */ + background: #C9CDD0; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #73C7FF; + border: 1px solid #FAFAFA; + color: #FAFAFA; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + background-color: #FAFAFA; + color: #19232D; + spacing: 4px; + outline: none; + padding-top: 4px; + padding-bottom: 4px; +} + +QCheckBox:focus { + border: none; +} + +QCheckBox QWidget:disabled { + background-color: #FAFAFA; + color: #788D9C; +} + +QCheckBox::indicator { + margin-left: 2px; + height: 14px; + width: 14px; +} + +QCheckBox::indicator:unchecked { + image: url(":/qss_icons/light/rc/checkbox_unchecked.png"); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + border: none; + image: url(":/qss_icons/light/rc/checkbox_unchecked_focus.png"); +} + +QCheckBox::indicator:unchecked:disabled { + image: url(":/qss_icons/light/rc/checkbox_unchecked_disabled.png"); +} + +QCheckBox::indicator:checked { + image: url(":/qss_icons/light/rc/checkbox_checked.png"); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:focus, QCheckBox::indicator:checked:pressed { + border: none; + image: url(":/qss_icons/light/rc/checkbox_checked_focus.png"); +} + +QCheckBox::indicator:checked:disabled { + image: url(":/qss_icons/light/rc/checkbox_checked_disabled.png"); +} + +QCheckBox::indicator:indeterminate { + image: url(":/qss_icons/light/rc/checkbox_indeterminate.png"); +} + +QCheckBox::indicator:indeterminate:disabled { + image: url(":/qss_icons/light/rc/checkbox_indeterminate_disabled.png"); +} + +QCheckBox::indicator:indeterminate:focus, QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + image: url(":/qss_icons/light/rc/checkbox_indeterminate_focus.png"); +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #C9CDD0; + border-radius: 4px; + padding: 2px; + margin-top: 6px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: -4px; +} + +QGroupBox::indicator { + margin-left: 2px; + margin-top: 2px; + padding: 0; + height: 14px; + width: 14px; +} + +QGroupBox::indicator:unchecked { + border: none; + image: url(":/qss_icons/light/rc/checkbox_unchecked.png"); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + border: none; + image: url(":/qss_icons/light/rc/checkbox_unchecked_focus.png"); +} + +QGroupBox::indicator:unchecked:disabled { + image: url(":/qss_icons/light/rc/checkbox_unchecked_disabled.png"); +} + +QGroupBox::indicator:checked { + border: none; + image: url(":/qss_icons/light/rc/checkbox_checked.png"); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + border: none; + image: url(":/qss_icons/light/rc/checkbox_checked_focus.png"); +} + +QGroupBox::indicator:checked:disabled { + image: url(":/qss_icons/light/rc/checkbox_checked_disabled.png"); +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: #FAFAFA; + color: #19232D; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + border: none; + outline: none; +} + +QRadioButton:focus { + border: none; +} + +QRadioButton:disabled { + background-color: #FAFAFA; + color: #788D9C; + border: none; + outline: none; +} + +QRadioButton QWidget { + background-color: #FAFAFA; + color: #19232D; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + border: none; + outline: none; + margin-left: 2px; + height: 14px; + width: 14px; +} + +QRadioButton::indicator:unchecked { + image: url(":/qss_icons/light/rc/radio_unchecked.png"); +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:focus, QRadioButton::indicator:unchecked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/light/rc/radio_unchecked_focus.png"); +} + +QRadioButton::indicator:unchecked:disabled { + image: url(":/qss_icons/light/rc/radio_unchecked_disabled.png"); +} + +QRadioButton::indicator:checked { + border: none; + outline: none; + image: url(":/qss_icons/light/rc/radio_checked.png"); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:focus, QRadioButton::indicator:checked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/light/rc/radio_checked_focus.png"); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + image: url(":/qss_icons/light/rc/radio_checked_disabled.png"); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #C9CDD0; + padding: 2px; + border: 1px solid #FAFAFA; + color: #19232D; + selection-background-color: #73C7FF; +} + +QMenuBar:focus { + border: 1px solid #9FCBFF; +} + +QMenuBar::item { + background: transparent; + padding: 4px; +} + +QMenuBar::item:selected { + padding: 4px; + background: transparent; + border: 0px solid #C9CDD0; + background-color: #73C7FF; +} + +QMenuBar::item:pressed { + padding: 4px; + border: 0px solid #C9CDD0; + background-color: #73C7FF; + color: #19232D; + margin-bottom: 0px; + padding-bottom: 0px; +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border: 0px solid #C9CDD0; + color: #19232D; + margin: 0px; + background-color: #CED1D4; + selection-background-color: #73C7FF; +} + +QMenu::separator { + height: 1px; + background-color: #ACB1B6; + color: #19232D; +} + +QMenu::icon { + margin: 0px; + padding-left: 8px; +} + +QMenu::item { + background-color: #CED1D4; + padding: 4px 24px 4px 8px; + /* Reserve space for selection border */ + border: 1px transparent #C9CDD0; +} + +QMenu::item:selected { + color: #19232D; + background-color: #73C7FF; +} + +QMenu::item:pressed { + background-color: #73C7FF; +} + +QMenu::indicator { + width: 14px; + height: 14px; + padding-left: 6px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::indicator:non-exclusive:unchecked { + image: url(":/qss_icons/light/rc/checkbox_unchecked.png"); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + image: url(":/qss_icons/light/rc/checkbox_unchecked_focus.png"); +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(":/qss_icons/light/rc/checkbox_unchecked_disabled.png"); +} + +QMenu::indicator:non-exclusive:checked { + image: url(":/qss_icons/light/rc/checkbox_checked.png"); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + image: url(":/qss_icons/light/rc/checkbox_checked_focus.png"); +} + +QMenu::indicator:non-exclusive:checked:disabled { + image: url(":/qss_icons/light/rc/checkbox_checked_disabled.png"); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(":/qss_icons/light/rc/checkbox_indeterminate.png"); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(":/qss_icons/light/rc/checkbox_indeterminate_disabled.png"); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(":/qss_icons/light/rc/checkbox_indeterminate_focus.png"); +} + +QMenu::indicator:exclusive:unchecked { + image: url(":/qss_icons/light/rc/radio_unchecked.png"); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/light/rc/radio_unchecked_focus.png"); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(":/qss_icons/light/rc/radio_unchecked_disabled.png"); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(":/qss_icons/light/rc/radio_checked.png"); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/light/rc/radio_checked_focus.png"); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(":/qss_icons/light/rc/radio_checked_disabled.png"); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image: url(":/qss_icons/light/rc/arrow_right.png"); + height: 12px; + width: 12px; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #FAFAFA; + color: #19232D; + border: 1px solid #C9CDD0; + border-radius: 4px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + border-radius: 4px; + /* fix #159 */ + padding: 2px; + /* remove min-height to fix #244 */ + color: #19232D; +} + +QAbstractScrollArea:disabled { + color: #788D9C; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- */ +QScrollArea QWidget QWidget:disabled { + background-color: #FAFAFA; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 1px solid #C9CDD0; + border-radius: 4px; + background-color: #FAFAFA; +} + +QScrollBar:vertical { + background-color: #FAFAFA; + width: 16px; + margin: 16px 2px 16px 2px; + border: 1px solid #C9CDD0; + border-radius: 4px; +} + +QScrollBar::handle:horizontal { + background-color: #ACB1B6; + border: 1px solid #C9CDD0; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #9FCBFF; + border: #9FCBFF; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #73C7FF; +} + +QScrollBar::handle:vertical { + background-color: #ACB1B6; + border: 1px solid #C9CDD0; + min-height: 8px; + border-radius: 4px; +} + +QScrollBar::handle:vertical:hover { + background-color: #9FCBFF; + border: #9FCBFF; + border-radius: 4px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #73C7FF; +} + +QScrollBar::add-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(":/qss_icons/light/rc/arrow_right_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(":/qss_icons/light/rc/arrow_right.png"); + height: 12px; + width: 12px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 0px; + border-image: url(":/qss_icons/light/rc/arrow_down_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(":/qss_icons/light/rc/arrow_down.png"); + height: 12px; + width: 12px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 3px 0px 3px; + border-image: url(":/qss_icons/light/rc/arrow_left_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(":/qss_icons/light/rc/arrow_left.png"); + height: 12px; + width: 12px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 0px; + border-image: url(":/qss_icons/light/rc/arrow_up_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(":/qss_icons/light/rc/arrow_up.png"); + height: 12px; + width: 12px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #FAFAFA; + color: #19232D; + border-radius: 4px; + border: 1px solid #C9CDD0; +} + +QTextEdit:focus { + border: 1px solid #73C7FF; +} + +QTextEdit:selected { + background: #9FCBFF; + color: #C9CDD0; +} + +/* QPlainTextEdit --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #FAFAFA; + color: #19232D; + border-radius: 4px; + border: 1px solid #C9CDD0; +} + +QPlainTextEdit:focus { + border: 1px solid #73C7FF; +} + +QPlainTextEdit:selected { + background: #9FCBFF; + color: #C9CDD0; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image: url(":/qss_icons/light/rc/window_grip.png"); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 2px; + border: 1px solid #C9CDD0; + border: 1px solid #FAFAFA; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #C9CDD0; + border-bottom: 1px solid #FAFAFA; + padding: 1px; + font-weight: bold; + spacing: 2px; +} + +QToolBar QToolButton { + background-color: #C9CDD0; + border: 1px solid #C9CDD0; + /* This fixes 202 */ +} + +QToolBar QToolButton:hover { + background-color: #B9BDC1; + border: #B9BDC1; +} + +QToolBar QToolButton:checked { + border: #ACB1B6; + background-color: #ACB1B6; +} + +QToolBar QToolButton:checked:hover { + background-color: #ACB1B6; + border: #ACB1B6; +} + +QToolBar QToolButton:pressed { + border: #ACB1B6; + background-color: #ACB1B6; +} + +QToolBar QToolButton:pressed:hover { + background-color: #ACB1B6; + border: #ACB1B6; +} + +QToolBar QToolButton:disabled { + border: #C9CDD0; + background-color: #C9CDD0; +} + +QToolBar::handle:horizontal { + width: 16px; + image: url(":/qss_icons/light/rc/toolbar_move_horizontal.png"); +} + +QToolBar::handle:vertical { + height: 16px; + image: url(":/qss_icons/light/rc/toolbar_move_vertical.png"); +} + +QToolBar::separator:horizontal { + width: 16px; + image: url(":/qss_icons/light/rc/toolbar_separator_horizontal.png"); +} + +QToolBar::separator:vertical { + height: 16px; + image: url(":/qss_icons/light/rc/toolbar_separator_vertical.png"); +} + +QToolButton#qt_toolbar_ext_button { + background: #C9CDD0; + border: 0px; + color: #19232D; + image: url(":/qss_icons/light/rc/arrow_right.png"); +} + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #19232D; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + border-radius: 4px; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: transparent #FAFAFA; + subcontrol-origin: border; + subcontrol-position: top right; + border-left: 1px solid #C9CDD0; + border-bottom: 1px solid #C9CDD0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin: 1px; + width: 12px; + margin-bottom: -1px; +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(":/qss_icons/light/rc/arrow_up_disabled.png"); + height: 8px; + width: 8px; +} + +QAbstractSpinBox::up-arrow:hover { + image: url(":/qss_icons/light/rc/arrow_up.png"); +} + +QAbstractSpinBox:down-button { + background-color: transparent #FAFAFA; + subcontrol-origin: border; + subcontrol-position: bottom right; + border-left: 1px solid #C9CDD0; + border-top: 1px solid #C9CDD0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin: 1px; + width: 12px; + margin-top: -1px; +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(":/qss_icons/light/rc/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QAbstractSpinBox::down-arrow:hover { + image: url(":/qss_icons/light/rc/arrow_down.png"); +} + +QAbstractSpinBox:hover { + border: 1px solid #9FCBFF; + color: #19232D; +} + +QAbstractSpinBox:focus { + border: 1px solid #73C7FF; +} + +QAbstractSpinBox:selected { + background: #9FCBFF; + color: #C9CDD0; +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: #FAFAFA; + border: 0px solid #C9CDD0; + padding: 2px; + margin: 0px; + color: #19232D; +} + +QLabel:disabled { + background-color: #FAFAFA; + border: 0px solid #C9CDD0; + color: #788D9C; +} + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #19232D; + border-radius: 4px; +} + +QTextBrowser:disabled { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #788D9C; + border-radius: 4px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #C9CDD0; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #19232D; + border-radius: 4px; +} + +QGraphicsView:disabled { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #788D9C; + border-radius: 4px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 1px solid #C9CDD0; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #C9CDD0; + border-radius: 4px; +} + +QCalendarWidget:disabled { + background-color: #FAFAFA; + color: #788D9C; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #FAFAFA; + color: #19232D; +} + +QLCDNumber:disabled { + background-color: #FAFAFA; + color: #788D9C; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #19232D; + border-radius: 4px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #788D9C; + border-radius: 4px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #9FCBFF; + color: #FAFAFA; + border-radius: 4px; +} + +QProgressBar::chunk:disabled { + background-color: #DAEDFF; + color: #788D9C; + border-radius: 4px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: #C9CDD0; + border: 1px solid #C9CDD0; + color: #19232D; + border-radius: 4px; + padding: 3px; + outline: none; +} + +QPushButton:disabled { + background-color: #C9CDD0; + border: 1px solid #C9CDD0; + color: #788D9C; + border-radius: 4px; + padding: 3px; +} + +QPushButton:checked { + background-color: #ACB1B6; + border: #ACB1B6; + border-radius: 4px; + padding: 3px; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #ACB1B6; + border: #ACB1B6; + color: #788D9C; + border-radius: 4px; + padding: 3px; + outline: none; +} + +QPushButton:checked:selected { + background: #ACB1B6; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QPushButton:hover { + background-color: #B9BDC1; + border: #B9BDC1; + color: #19232D; +} + +QPushButton:pressed { + background-color: #ACB1B6; + border: #ACB1B6; +} + +QPushButton:selected { + background: #ACB1B6; + color: #19232D; +} + +QDialogButtonBox QPushButton { + /* Issue #194 #248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + border: 1px solid transparent; + border-radius: 4px; + margin: 0px; + padding: 2px; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:checked { + background-color: #CED1D4; + border: #CED1D4; +} + +QToolButton:checked:disabled { + background-color: #C9CDD0; + border: #C9CDD0; +} + +QToolButton:checked:hover { + background-color: #CED1D4; + border: #CED1D4; +} + +QToolButton:pressed { + margin: 1px; + background-color: #CED1D4; + border: #CED1D4; +} + +QToolButton:pressed:hover { + background-color: #CED1D4; + border: #CED1D4; +} + +QToolButton:disabled { + border: none; +} + +QToolButton:hover { + background-color: #E0E1E3; + border: #E0E1E3; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 2px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 1px solid #73C7FF; + border-radius: 0; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 2px; +} + +QToolButton::menu-button { + padding: 2px; + border-radius: 4px; + border: 1px solid #C9CDD0; + width: 12px; + outline: none; +} + +QToolButton::menu-button:hover { + border: 1px solid #9FCBFF; +} + +QToolButton::menu-button:checked:hover { + border: 1px solid #9FCBFF; +} + +QToolButton::menu-indicator { + image: url(":/qss_icons/light/rc/arrow_down.png"); + height: 8px; + width: 8px; + top: 0; + /* Exclude a shift for better image */ + left: -2px; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(":/qss_icons/light/rc/arrow_down.png"); + height: 8px; + width: 8px; +} + +QToolButton::menu-arrow:hover { + image: url(":/qss_icons/light/rc/arrow_down_focus.png"); +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #C9CDD0; + color: #19232D; + border-radius: 4px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #788D9C; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid #C9CDD0; + border-radius: 4px; + selection-background-color: #9FCBFF; + padding-left: 4px; + padding-right: 4px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} + +QComboBox QAbstractItemView { + border: 1px solid #C9CDD0; + border-radius: 0; + background-color: #FAFAFA; + selection-background-color: #9FCBFF; +} + +QComboBox QAbstractItemView:hover { + background-color: #FAFAFA; + color: #19232D; +} + +QComboBox QAbstractItemView:selected { + background: #9FCBFF; + color: #C9CDD0; +} + +QComboBox QAbstractItemView:alternate { + background: #FAFAFA; +} + +QComboBox:disabled { + background-color: #FAFAFA; + color: #788D9C; +} + +QComboBox:hover { + border: 1px solid #9FCBFF; +} + +QComboBox:focus { + border: 1px solid #73C7FF; +} + +QComboBox:on { + selection-background-color: #9FCBFF; +} + +QComboBox::indicator { + border: none; + border-radius: 0; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: transparent; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #FAFAFA; +} + +QComboBox::item:alternate { + background: #FAFAFA; +} + +QComboBox::item:checked { + font-weight: bold; +} + +QComboBox::item:selected { + border: 0px solid transparent; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #C9CDD0; +} + +QComboBox::down-arrow { + image: url(":/qss_icons/light/rc/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(":/qss_icons/light/rc/arrow_down.png"); +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #FAFAFA; +} + +QSlider:focus { + border: none; +} + +QSlider::groove:horizontal { + background: #C9CDD0; + border: 1px solid #C9CDD0; + height: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::groove:vertical { + background: #C9CDD0; + border: 1px solid #C9CDD0; + width: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::add-page:vertical { + background: #9FCBFF; + border: 1px solid #C9CDD0; + width: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::add-page:vertical :disabled { + background: #DAEDFF; +} + +QSlider::sub-page:horizontal { + background: #9FCBFF; + border: 1px solid #C9CDD0; + height: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::sub-page:horizontal:disabled { + background: #DAEDFF; +} + +QSlider::handle:horizontal { + background: #788D9C; + border: 1px solid #C9CDD0; + width: 8px; + height: 8px; + margin: -8px 0px; + border-radius: 4px; +} + +QSlider::handle:horizontal:hover { + background: #9FCBFF; + border: 1px solid #9FCBFF; +} + +QSlider::handle:horizontal:focus { + border: 1px solid #73C7FF; +} + +QSlider::handle:vertical { + background: #788D9C; + border: 1px solid #C9CDD0; + width: 8px; + height: 8px; + margin: 0 -8px; + border-radius: 4px; +} + +QSlider::handle:vertical:hover { + background: #9FCBFF; + border: 1px solid #9FCBFF; +} + +QSlider::handle:vertical:focus { + border: 1px solid #73C7FF; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #FAFAFA; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #C9CDD0; + border-radius: 4px; + color: #19232D; +} + +QLineEdit:disabled { + background-color: #FAFAFA; + color: #788D9C; +} + +QLineEdit:hover { + border: 1px solid #9FCBFF; + color: #19232D; +} + +QLineEdit:focus { + border: 1px solid #73C7FF; +} + +QLineEdit:selected { + background-color: #9FCBFF; + color: #C9CDD0; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #C9CDD0; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 4px; +} + +QTabWidget::pane { + border: 1px solid #C9CDD0; + border-radius: 4px; + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #C9CDD0; + border: 1px solid #9FCBFF; +} + +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar { + qproperty-drawBase: 0; + border-radius: 4px; + margin: 0px; + padding: 2px; + border: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button { + border: 0; + margin: 0; + padding: 4px; + image: url(":/qss_icons/light/rc/window_close.png"); +} + +QTabBar::close-button:hover { + image: url(":/qss_icons/light/rc/window_close_focus.png"); +} + +QTabBar::close-button:pressed { + image: url(":/qss_icons/light/rc/window_close_pressed.png"); +} + +QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ +} + +QTabBar::tab:top:selected:disabled { + border-bottom: 3px solid #DAEDFF; + color: #788D9C; + background-color: #C9CDD0; +} + +QTabBar::tab:bottom:selected:disabled { + border-top: 3px solid #DAEDFF; + color: #788D9C; + background-color: #C9CDD0; +} + +QTabBar::tab:left:selected:disabled { + border-right: 3px solid #DAEDFF; + color: #788D9C; + background-color: #C9CDD0; +} + +QTabBar::tab:right:selected:disabled { + border-left: 3px solid #DAEDFF; + color: #788D9C; + background-color: #C9CDD0; +} + +QTabBar::tab:top:!selected:disabled { + border-bottom: 3px solid #FAFAFA; + color: #788D9C; + background-color: #FAFAFA; +} + +QTabBar::tab:bottom:!selected:disabled { + border-top: 3px solid #FAFAFA; + color: #788D9C; + background-color: #FAFAFA; +} + +QTabBar::tab:left:!selected:disabled { + border-right: 3px solid #FAFAFA; + color: #788D9C; + background-color: #FAFAFA; +} + +QTabBar::tab:right:!selected:disabled { + border-left: 3px solid #FAFAFA; + color: #788D9C; + background-color: #FAFAFA; +} + +QTabBar::tab:top:!selected { + border-bottom: 2px solid #FAFAFA; + margin-top: 2px; +} + +QTabBar::tab:bottom:!selected { + border-top: 2px solid #FAFAFA; + margin-bottom: 3px; +} + +QTabBar::tab:left:!selected { + border-left: 2px solid #FAFAFA; + margin-right: 2px; +} + +QTabBar::tab:right:!selected { + border-right: 2px solid #FAFAFA; + margin-left: 2px; +} + +QTabBar::tab:top { + background-color: #C9CDD0; + color: #19232D; + margin-left: 2px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 3px solid #C9CDD0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +QTabBar::tab:top:selected { + background-color: #B9BDC1; + color: #19232D; + border-bottom: 3px solid #37AEFE; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +QTabBar::tab:top:!selected:hover { + border: 1px solid #73C7FF; + border-bottom: 3px solid #73C7FF; + /* Fixes spyder-ide/spyder#9766 */ + padding-left: 4px; + padding-right: 4px; +} + +QTabBar::tab:bottom { + color: #19232D; + border-top: 3px solid #C9CDD0; + background-color: #C9CDD0; + margin-left: 2px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + min-width: 5px; +} + +QTabBar::tab:bottom:selected { + color: #19232D; + background-color: #B9BDC1; + border-top: 3px solid #37AEFE; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +QTabBar::tab:bottom:!selected:hover { + border: 1px solid #73C7FF; + border-top: 3px solid #73C7FF; + /* Fixes spyder-ide/spyder#9766 */ + padding-left: 4px; + padding-right: 4px; +} + +QTabBar::tab:left { + color: #19232D; + background-color: #C9CDD0; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + min-height: 5px; +} + +QTabBar::tab:left:selected { + color: #19232D; + background-color: #B9BDC1; + border-right: 3px solid #37AEFE; +} + +QTabBar::tab:left:!selected:hover { + border: 1px solid #73C7FF; + border-right: 3px solid #73C7FF; + padding: 0px; +} + +QTabBar::tab:right { + color: #19232D; + background-color: #C9CDD0; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + min-height: 5px; +} + +QTabBar::tab:right:selected { + color: #19232D; + background-color: #B9BDC1; + border-left: 3px solid #37AEFE; +} + +QTabBar::tab:right:!selected:hover { + border: 1px solid #73C7FF; + border-left: 3px solid #73C7FF; + padding: 0px; +} + +QTabBar QToolButton { + /* Fixes #136 */ + background-color: #C9CDD0; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed { + background-color: #C9CDD0; +} + +QTabBar QToolButton:pressed:hover { + border: 1px solid #9FCBFF; +} + +QTabBar QToolButton::left-arrow:enabled { + image: url(":/qss_icons/light/rc/arrow_left.png"); +} + +QTabBar QToolButton::left-arrow:disabled { + image: url(":/qss_icons/light/rc/arrow_left_disabled.png"); +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(":/qss_icons/light/rc/arrow_right.png"); +} + +QTabBar QToolButton::right-arrow:disabled { + image: url(":/qss_icons/light/rc/arrow_right_disabled.png"); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + outline: 1px solid #C9CDD0; + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + border-radius: 4px; + titlebar-close-icon: url(":/qss_icons/light/rc/transparent.png"); + titlebar-normal-icon: url(":/qss_icons/light/rc/transparent.png"); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: #C9CDD0; +} + +QDockWidget::close-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(":/qss_icons/light/rc/window_close.png"); +} + +QDockWidget::close-button:hover { + image: url(":/qss_icons/light/rc/window_close_focus.png"); +} + +QDockWidget::close-button:pressed { + image: url(":/qss_icons/light/rc/window_close_pressed.png"); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(":/qss_icons/light/rc/window_undock.png"); +} + +QDockWidget::float-button:hover { + image: url(":/qss_icons/light/rc/window_undock_focus.png"); +} + +QDockWidget::float-button:pressed { + image: url(":/qss_icons/light/rc/window_undock_pressed.png"); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView:branch:selected, QTreeView:branch:hover { + background: url(":/qss_icons/light/rc/transparent.png"); +} + +QTreeView:branch:has-siblings:!adjoins-item { + border-image: url(":/qss_icons/light/rc/branch_line.png") 0; +} + +QTreeView:branch:has-siblings:adjoins-item { + border-image: url(":/qss_icons/light/rc/branch_more.png") 0; +} + +QTreeView:branch:!has-children:!has-siblings:adjoins-item { + border-image: url(":/qss_icons/light/rc/branch_end.png") 0; +} + +QTreeView:branch:has-children:!has-siblings:closed, QTreeView:branch:closed:has-children:has-siblings { + border-image: none; + image: url(":/qss_icons/light/rc/branch_closed.png"); +} + +QTreeView:branch:open:has-children:!has-siblings, QTreeView:branch:open:has-children:has-siblings { + border-image: none; + image: url(":/qss_icons/light/rc/branch_open.png"); +} + +QTreeView:branch:has-children:!has-siblings:closed:hover, QTreeView:branch:closed:has-children:has-siblings:hover { + image: url(":/qss_icons/light/rc/branch_closed_focus.png"); +} + +QTreeView:branch:open:has-children:!has-siblings:hover, QTreeView:branch:open:has-children:has-siblings:hover { + image: url(":/qss_icons/light/rc/branch_open_focus.png"); +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(":/qss_icons/light/rc/checkbox_checked.png"); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(":/qss_icons/light/rc/checkbox_checked_focus.png"); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(":/qss_icons/light/rc/checkbox_unchecked.png"); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(":/qss_icons/light/rc/checkbox_unchecked_focus.png"); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(":/qss_icons/light/rc/checkbox_indeterminate.png"); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(":/qss_icons/light/rc/checkbox_indeterminate_focus.png"); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #19232D; + gridline-color: #C9CDD0; + border-radius: 4px; +} + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #FAFAFA; + color: #788D9C; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #9FCBFF; + color: #C9CDD0; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #73C7FF; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #9FCBFF; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #9FCBFF; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: #19232D; + background-color: #CED1D4; +} + +QTableCornerButton::section { + background-color: #FAFAFA; + border: 1px transparent #C9CDD0; + border-radius: 0px; +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: #C9CDD0; + border: 0px transparent #C9CDD0; + padding: 0; + margin: 0; + border-radius: 0; +} + +QHeaderView:disabled { + background-color: #C9CDD0; + border: 1px transparent #C9CDD0; +} + +QHeaderView::section { + background-color: #C9CDD0; + color: #19232D; + border-radius: 0; + text-align: left; + font-size: 13px; +} + +QHeaderView::section:checked { + color: #19232D; + background-color: #9FCBFF; +} + +QHeaderView::section:checked:disabled { + color: #788D9C; + background-color: #DAEDFF; +} + +QHeaderView::section::horizontal { + padding-top: 0; + padding-bottom: 0; + padding-left: 4px; + padding-right: 4px; + border-left: 1px solid #FAFAFA; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 1px solid #C9CDD0; +} + +QHeaderView::section::horizontal:disabled { + color: #788D9C; +} + +QHeaderView::section::vertical { + padding-top: 0; + padding-bottom: 0; + padding-left: 4px; + padding-right: 4px; + border-top: 1px solid #FAFAFA; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 1px solid #C9CDD0; +} + +QHeaderView::section::vertical:disabled { + color: #788D9C; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: #C9CDD0; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(":/qss_icons/light/rc/arrow_down.png"); +} + +QHeaderView::up-arrow { + background-color: #C9CDD0; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(":/qss_icons/light/rc/arrow_up.png"); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 0px; + border: 1px solid #C9CDD0; +} + +QToolBox:selected { + padding: 0px; + border: 2px solid #9FCBFF; +} + +QToolBox::tab { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #19232D; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QToolBox::tab:disabled { + color: #788D9C; +} + +QToolBox::tab:selected { + background-color: #ACB1B6; + border-bottom: 2px solid #9FCBFF; +} + +QToolBox::tab:selected:disabled { + background-color: #C9CDD0; + border-bottom: 2px solid #DAEDFF; +} + +QToolBox::tab:!selected { + background-color: #C9CDD0; + border-bottom: 2px solid #C9CDD0; +} + +QToolBox::tab:!selected:disabled { + background-color: #FAFAFA; +} + +QToolBox::tab:hover { + border-color: #73C7FF; + border-bottom: 2px solid #73C7FF; +} + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: #FAFAFA; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 4px; + border: 1px solid #C9CDD0; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 4px; + border: 1px transparent #C9CDD0; +} + +.QFrame[frameShape="4"] { + max-height: 2px; + border: none; + background-color: #C9CDD0; +} + +.QFrame[frameShape="5"] { + max-width: 2px; + border: none; + background-color: #C9CDD0; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +--------------------------------------------------------------------------- */ +QSplitter { + background-color: #C9CDD0; + spacing: 0px; + padding: 0px; + margin: 0px; +} + +QSplitter::handle { + background-color: #C9CDD0; + border: 0px solid #FAFAFA; + spacing: 0px; + padding: 1px; + margin: 0px; +} + +QSplitter::handle:hover { + background-color: #788D9C; +} + +QSplitter::handle:horizontal { + width: 5px; + image: url(":/qss_icons/light/rc/line_vertical.png"); +} + +QSplitter::handle:vertical { + height: 5px; + image: url(":/qss_icons/light/rc/line_horizontal.png"); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #9FCBFF; + border-style: solid; + border: 1px solid #C9CDD0; + border-radius: 4px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #9FCBFF; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #C9CDD0; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(":/qss_icons/light/rc/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(":/qss_icons/light/rc/arrow_down.png"); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #FAFAFA; + border-radius: 4px; + border: 1px solid #C9CDD0; + selection-background-color: #9FCBFF; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #9FCBFF; + color: #19232D; +} + +QAbstractView:selected { + background: #9FCBFF; + color: #C9CDD0; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} diff --git a/src/qdarkstyle/qss/_styles.scss b/src/qdarkstyle/qss/_styles.scss new file mode 100644 index 000000000..107a62564 --- /dev/null +++ b/src/qdarkstyle/qss/_styles.scss @@ -0,0 +1,2352 @@ +/* + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ + + + +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; + } + + + + +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: $COLOR_BACKGROUND_1; + border: 0px solid $COLOR_BACKGROUND_4; + padding: 0px; + color: $COLOR_TEXT_1; + selection-background-color: $COLOR_ACCENT_2; + selection-color: $COLOR_TEXT_1; + + &:disabled { + background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_4; + selection-background-color: $COLOR_ACCENT_1; + selection-color: $COLOR_TEXT_4; + } + + &::item { + + &:selected { + background-color: $COLOR_ACCENT_2; + } + + &:hover:!selected { + background-color: $COLOR_ACCENT_3; + } + } +} + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow { + + &::separator { + background-color: $COLOR_BACKGROUND_4; + border: 0px solid $COLOR_BACKGROUND_1; + spacing: 0px; + padding: 2px; + + &:hover { + background-color: $COLOR_BACKGROUND_6; + border: 0px solid $COLOR_ACCENT_3; + } + + &:horizontal { + width: 5px; + margin-top: 2px; + margin-bottom: 2px; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/toolbar_separator_vertical.png'); + } + + &:vertical { + height: 5px; + margin-left: 2px; + margin-right: 2px; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/toolbar_separator_horizontal.png'); + } + } +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: $COLOR_ACCENT_2; + color: $COLOR_TEXT_1; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: $BORDER_2; + + /* Fixes Spyder #9120, #9121 */ + background: $COLOR_BACKGROUND_4; + + /* Fixes #205, white vertical borders separating items */ + &::item { + border: none; + } + + QToolTip { + background-color: $COLOR_ACCENT_3; + border: $BORDER_1; + color: $COLOR_BACKGROUND_1; + + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + + /* Reducing transparency to read better */ + opacity: $OPACITY_TOOLTIP; + } + + QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; + } +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_1; + spacing: 4px; + outline: none; + padding-top: 4px; + padding-bottom: 4px; + + &:focus { + border: none; + } + + QWidget:disabled { + background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_4; + } + + &::indicator { + margin-left: 2px; + height: 14px; + width: 14px; + + &:unchecked { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_unchecked.png'); + + &:hover, + &:focus, + &:pressed { + border: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_unchecked_focus.png'); + } + + &:disabled { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_unchecked_disabled.png'); + } + } + + &:checked { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_checked.png'); + + &:hover, + &:focus, + &:pressed { + border: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_checked_focus.png'); + } + + &:disabled { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_checked_disabled.png'); + } + } + + &:indeterminate { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_indeterminate.png'); + + &:disabled { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_indeterminate_disabled.png'); + } + + &:focus, + &:hover, + &:pressed { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_indeterminate_focus.png'); + } + } + } +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: $BORDER_2; + border-radius: $SIZE_BORDER_RADIUS; + padding: 2px; + margin-top: 6px; + margin-bottom: 4px; + + &::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: -4px; + } + + &::indicator { + margin-left: 2px; + margin-top: 2px; + padding: 0; + height: 14px; + width: 14px; + + &:unchecked { + border: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_unchecked.png'); + + &:hover, + &:focus, + &:pressed { + border: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_unchecked_focus.png'); + } + + &:disabled { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_unchecked_disabled.png'); + } + } + + &:checked { + border: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_checked.png'); + + + &:hover, + &:focus, + &:pressed { + border: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_checked_focus.png'); + } + + &:disabled { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_checked_disabled.png'); + } + } + } +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_1; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + border: none; + outline: none; + + &:focus { + border: none; + } + + &:disabled { + background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_4; + border: none; + outline: none; + } + + QWidget { + background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_1; + spacing: 0px; + padding: 0px; + outline: none; + border: none; + } + + &::indicator { + border: none; + outline: none; + margin-left: 2px; + height: 14px; + width: 14px; + + &:unchecked { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/radio_unchecked.png'); + + &:hover, + &:focus, + &:pressed { + border: none; + outline: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/radio_unchecked_focus.png'); + } + + &:disabled { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/radio_unchecked_disabled.png'); + } + } + + &:checked { + border: none; + outline: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/radio_checked.png'); + + &:hover, + &:focus, + &:pressed { + border: none; + outline: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/radio_checked_focus.png'); + } + + &:disabled { + outline: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/radio_checked_disabled.png'); + } + } + } +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: $COLOR_BACKGROUND_4; + padding: 2px; + border: $BORDER_1; + color: $COLOR_TEXT_1; + selection-background-color: $COLOR_ACCENT_3; + &:focus { + border: $BORDER_SELECTION_2; + } + + &::item { + background: transparent; + padding: 4px; + + &:selected { + padding: 4px; + background: transparent; + border: 0px solid $COLOR_BACKGROUND_4; + background-color: $COLOR_ACCENT_3; + } + + &:pressed { + padding: 4px; + border: 0px solid $COLOR_BACKGROUND_4; + background-color: $COLOR_ACCENT_3; + color: $COLOR_TEXT_1; + margin-bottom: 0px; + padding-bottom: 0px; + } + } +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border: 0px solid $COLOR_BACKGROUND_4; + color: $COLOR_TEXT_1; + margin: 0px; + background-color: $COLOR_BACKGROUND_3; + selection-background-color: $COLOR_ACCENT_3; + + &::separator { + height: 1px; + background-color: $COLOR_BACKGROUND_6; + color: $COLOR_TEXT_1; + } + + &::icon { + margin: 0px; + padding-left: 8px; + } + + &::item { + background-color: $COLOR_BACKGROUND_3; + padding: 4px 24px 4px 8px; + /* Reserve space for selection border */ + border: 1px transparent $COLOR_BACKGROUND_4; + + &:selected { + color: $COLOR_TEXT_1; + background-color: $COLOR_ACCENT_3; + } + &:pressed { + background-color: $COLOR_ACCENT_3; + } + } + + &::indicator { + width: 14px; + height: 14px; + padding-left: 6px; + + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + &:non-exclusive { + + &:unchecked { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_unchecked.png'); + + &:hover, + &:focus, + &:pressed { + border: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_unchecked_focus.png'); + } + + &:disabled { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_unchecked_disabled.png'); + } + } + + &:checked { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_checked.png'); + + &:hover, + &:focus, + &:pressed { + border: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_checked_focus.png'); + } + + &:disabled { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_checked_disabled.png'); + } + } + + &:indeterminate { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_indeterminate.png'); + + &:disabled { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_indeterminate_disabled.png'); + } + + &:focus, + &:hover, + &:pressed { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_indeterminate_focus.png'); + } + } + } + + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ + &:exclusive { + + &:unchecked { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/radio_unchecked.png'); + + &:hover, + &:focus, + &:pressed { + border: none; + outline: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/radio_unchecked_focus.png'); + } + + &:disabled { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/radio_unchecked_disabled.png'); + } + } + + &:checked { + border: none; + outline: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/radio_checked.png'); + + &:hover, + &:focus, + &:pressed { + border: none; + outline: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/radio_checked_focus.png'); + } + + &:disabled { + outline: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/radio_checked_disabled.png'); + } + } + } + } + + &::right-arrow { + margin: 5px; + padding-left:12px; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_right.png'); + height: 12px; + width: 12px; + } +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_1; + border: $BORDER_2; + border-radius: $SIZE_BORDER_RADIUS; + + QLineEdit { + padding: 2px; + } +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: $COLOR_BACKGROUND_1; + border: $BORDER_2; + border-radius: $SIZE_BORDER_RADIUS; + /* fix #159 */ + padding: 2px; + /* remove min-height to fix #244 */ + color: $COLOR_TEXT_1; + + &:disabled { + color: $COLOR_TEXT_4; + } +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- */ +QScrollArea QWidget QWidget:disabled { + background-color: $COLOR_BACKGROUND_1; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar { + + &:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: $BORDER_2; + border-radius: $SIZE_BORDER_RADIUS; + background-color: $COLOR_BACKGROUND_1; + } + + &:vertical { + background-color: $COLOR_BACKGROUND_1; + width: 16px; + margin: 16px 2px 16px 2px; + border: $BORDER_2; + border-radius: $SIZE_BORDER_RADIUS; + } + + &::handle { + + &:horizontal { + background-color: $COLOR_BACKGROUND_6; + border: $BORDER_2; + border-radius: $SIZE_BORDER_RADIUS; + min-width: 8px; + + &:hover { + background-color: $COLOR_ACCENT_2; + border: $COLOR_ACCENT_2; + border-radius: $SIZE_BORDER_RADIUS; + min-width: 8px; + } + + &:focus { + border: $BORDER_SELECTION_3; + } + } + + &:vertical { + background-color: $COLOR_BACKGROUND_6; + border: $BORDER_2; + min-height: 8px; + border-radius: $SIZE_BORDER_RADIUS; + + &:hover { + background-color: $COLOR_ACCENT_2; + border: $COLOR_ACCENT_2; + border-radius: $SIZE_BORDER_RADIUS; + min-height: 8px; + } + + &:focus { + border: $BORDER_SELECTION_3; + } + } + } + + &::add-line { + + &:horizontal { + margin: 0px 0px 0px 0px; + border-image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_right_disabled.png'); + height: 12px; + width: 12px; + subcontrol-position: right; + subcontrol-origin: margin; + + &:hover, + &:on { + border-image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_right.png'); + height: 12px; + width: 12px; + subcontrol-position: right; + subcontrol-origin: margin; + } + } + + &:vertical { + margin: 3px 0px 3px 0px; + border-image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_down_disabled.png'); + height: 12px; + width: 12px; + subcontrol-position: bottom; + subcontrol-origin: margin; + + &:hover, + &:on { + border-image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_down.png'); + height: 12px; + width: 12px; + subcontrol-position: bottom; + subcontrol-origin: margin; + } + } + } + + &::sub-line { + &:horizontal { + margin: 0px 3px 0px 3px; + border-image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_left_disabled.png'); + height: 12px; + width: 12px; + subcontrol-position: left; + subcontrol-origin: margin; + + &:hover, + &:on { + border-image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_left.png'); + height: 12px; + width: 12px; + subcontrol-position: left; + subcontrol-origin: margin; + } + } + + &:vertical { + margin: 3px 0px 3px 0px; + border-image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_up_disabled.png'); + height: 12px; + width: 12px; + subcontrol-position: top; + subcontrol-origin: margin; + + &:hover, + &:on { + border-image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_up.png'); + height: 12px; + width: 12px; + subcontrol-position: top; + subcontrol-origin: margin; + } + } + } + + &::up-arrow:horizontal, + &::down-arrow:horizontal { + background: none; + } + + &::up-arrow:vertical, + &::down-arrow:vertical { + background: none; + } + + &::add-page:horizontal, + &::sub-page:horizontal { + background: none; + } + + &::add-page:vertical, + &::sub-page:vertical { + background: none; + } +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_1; + border-radius: $SIZE_BORDER_RADIUS; + border: $BORDER_2; + + &:focus { + border: $BORDER_SELECTION_3; + } + + &:selected { + background: $COLOR_ACCENT_2; + color: $COLOR_BACKGROUND_4; + } +} + +/* QPlainTextEdit --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_1; + border-radius: $SIZE_BORDER_RADIUS; + border: $BORDER_2; + + &:focus { + border: $BORDER_SELECTION_3; + } + + &:selected { + background: $COLOR_ACCENT_2; + color: $COLOR_BACKGROUND_4; + } +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/window_grip.png'); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 2px; + border: $BORDER_2; + border: $BORDER_1; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: $COLOR_BACKGROUND_4; + border-bottom: $BORDER_1; + padding: 1px; + font-weight: bold; + spacing: 2px; + + QToolButton { + background-color: $COLOR_BACKGROUND_4; + border: $BORDER_2; + + &:hover { + background-color: $COLOR_BACKGROUND_5; + border: $COLOR_BACKGROUND_5; + } + + &:checked { + border: $COLOR_BACKGROUND_6; + background-color: $COLOR_BACKGROUND_6; + + &:hover { + background-color: $COLOR_BACKGROUND_6; + border: $COLOR_BACKGROUND_6; + } + } + + &:pressed { + border: $COLOR_BACKGROUND_6; + background-color: $COLOR_BACKGROUND_6; + + &:hover { + background-color: $COLOR_BACKGROUND_6; + border: $COLOR_BACKGROUND_6; + } + } + + /* This fixes 202 */ + &:disabled { + border: $COLOR_BACKGROUND_4; + background-color: $COLOR_BACKGROUND_4; + + } + } + + &::handle { + + &:horizontal { + width: 16px; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/toolbar_move_horizontal.png'); + } + + &:vertical { + height: 16px; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/toolbar_move_vertical.png'); + } + } + + &::separator { + + &:horizontal { + width: 16px; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/toolbar_separator_horizontal.png'); + } + + &:vertical { + height: 16px; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/toolbar_separator_vertical.png'); + } + } +} + +QToolButton#qt_toolbar_ext_button { + background: $COLOR_BACKGROUND_4; + border: 0px; + color: $COLOR_TEXT_1; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_right.png'); +} + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox { + background-color: $COLOR_BACKGROUND_1; + border: $BORDER_2; + color: $COLOR_TEXT_1; + + /* This fixes 103, 111 */ + padding-top: 2px; + + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + border-radius: $SIZE_BORDER_RADIUS; + /* min-width: 5px; removed to fix 109 */ + + &:up-button { + background-color: transparent $COLOR_BACKGROUND_1; + subcontrol-origin: border; + subcontrol-position: top right; + border-left: $BORDER_2; + border-bottom: $BORDER_2; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin: 1px; + width: 12px; + margin-bottom: -1px; + } + + &::up-arrow, + &::up-arrow:disabled, + &::up-arrow:off { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_up_disabled.png'); + height: 8px; + width: 8px; + } + + &::up-arrow:hover { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_up.png'); + } + + &:down-button { + background-color: transparent $COLOR_BACKGROUND_1; + subcontrol-origin: border; + subcontrol-position: bottom right; + border-left: $BORDER_2; + border-top: $BORDER_2; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin: 1px; + width: 12px; + margin-top: -1px; + } + + &::down-arrow, + &::down-arrow:disabled, + &::down-arrow:off { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_down_disabled.png'); + height: 8px; + width: 8px; + } + + &::down-arrow:hover { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_down.png'); + } + + &:hover { + border: $BORDER_SELECTION_2; + color: $COLOR_TEXT_1; + } + + &:focus { + border: $BORDER_SELECTION_3; + } + + &:selected { + background: $COLOR_ACCENT_2; + color: $COLOR_BACKGROUND_4; + } +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ + +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: $COLOR_BACKGROUND_1; + border: 0px solid $COLOR_BACKGROUND_4; + padding: 2px; + margin: 0px; + color: $COLOR_TEXT_1; + + &:disabled { + background-color: $COLOR_BACKGROUND_1; + border: 0px solid $COLOR_BACKGROUND_4; + color: $COLOR_TEXT_4; + } +} + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: $COLOR_BACKGROUND_1; + border: $BORDER_2; + color: $COLOR_TEXT_1; + border-radius: $SIZE_BORDER_RADIUS; + + &:disabled { + background-color: $COLOR_BACKGROUND_1; + border: $BORDER_2; + color: $COLOR_TEXT_4; + border-radius: $SIZE_BORDER_RADIUS; + } + + &:hover, + &:!hover, + &:selected, + &:pressed { + border: $BORDER_2; + } +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: $COLOR_BACKGROUND_1; + border: $BORDER_2; + color: $COLOR_TEXT_1; + border-radius: $SIZE_BORDER_RADIUS; + + &:disabled { + background-color: $COLOR_BACKGROUND_1; + border: $BORDER_2; + color: $COLOR_TEXT_4; + border-radius: $SIZE_BORDER_RADIUS; + } + + &:hover, + &:!hover, + &:selected, + &:pressed { + border: $BORDER_2; + } +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: $BORDER_2; + border-radius: $SIZE_BORDER_RADIUS; + + &:disabled { + background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_4; + } +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_1; + + &:disabled { + background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_4; + } +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: $COLOR_BACKGROUND_1; + border: $BORDER_2; + color: $COLOR_TEXT_1; + border-radius: $SIZE_BORDER_RADIUS; + text-align: center; + + &:disabled { + background-color: $COLOR_BACKGROUND_1; + border: $BORDER_2; + color: $COLOR_TEXT_4; + border-radius: $SIZE_BORDER_RADIUS; + text-align: center; + } + + &::chunk { + background-color: $COLOR_ACCENT_2; + color: $COLOR_BACKGROUND_1; + border-radius: $SIZE_BORDER_RADIUS; + + &:disabled { + background-color: $COLOR_ACCENT_1; + color: $COLOR_TEXT_4; + border-radius: $SIZE_BORDER_RADIUS; + } + } +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ + +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: $COLOR_BACKGROUND_4; + border: $BORDER_2; + color: $COLOR_TEXT_1; + border-radius: $SIZE_BORDER_RADIUS; + padding: 3px; + outline: none; + + &:disabled { + background-color: $COLOR_BACKGROUND_4; + border: $BORDER_2; + color: $COLOR_TEXT_4; + border-radius: $SIZE_BORDER_RADIUS; + padding: 3px; + } + + &:checked { + background-color: $COLOR_BACKGROUND_6; + border: $COLOR_BACKGROUND_6; + border-radius: $SIZE_BORDER_RADIUS; + padding: 3px; + outline: none; + + &:disabled { + background-color: $COLOR_BACKGROUND_6; + border: $COLOR_BACKGROUND_6; + color: $COLOR_TEXT_4; + border-radius: $SIZE_BORDER_RADIUS; + padding: 3px; + outline: none; + } + + &:selected { + background: $COLOR_BACKGROUND_6; + } + + } + + &::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; + } + + &:hover { + background-color: $COLOR_BACKGROUND_5; + border: $COLOR_BACKGROUND_5; + color: $COLOR_TEXT_1; + } + + &:pressed { + background-color: $COLOR_BACKGROUND_6; + border: $COLOR_BACKGROUND_6; + } + + &:selected { + background: $COLOR_BACKGROUND_6; + color: $COLOR_TEXT_1; + } + +} + +QDialogButtonBox QPushButton { + /* Issue #194 #248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + border: 1px solid transparent; + border-radius: $SIZE_BORDER_RADIUS; + margin: 0px; + padding: 2px; + + &:checked { + background-color: $COLOR_BACKGROUND_3; + border: $COLOR_BACKGROUND_3; + + &:disabled { + background-color: $COLOR_BACKGROUND_4; + border: $COLOR_BACKGROUND_4; + } + &:hover { + background-color: $COLOR_BACKGROUND_3; + border: $COLOR_BACKGROUND_3; + } + } + + &:pressed { + margin: 1px; + background-color: $COLOR_BACKGROUND_3; + border: $COLOR_BACKGROUND_3; + &:hover { + background-color: $COLOR_BACKGROUND_3; + border: $COLOR_BACKGROUND_3; + } + } + + &:disabled { + border: none; + + } + + &:hover { + background-color: $COLOR_BACKGROUND_2; + border: $COLOR_BACKGROUND_2; + + } + + /* The subcontrols below are used only in the DelayedPopup mode */ + &[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 2px; + } + + /* The subcontrols below are used only in the MenuButtonPopup mode */ + &[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; + + &::menu-button { + border: none; + + &:hover { + border: none; + border-left: 1px solid $COLOR_ACCENT_3; + border-radius: 0; + } + } + } + + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ + &[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 2px; + } + + &::menu-button { + padding: 2px; + border-radius: $SIZE_BORDER_RADIUS; + border: $BORDER_2; + width: 12px; + outline: none; + + &:hover { + border: $BORDER_SELECTION_2; + } + + &:checked { + &:hover { + border: $BORDER_SELECTION_2; + } + } + } + + &::menu-indicator { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_down.png'); + height: 8px; + width: 8px; + top: 0; + /* Exclude a shift for better image */ + left: -2px; + /* Shift it a bit */ + } + + &::menu-arrow { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_down.png'); + height: 8px; + width: 8px; + + &:hover { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_down_focus.png'); + } + } +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: $BORDER_2; + color: $COLOR_TEXT_1; + border-radius: $SIZE_BORDER_RADIUS; + padding: 0px; + margin: 0px; + + &:disabled { + background-color: transparent; + color: $COLOR_TEXT_4; + } +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ + +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: $BORDER_2; + border-radius: $SIZE_BORDER_RADIUS; + selection-background-color: $COLOR_ACCENT_2; + padding-left: 4px; + padding-right: 4px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + + /* Fixes #103, #111 */ + min-height: 1.5em; + + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + + QAbstractItemView { + border: $BORDER_2; + border-radius: 0; + background-color: $COLOR_BACKGROUND_1; + selection-background-color: $COLOR_ACCENT_2; + + &:hover { + background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_1; + } + + &:selected { + background: $COLOR_ACCENT_2; + color: $COLOR_BACKGROUND_4; + } + + &:alternate { + background: $COLOR_BACKGROUND_1; + } + + } + + &:disabled { + background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_4; + } + + &:hover { + border: $BORDER_SELECTION_2; + } + + &:focus { + border: $BORDER_SELECTION_3; + } + + &:on { + selection-background-color: $COLOR_ACCENT_2; + } + + /* Needed to remove indicator - fix #132 */ + &::indicator { + border: none; + border-radius: 0; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: transparent; + + /* Needed to remove indicator - fix #132 */ + &:alternate { + background: $COLOR_BACKGROUND_1; + } + } + + &::item { + + &:alternate { + background: $COLOR_BACKGROUND_1; + } + + &:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + } + + &::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid $COLOR_BACKGROUND_4; + } + + &::down-arrow { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_down_disabled.png'); + height: 8px; + width: 8px; + + &:on, + &:hover, + &:focus { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_down.png'); + } + } +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider { + + &:disabled { + background: $COLOR_BACKGROUND_1; + } + + &:focus { + border: none; + } + + &::groove { + &:horizontal { + background: $COLOR_BACKGROUND_4; + border: $BORDER_2; + height: 4px; + margin: 0px; + border-radius: $SIZE_BORDER_RADIUS; + } + + &:vertical { + background: $COLOR_BACKGROUND_4; + border: $BORDER_2; + width: 4px; + margin: 0px; + border-radius: $SIZE_BORDER_RADIUS; + } + } + + &::add-page { + + &:vertical { + background: $COLOR_ACCENT_2; + border: $BORDER_2; + width: 4px; + margin: 0px; + border-radius: $SIZE_BORDER_RADIUS; + + :disabled { + background: $COLOR_ACCENT_1; + } + } + } + + &::sub-page { + + &:horizontal { + background: $COLOR_ACCENT_2; + border: $BORDER_2; + height: 4px; + margin: 0px; + border-radius: $SIZE_BORDER_RADIUS; + + &:disabled { + background: $COLOR_ACCENT_1; + } + } + } + + &::handle { + + &:horizontal { + background: $COLOR_TEXT_4; + border: $BORDER_2; + width: 8px; + height: 8px; + margin: -8px 0px; + border-radius: $SIZE_BORDER_RADIUS; + + &:hover { + background: $COLOR_ACCENT_2; + border: $BORDER_SELECTION_2; + } + + &:focus { + border: $BORDER_SELECTION_3; + } + } + + &:vertical { + background: $COLOR_TEXT_4; + border: $BORDER_2; + width: 8px; + height: 8px; + margin: 0 -8px; + border-radius: $SIZE_BORDER_RADIUS; + + &:hover { + background: $COLOR_ACCENT_2; + border: $BORDER_SELECTION_2; + } + + &:focus { + border: $BORDER_SELECTION_3; + } + } + } +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: $COLOR_BACKGROUND_1; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: $BORDER_2; + border-radius: $SIZE_BORDER_RADIUS; + color: $COLOR_TEXT_1; + + &:disabled { + background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_4; + } + + &:hover { + border: $BORDER_SELECTION_2; + color: $COLOR_TEXT_1; + } + + &:focus { + border: $BORDER_SELECTION_3; + } + + &:selected { + background-color: $COLOR_ACCENT_2; + color: $COLOR_BACKGROUND_4; + } +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: $COLOR_BACKGROUND_4; + + QWidget { + /* Fixes #189 */ + border-radius: $SIZE_BORDER_RADIUS; + } + + &::pane { + border: $BORDER_2; + border-radius: $SIZE_BORDER_RADIUS; + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; + + &:selected { + background-color: $COLOR_BACKGROUND_4; + border: 1px solid $COLOR_ACCENT_2; + } + } +} + +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar { + qproperty-drawBase: 0; + border-radius: $SIZE_BORDER_RADIUS; + margin: 0px; + padding: 2px; + border: 0; + /* left: 5px; move to the right by 5px - removed for fix */ + + &::close-button { + border: 0; + margin: 0; + padding: 4px; + + image: url($PATH_RESOURCES + '/' + $ID + '/rc/window_close.png'); + + &:hover { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/window_close_focus.png'); + } + + &:pressed { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/window_close_pressed.png'); + } + } + + &::tab { + + &:top:selected:disabled { + border-bottom: 3px solid $COLOR_ACCENT_1; + color: $COLOR_TEXT_4; + background-color: $COLOR_BACKGROUND_4; + } + + &:bottom:selected:disabled { + border-top: 3px solid $COLOR_ACCENT_1; + color: $COLOR_TEXT_4; + background-color: $COLOR_BACKGROUND_4; + } + + &:left:selected:disabled { + border-right: 3px solid $COLOR_ACCENT_1; + color: $COLOR_TEXT_4; + background-color: $COLOR_BACKGROUND_4; + } + + &:right:selected:disabled { + border-left: 3px solid $COLOR_ACCENT_1; + color: $COLOR_TEXT_4; + background-color: $COLOR_BACKGROUND_4; + } + + /* !selected and disabled ----------------------------------------- */ + &:top:!selected:disabled { + border-bottom: 3px solid $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_4; + background-color: $COLOR_BACKGROUND_1; + } + + &:bottom:!selected:disabled { + border-top: 3px solid $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_4; + background-color: $COLOR_BACKGROUND_1; + } + + &:left:!selected:disabled { + border-right: 3px solid $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_4; + background-color: $COLOR_BACKGROUND_1; + } + + &:right:!selected:disabled { + border-left: 3px solid $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_4; + background-color: $COLOR_BACKGROUND_1; + } + + /* selected ------------------------------------------------------- */ + &:top:!selected { + border-bottom: 2px solid $COLOR_BACKGROUND_1; + margin-top: 2px; + } + + &:bottom:!selected { + border-top: 2px solid $COLOR_BACKGROUND_1; + margin-bottom: 3px; + } + + &:left:!selected { + border-left: 2px solid $COLOR_BACKGROUND_1; + margin-right: 2px; + } + + &:right:!selected { + border-right: 2px solid $COLOR_BACKGROUND_1; + margin-left: 2px; + } + + &:top { + background-color: $COLOR_BACKGROUND_4; + color: $COLOR_TEXT_1; + margin-left: 2px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 3px solid $COLOR_BACKGROUND_4; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + + &:selected { + background-color: $COLOR_BACKGROUND_5; + color: $COLOR_TEXT_1; + border-bottom: 3px solid $COLOR_ACCENT_4; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + } + + &:!selected:hover { + border: $BORDER_SELECTION_3; + border-bottom: 3px solid $COLOR_ACCENT_3; + + /* Fixes spyder-ide/spyder#9766 */ + padding-left: 4px; + padding-right: 4px; + } + } + + &:bottom { + color: $COLOR_TEXT_1; + border-top: 3px solid $COLOR_BACKGROUND_4; + background-color: $COLOR_BACKGROUND_4; + margin-left: 2px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + min-width: 5px; + + &:selected { + color: $COLOR_TEXT_1; + background-color: $COLOR_BACKGROUND_5; + border-top: 3px solid $COLOR_ACCENT_4; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + } + + &:!selected:hover { + border: $BORDER_SELECTION_3; + border-top: 3px solid $COLOR_ACCENT_3; + + /* Fixes spyder-ide/spyder#9766 */ + padding-left: 4px; + padding-right: 4px; + } + + } + + &:left { + color: $COLOR_TEXT_1; + background-color: $COLOR_BACKGROUND_4; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + min-height: 5px; + + &:selected { + color: $COLOR_TEXT_1; + background-color: $COLOR_BACKGROUND_5; + border-right: 3px solid $COLOR_ACCENT_4; + } + + &:!selected:hover { + border: $BORDER_SELECTION_3; + border-right: 3px solid $COLOR_ACCENT_3; + padding: 0px; + } + } + + &:right { + color: $COLOR_TEXT_1; + background-color: $COLOR_BACKGROUND_4; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + min-height: 5px; + + &:selected { + color: $COLOR_TEXT_1; + background-color: $COLOR_BACKGROUND_5; + border-left: 3px solid $COLOR_ACCENT_4; + + } + + &:!selected:hover { + border: $BORDER_SELECTION_3; + border-left: 3px solid $COLOR_ACCENT_3; + padding: 0px; + } + } + } + + QToolButton { + /* Fixes #136 */ + background-color: $COLOR_BACKGROUND_4; + height: 12px; + width: 12px; + + &:pressed { + background-color: $COLOR_BACKGROUND_4; + + &:hover { + border: $BORDER_SELECTION_2; + } + } + + &::left-arrow { + &:enabled { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_left.png'); + } + + &:disabled { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_left_disabled.png'); + } + } + + &::right-arrow { + &:enabled { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_right.png'); + } + + &:disabled { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_right_disabled.png'); + } + } + } +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + outline: $BORDER_2; + background-color: $COLOR_BACKGROUND_1; + border: $BORDER_2; + border-radius: $SIZE_BORDER_RADIUS; + // See discussion here: https://stackoverflow.com/questions/32145080/qdockwidget-float-close-button-hover-images + titlebar-close-icon: url($PATH_RESOURCES + '/' + $ID + '/rc/transparent.png'); + titlebar-normal-icon: url($PATH_RESOURCES + '/' + $ID + '/rc/transparent.png'); + + &::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: $COLOR_BACKGROUND_4; + } + + &::close-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + + image: url($PATH_RESOURCES + '/' + $ID + '/rc/window_close.png'); + + &:hover { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/window_close_focus.png'); + } + + &:pressed { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/window_close_pressed.png'); + } + } + + &::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + // float button has an issue that if you change any of those + // parameters bellow there will be a duplication in the icon + // actually it seems that they are always there (duplication) + border: 0; + margin: 0; + padding: 0; + + image: url($PATH_RESOURCES + '/' + $ID + '/rc/window_undock.png'); + + &:hover { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/window_undock_focus.png'); + } + + &:pressed { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/window_undock_pressed.png'); + } + } +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView { + + &:branch { + + &:selected, + &:hover { + background: url($PATH_RESOURCES + '/' + $ID + '/rc/transparent.png'); + } + + &:has-siblings:!adjoins-item { + border-image: url($PATH_RESOURCES + '/' + $ID + '/rc/branch_line.png') 0; + } + + &:has-siblings:adjoins-item { + border-image: url($PATH_RESOURCES + '/' + $ID + '/rc/branch_more.png') 0; + } + + &:!has-children:!has-siblings:adjoins-item { + border-image: url($PATH_RESOURCES + '/' + $ID + '/rc/branch_end.png') 0; + } + + &:has-children:!has-siblings:closed, + &:closed:has-children:has-siblings { + border-image: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/branch_closed.png'); + } + + &:open:has-children:!has-siblings, + &:open:has-children:has-siblings { + border-image: none; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/branch_open.png'); + } + + &:has-children:!has-siblings:closed:hover, + &:closed:has-children:has-siblings:hover { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/branch_closed_focus.png'); + } + + &:open:has-children:!has-siblings:hover, + &:open:has-children:has-siblings:hover { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/branch_open_focus.png'); + } + } +} + +QTreeView, +QListView, +QTableView, +QColumnView { + + &::indicator { + + &:checked { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_checked.png'); + + &:hover, + &:focus, + &:pressed { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_checked_focus.png'); + } + } + + &:unchecked { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_unchecked.png'); + + &:hover, + &:focus, + &:pressed { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_unchecked_focus.png'); + } + } + + &:indeterminate { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_indeterminate.png'); + + &:hover, + &:focus, + &:pressed { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/checkbox_indeterminate_focus.png'); + } + } + } +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: $COLOR_BACKGROUND_1; + border: $BORDER_2; + color: $COLOR_TEXT_1; + gridline-color: $COLOR_BACKGROUND_4; + border-radius: $SIZE_BORDER_RADIUS; + + &:disabled { + background-color: $COLOR_BACKGROUND_1; + color: $COLOR_TEXT_4; + } + + &:selected { + background-color: $COLOR_ACCENT_2; + color: $COLOR_BACKGROUND_4; + } + + &:focus { + border: $BORDER_SELECTION_3; + } + + &::item { + + &:pressed { + background-color: $COLOR_ACCENT_2; + } + + &:selected { + + &:active { + background-color: $COLOR_ACCENT_2; + } + } + + &:!selected { + + &:hover { + outline: 0; + color: $COLOR_TEXT_1; + background-color: $COLOR_BACKGROUND_3; + } + } + } +} + +QTableCornerButton { + &::section { + background-color: $COLOR_BACKGROUND_1; + border: 1px transparent $COLOR_BACKGROUND_4; + border-radius: 0px; + } +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: $COLOR_BACKGROUND_4; + border: 0px transparent $COLOR_BACKGROUND_4; + padding: 0; + margin: 0; + border-radius: 0; + + &:disabled { + background-color: $COLOR_BACKGROUND_4; + border: 1px transparent $COLOR_BACKGROUND_4; + } + + &::section { + background-color: $COLOR_BACKGROUND_4; + color: $COLOR_TEXT_1; + border-radius: 0; + text-align: left; + font-size: 13px; + + &:checked { + color: $COLOR_TEXT_1; + background-color: $COLOR_ACCENT_2; + + &:disabled { + color: $COLOR_TEXT_4; + background-color: $COLOR_ACCENT_1; + } + } + + &::horizontal { + padding-top: 0; + padding-bottom: 0; + padding-left: 4px; + padding-right: 4px; + border-left: $BORDER_1; + + &::first, + &::only-one { + border-left: $BORDER_2; + } + + &:disabled { + color: $COLOR_TEXT_4; + } + } + + &::vertical { + padding-top: 0; + padding-bottom: 0; + padding-left: 4px; + padding-right: 4px; + border-top: $BORDER_1; + + &::first, + &::only-one { + border-top: $BORDER_2; + } + + &:disabled { + color: $COLOR_TEXT_4; + } + } + } + + &::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: $COLOR_BACKGROUND_4; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_down.png'); + } + + &::up-arrow { + background-color: $COLOR_BACKGROUND_4; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_up.png'); + } +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 0px; + border: $BORDER_2; + + &:selected { + padding: 0px; + border: 2px solid $COLOR_ACCENT_2; + } + + &::tab { + background-color: $COLOR_BACKGROUND_1; + border: $BORDER_2; + color: $COLOR_TEXT_1; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + + &:disabled { + color: $COLOR_TEXT_4; + } + + &:selected { + background-color: $COLOR_BACKGROUND_6; + border-bottom: 2px solid $COLOR_ACCENT_2; + + &:disabled { + background-color: $COLOR_BACKGROUND_4; + border-bottom: 2px solid $COLOR_ACCENT_1; + } + } + + &:!selected { + background-color: $COLOR_BACKGROUND_4; + border-bottom: 2px solid $COLOR_BACKGROUND_4; + + &:disabled { + background-color: $COLOR_BACKGROUND_1; + } + + } + + &:hover { + border-color: $COLOR_ACCENT_3; + border-bottom: 2px solid $COLOR_ACCENT_3; + } + } + + QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: $COLOR_BACKGROUND_1; + } +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ + +/* (dot) .QFrame fix #141, #126, #123 */ + +.QFrame { + border-radius: $SIZE_BORDER_RADIUS; + border: $BORDER_2; + + /* No frame */ + &[frameShape="0"] { + border-radius: $SIZE_BORDER_RADIUS; + border: 1px transparent $COLOR_BACKGROUND_4; + } + + /* HLine */ + &[frameShape="4"] { + max-height: 2px; + border: none; + background-color: $COLOR_BACKGROUND_4; + } + + /* HLine */ + &[frameShape="5"] { + max-width: 2px; + border: none; + background-color: $COLOR_BACKGROUND_4; + } + +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +--------------------------------------------------------------------------- */ +QSplitter { + background-color: $COLOR_BACKGROUND_4; + spacing: 0px; + padding: 0px; + margin: 0px; + + &::handle { + background-color: $COLOR_BACKGROUND_4; + border: 0px solid $COLOR_BACKGROUND_1; + spacing: 0px; + padding: 1px; + margin: 0px; + + &:hover { + background-color: $COLOR_TEXT_4; + } + + &:horizontal { + width: 5px; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/line_vertical.png'); + } + + &:vertical { + height: 5px; + image: url($PATH_RESOURCES + '/' + $ID + '/rc/line_horizontal.png'); + } + } +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: $COLOR_ACCENT_2; + border-style: solid; + border: $BORDER_2; + border-radius: $SIZE_BORDER_RADIUS; + + /* This fixes 103, 111 */ + padding-top: 2px; + + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; + + &:on { + selection-background-color: $COLOR_ACCENT_2; + } + + &::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid $COLOR_BACKGROUND_4; + } + + &::down-arrow { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_down_disabled.png'); + height: 8px; + width: 8px; + + &:on, + &:hover, + &:focus { + image: url($PATH_RESOURCES + '/' + $ID + '/rc/arrow_down.png'); + } + + } + + QAbstractItemView { + background-color: $COLOR_BACKGROUND_1; + border-radius: $SIZE_BORDER_RADIUS; + border: $BORDER_2; + selection-background-color: $COLOR_ACCENT_2; + } +} + + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView { + + &:hover { + border: $BORDER_SELECTION_2; + color: $COLOR_TEXT_1; + } + + &:selected { + background: $COLOR_ACCENT_2; + color: $COLOR_BACKGROUND_4; + } +} + + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} diff --git a/src/qdarkstyle/rc/Hmovetoolbar.png b/src/qdarkstyle/rc/Hmovetoolbar.png deleted file mode 100644 index cead99ed1..000000000 Binary files a/src/qdarkstyle/rc/Hmovetoolbar.png and /dev/null differ diff --git a/src/qdarkstyle/rc/Hsepartoolbar.png b/src/qdarkstyle/rc/Hsepartoolbar.png deleted file mode 100644 index 7f183c8b3..000000000 Binary files a/src/qdarkstyle/rc/Hsepartoolbar.png and /dev/null differ diff --git a/src/qdarkstyle/rc/Vmovetoolbar.png b/src/qdarkstyle/rc/Vmovetoolbar.png deleted file mode 100644 index ac6a655e2..000000000 Binary files a/src/qdarkstyle/rc/Vmovetoolbar.png and /dev/null differ diff --git a/src/qdarkstyle/rc/Vsepartoolbar.png b/src/qdarkstyle/rc/Vsepartoolbar.png deleted file mode 100644 index 7bf62f168..000000000 Binary files a/src/qdarkstyle/rc/Vsepartoolbar.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_down.png b/src/qdarkstyle/rc/arrow_down.png deleted file mode 100644 index 4fc454ec2..000000000 Binary files a/src/qdarkstyle/rc/arrow_down.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_down@2x.png b/src/qdarkstyle/rc/arrow_down@2x.png deleted file mode 100644 index fab22c41f..000000000 Binary files a/src/qdarkstyle/rc/arrow_down@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_down_disabled.png b/src/qdarkstyle/rc/arrow_down_disabled.png deleted file mode 100644 index 39bd0c128..000000000 Binary files a/src/qdarkstyle/rc/arrow_down_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_down_disabled@2x.png b/src/qdarkstyle/rc/arrow_down_disabled@2x.png deleted file mode 100644 index 5f3ab00da..000000000 Binary files a/src/qdarkstyle/rc/arrow_down_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_down_focus.png b/src/qdarkstyle/rc/arrow_down_focus.png deleted file mode 100644 index 598671292..000000000 Binary files a/src/qdarkstyle/rc/arrow_down_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_down_focus@2x.png b/src/qdarkstyle/rc/arrow_down_focus@2x.png deleted file mode 100644 index cef37e872..000000000 Binary files a/src/qdarkstyle/rc/arrow_down_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_down_pressed.png b/src/qdarkstyle/rc/arrow_down_pressed.png deleted file mode 100644 index e1d5d3a8b..000000000 Binary files a/src/qdarkstyle/rc/arrow_down_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_down_pressed@2x.png b/src/qdarkstyle/rc/arrow_down_pressed@2x.png deleted file mode 100644 index f54850f02..000000000 Binary files a/src/qdarkstyle/rc/arrow_down_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_left.png b/src/qdarkstyle/rc/arrow_left.png deleted file mode 100644 index bd7d54f20..000000000 Binary files a/src/qdarkstyle/rc/arrow_left.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_left@2x.png b/src/qdarkstyle/rc/arrow_left@2x.png deleted file mode 100644 index aa3fcfec5..000000000 Binary files a/src/qdarkstyle/rc/arrow_left@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_left_disabled.png b/src/qdarkstyle/rc/arrow_left_disabled.png deleted file mode 100644 index 673ad11bb..000000000 Binary files a/src/qdarkstyle/rc/arrow_left_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_left_disabled@2x.png b/src/qdarkstyle/rc/arrow_left_disabled@2x.png deleted file mode 100644 index 56a1c0f52..000000000 Binary files a/src/qdarkstyle/rc/arrow_left_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_left_focus.png b/src/qdarkstyle/rc/arrow_left_focus.png deleted file mode 100644 index e7fad8f5e..000000000 Binary files a/src/qdarkstyle/rc/arrow_left_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_left_focus@2x.png b/src/qdarkstyle/rc/arrow_left_focus@2x.png deleted file mode 100644 index 473b6f740..000000000 Binary files a/src/qdarkstyle/rc/arrow_left_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_left_pressed.png b/src/qdarkstyle/rc/arrow_left_pressed.png deleted file mode 100644 index 2f69cbf57..000000000 Binary files a/src/qdarkstyle/rc/arrow_left_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_left_pressed@2x.png b/src/qdarkstyle/rc/arrow_left_pressed@2x.png deleted file mode 100644 index 295558105..000000000 Binary files a/src/qdarkstyle/rc/arrow_left_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_right.png b/src/qdarkstyle/rc/arrow_right.png deleted file mode 100644 index 26050b8a7..000000000 Binary files a/src/qdarkstyle/rc/arrow_right.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_right@2x.png b/src/qdarkstyle/rc/arrow_right@2x.png deleted file mode 100644 index efbc8de3c..000000000 Binary files a/src/qdarkstyle/rc/arrow_right@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_right_disabled.png b/src/qdarkstyle/rc/arrow_right_disabled.png deleted file mode 100644 index 1e59a58c1..000000000 Binary files a/src/qdarkstyle/rc/arrow_right_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_right_disabled@2x.png b/src/qdarkstyle/rc/arrow_right_disabled@2x.png deleted file mode 100644 index a6222d715..000000000 Binary files a/src/qdarkstyle/rc/arrow_right_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_right_focus.png b/src/qdarkstyle/rc/arrow_right_focus.png deleted file mode 100644 index 9bdcd85f7..000000000 Binary files a/src/qdarkstyle/rc/arrow_right_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_right_focus@2x.png b/src/qdarkstyle/rc/arrow_right_focus@2x.png deleted file mode 100644 index e24c3baab..000000000 Binary files a/src/qdarkstyle/rc/arrow_right_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_right_pressed.png b/src/qdarkstyle/rc/arrow_right_pressed.png deleted file mode 100644 index 4f4fc8efb..000000000 Binary files a/src/qdarkstyle/rc/arrow_right_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_right_pressed@2x.png b/src/qdarkstyle/rc/arrow_right_pressed@2x.png deleted file mode 100644 index 1a8516797..000000000 Binary files a/src/qdarkstyle/rc/arrow_right_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_up.png b/src/qdarkstyle/rc/arrow_up.png deleted file mode 100644 index 9f45d8e4c..000000000 Binary files a/src/qdarkstyle/rc/arrow_up.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_up@2x.png b/src/qdarkstyle/rc/arrow_up@2x.png deleted file mode 100644 index 2fe1c6b43..000000000 Binary files a/src/qdarkstyle/rc/arrow_up@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_up_disabled.png b/src/qdarkstyle/rc/arrow_up_disabled.png deleted file mode 100644 index a77807c57..000000000 Binary files a/src/qdarkstyle/rc/arrow_up_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_up_disabled@2x.png b/src/qdarkstyle/rc/arrow_up_disabled@2x.png deleted file mode 100644 index e12c4ee19..000000000 Binary files a/src/qdarkstyle/rc/arrow_up_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_up_focus.png b/src/qdarkstyle/rc/arrow_up_focus.png deleted file mode 100644 index b3970bd22..000000000 Binary files a/src/qdarkstyle/rc/arrow_up_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_up_focus@2x.png b/src/qdarkstyle/rc/arrow_up_focus@2x.png deleted file mode 100644 index 00c6c445a..000000000 Binary files a/src/qdarkstyle/rc/arrow_up_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_up_pressed.png b/src/qdarkstyle/rc/arrow_up_pressed.png deleted file mode 100644 index 8f9dcf490..000000000 Binary files a/src/qdarkstyle/rc/arrow_up_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/arrow_up_pressed@2x.png b/src/qdarkstyle/rc/arrow_up_pressed@2x.png deleted file mode 100644 index 40c7f20c1..000000000 Binary files a/src/qdarkstyle/rc/arrow_up_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/base_icon.png b/src/qdarkstyle/rc/base_icon.png deleted file mode 100644 index bb00857a4..000000000 Binary files a/src/qdarkstyle/rc/base_icon.png and /dev/null differ diff --git a/src/qdarkstyle/rc/base_icon@2x.png b/src/qdarkstyle/rc/base_icon@2x.png deleted file mode 100644 index bc4ab78a2..000000000 Binary files a/src/qdarkstyle/rc/base_icon@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/base_icon_disabled.png b/src/qdarkstyle/rc/base_icon_disabled.png deleted file mode 100644 index bb00857a4..000000000 Binary files a/src/qdarkstyle/rc/base_icon_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/base_icon_disabled@2x.png b/src/qdarkstyle/rc/base_icon_disabled@2x.png deleted file mode 100644 index bc4ab78a2..000000000 Binary files a/src/qdarkstyle/rc/base_icon_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/base_icon_focus.png b/src/qdarkstyle/rc/base_icon_focus.png deleted file mode 100644 index bb00857a4..000000000 Binary files a/src/qdarkstyle/rc/base_icon_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/base_icon_focus@2x.png b/src/qdarkstyle/rc/base_icon_focus@2x.png deleted file mode 100644 index bc4ab78a2..000000000 Binary files a/src/qdarkstyle/rc/base_icon_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/base_icon_pressed.png b/src/qdarkstyle/rc/base_icon_pressed.png deleted file mode 100644 index bb00857a4..000000000 Binary files a/src/qdarkstyle/rc/base_icon_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/base_icon_pressed@2x.png b/src/qdarkstyle/rc/base_icon_pressed@2x.png deleted file mode 100644 index bc4ab78a2..000000000 Binary files a/src/qdarkstyle/rc/base_icon_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_closed-on.png b/src/qdarkstyle/rc/branch_closed-on.png deleted file mode 100644 index d081e9b3b..000000000 Binary files a/src/qdarkstyle/rc/branch_closed-on.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_closed.png b/src/qdarkstyle/rc/branch_closed.png deleted file mode 100644 index caa34ce5b..000000000 Binary files a/src/qdarkstyle/rc/branch_closed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_closed@2x.png b/src/qdarkstyle/rc/branch_closed@2x.png deleted file mode 100644 index bc87d0112..000000000 Binary files a/src/qdarkstyle/rc/branch_closed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_closed_disabled.png b/src/qdarkstyle/rc/branch_closed_disabled.png deleted file mode 100644 index a83f842b5..000000000 Binary files a/src/qdarkstyle/rc/branch_closed_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_closed_disabled@2x.png b/src/qdarkstyle/rc/branch_closed_disabled@2x.png deleted file mode 100644 index 4bb3f6ea4..000000000 Binary files a/src/qdarkstyle/rc/branch_closed_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_closed_focus.png b/src/qdarkstyle/rc/branch_closed_focus.png deleted file mode 100644 index 6d19399dc..000000000 Binary files a/src/qdarkstyle/rc/branch_closed_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_closed_focus@2x.png b/src/qdarkstyle/rc/branch_closed_focus@2x.png deleted file mode 100644 index c02f8a8f6..000000000 Binary files a/src/qdarkstyle/rc/branch_closed_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_closed_pressed.png b/src/qdarkstyle/rc/branch_closed_pressed.png deleted file mode 100644 index 17b7784c3..000000000 Binary files a/src/qdarkstyle/rc/branch_closed_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_closed_pressed@2x.png b/src/qdarkstyle/rc/branch_closed_pressed@2x.png deleted file mode 100644 index 51db176cb..000000000 Binary files a/src/qdarkstyle/rc/branch_closed_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_end.png b/src/qdarkstyle/rc/branch_end.png deleted file mode 100644 index 05cf7b6de..000000000 Binary files a/src/qdarkstyle/rc/branch_end.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_end@2x.png b/src/qdarkstyle/rc/branch_end@2x.png deleted file mode 100644 index 6df213e35..000000000 Binary files a/src/qdarkstyle/rc/branch_end@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_end_disabled.png b/src/qdarkstyle/rc/branch_end_disabled.png deleted file mode 100644 index 8d1c2ceef..000000000 Binary files a/src/qdarkstyle/rc/branch_end_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_end_disabled@2x.png b/src/qdarkstyle/rc/branch_end_disabled@2x.png deleted file mode 100644 index 0a9305f87..000000000 Binary files a/src/qdarkstyle/rc/branch_end_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_end_focus.png b/src/qdarkstyle/rc/branch_end_focus.png deleted file mode 100644 index 3227c78c3..000000000 Binary files a/src/qdarkstyle/rc/branch_end_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_end_focus@2x.png b/src/qdarkstyle/rc/branch_end_focus@2x.png deleted file mode 100644 index 331af9c5f..000000000 Binary files a/src/qdarkstyle/rc/branch_end_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_end_pressed.png b/src/qdarkstyle/rc/branch_end_pressed.png deleted file mode 100644 index 3537347e9..000000000 Binary files a/src/qdarkstyle/rc/branch_end_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_end_pressed@2x.png b/src/qdarkstyle/rc/branch_end_pressed@2x.png deleted file mode 100644 index e5e4bce40..000000000 Binary files a/src/qdarkstyle/rc/branch_end_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_line.png b/src/qdarkstyle/rc/branch_line.png deleted file mode 100644 index 36c7ddf2a..000000000 Binary files a/src/qdarkstyle/rc/branch_line.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_line@2x.png b/src/qdarkstyle/rc/branch_line@2x.png deleted file mode 100644 index 573c55152..000000000 Binary files a/src/qdarkstyle/rc/branch_line@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_line_disabled.png b/src/qdarkstyle/rc/branch_line_disabled.png deleted file mode 100644 index 36f9b4e5a..000000000 Binary files a/src/qdarkstyle/rc/branch_line_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_line_disabled@2x.png b/src/qdarkstyle/rc/branch_line_disabled@2x.png deleted file mode 100644 index cf615a5c9..000000000 Binary files a/src/qdarkstyle/rc/branch_line_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_line_focus.png b/src/qdarkstyle/rc/branch_line_focus.png deleted file mode 100644 index b81bc5b09..000000000 Binary files a/src/qdarkstyle/rc/branch_line_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_line_focus@2x.png b/src/qdarkstyle/rc/branch_line_focus@2x.png deleted file mode 100644 index c474ed902..000000000 Binary files a/src/qdarkstyle/rc/branch_line_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_line_pressed.png b/src/qdarkstyle/rc/branch_line_pressed.png deleted file mode 100644 index 445aa181d..000000000 Binary files a/src/qdarkstyle/rc/branch_line_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_line_pressed@2x.png b/src/qdarkstyle/rc/branch_line_pressed@2x.png deleted file mode 100644 index 4117b5485..000000000 Binary files a/src/qdarkstyle/rc/branch_line_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_more.png b/src/qdarkstyle/rc/branch_more.png deleted file mode 100644 index 1b91df3e9..000000000 Binary files a/src/qdarkstyle/rc/branch_more.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_more@2x.png b/src/qdarkstyle/rc/branch_more@2x.png deleted file mode 100644 index 2e1bebe00..000000000 Binary files a/src/qdarkstyle/rc/branch_more@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_more_disabled.png b/src/qdarkstyle/rc/branch_more_disabled.png deleted file mode 100644 index 72ec42b22..000000000 Binary files a/src/qdarkstyle/rc/branch_more_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_more_disabled@2x.png b/src/qdarkstyle/rc/branch_more_disabled@2x.png deleted file mode 100644 index 65d1d9a31..000000000 Binary files a/src/qdarkstyle/rc/branch_more_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_more_focus.png b/src/qdarkstyle/rc/branch_more_focus.png deleted file mode 100644 index 9ff3921ce..000000000 Binary files a/src/qdarkstyle/rc/branch_more_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_more_focus@2x.png b/src/qdarkstyle/rc/branch_more_focus@2x.png deleted file mode 100644 index 95ac204e5..000000000 Binary files a/src/qdarkstyle/rc/branch_more_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_more_pressed.png b/src/qdarkstyle/rc/branch_more_pressed.png deleted file mode 100644 index a4f20e0e1..000000000 Binary files a/src/qdarkstyle/rc/branch_more_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_more_pressed@2x.png b/src/qdarkstyle/rc/branch_more_pressed@2x.png deleted file mode 100644 index b11348435..000000000 Binary files a/src/qdarkstyle/rc/branch_more_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_open-on.png b/src/qdarkstyle/rc/branch_open-on.png deleted file mode 100644 index ec372b27d..000000000 Binary files a/src/qdarkstyle/rc/branch_open-on.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_open.png b/src/qdarkstyle/rc/branch_open.png deleted file mode 100644 index eee8188b7..000000000 Binary files a/src/qdarkstyle/rc/branch_open.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_open@2x.png b/src/qdarkstyle/rc/branch_open@2x.png deleted file mode 100644 index bcfdc84d1..000000000 Binary files a/src/qdarkstyle/rc/branch_open@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_open_disabled.png b/src/qdarkstyle/rc/branch_open_disabled.png deleted file mode 100644 index b6d2d4743..000000000 Binary files a/src/qdarkstyle/rc/branch_open_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_open_disabled@2x.png b/src/qdarkstyle/rc/branch_open_disabled@2x.png deleted file mode 100644 index dffe12f24..000000000 Binary files a/src/qdarkstyle/rc/branch_open_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_open_focus.png b/src/qdarkstyle/rc/branch_open_focus.png deleted file mode 100644 index 1f7bfdc03..000000000 Binary files a/src/qdarkstyle/rc/branch_open_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_open_focus@2x.png b/src/qdarkstyle/rc/branch_open_focus@2x.png deleted file mode 100644 index 3cc22d775..000000000 Binary files a/src/qdarkstyle/rc/branch_open_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_open_pressed.png b/src/qdarkstyle/rc/branch_open_pressed.png deleted file mode 100644 index db4485973..000000000 Binary files a/src/qdarkstyle/rc/branch_open_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/branch_open_pressed@2x.png b/src/qdarkstyle/rc/branch_open_pressed@2x.png deleted file mode 100644 index bdf8b2d20..000000000 Binary files a/src/qdarkstyle/rc/branch_open_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_checked.png b/src/qdarkstyle/rc/checkbox_checked.png deleted file mode 100644 index 5acad089c..000000000 Binary files a/src/qdarkstyle/rc/checkbox_checked.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_checked@2x.png b/src/qdarkstyle/rc/checkbox_checked@2x.png deleted file mode 100644 index 99e66ca41..000000000 Binary files a/src/qdarkstyle/rc/checkbox_checked@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_checked_disabled.png b/src/qdarkstyle/rc/checkbox_checked_disabled.png deleted file mode 100644 index bad9677cc..000000000 Binary files a/src/qdarkstyle/rc/checkbox_checked_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_checked_disabled@2x.png b/src/qdarkstyle/rc/checkbox_checked_disabled@2x.png deleted file mode 100644 index 3c3ea0b45..000000000 Binary files a/src/qdarkstyle/rc/checkbox_checked_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_checked_focus.png b/src/qdarkstyle/rc/checkbox_checked_focus.png deleted file mode 100644 index 464b573db..000000000 Binary files a/src/qdarkstyle/rc/checkbox_checked_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_checked_focus@2x.png b/src/qdarkstyle/rc/checkbox_checked_focus@2x.png deleted file mode 100644 index 1c30bd1db..000000000 Binary files a/src/qdarkstyle/rc/checkbox_checked_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_checked_pressed.png b/src/qdarkstyle/rc/checkbox_checked_pressed.png deleted file mode 100644 index 4ca57646a..000000000 Binary files a/src/qdarkstyle/rc/checkbox_checked_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_checked_pressed@2x.png b/src/qdarkstyle/rc/checkbox_checked_pressed@2x.png deleted file mode 100644 index a61795237..000000000 Binary files a/src/qdarkstyle/rc/checkbox_checked_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_indeterminate.png b/src/qdarkstyle/rc/checkbox_indeterminate.png deleted file mode 100644 index b1c6e716d..000000000 Binary files a/src/qdarkstyle/rc/checkbox_indeterminate.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_indeterminate@2x.png b/src/qdarkstyle/rc/checkbox_indeterminate@2x.png deleted file mode 100644 index 0d8feb94b..000000000 Binary files a/src/qdarkstyle/rc/checkbox_indeterminate@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_indeterminate_disabled.png b/src/qdarkstyle/rc/checkbox_indeterminate_disabled.png deleted file mode 100644 index 04d7da1d6..000000000 Binary files a/src/qdarkstyle/rc/checkbox_indeterminate_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_indeterminate_disabled@2x.png b/src/qdarkstyle/rc/checkbox_indeterminate_disabled@2x.png deleted file mode 100644 index de228aa97..000000000 Binary files a/src/qdarkstyle/rc/checkbox_indeterminate_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_indeterminate_focus.png b/src/qdarkstyle/rc/checkbox_indeterminate_focus.png deleted file mode 100644 index f7f6d714c..000000000 Binary files a/src/qdarkstyle/rc/checkbox_indeterminate_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_indeterminate_focus@2x.png b/src/qdarkstyle/rc/checkbox_indeterminate_focus@2x.png deleted file mode 100644 index 3638a7ffa..000000000 Binary files a/src/qdarkstyle/rc/checkbox_indeterminate_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_indeterminate_pressed.png b/src/qdarkstyle/rc/checkbox_indeterminate_pressed.png deleted file mode 100644 index 31220be5d..000000000 Binary files a/src/qdarkstyle/rc/checkbox_indeterminate_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_indeterminate_pressed@2x.png b/src/qdarkstyle/rc/checkbox_indeterminate_pressed@2x.png deleted file mode 100644 index 8d112b16f..000000000 Binary files a/src/qdarkstyle/rc/checkbox_indeterminate_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_unchecked.png b/src/qdarkstyle/rc/checkbox_unchecked.png deleted file mode 100644 index 4e68c78c7..000000000 Binary files a/src/qdarkstyle/rc/checkbox_unchecked.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_unchecked@2x.png b/src/qdarkstyle/rc/checkbox_unchecked@2x.png deleted file mode 100644 index c0c4ec9c5..000000000 Binary files a/src/qdarkstyle/rc/checkbox_unchecked@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_unchecked_disabled.png b/src/qdarkstyle/rc/checkbox_unchecked_disabled.png deleted file mode 100644 index 9fb0036ca..000000000 Binary files a/src/qdarkstyle/rc/checkbox_unchecked_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_unchecked_disabled@2x.png b/src/qdarkstyle/rc/checkbox_unchecked_disabled@2x.png deleted file mode 100644 index 8d6c0edd4..000000000 Binary files a/src/qdarkstyle/rc/checkbox_unchecked_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_unchecked_focus.png b/src/qdarkstyle/rc/checkbox_unchecked_focus.png deleted file mode 100644 index 2d6b2fc2e..000000000 Binary files a/src/qdarkstyle/rc/checkbox_unchecked_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_unchecked_focus@2x.png b/src/qdarkstyle/rc/checkbox_unchecked_focus@2x.png deleted file mode 100644 index ed63aaa32..000000000 Binary files a/src/qdarkstyle/rc/checkbox_unchecked_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_unchecked_pressed.png b/src/qdarkstyle/rc/checkbox_unchecked_pressed.png deleted file mode 100644 index 85c6c9b7e..000000000 Binary files a/src/qdarkstyle/rc/checkbox_unchecked_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/checkbox_unchecked_pressed@2x.png b/src/qdarkstyle/rc/checkbox_unchecked_pressed@2x.png deleted file mode 100644 index 2a4b99a3e..000000000 Binary files a/src/qdarkstyle/rc/checkbox_unchecked_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/close-hover.png b/src/qdarkstyle/rc/close-hover.png deleted file mode 100644 index 657943a66..000000000 Binary files a/src/qdarkstyle/rc/close-hover.png and /dev/null differ diff --git a/src/qdarkstyle/rc/close-pressed.png b/src/qdarkstyle/rc/close-pressed.png deleted file mode 100644 index 937d00598..000000000 Binary files a/src/qdarkstyle/rc/close-pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/close.png b/src/qdarkstyle/rc/close.png deleted file mode 100644 index bc0f57610..000000000 Binary files a/src/qdarkstyle/rc/close.png and /dev/null differ diff --git a/src/qdarkstyle/rc/down_arrow.png b/src/qdarkstyle/rc/down_arrow.png deleted file mode 100644 index e271f7f90..000000000 Binary files a/src/qdarkstyle/rc/down_arrow.png and /dev/null differ diff --git a/src/qdarkstyle/rc/down_arrow_disabled.png b/src/qdarkstyle/rc/down_arrow_disabled.png deleted file mode 100644 index 5805d9842..000000000 Binary files a/src/qdarkstyle/rc/down_arrow_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/left_arrow.png b/src/qdarkstyle/rc/left_arrow.png deleted file mode 100644 index f808d2d72..000000000 Binary files a/src/qdarkstyle/rc/left_arrow.png and /dev/null differ diff --git a/src/qdarkstyle/rc/left_arrow_disabled.png b/src/qdarkstyle/rc/left_arrow_disabled.png deleted file mode 100644 index f5b9af8a3..000000000 Binary files a/src/qdarkstyle/rc/left_arrow_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_horizontal.png b/src/qdarkstyle/rc/line_horizontal.png deleted file mode 100644 index a89a1ed1d..000000000 Binary files a/src/qdarkstyle/rc/line_horizontal.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_horizontal@2x.png b/src/qdarkstyle/rc/line_horizontal@2x.png deleted file mode 100644 index 3c6899f14..000000000 Binary files a/src/qdarkstyle/rc/line_horizontal@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_horizontal_disabled.png b/src/qdarkstyle/rc/line_horizontal_disabled.png deleted file mode 100644 index b89b2c927..000000000 Binary files a/src/qdarkstyle/rc/line_horizontal_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_horizontal_disabled@2x.png b/src/qdarkstyle/rc/line_horizontal_disabled@2x.png deleted file mode 100644 index 027a03064..000000000 Binary files a/src/qdarkstyle/rc/line_horizontal_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_horizontal_focus.png b/src/qdarkstyle/rc/line_horizontal_focus.png deleted file mode 100644 index 148a2dfbf..000000000 Binary files a/src/qdarkstyle/rc/line_horizontal_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_horizontal_focus@2x.png b/src/qdarkstyle/rc/line_horizontal_focus@2x.png deleted file mode 100644 index bdce2bb9e..000000000 Binary files a/src/qdarkstyle/rc/line_horizontal_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_horizontal_pressed.png b/src/qdarkstyle/rc/line_horizontal_pressed.png deleted file mode 100644 index c4587b843..000000000 Binary files a/src/qdarkstyle/rc/line_horizontal_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_horizontal_pressed@2x.png b/src/qdarkstyle/rc/line_horizontal_pressed@2x.png deleted file mode 100644 index 9210add3d..000000000 Binary files a/src/qdarkstyle/rc/line_horizontal_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_vertical.png b/src/qdarkstyle/rc/line_vertical.png deleted file mode 100644 index 36c7ddf2a..000000000 Binary files a/src/qdarkstyle/rc/line_vertical.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_vertical@2x.png b/src/qdarkstyle/rc/line_vertical@2x.png deleted file mode 100644 index 573c55152..000000000 Binary files a/src/qdarkstyle/rc/line_vertical@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_vertical_disabled.png b/src/qdarkstyle/rc/line_vertical_disabled.png deleted file mode 100644 index 36f9b4e5a..000000000 Binary files a/src/qdarkstyle/rc/line_vertical_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_vertical_disabled@2x.png b/src/qdarkstyle/rc/line_vertical_disabled@2x.png deleted file mode 100644 index cf615a5c9..000000000 Binary files a/src/qdarkstyle/rc/line_vertical_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_vertical_focus.png b/src/qdarkstyle/rc/line_vertical_focus.png deleted file mode 100644 index b81bc5b09..000000000 Binary files a/src/qdarkstyle/rc/line_vertical_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_vertical_focus@2x.png b/src/qdarkstyle/rc/line_vertical_focus@2x.png deleted file mode 100644 index c474ed902..000000000 Binary files a/src/qdarkstyle/rc/line_vertical_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_vertical_pressed.png b/src/qdarkstyle/rc/line_vertical_pressed.png deleted file mode 100644 index 445aa181d..000000000 Binary files a/src/qdarkstyle/rc/line_vertical_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/line_vertical_pressed@2x.png b/src/qdarkstyle/rc/line_vertical_pressed@2x.png deleted file mode 100644 index 4117b5485..000000000 Binary files a/src/qdarkstyle/rc/line_vertical_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_checked.png b/src/qdarkstyle/rc/radio_checked.png deleted file mode 100644 index 3521990bf..000000000 Binary files a/src/qdarkstyle/rc/radio_checked.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_checked@2x.png b/src/qdarkstyle/rc/radio_checked@2x.png deleted file mode 100644 index b4db8220a..000000000 Binary files a/src/qdarkstyle/rc/radio_checked@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_checked_disabled.png b/src/qdarkstyle/rc/radio_checked_disabled.png deleted file mode 100644 index 6bf1e2664..000000000 Binary files a/src/qdarkstyle/rc/radio_checked_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_checked_disabled@2x.png b/src/qdarkstyle/rc/radio_checked_disabled@2x.png deleted file mode 100644 index c2c08f9e1..000000000 Binary files a/src/qdarkstyle/rc/radio_checked_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_checked_focus.png b/src/qdarkstyle/rc/radio_checked_focus.png deleted file mode 100644 index a74da487f..000000000 Binary files a/src/qdarkstyle/rc/radio_checked_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_checked_focus@2x.png b/src/qdarkstyle/rc/radio_checked_focus@2x.png deleted file mode 100644 index 3282d3e70..000000000 Binary files a/src/qdarkstyle/rc/radio_checked_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_checked_pressed.png b/src/qdarkstyle/rc/radio_checked_pressed.png deleted file mode 100644 index 06131ab58..000000000 Binary files a/src/qdarkstyle/rc/radio_checked_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_checked_pressed@2x.png b/src/qdarkstyle/rc/radio_checked_pressed@2x.png deleted file mode 100644 index f7b1f5788..000000000 Binary files a/src/qdarkstyle/rc/radio_checked_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_unchecked.png b/src/qdarkstyle/rc/radio_unchecked.png deleted file mode 100644 index 342825717..000000000 Binary files a/src/qdarkstyle/rc/radio_unchecked.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_unchecked@2x.png b/src/qdarkstyle/rc/radio_unchecked@2x.png deleted file mode 100644 index b34782bfa..000000000 Binary files a/src/qdarkstyle/rc/radio_unchecked@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_unchecked_disabled.png b/src/qdarkstyle/rc/radio_unchecked_disabled.png deleted file mode 100644 index 1205d7fe6..000000000 Binary files a/src/qdarkstyle/rc/radio_unchecked_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_unchecked_disabled@2x.png b/src/qdarkstyle/rc/radio_unchecked_disabled@2x.png deleted file mode 100644 index e050feeb0..000000000 Binary files a/src/qdarkstyle/rc/radio_unchecked_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_unchecked_focus.png b/src/qdarkstyle/rc/radio_unchecked_focus.png deleted file mode 100644 index caa245f70..000000000 Binary files a/src/qdarkstyle/rc/radio_unchecked_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_unchecked_focus@2x.png b/src/qdarkstyle/rc/radio_unchecked_focus@2x.png deleted file mode 100644 index dd8193221..000000000 Binary files a/src/qdarkstyle/rc/radio_unchecked_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_unchecked_pressed.png b/src/qdarkstyle/rc/radio_unchecked_pressed.png deleted file mode 100644 index 21711dc7f..000000000 Binary files a/src/qdarkstyle/rc/radio_unchecked_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/radio_unchecked_pressed@2x.png b/src/qdarkstyle/rc/radio_unchecked_pressed@2x.png deleted file mode 100644 index 1a1b9c2e3..000000000 Binary files a/src/qdarkstyle/rc/radio_unchecked_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/right_arrow.png b/src/qdarkstyle/rc/right_arrow.png deleted file mode 100644 index 9b0a4e6a7..000000000 Binary files a/src/qdarkstyle/rc/right_arrow.png and /dev/null differ diff --git a/src/qdarkstyle/rc/right_arrow_disabled.png b/src/qdarkstyle/rc/right_arrow_disabled.png deleted file mode 100644 index 5c0bee402..000000000 Binary files a/src/qdarkstyle/rc/right_arrow_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/sizegrip.png b/src/qdarkstyle/rc/sizegrip.png deleted file mode 100644 index 350583aaa..000000000 Binary files a/src/qdarkstyle/rc/sizegrip.png and /dev/null differ diff --git a/src/qdarkstyle/rc/stylesheet-branch-end.png b/src/qdarkstyle/rc/stylesheet-branch-end.png deleted file mode 100644 index cb5d3b51f..000000000 Binary files a/src/qdarkstyle/rc/stylesheet-branch-end.png and /dev/null differ diff --git a/src/qdarkstyle/rc/stylesheet-branch-more.png b/src/qdarkstyle/rc/stylesheet-branch-more.png deleted file mode 100644 index 62711409d..000000000 Binary files a/src/qdarkstyle/rc/stylesheet-branch-more.png and /dev/null differ diff --git a/src/qdarkstyle/rc/stylesheet-vline.png b/src/qdarkstyle/rc/stylesheet-vline.png deleted file mode 100644 index 87536cce1..000000000 Binary files a/src/qdarkstyle/rc/stylesheet-vline.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_horizontal.png b/src/qdarkstyle/rc/toolbar_move_horizontal.png deleted file mode 100644 index 5dbf8c27e..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_horizontal.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_horizontal@2x.png b/src/qdarkstyle/rc/toolbar_move_horizontal@2x.png deleted file mode 100644 index e775854a3..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_horizontal@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_horizontal_disabled.png b/src/qdarkstyle/rc/toolbar_move_horizontal_disabled.png deleted file mode 100644 index 0563329a6..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_horizontal_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_horizontal_disabled@2x.png b/src/qdarkstyle/rc/toolbar_move_horizontal_disabled@2x.png deleted file mode 100644 index 42eed67f8..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_horizontal_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_horizontal_focus.png b/src/qdarkstyle/rc/toolbar_move_horizontal_focus.png deleted file mode 100644 index d870747e7..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_horizontal_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_horizontal_focus@2x.png b/src/qdarkstyle/rc/toolbar_move_horizontal_focus@2x.png deleted file mode 100644 index f29215364..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_horizontal_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_horizontal_pressed.png b/src/qdarkstyle/rc/toolbar_move_horizontal_pressed.png deleted file mode 100644 index 69cc1c5f0..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_horizontal_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_horizontal_pressed@2x.png b/src/qdarkstyle/rc/toolbar_move_horizontal_pressed@2x.png deleted file mode 100644 index 981988195..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_horizontal_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_vertical.png b/src/qdarkstyle/rc/toolbar_move_vertical.png deleted file mode 100644 index 4450862aa..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_vertical.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_vertical@2x.png b/src/qdarkstyle/rc/toolbar_move_vertical@2x.png deleted file mode 100644 index 3f0618f72..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_vertical@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_vertical_disabled.png b/src/qdarkstyle/rc/toolbar_move_vertical_disabled.png deleted file mode 100644 index 1369e4446..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_vertical_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_vertical_disabled@2x.png b/src/qdarkstyle/rc/toolbar_move_vertical_disabled@2x.png deleted file mode 100644 index 58209624c..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_vertical_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_vertical_focus.png b/src/qdarkstyle/rc/toolbar_move_vertical_focus.png deleted file mode 100644 index 28cedf159..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_vertical_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_vertical_focus@2x.png b/src/qdarkstyle/rc/toolbar_move_vertical_focus@2x.png deleted file mode 100644 index 828ed59f9..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_vertical_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_vertical_pressed.png b/src/qdarkstyle/rc/toolbar_move_vertical_pressed.png deleted file mode 100644 index 2b413d305..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_vertical_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_move_vertical_pressed@2x.png b/src/qdarkstyle/rc/toolbar_move_vertical_pressed@2x.png deleted file mode 100644 index 4e80a0beb..000000000 Binary files a/src/qdarkstyle/rc/toolbar_move_vertical_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_horizontal.png b/src/qdarkstyle/rc/toolbar_separator_horizontal.png deleted file mode 100644 index a1e84c1d8..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_horizontal.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_horizontal@2x.png b/src/qdarkstyle/rc/toolbar_separator_horizontal@2x.png deleted file mode 100644 index 664323fe8..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_horizontal@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_horizontal_disabled.png b/src/qdarkstyle/rc/toolbar_separator_horizontal_disabled.png deleted file mode 100644 index bedbab447..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_horizontal_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_horizontal_disabled@2x.png b/src/qdarkstyle/rc/toolbar_separator_horizontal_disabled@2x.png deleted file mode 100644 index d421e8118..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_horizontal_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_horizontal_focus.png b/src/qdarkstyle/rc/toolbar_separator_horizontal_focus.png deleted file mode 100644 index 1632c5979..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_horizontal_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_horizontal_focus@2x.png b/src/qdarkstyle/rc/toolbar_separator_horizontal_focus@2x.png deleted file mode 100644 index da41f2c9d..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_horizontal_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_horizontal_pressed.png b/src/qdarkstyle/rc/toolbar_separator_horizontal_pressed.png deleted file mode 100644 index e03fb8096..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_horizontal_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_horizontal_pressed@2x.png b/src/qdarkstyle/rc/toolbar_separator_horizontal_pressed@2x.png deleted file mode 100644 index 64a94a4dc..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_horizontal_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_vertical.png b/src/qdarkstyle/rc/toolbar_separator_vertical.png deleted file mode 100644 index 86688ee38..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_vertical.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_vertical@2x.png b/src/qdarkstyle/rc/toolbar_separator_vertical@2x.png deleted file mode 100644 index e4efe8c7d..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_vertical@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_vertical_disabled.png b/src/qdarkstyle/rc/toolbar_separator_vertical_disabled.png deleted file mode 100644 index 244536844..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_vertical_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_vertical_disabled@2x.png b/src/qdarkstyle/rc/toolbar_separator_vertical_disabled@2x.png deleted file mode 100644 index 393920e81..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_vertical_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_vertical_focus.png b/src/qdarkstyle/rc/toolbar_separator_vertical_focus.png deleted file mode 100644 index d286348da..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_vertical_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_vertical_focus@2x.png b/src/qdarkstyle/rc/toolbar_separator_vertical_focus@2x.png deleted file mode 100644 index ad701dfa5..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_vertical_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_vertical_pressed.png b/src/qdarkstyle/rc/toolbar_separator_vertical_pressed.png deleted file mode 100644 index 7f09d5aed..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_vertical_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/toolbar_separator_vertical_pressed@2x.png b/src/qdarkstyle/rc/toolbar_separator_vertical_pressed@2x.png deleted file mode 100644 index 08d83e1e7..000000000 Binary files a/src/qdarkstyle/rc/toolbar_separator_vertical_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/transparent.png b/src/qdarkstyle/rc/transparent.png deleted file mode 100644 index 67753617f..000000000 Binary files a/src/qdarkstyle/rc/transparent.png and /dev/null differ diff --git a/src/qdarkstyle/rc/transparent@2x.png b/src/qdarkstyle/rc/transparent@2x.png deleted file mode 100644 index 4012944b5..000000000 Binary files a/src/qdarkstyle/rc/transparent@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/transparent_disabled.png b/src/qdarkstyle/rc/transparent_disabled.png deleted file mode 100644 index 67753617f..000000000 Binary files a/src/qdarkstyle/rc/transparent_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/transparent_disabled@2x.png b/src/qdarkstyle/rc/transparent_disabled@2x.png deleted file mode 100644 index 4012944b5..000000000 Binary files a/src/qdarkstyle/rc/transparent_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/transparent_focus.png b/src/qdarkstyle/rc/transparent_focus.png deleted file mode 100644 index 67753617f..000000000 Binary files a/src/qdarkstyle/rc/transparent_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/transparent_focus@2x.png b/src/qdarkstyle/rc/transparent_focus@2x.png deleted file mode 100644 index 4012944b5..000000000 Binary files a/src/qdarkstyle/rc/transparent_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/transparent_pressed.png b/src/qdarkstyle/rc/transparent_pressed.png deleted file mode 100644 index 67753617f..000000000 Binary files a/src/qdarkstyle/rc/transparent_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/transparent_pressed@2x.png b/src/qdarkstyle/rc/transparent_pressed@2x.png deleted file mode 100644 index 4012944b5..000000000 Binary files a/src/qdarkstyle/rc/transparent_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/undock.png b/src/qdarkstyle/rc/undock.png deleted file mode 100644 index 88691d779..000000000 Binary files a/src/qdarkstyle/rc/undock.png and /dev/null differ diff --git a/src/qdarkstyle/rc/up_arrow.png b/src/qdarkstyle/rc/up_arrow.png deleted file mode 100644 index abcc72452..000000000 Binary files a/src/qdarkstyle/rc/up_arrow.png and /dev/null differ diff --git a/src/qdarkstyle/rc/up_arrow_disabled.png b/src/qdarkstyle/rc/up_arrow_disabled.png deleted file mode 100644 index b9c8e3b53..000000000 Binary files a/src/qdarkstyle/rc/up_arrow_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_close.png b/src/qdarkstyle/rc/window_close.png deleted file mode 100644 index c7ac3e740..000000000 Binary files a/src/qdarkstyle/rc/window_close.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_close@2x.png b/src/qdarkstyle/rc/window_close@2x.png deleted file mode 100644 index b11aa0818..000000000 Binary files a/src/qdarkstyle/rc/window_close@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_close_disabled.png b/src/qdarkstyle/rc/window_close_disabled.png deleted file mode 100644 index d60edac2f..000000000 Binary files a/src/qdarkstyle/rc/window_close_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_close_disabled@2x.png b/src/qdarkstyle/rc/window_close_disabled@2x.png deleted file mode 100644 index b571b12e8..000000000 Binary files a/src/qdarkstyle/rc/window_close_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_close_focus.png b/src/qdarkstyle/rc/window_close_focus.png deleted file mode 100644 index c970d3ff1..000000000 Binary files a/src/qdarkstyle/rc/window_close_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_close_focus@2x.png b/src/qdarkstyle/rc/window_close_focus@2x.png deleted file mode 100644 index f87ac738f..000000000 Binary files a/src/qdarkstyle/rc/window_close_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_close_pressed.png b/src/qdarkstyle/rc/window_close_pressed.png deleted file mode 100644 index c6da5c8dc..000000000 Binary files a/src/qdarkstyle/rc/window_close_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_close_pressed@2x.png b/src/qdarkstyle/rc/window_close_pressed@2x.png deleted file mode 100644 index 749009c00..000000000 Binary files a/src/qdarkstyle/rc/window_close_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_grip.png b/src/qdarkstyle/rc/window_grip.png deleted file mode 100644 index e3df93be8..000000000 Binary files a/src/qdarkstyle/rc/window_grip.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_grip@2x.png b/src/qdarkstyle/rc/window_grip@2x.png deleted file mode 100644 index c5a0dcce6..000000000 Binary files a/src/qdarkstyle/rc/window_grip@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_grip_disabled.png b/src/qdarkstyle/rc/window_grip_disabled.png deleted file mode 100644 index 3c0d86e82..000000000 Binary files a/src/qdarkstyle/rc/window_grip_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_grip_disabled@2x.png b/src/qdarkstyle/rc/window_grip_disabled@2x.png deleted file mode 100644 index f57b353aa..000000000 Binary files a/src/qdarkstyle/rc/window_grip_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_grip_focus.png b/src/qdarkstyle/rc/window_grip_focus.png deleted file mode 100644 index 2d35380b4..000000000 Binary files a/src/qdarkstyle/rc/window_grip_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_grip_focus@2x.png b/src/qdarkstyle/rc/window_grip_focus@2x.png deleted file mode 100644 index d92f09b0d..000000000 Binary files a/src/qdarkstyle/rc/window_grip_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_grip_pressed.png b/src/qdarkstyle/rc/window_grip_pressed.png deleted file mode 100644 index 89d590882..000000000 Binary files a/src/qdarkstyle/rc/window_grip_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_grip_pressed@2x.png b/src/qdarkstyle/rc/window_grip_pressed@2x.png deleted file mode 100644 index ef2dc7077..000000000 Binary files a/src/qdarkstyle/rc/window_grip_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_minimize.png b/src/qdarkstyle/rc/window_minimize.png deleted file mode 100644 index a850c4852..000000000 Binary files a/src/qdarkstyle/rc/window_minimize.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_minimize@2x.png b/src/qdarkstyle/rc/window_minimize@2x.png deleted file mode 100644 index 83b82b6ee..000000000 Binary files a/src/qdarkstyle/rc/window_minimize@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_minimize_disabled.png b/src/qdarkstyle/rc/window_minimize_disabled.png deleted file mode 100644 index d66d07039..000000000 Binary files a/src/qdarkstyle/rc/window_minimize_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_minimize_disabled@2x.png b/src/qdarkstyle/rc/window_minimize_disabled@2x.png deleted file mode 100644 index 3a7f2af11..000000000 Binary files a/src/qdarkstyle/rc/window_minimize_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_minimize_focus.png b/src/qdarkstyle/rc/window_minimize_focus.png deleted file mode 100644 index f533977ed..000000000 Binary files a/src/qdarkstyle/rc/window_minimize_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_minimize_focus@2x.png b/src/qdarkstyle/rc/window_minimize_focus@2x.png deleted file mode 100644 index a2b376a51..000000000 Binary files a/src/qdarkstyle/rc/window_minimize_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_minimize_pressed.png b/src/qdarkstyle/rc/window_minimize_pressed.png deleted file mode 100644 index ac050a040..000000000 Binary files a/src/qdarkstyle/rc/window_minimize_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_minimize_pressed@2x.png b/src/qdarkstyle/rc/window_minimize_pressed@2x.png deleted file mode 100644 index b701572b4..000000000 Binary files a/src/qdarkstyle/rc/window_minimize_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_undock.png b/src/qdarkstyle/rc/window_undock.png deleted file mode 100644 index fab0e72e2..000000000 Binary files a/src/qdarkstyle/rc/window_undock.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_undock@2x.png b/src/qdarkstyle/rc/window_undock@2x.png deleted file mode 100644 index 9574d4ab9..000000000 Binary files a/src/qdarkstyle/rc/window_undock@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_undock_disabled.png b/src/qdarkstyle/rc/window_undock_disabled.png deleted file mode 100644 index a2e164970..000000000 Binary files a/src/qdarkstyle/rc/window_undock_disabled.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_undock_disabled@2x.png b/src/qdarkstyle/rc/window_undock_disabled@2x.png deleted file mode 100644 index b6d5c6cb2..000000000 Binary files a/src/qdarkstyle/rc/window_undock_disabled@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_undock_focus.png b/src/qdarkstyle/rc/window_undock_focus.png deleted file mode 100644 index 2932dea0f..000000000 Binary files a/src/qdarkstyle/rc/window_undock_focus.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_undock_focus@2x.png b/src/qdarkstyle/rc/window_undock_focus@2x.png deleted file mode 100644 index 62de7bada..000000000 Binary files a/src/qdarkstyle/rc/window_undock_focus@2x.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_undock_pressed.png b/src/qdarkstyle/rc/window_undock_pressed.png deleted file mode 100644 index 4ccf8a540..000000000 Binary files a/src/qdarkstyle/rc/window_undock_pressed.png and /dev/null differ diff --git a/src/qdarkstyle/rc/window_undock_pressed@2x.png b/src/qdarkstyle/rc/window_undock_pressed@2x.png deleted file mode 100644 index fba29fc99..000000000 Binary files a/src/qdarkstyle/rc/window_undock_pressed@2x.png and /dev/null differ diff --git a/src/qdarkstyle/style.qrc b/src/qdarkstyle/style.qrc deleted file mode 100644 index e301854e2..000000000 --- a/src/qdarkstyle/style.qrc +++ /dev/null @@ -1,216 +0,0 @@ - - - - rc/arrow_down.png - rc/arrow_down@2x.png - rc/arrow_down_disabled.png - rc/arrow_down_disabled@2x.png - rc/arrow_down_focus.png - rc/arrow_down_focus@2x.png - rc/arrow_down_pressed.png - rc/arrow_down_pressed@2x.png - rc/arrow_left.png - rc/arrow_left@2x.png - rc/arrow_left_disabled.png - rc/arrow_left_disabled@2x.png - rc/arrow_left_focus.png - rc/arrow_left_focus@2x.png - rc/arrow_left_pressed.png - rc/arrow_left_pressed@2x.png - rc/arrow_right.png - rc/arrow_right@2x.png - rc/arrow_right_disabled.png - rc/arrow_right_disabled@2x.png - rc/arrow_right_focus.png - rc/arrow_right_focus@2x.png - rc/arrow_right_pressed.png - rc/arrow_right_pressed@2x.png - rc/arrow_up.png - rc/arrow_up@2x.png - rc/arrow_up_disabled.png - rc/arrow_up_disabled@2x.png - rc/arrow_up_focus.png - rc/arrow_up_focus@2x.png - rc/arrow_up_pressed.png - rc/arrow_up_pressed@2x.png - rc/base_icon.png - rc/base_icon@2x.png - rc/base_icon_disabled.png - rc/base_icon_disabled@2x.png - rc/base_icon_focus.png - rc/base_icon_focus@2x.png - rc/base_icon_pressed.png - rc/base_icon_pressed@2x.png - rc/branch_closed.png - rc/branch_closed@2x.png - rc/branch_closed_disabled.png - rc/branch_closed_disabled@2x.png - rc/branch_closed_focus.png - rc/branch_closed_focus@2x.png - rc/branch_closed_pressed.png - rc/branch_closed_pressed@2x.png - rc/branch_end.png - rc/branch_end@2x.png - rc/branch_end_disabled.png - rc/branch_end_disabled@2x.png - rc/branch_end_focus.png - rc/branch_end_focus@2x.png - rc/branch_end_pressed.png - rc/branch_end_pressed@2x.png - rc/branch_line.png - rc/branch_line@2x.png - rc/branch_line_disabled.png - rc/branch_line_disabled@2x.png - rc/branch_line_focus.png - rc/branch_line_focus@2x.png - rc/branch_line_pressed.png - rc/branch_line_pressed@2x.png - rc/branch_more.png - rc/branch_more@2x.png - rc/branch_more_disabled.png - rc/branch_more_disabled@2x.png - rc/branch_more_focus.png - rc/branch_more_focus@2x.png - rc/branch_more_pressed.png - rc/branch_more_pressed@2x.png - rc/branch_open.png - rc/branch_open@2x.png - rc/branch_open_disabled.png - rc/branch_open_disabled@2x.png - rc/branch_open_focus.png - rc/branch_open_focus@2x.png - rc/branch_open_pressed.png - rc/branch_open_pressed@2x.png - rc/checkbox_checked.png - rc/checkbox_checked@2x.png - rc/checkbox_checked_disabled.png - rc/checkbox_checked_disabled@2x.png - rc/checkbox_checked_focus.png - rc/checkbox_checked_focus@2x.png - rc/checkbox_checked_pressed.png - rc/checkbox_checked_pressed@2x.png - rc/checkbox_indeterminate.png - rc/checkbox_indeterminate@2x.png - rc/checkbox_indeterminate_disabled.png - rc/checkbox_indeterminate_disabled@2x.png - rc/checkbox_indeterminate_focus.png - rc/checkbox_indeterminate_focus@2x.png - rc/checkbox_indeterminate_pressed.png - rc/checkbox_indeterminate_pressed@2x.png - rc/checkbox_unchecked.png - rc/checkbox_unchecked@2x.png - rc/checkbox_unchecked_disabled.png - rc/checkbox_unchecked_disabled@2x.png - rc/checkbox_unchecked_focus.png - rc/checkbox_unchecked_focus@2x.png - rc/checkbox_unchecked_pressed.png - rc/checkbox_unchecked_pressed@2x.png - rc/line_horizontal.png - rc/line_horizontal@2x.png - rc/line_horizontal_disabled.png - rc/line_horizontal_disabled@2x.png - rc/line_horizontal_focus.png - rc/line_horizontal_focus@2x.png - rc/line_horizontal_pressed.png - rc/line_horizontal_pressed@2x.png - rc/line_vertical.png - rc/line_vertical@2x.png - rc/line_vertical_disabled.png - rc/line_vertical_disabled@2x.png - rc/line_vertical_focus.png - rc/line_vertical_focus@2x.png - rc/line_vertical_pressed.png - rc/line_vertical_pressed@2x.png - rc/radio_checked.png - rc/radio_checked@2x.png - rc/radio_checked_disabled.png - rc/radio_checked_disabled@2x.png - rc/radio_checked_focus.png - rc/radio_checked_focus@2x.png - rc/radio_checked_pressed.png - rc/radio_checked_pressed@2x.png - rc/radio_unchecked.png - rc/radio_unchecked@2x.png - rc/radio_unchecked_disabled.png - rc/radio_unchecked_disabled@2x.png - rc/radio_unchecked_focus.png - rc/radio_unchecked_focus@2x.png - rc/radio_unchecked_pressed.png - rc/radio_unchecked_pressed@2x.png - rc/toolbar_move_horizontal.png - rc/toolbar_move_horizontal@2x.png - rc/toolbar_move_horizontal_disabled.png - rc/toolbar_move_horizontal_disabled@2x.png - rc/toolbar_move_horizontal_focus.png - rc/toolbar_move_horizontal_focus@2x.png - rc/toolbar_move_horizontal_pressed.png - rc/toolbar_move_horizontal_pressed@2x.png - rc/toolbar_move_vertical.png - rc/toolbar_move_vertical@2x.png - rc/toolbar_move_vertical_disabled.png - rc/toolbar_move_vertical_disabled@2x.png - rc/toolbar_move_vertical_focus.png - rc/toolbar_move_vertical_focus@2x.png - rc/toolbar_move_vertical_pressed.png - rc/toolbar_move_vertical_pressed@2x.png - rc/toolbar_separator_horizontal.png - rc/toolbar_separator_horizontal@2x.png - rc/toolbar_separator_horizontal_disabled.png - rc/toolbar_separator_horizontal_disabled@2x.png - rc/toolbar_separator_horizontal_focus.png - rc/toolbar_separator_horizontal_focus@2x.png - rc/toolbar_separator_horizontal_pressed.png - rc/toolbar_separator_horizontal_pressed@2x.png - rc/toolbar_separator_vertical.png - rc/toolbar_separator_vertical@2x.png - rc/toolbar_separator_vertical_disabled.png - rc/toolbar_separator_vertical_disabled@2x.png - rc/toolbar_separator_vertical_focus.png - rc/toolbar_separator_vertical_focus@2x.png - rc/toolbar_separator_vertical_pressed.png - rc/toolbar_separator_vertical_pressed@2x.png - rc/transparent.png - rc/transparent@2x.png - rc/transparent_disabled.png - rc/transparent_disabled@2x.png - rc/transparent_focus.png - rc/transparent_focus@2x.png - rc/transparent_pressed.png - rc/transparent_pressed@2x.png - rc/window_close.png - rc/window_close@2x.png - rc/window_close_disabled.png - rc/window_close_disabled@2x.png - rc/window_close_focus.png - rc/window_close_focus@2x.png - rc/window_close_pressed.png - rc/window_close_pressed@2x.png - rc/window_grip.png - rc/window_grip@2x.png - rc/window_grip_disabled.png - rc/window_grip_disabled@2x.png - rc/window_grip_focus.png - rc/window_grip_focus@2x.png - rc/window_grip_pressed.png - rc/window_grip_pressed@2x.png - rc/window_minimize.png - rc/window_minimize@2x.png - rc/window_minimize_disabled.png - rc/window_minimize_disabled@2x.png - rc/window_minimize_focus.png - rc/window_minimize_focus@2x.png - rc/window_minimize_pressed.png - rc/window_minimize_pressed@2x.png - rc/window_undock.png - rc/window_undock@2x.png - rc/window_undock_disabled.png - rc/window_undock_disabled@2x.png - rc/window_undock_focus.png - rc/window_undock_focus@2x.png - rc/window_undock_pressed.png - rc/window_undock_pressed@2x.png - - - style.qss - - diff --git a/src/qdarkstyle/style.qrc.depends b/src/qdarkstyle/style.qrc.depends deleted file mode 100644 index e301854e2..000000000 --- a/src/qdarkstyle/style.qrc.depends +++ /dev/null @@ -1,216 +0,0 @@ - - - - rc/arrow_down.png - rc/arrow_down@2x.png - rc/arrow_down_disabled.png - rc/arrow_down_disabled@2x.png - rc/arrow_down_focus.png - rc/arrow_down_focus@2x.png - rc/arrow_down_pressed.png - rc/arrow_down_pressed@2x.png - rc/arrow_left.png - rc/arrow_left@2x.png - rc/arrow_left_disabled.png - rc/arrow_left_disabled@2x.png - rc/arrow_left_focus.png - rc/arrow_left_focus@2x.png - rc/arrow_left_pressed.png - rc/arrow_left_pressed@2x.png - rc/arrow_right.png - rc/arrow_right@2x.png - rc/arrow_right_disabled.png - rc/arrow_right_disabled@2x.png - rc/arrow_right_focus.png - rc/arrow_right_focus@2x.png - rc/arrow_right_pressed.png - rc/arrow_right_pressed@2x.png - rc/arrow_up.png - rc/arrow_up@2x.png - rc/arrow_up_disabled.png - rc/arrow_up_disabled@2x.png - rc/arrow_up_focus.png - rc/arrow_up_focus@2x.png - rc/arrow_up_pressed.png - rc/arrow_up_pressed@2x.png - rc/base_icon.png - rc/base_icon@2x.png - rc/base_icon_disabled.png - rc/base_icon_disabled@2x.png - rc/base_icon_focus.png - rc/base_icon_focus@2x.png - rc/base_icon_pressed.png - rc/base_icon_pressed@2x.png - rc/branch_closed.png - rc/branch_closed@2x.png - rc/branch_closed_disabled.png - rc/branch_closed_disabled@2x.png - rc/branch_closed_focus.png - rc/branch_closed_focus@2x.png - rc/branch_closed_pressed.png - rc/branch_closed_pressed@2x.png - rc/branch_end.png - rc/branch_end@2x.png - rc/branch_end_disabled.png - rc/branch_end_disabled@2x.png - rc/branch_end_focus.png - rc/branch_end_focus@2x.png - rc/branch_end_pressed.png - rc/branch_end_pressed@2x.png - rc/branch_line.png - rc/branch_line@2x.png - rc/branch_line_disabled.png - rc/branch_line_disabled@2x.png - rc/branch_line_focus.png - rc/branch_line_focus@2x.png - rc/branch_line_pressed.png - rc/branch_line_pressed@2x.png - rc/branch_more.png - rc/branch_more@2x.png - rc/branch_more_disabled.png - rc/branch_more_disabled@2x.png - rc/branch_more_focus.png - rc/branch_more_focus@2x.png - rc/branch_more_pressed.png - rc/branch_more_pressed@2x.png - rc/branch_open.png - rc/branch_open@2x.png - rc/branch_open_disabled.png - rc/branch_open_disabled@2x.png - rc/branch_open_focus.png - rc/branch_open_focus@2x.png - rc/branch_open_pressed.png - rc/branch_open_pressed@2x.png - rc/checkbox_checked.png - rc/checkbox_checked@2x.png - rc/checkbox_checked_disabled.png - rc/checkbox_checked_disabled@2x.png - rc/checkbox_checked_focus.png - rc/checkbox_checked_focus@2x.png - rc/checkbox_checked_pressed.png - rc/checkbox_checked_pressed@2x.png - rc/checkbox_indeterminate.png - rc/checkbox_indeterminate@2x.png - rc/checkbox_indeterminate_disabled.png - rc/checkbox_indeterminate_disabled@2x.png - rc/checkbox_indeterminate_focus.png - rc/checkbox_indeterminate_focus@2x.png - rc/checkbox_indeterminate_pressed.png - rc/checkbox_indeterminate_pressed@2x.png - rc/checkbox_unchecked.png - rc/checkbox_unchecked@2x.png - rc/checkbox_unchecked_disabled.png - rc/checkbox_unchecked_disabled@2x.png - rc/checkbox_unchecked_focus.png - rc/checkbox_unchecked_focus@2x.png - rc/checkbox_unchecked_pressed.png - rc/checkbox_unchecked_pressed@2x.png - rc/line_horizontal.png - rc/line_horizontal@2x.png - rc/line_horizontal_disabled.png - rc/line_horizontal_disabled@2x.png - rc/line_horizontal_focus.png - rc/line_horizontal_focus@2x.png - rc/line_horizontal_pressed.png - rc/line_horizontal_pressed@2x.png - rc/line_vertical.png - rc/line_vertical@2x.png - rc/line_vertical_disabled.png - rc/line_vertical_disabled@2x.png - rc/line_vertical_focus.png - rc/line_vertical_focus@2x.png - rc/line_vertical_pressed.png - rc/line_vertical_pressed@2x.png - rc/radio_checked.png - rc/radio_checked@2x.png - rc/radio_checked_disabled.png - rc/radio_checked_disabled@2x.png - rc/radio_checked_focus.png - rc/radio_checked_focus@2x.png - rc/radio_checked_pressed.png - rc/radio_checked_pressed@2x.png - rc/radio_unchecked.png - rc/radio_unchecked@2x.png - rc/radio_unchecked_disabled.png - rc/radio_unchecked_disabled@2x.png - rc/radio_unchecked_focus.png - rc/radio_unchecked_focus@2x.png - rc/radio_unchecked_pressed.png - rc/radio_unchecked_pressed@2x.png - rc/toolbar_move_horizontal.png - rc/toolbar_move_horizontal@2x.png - rc/toolbar_move_horizontal_disabled.png - rc/toolbar_move_horizontal_disabled@2x.png - rc/toolbar_move_horizontal_focus.png - rc/toolbar_move_horizontal_focus@2x.png - rc/toolbar_move_horizontal_pressed.png - rc/toolbar_move_horizontal_pressed@2x.png - rc/toolbar_move_vertical.png - rc/toolbar_move_vertical@2x.png - rc/toolbar_move_vertical_disabled.png - rc/toolbar_move_vertical_disabled@2x.png - rc/toolbar_move_vertical_focus.png - rc/toolbar_move_vertical_focus@2x.png - rc/toolbar_move_vertical_pressed.png - rc/toolbar_move_vertical_pressed@2x.png - rc/toolbar_separator_horizontal.png - rc/toolbar_separator_horizontal@2x.png - rc/toolbar_separator_horizontal_disabled.png - rc/toolbar_separator_horizontal_disabled@2x.png - rc/toolbar_separator_horizontal_focus.png - rc/toolbar_separator_horizontal_focus@2x.png - rc/toolbar_separator_horizontal_pressed.png - rc/toolbar_separator_horizontal_pressed@2x.png - rc/toolbar_separator_vertical.png - rc/toolbar_separator_vertical@2x.png - rc/toolbar_separator_vertical_disabled.png - rc/toolbar_separator_vertical_disabled@2x.png - rc/toolbar_separator_vertical_focus.png - rc/toolbar_separator_vertical_focus@2x.png - rc/toolbar_separator_vertical_pressed.png - rc/toolbar_separator_vertical_pressed@2x.png - rc/transparent.png - rc/transparent@2x.png - rc/transparent_disabled.png - rc/transparent_disabled@2x.png - rc/transparent_focus.png - rc/transparent_focus@2x.png - rc/transparent_pressed.png - rc/transparent_pressed@2x.png - rc/window_close.png - rc/window_close@2x.png - rc/window_close_disabled.png - rc/window_close_disabled@2x.png - rc/window_close_focus.png - rc/window_close_focus@2x.png - rc/window_close_pressed.png - rc/window_close_pressed@2x.png - rc/window_grip.png - rc/window_grip@2x.png - rc/window_grip_disabled.png - rc/window_grip_disabled@2x.png - rc/window_grip_focus.png - rc/window_grip_focus@2x.png - rc/window_grip_pressed.png - rc/window_grip_pressed@2x.png - rc/window_minimize.png - rc/window_minimize@2x.png - rc/window_minimize_disabled.png - rc/window_minimize_disabled@2x.png - rc/window_minimize_focus.png - rc/window_minimize_focus@2x.png - rc/window_minimize_pressed.png - rc/window_minimize_pressed@2x.png - rc/window_undock.png - rc/window_undock@2x.png - rc/window_undock_disabled.png - rc/window_undock_disabled@2x.png - rc/window_undock_focus.png - rc/window_undock_focus@2x.png - rc/window_undock_pressed.png - rc/window_undock_pressed@2x.png - - - style.qss - - diff --git a/src/qdarkstyle/style.qss b/src/qdarkstyle/style.qss deleted file mode 100644 index 55dfe093d..000000000 --- a/src/qdarkstyle/style.qss +++ /dev/null @@ -1,2165 +0,0 @@ -/* --------------------------------------------------------------------------- - - Created by the qtsass compiler v0.1.1 - - The definitions are in the "qdarkstyle.qss._styles.scss" module - - WARNING! All changes made in this file will be lost! - ---------------------------------------------------------------------------- */ -/* QDarkStyleSheet ----------------------------------------------------------- - -This is the main style sheet, the palette has nine colors. - -It is based on three selecting colors, three greyish (background) colors -plus three whitish (foreground) colors. Each set of widgets of the same -type have a header like this: - - ------------------ - GroupName -------- - ------------------ - -And each widget is separated with a header like this: - - QWidgetName ------ - -This makes more easy to find and change some css field. The basic -configuration is described bellow. - - BACKGROUND ----------- - - Light (unpressed) - Normal (border, disabled, pressed, checked, toolbars, menus) - Dark (background) - - FOREGROUND ----------- - - Light (texts/labels) - Normal (not used yet) - Dark (disabled texts) - - SELECTION ------------ - - Light (selection/hover/active) - Normal (selected) - Dark (selected disabled) - -If a stranger configuration is required because of a bugfix or anything -else, keep the comment on the line above so nobody changes it, including the -issue number. - -*/ -/* - -See Qt documentation: - - - https://doc.qt.io/qt-5/stylesheet.html - - https://doc.qt.io/qt-5/stylesheet-reference.html - - https://doc.qt.io/qt-5/stylesheet-examples.html - ---------------------------------------------------------------------------- */ -/* QWidget ---------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QWidget { - background-color: #19232D; - border: 0px solid #32414B; - padding: 0px; - color: #F0F0F0; - selection-background-color: #1464A0; - selection-color: #F0F0F0; -} - -QWidget:disabled { - background-color: #19232D; - color: #787878; - selection-background-color: #14506E; - selection-color: #787878; -} - -QWidget::item:selected { - background-color: #1464A0; -} - -QWidget::item:hover { - background-color: #148CD2; - color: #32414B; -} - -/* QMainWindow ------------------------------------------------------------ - -This adjusts the splitter in the dock widget, not qsplitter -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow - ---------------------------------------------------------------------------- */ -QMainWindow::separator { - background-color: #32414B; - border: 0px solid #19232D; - spacing: 0px; - padding: 2px; -} - -QMainWindow::separator:hover { - background-color: #505F69; - border: 0px solid #148CD2; -} - -QMainWindow::separator:horizontal { - width: 5px; - margin-top: 2px; - margin-bottom: 2px; - image: url(":/qss_icons/rc/toolbar_separator_vertical.png"); -} - -QMainWindow::separator:vertical { - height: 5px; - margin-left: 2px; - margin-right: 2px; - image: url(":/qss_icons/rc/toolbar_separator_horizontal.png"); -} - -/* QToolTip --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip - ---------------------------------------------------------------------------- */ -QToolTip { - background-color: #148CD2; - border: 1px solid #19232D; - color: #19232D; - /* Remove padding, for fix combo box tooltip */ - padding: 0px; - /* Remove opacity, fix #174 - may need to use RGBA */ -} - -/* QStatusBar ------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar - ---------------------------------------------------------------------------- */ -QStatusBar { - border: 1px solid #32414B; - /* Fixes Spyder #9120, #9121 */ - background: #32414B; - /* Fixes #205, white vertical borders separating items */ -} - -QStatusBar::item { - border: none; -} - -QStatusBar QToolTip { - background-color: #148CD2; - border: 1px solid #19232D; - color: #19232D; - /* Remove padding, for fix combo box tooltip */ - padding: 0px; - /* Reducing transparency to read better */ - opacity: 230; -} - -QStatusBar QLabel { - /* Fixes Spyder #9120, #9121 */ - background: transparent; -} - -/* QCheckBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox - ---------------------------------------------------------------------------- */ -QCheckBox { - background-color: #19232D; - color: #F0F0F0; - spacing: 4px; - outline: none; - padding-top: 4px; - padding-bottom: 4px; -} - -QCheckBox:focus { - border: none; -} - -QCheckBox QWidget:disabled { - background-color: #19232D; - color: #787878; -} - -QCheckBox::indicator { - margin-left: 4px; - height: 16px; - width: 16px; -} - -QCheckBox::indicator:unchecked { - image: url(":/qss_icons/rc/checkbox_unchecked.png"); -} - -QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { - border: none; - image: url(":/qss_icons/rc/checkbox_unchecked_focus.png"); -} - -QCheckBox::indicator:unchecked:disabled { - image: url(":/qss_icons/rc/checkbox_unchecked_disabled.png"); -} - -QCheckBox::indicator:checked { - image: url(":/qss_icons/rc/checkbox_checked.png"); -} - -QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:focus, QCheckBox::indicator:checked:pressed { - border: none; - image: url(":/qss_icons/rc/checkbox_checked_focus.png"); -} - -QCheckBox::indicator:checked:disabled { - image: url(":/qss_icons/rc/checkbox_checked_disabled.png"); -} - -QCheckBox::indicator:indeterminate { - image: url(":/qss_icons/rc/checkbox_indeterminate.png"); -} - -QCheckBox::indicator:indeterminate:disabled { - image: url(":/qss_icons/rc/checkbox_indeterminate_disabled.png"); -} - -QCheckBox::indicator:indeterminate:focus, QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { - image: url(":/qss_icons/rc/checkbox_indeterminate_focus.png"); -} - -/* QGroupBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox - ---------------------------------------------------------------------------- */ -QGroupBox { - font-weight: bold; - border: 1px solid #32414B; - border-radius: 4px; - padding: 4px; - margin-top: 16px; -} - -QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - left: 3px; - padding-left: 3px; - padding-right: 5px; - padding-top: 8px; - padding-bottom: 16px; -} - -QGroupBox::indicator { - margin-left: 2px; - height: 12px; - width: 12px; -} - -QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { - border: none; - image: url(":/qss_icons/rc/checkbox_unchecked_focus.png"); -} - -QGroupBox::indicator:unchecked:disabled { - image: url(":/qss_icons/rc/checkbox_unchecked_disabled.png"); -} - -QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { - border: none; - image: url(":/qss_icons/rc/checkbox_checked_focus.png"); -} - -QGroupBox::indicator:checked:disabled { - image: url(":/qss_icons/rc/checkbox_checked_disabled.png"); -} - -/* QRadioButton ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton - ---------------------------------------------------------------------------- */ -QRadioButton { - background-color: #19232D; - color: #F0F0F0; - spacing: 4px; - padding: 0px; - border: none; - outline: none; -} - -QRadioButton:focus { - border: none; -} - -QRadioButton:disabled { - background-color: #19232D; - color: #787878; - border: none; - outline: none; -} - -QRadioButton QWidget { - background-color: #19232D; - color: #F0F0F0; - spacing: 0px; - padding: 0px; - outline: none; - border: none; -} - -QRadioButton::indicator { - border: none; - outline: none; - margin-left: 4px; - height: 16px; - width: 16px; -} - -QRadioButton::indicator:unchecked { - image: url(":/qss_icons/rc/radio_unchecked.png"); -} - -QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:focus, QRadioButton::indicator:unchecked:pressed { - border: none; - outline: none; - image: url(":/qss_icons/rc/radio_unchecked_focus.png"); -} - -QRadioButton::indicator:unchecked:disabled { - image: url(":/qss_icons/rc/radio_unchecked_disabled.png"); -} - -QRadioButton::indicator:checked { - border: none; - outline: none; - image: url(":/qss_icons/rc/radio_checked.png"); -} - -QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:focus, QRadioButton::indicator:checked:pressed { - border: none; - outline: none; - image: url(":/qss_icons/rc/radio_checked_focus.png"); -} - -QRadioButton::indicator:checked:disabled { - outline: none; - image: url(":/qss_icons/rc/radio_checked_disabled.png"); -} - -/* QMenuBar --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar - ---------------------------------------------------------------------------- */ -QMenuBar { - background-color: #32414B; - padding: 2px; - border: 1px solid #19232D; - color: #F0F0F0; -} - -QMenuBar:focus { - border: 1px solid #148CD2; -} - -QMenuBar::item { - background: transparent; - padding: 4px; -} - -QMenuBar::item:selected { - padding: 4px; - background: transparent; - border: 0px solid #32414B; -} - -QMenuBar::item:pressed { - padding: 4px; - border: 0px solid #32414B; - background-color: #148CD2; - color: #F0F0F0; - margin-bottom: 0px; - padding-bottom: 0px; -} - -/* QMenu ------------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu - ---------------------------------------------------------------------------- */ -QMenu { - border: 0px solid #32414B; - color: #F0F0F0; - margin: 0px; -} - -QMenu::separator { - height: 1px; - background-color: #505F69; - color: #F0F0F0; -} - -QMenu::icon { - margin: 0px; - padding-left: 8px; -} - -QMenu::item { - background-color: #32414B; - padding: 4px 24px 4px 24px; - /* Reserve space for selection border */ - border: 1px transparent #32414B; -} - -QMenu::item:selected { - color: #F0F0F0; -} - -QMenu::indicator { - width: 12px; - height: 12px; - padding-left: 6px; - /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ - /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ -} - -QMenu::indicator:non-exclusive:unchecked { - image: url(":/qss_icons/rc/checkbox_unchecked.png"); -} - -QMenu::indicator:non-exclusive:unchecked:selected { - image: url(":/qss_icons/rc/checkbox_unchecked_disabled.png"); -} - -QMenu::indicator:non-exclusive:checked { - image: url(":/qss_icons/rc/checkbox_checked.png"); -} - -QMenu::indicator:non-exclusive:checked:selected { - image: url(":/qss_icons/rc/checkbox_checked_disabled.png"); -} - -QMenu::indicator:exclusive:unchecked { - image: url(":/qss_icons/rc/radio_unchecked.png"); -} - -QMenu::indicator:exclusive:unchecked:selected { - image: url(":/qss_icons/rc/radio_unchecked_disabled.png"); -} - -QMenu::indicator:exclusive:checked { - image: url(":/qss_icons/rc/radio_checked.png"); -} - -QMenu::indicator:exclusive:checked:selected { - image: url(":/qss_icons/rc/radio_checked_disabled.png"); -} - -QMenu::right-arrow { - margin: 5px; - image: url(":/qss_icons/rc/arrow_right.png"); - height: 12px; - width: 12px; -} - -/* QAbstractItemView ------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox - ---------------------------------------------------------------------------- */ -QAbstractItemView { - alternate-background-color: #19232D; - color: #F0F0F0; - border: 1px solid #32414B; - border-radius: 4px; -} - -QAbstractItemView QLineEdit { - padding: 2px; -} - -/* QAbstractScrollArea ---------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea - ---------------------------------------------------------------------------- */ -QAbstractScrollArea { - background-color: #19232D; - border: 1px solid #32414B; - border-radius: 4px; - padding: 2px; - /* fix #159 */ - min-height: 1.25em; - /* fix #159 */ - color: #F0F0F0; -} - -QAbstractScrollArea:disabled { - color: #787878; -} - -/* QScrollArea ------------------------------------------------------------ - ---------------------------------------------------------------------------- */ -QScrollArea QWidget QWidget:disabled { - background-color: #19232D; -} - -/* QScrollBar ------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar - ---------------------------------------------------------------------------- */ -QScrollBar:horizontal { - height: 16px; - margin: 2px 16px 2px 16px; - border: 1px solid #32414B; - border-radius: 4px; - background-color: #19232D; -} - -QScrollBar:vertical { - background-color: #19232D; - width: 16px; - margin: 16px 2px 16px 2px; - border: 1px solid #32414B; - border-radius: 4px; -} - -QScrollBar::handle:horizontal { - background-color: #787878; - border: 1px solid #32414B; - border-radius: 4px; - min-width: 8px; -} - -QScrollBar::handle:horizontal:hover { - background-color: #148CD2; - border: 1px solid #148CD2; - border-radius: 4px; - min-width: 8px; -} - -QScrollBar::handle:horizontal:focus { - border: 1px solid #1464A0; -} - -QScrollBar::handle:vertical { - background-color: #787878; - border: 1px solid #32414B; - min-height: 8px; - border-radius: 4px; -} - -QScrollBar::handle:vertical:hover { - background-color: #148CD2; - border: 1px solid #148CD2; - border-radius: 4px; - min-height: 8px; -} - -QScrollBar::handle:vertical:focus { - border: 1px solid #1464A0; -} - -QScrollBar::add-line:horizontal { - margin: 0px 0px 0px 0px; - border-image: url(":/qss_icons/rc/arrow_right_disabled.png"); - height: 12px; - width: 12px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { - border-image: url(":/qss_icons/rc/arrow_right.png"); - height: 12px; - width: 12px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 0px; - border-image: url(":/qss_icons/rc/arrow_down_disabled.png"); - height: 12px; - width: 12px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { - border-image: url(":/qss_icons/rc/arrow_down.png"); - height: 12px; - width: 12px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal { - margin: 0px 3px 0px 3px; - border-image: url(":/qss_icons/rc/arrow_left_disabled.png"); - height: 12px; - width: 12px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { - border-image: url(":/qss_icons/rc/arrow_left.png"); - height: 12px; - width: 12px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 0px; - border-image: url(":/qss_icons/rc/arrow_up_disabled.png"); - height: 12px; - width: 12px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { - border-image: url(":/qss_icons/rc/arrow_up.png"); - height: 12px; - width: 12px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { - background: none; -} - -QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { - background: none; -} - -QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { - background: none; -} - -QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { - background: none; -} - -/* QTextEdit -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets - ---------------------------------------------------------------------------- */ -QTextEdit { - background-color: #19232D; - color: #F0F0F0; - border-radius: 4px; - border: 1px solid #32414B; -} - -QTextEdit:hover { - border: 1px solid #148CD2; - color: #F0F0F0; -} - -QTextEdit:focus { - border: 1px solid #1464A0; -} - -QTextEdit:selected { - background: #1464A0; - color: #32414B; -} - -/* QPlainTextEdit --------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QPlainTextEdit { - background-color: #19232D; - color: #F0F0F0; - border-radius: 4px; - border: 1px solid #32414B; -} - -QPlainTextEdit:hover { - border: 1px solid #148CD2; - color: #F0F0F0; -} - -QPlainTextEdit:focus { - border: 1px solid #1464A0; -} - -QPlainTextEdit:selected { - background: #1464A0; - color: #32414B; -} - -/* QSizeGrip -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip - ---------------------------------------------------------------------------- */ -QSizeGrip { - background: transparent; - width: 12px; - height: 12px; - image: url(":/qss_icons/rc/window_grip.png"); -} - -/* QStackedWidget --------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QStackedWidget { - padding: 2px; - border: 1px solid #32414B; - border: 1px solid #19232D; -} - -/* QToolBar --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar - ---------------------------------------------------------------------------- */ -QToolBar { - background-color: #32414B; - border-bottom: 1px solid #19232D; - padding: 2px; - font-weight: bold; - spacing: 2px; -} - -QToolBar QToolButton { - background-color: #32414B; - border: 1px solid #32414B; -} - -QToolBar QToolButton:hover { - border: 1px solid #148CD2; -} - -QToolBar QToolButton:checked { - border: 1px solid #19232D; - background-color: #19232D; -} - -QToolBar QToolButton:checked:hover { - border: 1px solid #148CD2; -} - -QToolBar::handle:horizontal { - width: 16px; - image: url(":/qss_icons/rc/toolbar_move_horizontal.png"); -} - -QToolBar::handle:vertical { - height: 16px; - image: url(":/qss_icons/rc/toolbar_move_vertical.png"); -} - -QToolBar::separator:horizontal { - width: 16px; - image: url(":/qss_icons/rc/toolbar_separator_horizontal.png"); -} - -QToolBar::separator:vertical { - height: 16px; - image: url(":/qss_icons/rc/toolbar_separator_vertical.png"); -} - -QToolButton#qt_toolbar_ext_button { - background: #32414B; - border: 0px; - color: #F0F0F0; - image: url(":/qss_icons/rc/arrow_right.png"); -} - -/* QAbstractSpinBox ------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QAbstractSpinBox { - background-color: #19232D; - border: 1px solid #32414B; - color: #F0F0F0; - /* This fixes 103, 111 */ - padding-top: 2px; - /* This fixes 103, 111 */ - padding-bottom: 2px; - padding-left: 4px; - padding-right: 4px; - border-radius: 4px; - /* min-width: 5px; removed to fix 109 */ -} - -QAbstractSpinBox:up-button { - background-color: transparent #19232D; - subcontrol-origin: border; - subcontrol-position: top right; - border-left: 1px solid #32414B; - border-bottom: 1px solid #32414B; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - margin: 1px; - width: 12px; - margin-bottom: -1px; -} - -QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { - image: url(":/qss_icons/rc/arrow_up_disabled.png"); - height: 8px; - width: 8px; -} - -QAbstractSpinBox::up-arrow:hover { - image: url(":/qss_icons/rc/arrow_up.png"); -} - -QAbstractSpinBox:down-button { - background-color: transparent #19232D; - subcontrol-origin: border; - subcontrol-position: bottom right; - border-left: 1px solid #32414B; - border-top: 1px solid #32414B; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - margin: 1px; - width: 12px; - margin-top: -1px; -} - -QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { - image: url(":/qss_icons/rc/arrow_down_disabled.png"); - height: 8px; - width: 8px; -} - -QAbstractSpinBox::down-arrow:hover { - image: url(":/qss_icons/rc/arrow_down.png"); -} - -QAbstractSpinBox:hover { - border: 1px solid #148CD2; - color: #F0F0F0; -} - -QAbstractSpinBox:focus { - border: 1px solid #1464A0; -} - -QAbstractSpinBox:selected { - background: #1464A0; - color: #32414B; -} - -/* ------------------------------------------------------------------------ */ -/* DISPLAYS --------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QLabel ----------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe - ---------------------------------------------------------------------------- */ -QLabel { - background-color: #19232D; - border: 0px solid #32414B; - padding: 2px; - margin: 0px; - color: #F0F0F0; -} - -QLabel:disabled { - background-color: #19232D; - border: 0px solid #32414B; - color: #787878; -} - -/* QTextBrowser ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea - ---------------------------------------------------------------------------- */ -QTextBrowser { - background-color: #19232D; - border: 1px solid #32414B; - color: #F0F0F0; - border-radius: 4px; -} - -QTextBrowser:disabled { - background-color: #19232D; - border: 1px solid #32414B; - color: #787878; - border-radius: 4px; -} - -QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { - border: 1px solid #32414B; -} - -/* QGraphicsView ---------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QGraphicsView { - background-color: #19232D; - border: 1px solid #32414B; - color: #F0F0F0; - border-radius: 4px; -} - -QGraphicsView:disabled { - background-color: #19232D; - border: 1px solid #32414B; - color: #787878; - border-radius: 4px; -} - -QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { - border: 1px solid #32414B; -} - -/* QCalendarWidget -------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QCalendarWidget { - border: 1px solid #32414B; - border-radius: 4px; -} - -QCalendarWidget:disabled { - background-color: #19232D; - color: #787878; -} - -/* QLCDNumber ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QLCDNumber { - background-color: #19232D; - color: #F0F0F0; -} - -QLCDNumber:disabled { - background-color: #19232D; - color: #787878; -} - -/* QProgressBar ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar - ---------------------------------------------------------------------------- */ -QProgressBar { - background-color: #19232D; - border: 1px solid #32414B; - color: #F0F0F0; - border-radius: 4px; - text-align: center; -} - -QProgressBar:disabled { - background-color: #19232D; - border: 1px solid #32414B; - color: #787878; - border-radius: 4px; - text-align: center; -} - -QProgressBar::chunk { - background-color: #1464A0; - color: #19232D; - border-radius: 4px; -} - -QProgressBar::chunk:disabled { - background-color: #14506E; - color: #787878; - border-radius: 4px; -} - -/* ------------------------------------------------------------------------ */ -/* BUTTONS ---------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QPushButton ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton - ---------------------------------------------------------------------------- */ -QPushButton { - background-color: #505F69; - border: 1px solid #32414B; - color: #F0F0F0; - border-radius: 4px; - padding: 3px; - outline: none; - /* Issue #194 - Special case of QPushButton inside dialogs, for better UI */ - min-width: 80px; -} - -QPushButton:disabled { - background-color: #32414B; - border: 1px solid #32414B; - color: #787878; - border-radius: 4px; - padding: 3px; -} - -QPushButton:checked { - background-color: #32414B; - border: 1px solid #32414B; - border-radius: 4px; - padding: 3px; - outline: none; -} - -QPushButton:checked:disabled { - background-color: #19232D; - border: 1px solid #32414B; - color: #787878; - border-radius: 4px; - padding: 3px; - outline: none; -} - -QPushButton:checked:selected { - background: #1464A0; - color: #32414B; -} - -QPushButton::menu-indicator { - subcontrol-origin: padding; - subcontrol-position: bottom right; - bottom: 4px; -} - -QPushButton:pressed { - background-color: #19232D; - border: 1px solid #19232D; -} - -QPushButton:pressed:hover { - border: 1px solid #148CD2; -} - -QPushButton:hover { - border: 1px solid #148CD2; - color: #F0F0F0; -} - -QPushButton:selected { - background: #1464A0; - color: #32414B; -} - -QPushButton:hover { - border: 1px solid #148CD2; - color: #F0F0F0; -} - -QPushButton:focus { - border: 1px solid #1464A0; -} - -/* QToolButton ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton - ---------------------------------------------------------------------------- */ -QToolButton { - background-color: transparent; - border: 1px solid transparent; - border-radius: 4px; - margin: 0px; - padding: 2px; - /* The subcontrols below are used only in the DelayedPopup mode */ - /* The subcontrols below are used only in the MenuButtonPopup mode */ - /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ -} - -QToolButton:checked { - background-color: transparent; - border: 1px solid #1464A0; -} - -QToolButton:checked:disabled { - border: 1px solid #14506E; -} - -QToolButton:pressed { - margin: 1px; - background-color: transparent; - border: 1px solid #1464A0; -} - -QToolButton:disabled { - border: none; -} - -QToolButton:hover { - border: 1px solid #148CD2; -} - -QToolButton[popupMode="0"] { - /* Only for DelayedPopup */ - padding-right: 2px; -} - -QToolButton[popupMode="1"] { - /* Only for MenuButtonPopup */ - padding-right: 20px; -} - -QToolButton[popupMode="1"]::menu-button { - border: none; -} - -QToolButton[popupMode="1"]::menu-button:hover { - border: none; - border-left: 1px solid #148CD2; - border-radius: 0; -} - -QToolButton[popupMode="2"] { - /* Only for InstantPopup */ - padding-right: 2px; -} - -QToolButton::menu-button { - padding: 2px; - border-radius: 4px; - border: 1px solid #32414B; - width: 12px; - outline: none; -} - -QToolButton::menu-button:hover { - border: 1px solid #148CD2; -} - -QToolButton::menu-button:checked:hover { - border: 1px solid #148CD2; -} - -QToolButton::menu-indicator { - image: url(":/qss_icons/rc/arrow_down.png"); - height: 8px; - width: 8px; - top: 0; - /* Exclude a shift for better image */ - left: -2px; - /* Shift it a bit */ -} - -QToolButton::menu-arrow { - image: url(":/qss_icons/rc/arrow_down.png"); - height: 8px; - width: 8px; -} - -QToolButton::menu-arrow:hover { - image: url(":/qss_icons/rc/arrow_down_focus.png"); -} - -/* QCommandLinkButton ----------------------------------------------------- - ---------------------------------------------------------------------------- */ -QCommandLinkButton { - background-color: transparent; - border: 1px solid #32414B; - color: #F0F0F0; - border-radius: 4px; - padding: 0px; - margin: 0px; -} - -QCommandLinkButton:disabled { - background-color: transparent; - color: #787878; -} - -/* ------------------------------------------------------------------------ */ -/* INPUTS - NO FIELDS ----------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QComboBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox - ---------------------------------------------------------------------------- */ -QComboBox { - border: 1px solid #32414B; - border-radius: 4px; - selection-background-color: #1464A0; - padding-left: 4px; - padding-right: 36px; - /* 4 + 16*2 See scrollbar size */ - /* Fixes #103, #111 */ - min-height: 1.5em; - /* padding-top: 2px; removed to fix #132 */ - /* padding-bottom: 2px; removed to fix #132 */ - /* min-width: 75px; removed to fix #109 */ - /* Needed to remove indicator - fix #132 */ -} - -QComboBox QAbstractItemView { - border: 1px solid #32414B; - border-radius: 0; - background-color: #19232D; - selection-background-color: #1464A0; -} - -QComboBox QAbstractItemView:hover { - background-color: #19232D; - color: #F0F0F0; -} - -QComboBox QAbstractItemView:selected { - background: #1464A0; - color: #32414B; -} - -QComboBox QAbstractItemView:alternate { - background: #19232D; -} - -QComboBox:disabled { - background-color: #19232D; - color: #787878; -} - -QComboBox:hover { - border: 1px solid #148CD2; -} - -QComboBox:focus { - border: 1px solid #1464A0; -} - -QComboBox:on { - selection-background-color: #1464A0; -} - -QComboBox::indicator { - border: none; - border-radius: 0; - background-color: transparent; - selection-background-color: transparent; - color: transparent; - selection-color: transparent; - /* Needed to remove indicator - fix #132 */ -} - -QComboBox::indicator:alternate { - background: #19232D; -} - -QComboBox::item:alternate { - background: #19232D; -} - -QComboBox::item:checked { - font-weight: bold; -} - -QComboBox::item:selected { - border: 0px solid transparent; -} - -QComboBox::drop-down { - subcontrol-origin: padding; - subcontrol-position: top right; - width: 12px; - border-left: 1px solid #32414B; -} - -QComboBox::down-arrow { - image: url(":/qss_icons/rc/arrow_down_disabled.png"); - height: 8px; - width: 8px; -} - -QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { - image: url(":/qss_icons/rc/arrow_down.png"); -} - -/* QSlider ---------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider - ---------------------------------------------------------------------------- */ -QSlider:disabled { - background: #19232D; -} - -QSlider:focus { - border: none; -} - -QSlider::groove:horizontal { - background: #32414B; - border: 1px solid #32414B; - height: 4px; - margin: 0px; - border-radius: 4px; -} - -QSlider::groove:vertical { - background: #32414B; - border: 1px solid #32414B; - width: 4px; - margin: 0px; - border-radius: 4px; -} - -QSlider::add-page:vertical { - background: #1464A0; - border: 1px solid #32414B; - width: 4px; - margin: 0px; - border-radius: 4px; -} - -QSlider::add-page:vertical :disabled { - background: #14506E; -} - -QSlider::sub-page:horizontal { - background: #1464A0; - border: 1px solid #32414B; - height: 4px; - margin: 0px; - border-radius: 4px; -} - -QSlider::sub-page:horizontal:disabled { - background: #14506E; -} - -QSlider::handle:horizontal { - background: #787878; - border: 1px solid #32414B; - width: 8px; - height: 8px; - margin: -8px 0px; - border-radius: 4px; -} - -QSlider::handle:horizontal:hover { - background: #148CD2; - border: 1px solid #148CD2; -} - -QSlider::handle:horizontal:focus { - border: 1px solid #1464A0; -} - -QSlider::handle:vertical { - background: #787878; - border: 1px solid #32414B; - width: 8px; - height: 8px; - margin: 0 -8px; - border-radius: 4px; -} - -QSlider::handle:vertical:hover { - background: #148CD2; - border: 1px solid #148CD2; -} - -QSlider::handle:vertical:focus { - border: 1px solid #1464A0; -} - -/* QLineEdit -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit - ---------------------------------------------------------------------------- */ -QLineEdit { - background-color: #19232D; - padding-top: 2px; - /* This QLineEdit fix 103, 111 */ - padding-bottom: 2px; - /* This QLineEdit fix 103, 111 */ - padding-left: 4px; - padding-right: 4px; - border-style: solid; - border: 1px solid #32414B; - border-radius: 4px; - color: #F0F0F0; -} - -QLineEdit:disabled { - background-color: #19232D; - color: #787878; -} - -QLineEdit:hover { - border: 1px solid #148CD2; - color: #F0F0F0; -} - -QLineEdit:focus { - border: 1px solid #1464A0; -} - -QLineEdit:selected { - background-color: #1464A0; - color: #32414B; -} - -/* QTabWiget -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar - ---------------------------------------------------------------------------- */ -QTabWidget { - padding: 2px; - selection-background-color: #32414B; -} - -QTabWidget QWidget { - /* Fixes #189 */ - border-radius: 4px; -} - -QTabWidget::pane { - border: 1px solid #32414B; - border-radius: 4px; - margin: 0px; - /* Fixes double border inside pane with pyqt5 */ - padding: 0px; -} - -QTabWidget::pane:selected { - background-color: #32414B; - border: 1px solid #1464A0; -} - -/* QTabBar ---------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar - ---------------------------------------------------------------------------- */ -QTabBar { - qproperty-drawBase: 0; - border-radius: 4px; - margin: 0px; - padding: 2px; - border: 0; - /* left: 5px; move to the right by 5px - removed for fix */ -} - -QTabBar::close-button { - border: 0; - margin: 2px; - padding: 2px; - image: url(":/qss_icons/rc/window_close.png"); -} - -QTabBar::close-button:hover { - image: url(":/qss_icons/rc/window_close_focus.png"); -} - -QTabBar::close-button:pressed { - image: url(":/qss_icons/rc/window_close_pressed.png"); -} - -/* QTabBar::tab - selected ------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar - ---------------------------------------------------------------------------- */ -QTabBar::tab { - /* !selected and disabled ----------------------------------------- */ - /* selected ------------------------------------------------------- */ -} - -QTabBar::tab:top:selected:disabled { - border-bottom: 3px solid #14506E; - color: #787878; - background-color: #32414B; -} - -QTabBar::tab:bottom:selected:disabled { - border-top: 3px solid #14506E; - color: #787878; - background-color: #32414B; -} - -QTabBar::tab:left:selected:disabled { - border-right: 3px solid #14506E; - color: #787878; - background-color: #32414B; -} - -QTabBar::tab:right:selected:disabled { - border-left: 3px solid #14506E; - color: #787878; - background-color: #32414B; -} - -QTabBar::tab:top:!selected:disabled { - border-bottom: 3px solid #19232D; - color: #787878; - background-color: #19232D; -} - -QTabBar::tab:bottom:!selected:disabled { - border-top: 3px solid #19232D; - color: #787878; - background-color: #19232D; -} - -QTabBar::tab:left:!selected:disabled { - border-right: 3px solid #19232D; - color: #787878; - background-color: #19232D; -} - -QTabBar::tab:right:!selected:disabled { - border-left: 3px solid #19232D; - color: #787878; - background-color: #19232D; -} - -QTabBar::tab:top:!selected { - border-bottom: 2px solid #19232D; - margin-top: 2px; -} - -QTabBar::tab:bottom:!selected { - border-top: 2px solid #19232D; - margin-bottom: 3px; -} - -QTabBar::tab:left:!selected { - border-left: 2px solid #19232D; - margin-right: 2px; -} - -QTabBar::tab:right:!selected { - border-right: 2px solid #19232D; - margin-left: 2px; -} - -QTabBar::tab:top { - background-color: #32414B; - color: #F0F0F0; - margin-left: 2px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; - min-width: 5px; - border-bottom: 3px solid #32414B; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} - -QTabBar::tab:top:selected { - background-color: #505F69; - color: #F0F0F0; - border-bottom: 3px solid #1464A0; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} - -QTabBar::tab:top:!selected:hover { - border: 1px solid #148CD2; - border-bottom: 3px solid #148CD2; - /* Fixes spyder-ide/spyder#9766 */ - padding-left: 4px; - padding-right: 4px; -} - -QTabBar::tab:bottom { - color: #F0F0F0; - border-top: 3px solid #32414B; - background-color: #32414B; - margin-left: 2px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; - min-width: 5px; -} - -QTabBar::tab:bottom:selected { - color: #F0F0F0; - background-color: #505F69; - border-top: 3px solid #1464A0; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} - -QTabBar::tab:bottom:!selected:hover { - border: 1px solid #148CD2; - border-top: 3px solid #148CD2; - /* Fixes spyder-ide/spyder#9766 */ - padding-left: 4px; - padding-right: 4px; -} - -QTabBar::tab:left { - color: #F0F0F0; - background-color: #32414B; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - min-height: 5px; -} - -QTabBar::tab:left:selected { - color: #F0F0F0; - background-color: #505F69; - border-right: 3px solid #1464A0; -} - -QTabBar::tab:left:!selected:hover { - border: 1px solid #148CD2; - border-right: 3px solid #148CD2; - padding: 0px; -} - -QTabBar::tab:right { - color: #F0F0F0; - background-color: #32414B; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - min-height: 5px; -} - -QTabBar::tab:right:selected { - color: #F0F0F0; - background-color: #505F69; - border-left: 3px solid #1464A0; -} - -QTabBar::tab:right:!selected:hover { - border: 1px solid #148CD2; - border-left: 3px solid #148CD2; - padding: 0px; -} - -QTabBar QToolButton { - /* Fixes #136 */ - background-color: #32414B; - height: 12px; - width: 12px; -} - -QTabBar QToolButton:pressed { - background-color: #32414B; -} - -QTabBar QToolButton:pressed:hover { - border: 1px solid #148CD2; -} - -QTabBar QToolButton::left-arrow:enabled { - image: url(":/qss_icons/rc/arrow_left.png"); -} - -QTabBar QToolButton::left-arrow:disabled { - image: url(":/qss_icons/rc/arrow_left_disabled.png"); -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(":/qss_icons/rc/arrow_right.png"); -} - -QTabBar QToolButton::right-arrow:disabled { - image: url(":/qss_icons/rc/arrow_right_disabled.png"); -} - -/* QDockWiget ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QDockWidget { - outline: 1px solid #32414B; - background-color: #19232D; - border: 1px solid #32414B; - border-radius: 4px; - titlebar-close-icon: url(":/qss_icons/rc/window_close.png"); - titlebar-normal-icon: url(":/qss_icons/rc/window_undock.png"); -} - -QDockWidget::title { - /* Better size for title bar */ - padding: 6px; - spacing: 4px; - border: none; - background-color: #32414B; -} - -QDockWidget::close-button { - background-color: #32414B; - border-radius: 4px; - border: none; -} - -QDockWidget::close-button:hover { - image: url(":/qss_icons/rc/window_close_focus.png"); -} - -QDockWidget::close-button:pressed { - image: url(":/qss_icons/rc/window_close_pressed.png"); -} - -QDockWidget::float-button { - background-color: #32414B; - border-radius: 4px; - border: none; -} - -QDockWidget::float-button:hover { - image: url(":/qss_icons/rc/window_undock_focus.png"); -} - -QDockWidget::float-button:pressed { - image: url(":/qss_icons/rc/window_undock_pressed.png"); -} - -/* QTreeView QListView QTableView ----------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview - ---------------------------------------------------------------------------- */ -QTreeView:branch:selected, QTreeView:branch:hover { - background: url(":/qss_icons/rc/transparent.png"); -} - -QTreeView:branch:has-siblings:!adjoins-item { - border-image: url(":/qss_icons/rc/branch_line.png") 0; -} - -QTreeView:branch:has-siblings:adjoins-item { - border-image: url(":/qss_icons/rc/branch_more.png") 0; -} - -QTreeView:branch:!has-children:!has-siblings:adjoins-item { - border-image: url(":/qss_icons/rc/branch_end.png") 0; -} - -QTreeView:branch:has-children:!has-siblings:closed, QTreeView:branch:closed:has-children:has-siblings { - border-image: none; - image: url(":/qss_icons/rc/branch_closed.png"); -} - -QTreeView:branch:open:has-children:!has-siblings, QTreeView:branch:open:has-children:has-siblings { - border-image: none; - image: url(":/qss_icons/rc/branch_open.png"); -} - -QTreeView:branch:has-children:!has-siblings:closed:hover, QTreeView:branch:closed:has-children:has-siblings:hover { - image: url(":/qss_icons/rc/branch_closed_focus.png"); -} - -QTreeView:branch:open:has-children:!has-siblings:hover, QTreeView:branch:open:has-children:has-siblings:hover { - image: url(":/qss_icons/rc/branch_open_focus.png"); -} - -QTreeView::indicator:checked, -QListView::indicator:checked { - image: url(":/qss_icons/rc/checkbox_checked.png"); -} - -QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, -QListView::indicator:checked:hover, -QListView::indicator:checked:focus, -QListView::indicator:checked:pressed { - image: url(":/qss_icons/rc/checkbox_checked_focus.png"); -} - -QTreeView::indicator:unchecked, -QListView::indicator:unchecked { - image: url(":/qss_icons/rc/checkbox_unchecked.png"); -} - -QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, -QListView::indicator:unchecked:hover, -QListView::indicator:unchecked:focus, -QListView::indicator:unchecked:pressed { - image: url(":/qss_icons/rc/checkbox_unchecked_focus.png"); -} - -QTreeView::indicator:indeterminate, -QListView::indicator:indeterminate { - image: url(":/qss_icons/rc/checkbox_indeterminate.png"); -} - -QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, -QListView::indicator:indeterminate:hover, -QListView::indicator:indeterminate:focus, -QListView::indicator:indeterminate:pressed { - image: url(":/qss_icons/rc/checkbox_indeterminate_focus.png"); -} - -QTreeView, -QListView, -QTableView, -QColumnView { - background-color: #19232D; - border: 1px solid #32414B; - color: #F0F0F0; - gridline-color: #32414B; - border-radius: 4px; -} - -QTreeView:disabled, -QListView:disabled, -QTableView:disabled, -QColumnView:disabled { - background-color: #19232D; - color: #787878; -} - -QTreeView:selected, -QListView:selected, -QTableView:selected, -QColumnView:selected { - background-color: #1464A0; - color: #32414B; -} - -QTreeView:hover, -QListView:hover, -QTableView:hover, -QColumnView:hover { - background-color: #19232D; - border: 1px solid #148CD2; -} - -QTreeView::item:pressed, -QListView::item:pressed, -QTableView::item:pressed, -QColumnView::item:pressed { - background-color: #1464A0; -} - -QTreeView::item:selected:hover, -QListView::item:selected:hover, -QTableView::item:selected:hover, -QColumnView::item:selected:hover { - background: #1464A0; - color: #19232D; -} - -QTreeView::item:selected:active, -QListView::item:selected:active, -QTableView::item:selected:active, -QColumnView::item:selected:active { - background-color: #1464A0; -} - -QTreeView::item:!selected:hover, -QListView::item:!selected:hover, -QTableView::item:!selected:hover, -QColumnView::item:!selected:hover { - outline: 0; - color: #148CD2; - background-color: #32414B; -} - -QTableCornerButton::section { - background-color: #19232D; - border: 1px transparent #32414B; - border-radius: 0px; -} - -/* QHeaderView ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview - ---------------------------------------------------------------------------- */ -QHeaderView { - background-color: #32414B; - border: 0px transparent #32414B; - padding: 0px; - margin: 0px; - border-radius: 0px; -} - -QHeaderView:disabled { - background-color: #32414B; - border: 1px transparent #32414B; - padding: 2px; -} - -QHeaderView::section { - background-color: #32414B; - color: #F0F0F0; - padding: 2px; - border-radius: 0px; - text-align: left; -} - -QHeaderView::section:checked { - color: #F0F0F0; - background-color: #1464A0; -} - -QHeaderView::section:checked:disabled { - color: #787878; - background-color: #14506E; -} - -QHeaderView::section::horizontal { - padding-left: 4px; - padding-right: 4px; - border-left: 1px solid #19232D; -} - -QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { - border-left: 1px solid #32414B; -} - -QHeaderView::section::horizontal:disabled { - color: #787878; -} - -QHeaderView::section::vertical { - padding-left: 4px; - padding-right: 4px; - border-top: 1px solid #19232D; -} - -QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { - border-top: 1px solid #32414B; -} - -QHeaderView::section::vertical:disabled { - color: #787878; -} - -QHeaderView::down-arrow { - /* Those settings (border/width/height/background-color) solve bug */ - /* transparent arrow background and size */ - background-color: #32414B; - border: none; - height: 12px; - width: 12px; - padding-left: 2px; - padding-right: 2px; - image: url(":/qss_icons/rc/arrow_down.png"); -} - -QHeaderView::up-arrow { - background-color: #32414B; - border: none; - height: 12px; - width: 12px; - padding-left: 2px; - padding-right: 2px; - image: url(":/qss_icons/rc/arrow_up.png"); -} - -/* QToolBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox - ---------------------------------------------------------------------------- */ -QToolBox { - padding: 0px; - border: 0px; - border: 1px solid #32414B; -} - -QToolBox:selected { - padding: 0px; - border: 2px solid #1464A0; -} - -QToolBox::tab { - background-color: #19232D; - border: 1px solid #32414B; - color: #F0F0F0; - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} - -QToolBox::tab:disabled { - color: #787878; -} - -QToolBox::tab:selected { - background-color: #505F69; - border-bottom: 2px solid #1464A0; -} - -QToolBox::tab:selected:disabled { - background-color: #32414B; - border-bottom: 2px solid #14506E; -} - -QToolBox::tab:!selected { - background-color: #32414B; - border-bottom: 2px solid #32414B; -} - -QToolBox::tab:!selected:disabled { - background-color: #19232D; -} - -QToolBox::tab:hover { - border-color: #148CD2; - border-bottom: 2px solid #148CD2; -} - -QToolBox QScrollArea QWidget QWidget { - padding: 0px; - border: 0px; - background-color: #19232D; -} - -/* QFrame ----------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe -https://doc.qt.io/qt-5/qframe.html#-prop -https://doc.qt.io/qt-5/qframe.html#details -https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color - ---------------------------------------------------------------------------- */ -/* (dot) .QFrame fix #141, #126, #123 */ -.QFrame { - border-radius: 4px; - border: 1px solid #32414B; - /* No frame */ - /* HLine */ - /* HLine */ -} - -.QFrame[frameShape="0"] { - border-radius: 4px; - border: 1px transparent #32414B; -} - -.QFrame[frameShape="4"] { - max-height: 2px; - border: none; - background-color: #32414B; -} - -.QFrame[frameShape="5"] { - max-width: 2px; - border: none; - background-color: #32414B; -} - -/* QSplitter -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter - ---------------------------------------------------------------------------- */ -QSplitter { - background-color: #32414B; - spacing: 0px; - padding: 0px; - margin: 0px; -} - -QSplitter::handle { - background-color: #32414B; - border: 0px solid #19232D; - spacing: 0px; - padding: 1px; - margin: 0px; -} - -QSplitter::handle:hover { - background-color: #787878; -} - -QSplitter::handle:horizontal { - width: 5px; - image: url(":/qss_icons/rc/line_vertical.png"); -} - -QSplitter::handle:vertical { - height: 5px; - image: url(":/qss_icons/rc/line_horizontal.png"); -} - -/* QDateEdit -------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QDateEdit { - selection-background-color: #1464A0; - border-style: solid; - border: 1px solid #32414B; - border-radius: 4px; - /* This fixes 103, 111 */ - padding-top: 2px; - /* This fixes 103, 111 */ - padding-bottom: 2px; - padding-left: 4px; - padding-right: 4px; - min-width: 10px; -} - -QDateEdit:on { - selection-background-color: #1464A0; -} - -QDateEdit::drop-down { - subcontrol-origin: padding; - subcontrol-position: top right; - width: 12px; - border-left: 1px solid #32414B; -} - -QDateEdit::down-arrow { - image: url(":/qss_icons/rc/arrow_down_disabled.png"); - height: 8px; - width: 8px; -} - -QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus { - image: url(":/qss_icons/rc/arrow_down.png"); -} - -QDateEdit QAbstractItemView { - background-color: #19232D; - border-radius: 4px; - border: 1px solid #32414B; - selection-background-color: #1464A0; -} - -/* QAbstractView ---------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QAbstractView:hover { - border: 1px solid #148CD2; - color: #F0F0F0; -} - -QAbstractView:selected { - background: #1464A0; - color: #32414B; -} - -/* PlotWidget ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -PlotWidget { - /* Fix cut labels in plots #134 */ - padding: 0px; -} diff --git a/src/sql/ObjectIdentifier.cpp b/src/sql/ObjectIdentifier.cpp index d94aa1c7e..f76619634 100644 --- a/src/sql/ObjectIdentifier.cpp +++ b/src/sql/ObjectIdentifier.cpp @@ -45,7 +45,6 @@ std::string escapeIdentifier(const std::string& id) // selected. return '[' + id + ']'; case DoubleQuotes: - default: // This may produce a 'control reaches end of non-void function' warning if the // default branch is removed, even though we have covered all possibilities in the // switch statement. diff --git a/src/sql/Query.cpp b/src/sql/Query.cpp index e7b28f19d..27db9bb60 100644 --- a/src/sql/Query.cpp +++ b/src/sql/Query.cpp @@ -25,12 +25,9 @@ std::string Query::buildWherePart() const { for(auto i=m_where.cbegin();i!=m_where.cend();++i) { - if(i->first >= m_column_names.size()) - continue; - - const auto it = findSelectedColumnByName(m_column_names.at(i->first)); - std::string column = sqlb::escapeIdentifier(m_column_names.at(i->first)); - if(it != m_selected_columns.cend() && it->selector != column) + const auto it = findSelectedColumnByName(i->first); + std::string column = sqlb::escapeIdentifier(i->first); + if(it != m_selected_columns.cend() && it->selector != i->first) column = it->selector; where += column + " " + i->second + " AND "; } @@ -84,7 +81,13 @@ std::string Query::buildQuery(bool withRowid) const // If there is only one rowid column, we leave it as is. if(m_rowid_columns.size() == 1) { - selector = sqlb::escapeIdentifier(m_rowid_columns.at(0)) + ","; + // As of SQLite 3.36 when selecting rowid from a view SQLite does not return NULL anymore but instead returns "rowid" and throws + // an error. To avoid that error (we don't actually care for the value of this column, so the value is not the issue here) we + // explicitly select NULL (without any quotes) here. + if(m_is_view && !hasCustomRowIdColumn()) + selector = "NULL,"; + else + selector = sqlb::escapeIdentifier(m_rowid_columns.at(0)) + ","; } else { selector += "sqlb_make_single_value("; for(size_t i=0;i& column_names) { m_column_names = column_names; } + void setColumnNames(const std::vector& column_names) { m_column_names = column_names; } std::vector columnNames() const { return m_column_names; } void setTable(const sqlb::ObjectIdentifier& table) { m_table = table; } @@ -69,25 +80,26 @@ class Query const std::vector& selectedColumns() const { return m_selected_columns; } std::vector& selectedColumns() { return m_selected_columns; } - const std::unordered_map& where() const { return m_where; } - std::unordered_map& where() { return m_where; } + const std::unordered_map& where() const { return m_where; } + std::unordered_map& where() { return m_where; } const std::vector& globalWhere() const { return m_global_where; } std::vector& globalWhere() { return m_global_where; } void setGlobalWhere(const std::vector& w) { m_global_where = w; } - const std::vector& orderBy() const { return m_sort; } - std::vector& orderBy() { return m_sort; } - void setOrderBy(const std::vector& columns) { m_sort = columns; } + const std::vector& orderBy() const { return m_sort; } + std::vector& orderBy() { return m_sort; } + void setOrderBy(const std::vector& columns) { m_sort = columns; } private: std::vector m_column_names; sqlb::ObjectIdentifier m_table; std::vector m_rowid_columns; std::vector m_selected_columns; - std::unordered_map m_where; // TODO The two where variables should be merged into a single variable which ... - std::vector m_global_where; // ... holds some sort of general tree structure for all sorts of where conditions. - std::vector m_sort; + std::unordered_map m_where; // TODO The two where variables should be merged into a single variable which ... + std::vector m_global_where; // ... holds some sort of general tree structure for all sorts of where conditions. + std::vector m_sort; + bool m_is_view; std::vector::iterator findSelectedColumnByName(const std::string& name); std::vector::const_iterator findSelectedColumnByName(const std::string& name) const; diff --git a/src/sql/parser/sqlite3_lexer.cpp b/src/sql/parser/sqlite3_lexer.cpp index 5ff6e45e3..86c304183 100644 --- a/src/sql/parser/sqlite3_lexer.cpp +++ b/src/sql/parser/sqlite3_lexer.cpp @@ -1,6 +1,6 @@ -#line 2 "sqlite3_lexer.cpp" +#line 1 "sqlite3_lexer.cpp" -#line 4 "sqlite3_lexer.cpp" +#line 3 "sqlite3_lexer.cpp" #define YY_INT_ALIGNED short int @@ -420,8 +420,8 @@ static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ yyg->yy_c_buf_p = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 123 -#define YY_END_OF_BUFFER 124 +#define YY_NUM_RULES 124 +#define YY_END_OF_BUFFER 125 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -429,59 +429,60 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[467] = +static const flex_int16_t yy_accept[474] = { 0, - 0, 0, 0, 0, 124, 122, 1, 2, 2, 122, - 122, 109, 108, 122, 98, 99, 105, 103, 101, 104, - 100, 106, 94, 94, 122, 102, 116, 112, 114, 96, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 122, 122, 110, 107, 122, 122, 122, 89, - 1, 2, 118, 0, 92, 0, 93, 3, 94, 4, - 94, 94, 0, 0, 97, 120, 117, 119, 113, 115, - 121, 96, 89, 89, 89, 89, 89, 11, 89, 0, - 0, 0, 89, 89, 89, 89, 89, 89, 89, 89, - - 89, 89, 89, 89, 89, 89, 89, 89, 89, 42, - 89, 89, 45, 49, 89, 89, 89, 54, 89, 58, - 59, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 0, - 0, 91, 0, 90, 111, 89, 0, 0, 89, 94, - 0, 94, 94, 96, 89, 89, 89, 6, 12, 89, - 0, 0, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 32, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 51, 89, 89, 55, 89, 89, 89, 89, 89, 89, - - 89, 89, 89, 89, 89, 89, 89, 89, 74, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 95, 0, 0, 5, 89, 89, 89, 89, 0, - 89, 89, 15, 16, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 29, 89, 31, 89, 89, 35, 89, - 89, 89, 89, 89, 41, 89, 89, 89, 89, 89, - 89, 52, 89, 89, 57, 60, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 72, 89, 89, - 89, 77, 79, 80, 89, 89, 89, 89, 89, 86, - 89, 89, 8, 89, 89, 89, 89, 89, 17, 89, - - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 36, 89, 89, 89, 89, 89, 89, 46, 89, 89, - 89, 53, 89, 89, 89, 89, 64, 65, 89, 89, - 89, 89, 89, 71, 89, 89, 76, 89, 89, 89, - 89, 84, 89, 87, 89, 9, 10, 89, 89, 89, - 89, 89, 89, 21, 89, 89, 89, 28, 89, 33, - 34, 37, 89, 89, 89, 43, 89, 89, 48, 50, - 89, 89, 89, 89, 89, 67, 89, 89, 89, 73, - 75, 89, 89, 82, 83, 89, 89, 89, 7, 14, - 18, 89, 89, 89, 25, 89, 89, 89, 89, 39, - - 89, 89, 89, 56, 89, 89, 63, 89, 68, 89, - 89, 89, 89, 85, 88, 89, 19, 89, 89, 89, - 27, 30, 89, 89, 89, 89, 89, 89, 89, 69, - 70, 89, 89, 89, 89, 89, 89, 89, 38, 40, - 44, 47, 61, 62, 89, 78, 81, 89, 20, 89, - 89, 26, 66, 89, 89, 89, 89, 22, 23, 13, - 89, 89, 89, 89, 24, 0 + 0, 0, 0, 0, 125, 123, 1, 2, 2, 123, + 123, 110, 109, 123, 99, 100, 106, 104, 102, 105, + 101, 107, 95, 95, 123, 103, 117, 113, 115, 97, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 123, 123, 111, 108, 123, 123, 123, 90, + 1, 2, 119, 0, 93, 0, 94, 3, 95, 4, + 95, 95, 0, 0, 98, 121, 118, 120, 114, 116, + 122, 97, 90, 90, 90, 90, 90, 11, 90, 0, + 0, 0, 90, 90, 90, 90, 90, 90, 90, 90, + + 90, 90, 90, 90, 90, 90, 90, 90, 90, 42, + 90, 90, 45, 49, 90, 90, 90, 54, 90, 58, + 59, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 0, + 0, 92, 0, 91, 112, 90, 0, 0, 90, 95, + 0, 95, 95, 97, 90, 90, 90, 6, 12, 90, + 0, 0, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 90, 90, 32, 90, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 51, 90, 90, 55, 90, 90, 90, 90, 90, 90, + + 90, 90, 90, 90, 90, 90, 90, 90, 90, 75, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 96, 0, 0, 5, 90, 90, 90, 90, + 0, 90, 90, 15, 16, 90, 90, 90, 90, 90, + 90, 90, 90, 90, 29, 90, 31, 90, 90, 35, + 90, 90, 90, 90, 90, 41, 90, 90, 90, 90, + 90, 90, 52, 90, 90, 57, 60, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 73, + 90, 90, 90, 78, 80, 81, 90, 90, 90, 90, + 90, 87, 90, 90, 8, 90, 90, 90, 90, 90, + + 17, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 36, 90, 90, 90, 90, 90, 90, 46, + 90, 90, 90, 53, 90, 90, 90, 90, 64, 65, + 90, 90, 90, 90, 90, 90, 72, 90, 90, 77, + 90, 90, 90, 90, 85, 90, 88, 90, 9, 10, + 90, 90, 90, 90, 90, 90, 21, 90, 90, 90, + 28, 90, 33, 34, 37, 90, 90, 90, 43, 90, + 90, 48, 50, 90, 90, 90, 90, 90, 67, 90, + 90, 90, 90, 74, 76, 90, 90, 83, 84, 90, + 90, 90, 7, 14, 18, 90, 90, 90, 25, 90, + + 90, 90, 90, 39, 90, 90, 90, 56, 90, 90, + 63, 90, 68, 90, 90, 90, 90, 90, 86, 89, + 90, 19, 90, 90, 90, 27, 30, 90, 90, 90, + 90, 90, 90, 90, 69, 90, 71, 90, 90, 90, + 90, 90, 90, 90, 38, 40, 44, 47, 61, 62, + 90, 70, 79, 82, 90, 20, 90, 90, 26, 66, + 90, 90, 90, 90, 22, 23, 13, 90, 90, 90, + 90, 24, 0 } ; static const YY_CHAR yy_ec[256] = @@ -489,439 +490,443 @@ static const YY_CHAR yy_ec[256] = 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 5, 6, 1, 1, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 20, 21, 22, - 23, 24, 25, 20, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 35, - 51, 1, 52, 1, 53, 54, 55, 56, 57, 58, - - 59, 60, 61, 62, 63, 35, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 35, 1, 79, 1, 80, 1, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 1, 1, 82, 82, 82, 82, 82, 82, 82, - + 1, 2, 5, 6, 1, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 21, 22, 23, + 24, 25, 26, 21, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 36, + 52, 1, 53, 1, 54, 55, 56, 57, 58, 59, + + 60, 61, 62, 63, 64, 36, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 36, 1, 80, 1, 81, 1, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 84, - 84, 84, 84, 84, 1, 1, 1, 1, 1, 1, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 1, 1, 83, 83, 83, 83, 83, 83, 83, + + 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, + 83, 83, 83, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 85, + 85, 85, 85, 85, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static const YY_CHAR yy_meta[85] = +static const YY_CHAR yy_meta[86] = { 0, - 1, 1, 2, 1, 1, 1, 1, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 4, 4, 1, - 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, - 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 1, 1, 7, 1, 5, 5, 5, 5, 5, 5, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, - 1, 7, 7, 7 + 1, 1, 2, 1, 1, 1, 3, 1, 1, 4, + 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, + 1, 1, 1, 1, 1, 1, 6, 6, 6, 6, + 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 1, 1, 3, 1, 6, 6, 6, 6, 6, + 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, + 1, 1, 3, 3, 3 } ; -static const flex_int16_t yy_base[475] = +static const flex_int16_t yy_base[482] = { 0, - 0, 0, 59, 60, 283, 2424, 279, 84, 86, 255, - 260, 2424, 2424, 256, 2424, 2424, 2424, 2424, 2424, 244, - 73, 242, 77, 81, 0, 2424, 79, 229, 81, 229, + 0, 0, 59, 60, 284, 2439, 280, 85, 87, 255, + 261, 2439, 2439, 256, 2439, 2439, 2439, 2439, 2439, 244, + 73, 242, 77, 81, 0, 2439, 79, 229, 81, 229, 128, 64, 187, 76, 124, 94, 157, 34, 241, 68, 135, 98, 163, 221, 251, 227, 267, 311, 276, 141, - 294, 247, 192, 189, 159, 2424, 155, 153, 151, 369, - 227, 105, 2424, 222, 220, 212, 196, 2424, 111, 2424, - 232, 345, 366, 0, 0, 2424, 2424, 2424, 2424, 2424, - 2424, 94, 49, 306, 327, 338, 369, 355, 346, 118, - 116, 111, 372, 387, 402, 410, 405, 192, 435, 419, - - 432, 415, 439, 399, 471, 474, 494, 485, 480, 60, - 499, 504, 517, 535, 529, 508, 548, 551, 557, 216, - 285, 567, 571, 593, 581, 626, 623, 601, 629, 634, - 653, 642, 646, 687, 664, 446, 680, 672, 693, 181, - 136, 2424, 132, 129, 2424, 319, 98, 90, 675, 586, - 103, 119, 0, 196, 696, 710, 706, 443, 526, 700, - 85, 83, 724, 757, 753, 760, 773, 765, 779, 769, - 799, 803, 793, 829, 596, 838, 823, 789, 826, 844, - 832, 860, 864, 847, 856, 874, 895, 887, 904, 890, - 729, 907, 923, 914, 918, 932, 937, 956, 961, 950, - - 976, 965, 982, 986, 973, 989, 1018, 1023, 796, 992, - 1013, 1039, 1044, 1054, 1047, 1050, 1059, 1073, 1079, 1105, - 1083, 2424, 136, 44, 817, 1101, 1109, 1097, 1076, 38, - 1123, 1142, 946, 1035, 1134, 1145, 1149, 1128, 1157, 1160, - 1163, 1152, 1175, 1167, 1204, 1170, 1214, 1211, 1178, 1233, - 1240, 1236, 1243, 1229, 1182, 1258, 1249, 1226, 1271, 1278, - 1291, 1197, 1281, 1284, 1207, 1253, 1313, 1318, 1324, 1321, - 1327, 1301, 1310, 1343, 1346, 1363, 1383, 1331, 1392, 1340, - 1401, 1395, 1350, 1354, 1370, 1412, 1398, 1407, 1418, 1373, - 1429, 1447, 1415, 1454, 1460, 1466, 1476, 1481, 1425, 1472, - - 1484, 1491, 1494, 1502, 1514, 1509, 1531, 1542, 1552, 1545, - 1443, 1559, 1523, 1555, 1568, 1573, 1538, 1562, 1578, 1586, - 1582, 1589, 1611, 1604, 1624, 1620, 1596, 1601, 1637, 1640, - 1661, 1664, 1671, 1617, 1667, 1676, 1631, 1685, 1690, 1680, - 1702, 1653, 1715, 1693, 1706, 1699, 1709, 1737, 1740, 1757, - 1766, 1772, 1775, 1720, 1760, 1763, 1805, 1727, 1809, 1730, - 1744, 1769, 1798, 1795, 1822, 1786, 1839, 1834, 1790, 1801, - 1849, 1856, 1862, 1825, 1859, 1818, 1890, 1896, 1899, 1828, - 1846, 1908, 1918, 1853, 1868, 1921, 1912, 1926, 1877, 1882, - 1905, 1939, 1936, 1945, 1931, 1950, 1978, 1966, 1985, 1958, - - 1995, 1990, 2000, 1961, 2007, 2014, 1973, 2023, 2003, 2019, - 2030, 2033, 2040, 2026, 2036, 2070, 2043, 2054, 2099, 2093, - 2049, 2057, 2102, 2106, 2112, 2096, 2120, 2130, 2138, 2065, - 2083, 2123, 2141, 2160, 2155, 2185, 2182, 2188, 2126, 2147, - 2150, 2166, 2169, 2172, 2191, 2175, 2178, 2246, 2195, 2235, - 2243, 2200, 2203, 2249, 2261, 2264, 2267, 2213, 2270, 2216, - 2289, 2281, 2255, 2300, 2219, 2424, 2384, 2391, 2394, 2397, - 2404, 2411, 2415, 2418 + 294, 247, 192, 189, 159, 2439, 155, 153, 151, 369, + 228, 106, 2439, 223, 221, 212, 196, 2439, 111, 2439, + 232, 345, 366, 0, 0, 2439, 2439, 2439, 2439, 2439, + 2439, 94, 49, 306, 327, 338, 372, 334, 362, 118, + 116, 111, 384, 355, 389, 394, 410, 192, 443, 414, + + 418, 446, 453, 436, 475, 423, 479, 450, 471, 60, + 482, 485, 512, 504, 495, 516, 529, 536, 539, 216, + 285, 542, 546, 573, 576, 630, 568, 600, 595, 558, + 610, 636, 622, 653, 640, 647, 657, 667, 670, 181, + 136, 2439, 132, 129, 2439, 381, 98, 90, 688, 465, + 103, 119, 0, 196, 684, 698, 707, 508, 674, 719, + 85, 83, 712, 747, 716, 728, 753, 750, 771, 789, + 779, 793, 734, 797, 740, 802, 815, 809, 822, 837, + 830, 819, 858, 862, 843, 870, 877, 851, 892, 882, + 757, 908, 911, 904, 918, 866, 924, 942, 939, 945, + + 948, 951, 954, 974, 967, 970, 977, 1011, 988, 786, + 998, 983, 1021, 1024, 1016, 1028, 1031, 1061, 1050, 1047, + 1079, 1076, 2439, 136, 44, 848, 1082, 1057, 1069, 1094, + 38, 1112, 1128, 994, 1002, 1085, 1144, 1119, 1134, 1140, + 1150, 1147, 1154, 1169, 1053, 1157, 1090, 1174, 1190, 1104, + 1216, 1219, 1208, 1225, 1211, 1122, 1234, 1231, 1247, 1263, + 1267, 1182, 1185, 1250, 1274, 1197, 1202, 1277, 1293, 1280, + 1306, 1309, 1298, 1317, 1328, 1324, 1331, 1360, 1314, 1302, + 1375, 1379, 1387, 1365, 1336, 1339, 1382, 1393, 1400, 1418, + 1406, 1342, 1438, 1441, 1347, 1446, 1434, 1452, 1456, 1469, + + 1352, 1459, 1474, 1462, 1496, 1492, 1512, 1517, 1524, 1530, + 1533, 1521, 1371, 1527, 1542, 1559, 1547, 1589, 1593, 1410, + 1596, 1576, 1599, 1428, 1602, 1616, 1608, 1622, 1484, 1502, + 1638, 1633, 1612, 1667, 1664, 1681, 1550, 1684, 1694, 1562, + 1671, 1689, 1678, 1710, 1570, 1715, 1627, 1728, 1642, 1650, + 1731, 1736, 1749, 1757, 1752, 1769, 1661, 1744, 1776, 1812, + 1699, 1772, 1702, 1722, 1761, 1803, 1807, 1819, 1779, 1822, + 1828, 1786, 1796, 1835, 1850, 1863, 1838, 1860, 1799, 1877, + 1880, 1889, 1896, 1846, 1856, 1899, 1912, 1866, 1873, 1921, + 1924, 1931, 1883, 1893, 1905, 1939, 1956, 1945, 1909, 1974, + + 1987, 1964, 1992, 1942, 2002, 1999, 2012, 1951, 1996, 2021, + 1959, 2034, 1968, 2028, 2048, 2056, 2063, 2060, 1971, 1983, + 2067, 2016, 2070, 2112, 2090, 2039, 2076, 2104, 2119, 2131, + 2085, 2125, 2139, 2145, 2096, 2149, 2100, 2156, 2160, 2153, + 2172, 2186, 2142, 2190, 2115, 2164, 2168, 2175, 2178, 2181, + 2209, 2193, 2196, 2200, 2236, 2203, 2226, 2250, 2214, 2218, + 2255, 2276, 2281, 2244, 2221, 2269, 2241, 2284, 2288, 2307, + 2313, 2264, 2439, 2398, 2405, 2407, 2412, 2419, 2426, 2429, + 2432 } ; -static const flex_int16_t yy_def[475] = +static const flex_int16_t yy_def[482] = { 0, - 466, 1, 1, 1, 466, 466, 466, 466, 466, 466, - 467, 466, 466, 468, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 469, 466, 466, 466, 466, 466, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 471, 472, 466, 466, 466, 466, 466, 35, - 466, 466, 466, 467, 466, 468, 466, 466, 466, 466, - 466, 466, 466, 473, 469, 466, 466, 466, 466, 466, - 466, 466, 470, 470, 470, 470, 470, 470, 470, 466, - 466, 466, 470, 470, 470, 470, 470, 470, 470, 470, - - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 474, - 471, 466, 472, 466, 466, 470, 466, 466, 470, 466, - 466, 466, 473, 466, 470, 470, 470, 470, 470, 470, - 466, 466, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 466, 474, 466, 470, 470, 470, 470, 470, 466, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, - 470, 470, 470, 470, 470, 0, 466, 466, 466, 466, - 466, 466, 466, 466 + 473, 1, 1, 1, 473, 473, 473, 473, 473, 473, + 474, 473, 473, 475, 473, 473, 473, 473, 473, 473, + 473, 473, 473, 473, 476, 473, 473, 473, 473, 473, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 478, 479, 473, 473, 473, 473, 473, 477, + 473, 473, 473, 474, 473, 475, 473, 473, 473, 473, + 473, 473, 473, 480, 476, 473, 473, 473, 473, 473, + 473, 473, 477, 477, 477, 477, 477, 477, 477, 473, + 473, 473, 477, 477, 477, 477, 477, 477, 477, 477, + + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 481, + 478, 473, 479, 473, 473, 477, 473, 473, 477, 473, + 473, 473, 480, 473, 477, 477, 477, 477, 477, 477, + 473, 473, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 473, 481, 473, 477, 477, 477, 477, 477, + 473, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 0, 473, 473, 473, 473, 473, 473, 473, + 473 } ; -static const flex_int16_t yy_nxt[2509] = +static const flex_int16_t yy_nxt[2525] = { 0, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 38, 40, 41, 42, 43, 44, - 45, 38, 46, 47, 48, 49, 50, 51, 52, 38, - 53, 6, 38, 54, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 38, - 46, 47, 48, 49, 50, 51, 52, 38, 55, 56, - 6, 57, 58, 59, 60, 60, 62, 62, 62, 62, - 69, 69, 71, 93, 72, 72, 71, 115, 72, 72, - - 76, 77, 78, 80, 81, 99, 73, 62, 62, 100, - 73, 154, 154, 60, 60, 90, 91, 92, 83, 105, - 152, 152, 93, 117, 146, 74, 115, 106, 69, 69, - 90, 91, 92, 107, 99, 73, 152, 152, 100, 73, - 73, 90, 91, 92, 222, 90, 91, 92, 105, 90, - 91, 92, 117, 74, 84, 85, 106, 90, 91, 92, - 101, 107, 102, 230, 86, 83, 87, 103, 116, 73, - 224, 88, 104, 89, 137, 90, 91, 92, 146, 90, - 91, 92, 143, 84, 85, 144, 108, 142, 101, 222, - 102, 162, 86, 109, 87, 103, 161, 116, 83, 88, - - 104, 89, 118, 137, 66, 90, 91, 92, 119, 90, - 91, 92, 94, 154, 154, 108, 90, 91, 92, 95, - 67, 109, 90, 91, 92, 64, 96, 65, 61, 97, - 118, 148, 98, 147, 169, 146, 119, 145, 90, 91, - 92, 94, 144, 142, 90, 91, 92, 82, 95, 150, - 150, 79, 125, 70, 96, 140, 126, 97, 68, 120, - 98, 73, 169, 121, 67, 65, 127, 122, 90, 91, - 92, 110, 111, 90, 91, 92, 123, 63, 112, 113, - 61, 125, 466, 466, 114, 126, 466, 120, 466, 466, - 73, 121, 466, 124, 127, 122, 128, 90, 91, 92, - - 110, 111, 90, 91, 92, 123, 112, 113, 90, 91, - 92, 129, 114, 466, 134, 466, 135, 466, 466, 136, - 466, 124, 90, 91, 92, 128, 138, 139, 90, 91, - 92, 466, 90, 91, 92, 466, 130, 466, 466, 129, - 131, 466, 134, 132, 135, 155, 466, 136, 90, 91, - 92, 466, 466, 133, 466, 138, 139, 90, 91, 92, - 71, 466, 72, 72, 466, 130, 90, 91, 92, 131, - 466, 156, 132, 155, 73, 90, 91, 92, 151, 466, - 151, 133, 159, 152, 152, 157, 466, 90, 91, 92, - 160, 466, 90, 91, 92, 84, 85, 158, 466, 156, - - 90, 91, 92, 73, 466, 86, 466, 149, 90, 91, - 92, 159, 88, 157, 89, 466, 163, 83, 160, 90, - 91, 92, 466, 466, 84, 85, 158, 90, 91, 92, - 164, 165, 177, 86, 168, 149, 90, 91, 92, 466, - 88, 466, 89, 175, 163, 83, 166, 466, 167, 466, - 90, 91, 92, 90, 91, 92, 466, 466, 164, 466, - 165, 177, 173, 168, 466, 170, 176, 466, 90, 91, - 92, 171, 175, 466, 166, 174, 167, 466, 172, 218, - 90, 91, 92, 90, 91, 92, 90, 91, 92, 466, - 173, 90, 91, 92, 170, 176, 90, 91, 92, 171, - - 90, 91, 92, 174, 178, 466, 172, 179, 218, 466, - 180, 466, 466, 90, 91, 92, 90, 91, 92, 184, - 90, 91, 92, 183, 90, 91, 92, 90, 91, 92, - 181, 466, 466, 178, 466, 179, 182, 185, 180, 466, - 466, 186, 466, 192, 466, 187, 466, 184, 466, 466, - 188, 183, 90, 91, 92, 90, 91, 92, 181, 466, - 189, 90, 91, 92, 182, 185, 90, 91, 92, 186, - 466, 192, 466, 190, 187, 90, 91, 92, 191, 188, - 90, 91, 92, 466, 466, 90, 91, 92, 189, 90, - 91, 92, 193, 195, 466, 194, 196, 466, 90, 91, - - 92, 190, 466, 150, 150, 466, 191, 90, 91, 92, - 90, 91, 92, 197, 200, 73, 90, 91, 92, 201, - 193, 195, 198, 194, 466, 196, 199, 466, 466, 90, - 91, 92, 90, 91, 92, 466, 466, 208, 90, 91, - 92, 197, 466, 200, 73, 209, 466, 201, 90, 91, - 92, 198, 90, 91, 92, 199, 202, 203, 466, 206, - 211, 466, 90, 91, 92, 208, 204, 466, 210, 205, - 207, 213, 466, 209, 90, 91, 92, 90, 91, 92, - 466, 466, 90, 91, 92, 202, 203, 206, 466, 211, - 212, 214, 217, 466, 204, 466, 210, 205, 207, 466, - - 213, 220, 466, 225, 90, 91, 92, 90, 91, 92, - 90, 91, 92, 215, 466, 90, 91, 92, 212, 214, - 216, 217, 219, 90, 91, 92, 466, 90, 91, 92, - 220, 228, 225, 466, 90, 91, 92, 221, 226, 229, - 466, 466, 215, 227, 466, 90, 91, 92, 466, 216, - 219, 466, 466, 90, 91, 92, 90, 91, 92, 466, - 228, 90, 91, 92, 466, 221, 226, 229, 90, 91, - 92, 231, 227, 466, 90, 91, 92, 90, 91, 92, - 235, 90, 91, 92, 232, 466, 233, 90, 91, 92, - 239, 90, 91, 92, 241, 466, 236, 466, 242, 231, - - 466, 234, 466, 237, 466, 90, 91, 92, 466, 235, - 90, 91, 92, 232, 466, 233, 238, 466, 466, 239, - 466, 240, 466, 241, 236, 249, 466, 242, 243, 234, - 244, 466, 237, 466, 90, 91, 92, 245, 90, 91, - 92, 90, 91, 92, 238, 466, 90, 91, 92, 240, - 90, 91, 92, 249, 90, 91, 92, 243, 246, 244, - 90, 91, 92, 247, 466, 245, 248, 466, 252, 250, - 90, 91, 92, 255, 90, 91, 92, 90, 91, 92, - 90, 91, 92, 466, 90, 91, 92, 246, 251, 253, - 466, 466, 247, 254, 248, 256, 252, 250, 90, 91, - - 92, 466, 255, 257, 90, 91, 92, 90, 91, 92, - 90, 91, 92, 90, 91, 92, 251, 466, 253, 90, - 91, 92, 254, 256, 258, 90, 91, 92, 90, 91, - 92, 259, 257, 260, 466, 261, 262, 90, 91, 92, - 466, 90, 91, 92, 466, 90, 91, 92, 466, 466, - 263, 466, 264, 258, 265, 90, 91, 92, 466, 259, - 466, 466, 260, 261, 466, 262, 466, 466, 90, 91, - 92, 90, 91, 92, 266, 466, 90, 91, 92, 263, - 264, 267, 265, 268, 466, 90, 91, 92, 90, 91, - 92, 466, 466, 270, 272, 90, 91, 92, 269, 90, - - 91, 92, 266, 466, 90, 91, 92, 271, 466, 267, - 466, 273, 268, 90, 91, 92, 466, 275, 90, 91, - 92, 270, 274, 272, 466, 276, 269, 90, 91, 92, - 466, 90, 91, 92, 280, 466, 271, 90, 91, 92, - 273, 466, 90, 91, 92, 275, 90, 91, 92, 281, - 274, 277, 279, 276, 90, 91, 92, 90, 91, 92, - 466, 278, 280, 90, 91, 92, 466, 90, 91, 92, - 90, 91, 92, 90, 91, 92, 466, 281, 466, 282, - 277, 279, 283, 284, 287, 466, 285, 466, 466, 278, - 466, 286, 466, 466, 90, 91, 92, 466, 466, 90, - - 91, 92, 466, 466, 90, 91, 92, 282, 466, 296, - 283, 288, 284, 287, 285, 292, 90, 91, 92, 286, - 90, 91, 92, 289, 466, 90, 91, 92, 90, 91, - 92, 90, 91, 92, 466, 90, 91, 92, 296, 288, - 90, 91, 92, 290, 292, 293, 295, 291, 294, 466, - 466, 289, 297, 466, 90, 91, 92, 90, 91, 92, - 90, 91, 92, 466, 90, 91, 92, 298, 466, 299, - 300, 290, 302, 293, 295, 291, 294, 466, 90, 91, - 92, 297, 90, 91, 92, 301, 90, 91, 92, 304, - 90, 91, 92, 466, 306, 466, 298, 299, 466, 300, - - 302, 303, 466, 466, 90, 91, 92, 466, 305, 90, - 91, 92, 466, 301, 466, 90, 91, 92, 304, 307, - 466, 466, 306, 90, 91, 92, 90, 91, 92, 303, - 90, 91, 92, 90, 91, 92, 305, 308, 90, 91, - 92, 90, 91, 92, 90, 91, 92, 307, 90, 91, - 92, 90, 91, 92, 309, 310, 90, 91, 92, 90, - 91, 92, 311, 90, 91, 92, 308, 466, 466, 312, - 466, 315, 466, 466, 318, 313, 314, 317, 90, 91, - 92, 466, 309, 310, 466, 90, 91, 92, 90, 91, - 92, 311, 90, 91, 92, 90, 91, 92, 312, 315, - - 316, 466, 318, 313, 319, 314, 317, 90, 91, 92, - 90, 91, 92, 322, 90, 91, 92, 90, 91, 92, - 320, 90, 91, 92, 90, 91, 92, 321, 316, 323, - 90, 91, 92, 319, 90, 91, 92, 466, 466, 90, - 91, 92, 322, 329, 466, 466, 324, 325, 320, 326, - 327, 466, 90, 91, 92, 321, 328, 323, 330, 90, - 91, 92, 90, 91, 92, 90, 91, 92, 331, 336, - 466, 329, 90, 91, 92, 324, 325, 466, 326, 327, - 466, 466, 90, 91, 92, 328, 330, 466, 332, 333, - 466, 90, 91, 92, 90, 91, 92, 331, 336, 90, - - 91, 92, 90, 91, 92, 90, 91, 92, 90, 91, - 92, 334, 90, 91, 92, 339, 332, 466, 333, 335, - 466, 90, 91, 92, 90, 91, 92, 90, 91, 92, - 337, 90, 91, 92, 338, 90, 91, 92, 342, 466, - 334, 466, 341, 339, 90, 91, 92, 466, 335, 466, - 466, 90, 91, 92, 90, 91, 92, 340, 344, 337, - 466, 466, 338, 343, 90, 91, 92, 342, 466, 466, - 341, 466, 466, 90, 91, 92, 90, 91, 92, 90, - 91, 92, 90, 91, 92, 340, 345, 344, 90, 91, - 92, 343, 346, 90, 91, 92, 90, 91, 92, 90, - - 91, 92, 466, 347, 348, 349, 90, 91, 92, 350, - 90, 91, 92, 466, 345, 466, 351, 352, 466, 466, - 346, 466, 466, 354, 90, 91, 92, 466, 90, 91, - 92, 347, 348, 353, 349, 90, 91, 92, 350, 466, - 355, 90, 91, 92, 351, 466, 352, 90, 91, 92, - 356, 357, 354, 90, 91, 92, 466, 90, 91, 92, - 358, 353, 90, 91, 92, 90, 91, 92, 355, 466, - 363, 367, 90, 91, 92, 90, 91, 92, 356, 357, - 359, 360, 466, 90, 91, 92, 364, 466, 361, 358, - 90, 91, 92, 365, 466, 90, 91, 92, 363, 466, - - 367, 362, 366, 368, 90, 91, 92, 466, 359, 466, - 360, 466, 90, 91, 92, 364, 361, 466, 370, 90, - 91, 92, 365, 90, 91, 92, 90, 91, 92, 362, - 369, 366, 368, 90, 91, 92, 90, 91, 92, 466, - 90, 91, 92, 90, 91, 92, 370, 371, 372, 90, - 91, 92, 373, 466, 90, 91, 92, 466, 369, 90, - 91, 92, 374, 90, 91, 92, 375, 90, 91, 92, - 90, 91, 92, 466, 466, 371, 372, 90, 91, 92, - 376, 373, 90, 91, 92, 90, 91, 92, 377, 466, - 374, 466, 90, 91, 92, 375, 379, 378, 90, 91, - - 92, 90, 91, 92, 381, 90, 91, 92, 376, 384, - 466, 380, 90, 91, 92, 466, 466, 377, 90, 91, - 92, 90, 91, 92, 466, 379, 378, 382, 383, 466, - 466, 385, 466, 381, 90, 91, 92, 466, 384, 380, - 386, 466, 90, 91, 92, 90, 91, 92, 90, 91, - 92, 387, 90, 91, 92, 382, 383, 90, 91, 92, - 385, 90, 91, 92, 388, 466, 90, 91, 92, 386, - 466, 90, 91, 92, 90, 91, 92, 466, 389, 387, - 90, 91, 92, 90, 91, 92, 390, 90, 91, 92, - 90, 91, 92, 388, 466, 391, 90, 91, 92, 392, - - 393, 90, 91, 92, 394, 466, 389, 395, 90, 91, - 92, 90, 91, 92, 466, 390, 466, 466, 90, 91, - 92, 90, 91, 92, 391, 90, 91, 92, 392, 393, - 396, 399, 394, 400, 397, 395, 398, 466, 90, 91, + 6, 7, 8, 9, 10, 11, 6, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 38, 40, 41, 42, 43, + 44, 45, 38, 46, 47, 48, 49, 50, 51, 52, + 38, 53, 6, 38, 54, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 38, 46, 47, 48, 49, 50, 51, 52, 38, 55, + 56, 6, 57, 58, 59, 60, 60, 62, 62, 62, + 62, 69, 69, 71, 93, 72, 72, 71, 115, 72, + + 72, 76, 77, 78, 80, 81, 99, 73, 62, 62, + 100, 73, 154, 154, 60, 60, 90, 91, 92, 83, + 105, 152, 152, 93, 117, 146, 74, 115, 106, 69, + 69, 90, 91, 92, 107, 99, 73, 152, 152, 100, + 73, 73, 90, 91, 92, 223, 90, 91, 92, 105, + 90, 91, 92, 117, 74, 84, 85, 106, 90, 91, + 92, 101, 107, 102, 231, 86, 83, 87, 103, 116, + 73, 225, 88, 104, 89, 137, 90, 91, 92, 146, + 90, 91, 92, 143, 84, 85, 144, 108, 142, 101, + 223, 102, 162, 86, 109, 87, 103, 161, 116, 83, + + 88, 104, 89, 118, 137, 66, 90, 91, 92, 119, + 90, 91, 92, 94, 154, 154, 108, 90, 91, 92, + 95, 67, 109, 90, 91, 92, 64, 96, 65, 61, + 97, 118, 148, 98, 147, 169, 146, 119, 145, 90, + 91, 92, 94, 144, 142, 90, 91, 92, 82, 95, + 150, 150, 79, 125, 70, 96, 140, 126, 97, 68, + 120, 98, 73, 169, 121, 67, 65, 127, 122, 90, + 91, 92, 110, 111, 90, 91, 92, 123, 63, 112, + 113, 61, 125, 473, 473, 114, 126, 473, 120, 473, + 473, 73, 121, 473, 124, 127, 122, 128, 90, 91, + + 92, 110, 111, 90, 91, 92, 123, 112, 113, 90, + 91, 92, 129, 114, 473, 134, 473, 135, 473, 473, + 136, 473, 124, 90, 91, 92, 128, 138, 139, 90, + 91, 92, 473, 90, 91, 92, 473, 130, 473, 473, + 129, 131, 473, 134, 132, 135, 155, 473, 136, 90, + 91, 92, 473, 473, 133, 473, 138, 139, 90, 91, + 92, 71, 159, 72, 72, 473, 130, 90, 91, 92, + 131, 473, 156, 132, 155, 73, 90, 91, 92, 151, + 473, 151, 133, 473, 152, 152, 157, 473, 90, 91, + 92, 159, 473, 90, 91, 92, 84, 85, 473, 164, + + 156, 158, 473, 473, 73, 473, 86, 160, 149, 90, + 91, 92, 473, 88, 157, 89, 90, 91, 92, 165, + 90, 91, 92, 473, 473, 84, 85, 164, 473, 163, + 158, 166, 473, 167, 86, 160, 149, 90, 91, 92, + 168, 88, 473, 89, 90, 91, 92, 473, 165, 473, + 473, 90, 91, 92, 90, 91, 92, 163, 173, 166, + 180, 167, 174, 90, 91, 92, 90, 91, 92, 168, + 177, 90, 91, 92, 170, 175, 90, 91, 92, 473, + 171, 176, 473, 150, 150, 473, 173, 172, 180, 183, + 174, 473, 90, 91, 92, 73, 90, 91, 92, 177, + + 90, 91, 92, 170, 175, 90, 91, 92, 171, 178, + 176, 184, 179, 473, 473, 172, 181, 183, 90, 91, + 92, 185, 182, 186, 73, 90, 91, 92, 90, 91, + 92, 473, 90, 91, 92, 90, 91, 92, 178, 184, + 179, 187, 473, 190, 181, 191, 188, 473, 473, 185, + 182, 186, 192, 90, 91, 92, 189, 90, 91, 92, + 473, 90, 91, 92, 90, 91, 92, 90, 91, 92, + 187, 190, 196, 191, 193, 188, 195, 90, 91, 92, + 192, 194, 473, 473, 189, 212, 90, 91, 92, 197, + 90, 91, 92, 473, 90, 91, 92, 473, 90, 91, + + 92, 196, 193, 198, 195, 207, 473, 199, 473, 194, + 200, 90, 91, 92, 212, 201, 208, 197, 90, 91, + 92, 90, 91, 92, 90, 91, 92, 473, 90, 91, + 92, 473, 198, 207, 473, 211, 199, 209, 473, 200, + 90, 91, 92, 201, 208, 210, 473, 473, 213, 473, + 90, 91, 92, 473, 473, 90, 91, 92, 90, 91, + 92, 202, 203, 211, 473, 209, 214, 473, 215, 218, + 473, 204, 473, 210, 205, 206, 213, 90, 91, 92, + 216, 219, 90, 91, 92, 473, 473, 217, 473, 473, + 202, 203, 90, 91, 92, 214, 215, 221, 218, 204, + + 220, 473, 205, 206, 90, 91, 92, 473, 473, 216, + 219, 473, 90, 91, 92, 222, 217, 226, 90, 91, + 92, 473, 90, 91, 92, 473, 221, 227, 220, 90, + 91, 92, 228, 229, 473, 90, 91, 92, 473, 90, + 91, 92, 473, 222, 236, 473, 226, 473, 473, 90, + 91, 92, 90, 91, 92, 227, 90, 91, 92, 230, + 232, 228, 229, 473, 473, 237, 90, 91, 92, 473, + 90, 91, 92, 236, 473, 233, 240, 234, 473, 246, + 90, 91, 92, 473, 238, 473, 473, 230, 232, 90, + 91, 92, 235, 237, 90, 91, 92, 239, 90, 91, + + 92, 90, 91, 92, 233, 240, 234, 246, 473, 244, + 90, 91, 92, 238, 241, 242, 90, 91, 92, 243, + 235, 245, 90, 91, 92, 239, 473, 247, 248, 90, + 91, 92, 90, 91, 92, 90, 91, 92, 244, 90, + 91, 92, 241, 473, 242, 473, 250, 473, 243, 254, + 245, 473, 473, 90, 91, 92, 247, 248, 473, 249, + 473, 90, 91, 92, 473, 473, 251, 253, 90, 91, + 92, 90, 91, 92, 250, 90, 91, 92, 254, 90, + 91, 92, 252, 257, 90, 91, 92, 249, 255, 256, + 473, 90, 91, 92, 251, 253, 260, 90, 91, 92, + + 258, 90, 91, 92, 90, 91, 92, 259, 473, 267, + 252, 257, 90, 91, 92, 473, 473, 255, 256, 90, + 91, 92, 261, 473, 260, 90, 91, 92, 262, 258, + 90, 91, 92, 90, 91, 92, 259, 267, 263, 264, + 90, 91, 92, 265, 90, 91, 92, 473, 90, 91, + 92, 261, 90, 91, 92, 266, 262, 473, 473, 90, + 91, 92, 473, 473, 90, 91, 92, 263, 264, 268, + 269, 265, 473, 473, 90, 91, 92, 270, 473, 473, + 272, 273, 473, 266, 274, 473, 90, 91, 92, 271, + 90, 91, 92, 90, 91, 92, 473, 268, 473, 269, + + 90, 91, 92, 473, 473, 270, 90, 91, 92, 272, + 273, 275, 276, 274, 278, 473, 277, 271, 281, 473, + 283, 90, 91, 92, 90, 91, 92, 90, 91, 92, + 90, 91, 92, 90, 91, 92, 90, 91, 92, 275, + 276, 282, 278, 473, 277, 279, 286, 281, 283, 90, + 91, 92, 90, 91, 92, 280, 90, 91, 92, 90, + 91, 92, 284, 285, 473, 90, 91, 92, 287, 282, + 90, 91, 92, 288, 279, 286, 90, 91, 92, 473, + 90, 91, 92, 280, 90, 91, 92, 289, 473, 290, + 284, 285, 291, 90, 91, 92, 287, 296, 90, 91, + + 92, 288, 473, 90, 91, 92, 90, 91, 92, 294, + 90, 91, 92, 90, 91, 92, 289, 290, 292, 297, + 291, 301, 293, 473, 473, 296, 473, 295, 298, 90, + 91, 92, 90, 91, 92, 90, 91, 92, 294, 90, + 91, 92, 299, 90, 91, 92, 292, 297, 473, 301, + 293, 90, 91, 92, 300, 295, 303, 298, 90, 91, 92, 90, 91, 92, 90, 91, 92, 90, 91, 92, - 90, 91, 92, 90, 91, 92, 90, 91, 92, 396, - 399, 400, 466, 397, 402, 398, 401, 90, 91, 92, - 403, 90, 91, 92, 407, 466, 90, 91, 92, 90, - 91, 92, 90, 91, 92, 404, 90, 91, 92, 405, - 90, 91, 92, 402, 401, 406, 466, 408, 403, 90, - - 91, 92, 407, 90, 91, 92, 90, 91, 92, 90, - 91, 92, 466, 404, 466, 90, 91, 92, 405, 409, - 90, 91, 92, 410, 406, 408, 411, 90, 91, 92, - 90, 91, 92, 412, 90, 91, 92, 90, 91, 92, - 90, 91, 92, 90, 91, 92, 413, 466, 409, 90, - 91, 92, 410, 466, 466, 411, 415, 414, 90, 91, - 92, 466, 412, 90, 91, 92, 466, 466, 416, 418, - 466, 90, 91, 92, 466, 413, 420, 90, 91, 92, - 90, 91, 92, 417, 415, 414, 90, 91, 92, 90, - 91, 92, 466, 90, 91, 92, 416, 419, 418, 90, - - 91, 92, 90, 91, 92, 420, 421, 90, 91, 92, - 422, 417, 90, 91, 92, 466, 466, 90, 91, 92, - 90, 91, 92, 423, 424, 466, 90, 91, 92, 466, - 466, 90, 91, 92, 425, 421, 426, 466, 422, 90, - 91, 92, 90, 91, 92, 466, 427, 90, 91, 92, - 429, 423, 428, 424, 90, 91, 92, 466, 466, 90, - 91, 92, 425, 430, 426, 431, 90, 91, 92, 433, - 466, 90, 91, 92, 427, 432, 90, 91, 92, 429, - 428, 90, 91, 92, 90, 91, 92, 466, 90, 91, - 92, 430, 435, 431, 466, 90, 91, 92, 433, 434, - - 90, 91, 92, 432, 90, 91, 92, 90, 91, 92, - 466, 90, 91, 92, 90, 91, 92, 90, 91, 92, - 435, 90, 91, 92, 90, 91, 92, 436, 434, 438, - 90, 91, 92, 439, 440, 90, 91, 92, 90, 91, - 92, 441, 466, 437, 466, 442, 90, 91, 92, 466, - 466, 90, 91, 92, 466, 466, 436, 438, 443, 466, - 466, 444, 439, 440, 90, 91, 92, 445, 466, 447, - 441, 437, 446, 442, 90, 91, 92, 90, 91, 92, - 90, 91, 92, 90, 91, 92, 443, 90, 91, 92, - 444, 466, 466, 90, 91, 92, 445, 448, 447, 449, - - 446, 90, 91, 92, 90, 91, 92, 90, 91, 92, - 450, 90, 91, 92, 466, 451, 466, 452, 466, 90, - 91, 92, 90, 91, 92, 448, 466, 449, 90, 91, - 92, 90, 91, 92, 453, 466, 90, 91, 92, 450, - 466, 90, 91, 92, 451, 466, 452, 90, 91, 92, - 90, 91, 92, 90, 91, 92, 90, 91, 92, 90, - 91, 92, 453, 90, 91, 92, 90, 91, 92, 90, - 91, 92, 90, 91, 92, 454, 90, 91, 92, 455, - 456, 90, 91, 92, 90, 91, 92, 457, 466, 466, - 458, 466, 464, 459, 90, 91, 92, 90, 91, 92, - - 90, 91, 92, 466, 454, 466, 463, 455, 456, 466, - 466, 460, 466, 461, 466, 457, 90, 91, 92, 458, - 464, 466, 459, 466, 90, 91, 92, 90, 91, 92, - 90, 91, 92, 462, 466, 463, 90, 91, 92, 460, - 465, 461, 90, 91, 92, 90, 91, 92, 90, 91, - 92, 90, 91, 92, 466, 466, 466, 466, 466, 466, - 466, 462, 90, 91, 92, 466, 466, 466, 465, 466, - 90, 91, 92, 466, 466, 466, 466, 466, 466, 466, - 466, 90, 91, 92, 64, 466, 64, 64, 64, 64, - 64, 66, 466, 66, 66, 66, 66, 66, 75, 75, - - 83, 83, 83, 83, 141, 466, 141, 141, 141, 141, - 141, 143, 466, 143, 143, 143, 143, 143, 153, 153, - 223, 223, 223, 5, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - - 466, 466, 466, 466, 466, 466, 466, 466 + 302, 299, 90, 91, 92, 473, 90, 91, 92, 304, + 306, 473, 473, 300, 303, 305, 90, 91, 92, 473, + 473, 310, 473, 307, 90, 91, 92, 308, 473, 302, + + 473, 90, 91, 92, 90, 91, 92, 304, 473, 306, + 90, 91, 92, 305, 309, 311, 90, 91, 92, 323, + 310, 307, 90, 91, 92, 308, 90, 91, 92, 90, + 91, 92, 90, 91, 92, 312, 90, 91, 92, 90, + 91, 92, 309, 311, 473, 473, 313, 323, 315, 314, + 473, 90, 91, 92, 317, 473, 90, 91, 92, 316, + 319, 473, 473, 312, 90, 91, 92, 90, 91, 92, + 473, 473, 90, 91, 92, 313, 315, 318, 314, 90, + 91, 92, 317, 324, 90, 91, 92, 473, 316, 319, + 90, 91, 92, 90, 91, 92, 320, 321, 90, 91, + + 92, 90, 91, 92, 473, 318, 328, 90, 91, 92, + 322, 326, 324, 90, 91, 92, 90, 91, 92, 473, + 325, 473, 473, 327, 320, 473, 321, 473, 473, 90, + 91, 92, 90, 91, 92, 328, 329, 473, 322, 330, + 326, 331, 473, 337, 473, 90, 91, 92, 325, 90, + 91, 92, 327, 473, 333, 473, 90, 91, 92, 90, + 91, 92, 90, 91, 92, 329, 332, 334, 330, 331, + 473, 473, 337, 473, 335, 90, 91, 92, 473, 473, + 90, 91, 92, 333, 90, 91, 92, 336, 90, 91, + 92, 90, 91, 92, 332, 334, 90, 91, 92, 90, + + 91, 92, 335, 338, 473, 341, 90, 91, 92, 339, + 90, 91, 92, 90, 91, 92, 336, 340, 90, 91, + 92, 90, 91, 92, 90, 91, 92, 473, 342, 90, + 91, 92, 338, 341, 90, 91, 92, 473, 339, 343, + 473, 473, 90, 91, 92, 344, 340, 90, 91, 92, + 345, 473, 346, 90, 91, 92, 342, 90, 91, 92, + 473, 90, 91, 92, 90, 91, 92, 343, 347, 90, + 91, 92, 473, 344, 473, 90, 91, 92, 350, 345, + 346, 348, 90, 91, 92, 349, 352, 473, 90, 91, + 92, 351, 90, 91, 92, 473, 473, 347, 353, 473, + + 90, 91, 92, 473, 354, 356, 350, 473, 355, 348, + 90, 91, 92, 349, 473, 352, 90, 91, 92, 351, + 90, 91, 92, 90, 91, 92, 357, 353, 90, 91, + 92, 358, 354, 356, 90, 91, 92, 355, 90, 91, + 92, 90, 91, 92, 90, 91, 92, 473, 473, 359, + 473, 90, 91, 92, 361, 357, 90, 91, 92, 358, + 360, 473, 473, 363, 473, 364, 90, 91, 92, 362, + 365, 473, 473, 368, 90, 91, 92, 359, 90, 91, + 92, 473, 473, 361, 90, 91, 92, 473, 360, 473, + 366, 367, 363, 364, 90, 91, 92, 362, 365, 90, + + 91, 92, 368, 90, 91, 92, 90, 91, 92, 90, + 91, 92, 90, 91, 92, 90, 91, 92, 366, 369, + 367, 372, 371, 473, 90, 91, 92, 370, 473, 90, + 91, 92, 90, 91, 92, 473, 373, 376, 473, 374, + 380, 90, 91, 92, 90, 91, 92, 473, 369, 372, + 473, 371, 90, 91, 92, 473, 370, 473, 90, 91, + 92, 375, 473, 473, 373, 377, 376, 374, 378, 380, + 473, 90, 91, 92, 379, 90, 91, 92, 90, 91, + 92, 90, 91, 92, 90, 91, 92, 473, 473, 375, + 90, 91, 92, 377, 90, 91, 92, 378, 90, 91, + + 92, 381, 379, 382, 90, 91, 92, 383, 388, 90, + 91, 92, 473, 473, 386, 90, 91, 92, 473, 473, + 90, 91, 92, 385, 90, 91, 92, 473, 387, 384, + 381, 382, 90, 91, 92, 473, 383, 388, 473, 473, + 389, 390, 386, 90, 91, 92, 90, 91, 92, 90, + 91, 92, 385, 90, 91, 92, 387, 384, 473, 392, + 90, 91, 92, 90, 91, 92, 90, 91, 92, 389, + 390, 90, 91, 92, 391, 393, 90, 91, 92, 394, + 396, 90, 91, 92, 90, 91, 92, 395, 392, 398, + 473, 473, 90, 91, 92, 397, 473, 90, 91, 92, + + 402, 473, 391, 393, 90, 91, 92, 473, 394, 396, + 90, 91, 92, 90, 91, 92, 395, 398, 90, 91, + 92, 399, 473, 473, 397, 473, 90, 91, 92, 402, + 473, 90, 91, 92, 90, 91, 92, 403, 400, 90, + 91, 92, 401, 90, 91, 92, 404, 473, 406, 399, + 473, 90, 91, 92, 90, 91, 92, 473, 90, 91, + 92, 90, 91, 92, 405, 407, 403, 400, 90, 91, + 92, 401, 408, 473, 404, 473, 473, 406, 90, 91, + 92, 90, 91, 92, 409, 90, 91, 92, 411, 90, + 91, 92, 405, 407, 90, 91, 92, 410, 473, 412, + + 408, 90, 91, 92, 90, 91, 92, 413, 414, 473, + 90, 91, 92, 409, 473, 473, 411, 90, 91, 92, + 90, 91, 92, 415, 416, 417, 410, 412, 90, 91, + 92, 473, 90, 91, 92, 473, 413, 414, 90, 91, + 92, 418, 90, 91, 92, 90, 91, 92, 90, 91, + 92, 473, 415, 416, 417, 90, 91, 92, 419, 90, + 91, 92, 90, 91, 92, 90, 91, 92, 473, 420, + 418, 90, 91, 92, 421, 90, 91, 92, 90, 91, + 92, 90, 91, 92, 422, 473, 419, 90, 91, 92, + 423, 90, 91, 92, 90, 91, 92, 420, 424, 473, + + 473, 425, 421, 90, 91, 92, 90, 91, 92, 427, + 473, 473, 422, 90, 91, 92, 426, 473, 473, 423, + 473, 90, 91, 92, 90, 91, 92, 90, 91, 92, + 425, 428, 429, 90, 91, 92, 432, 427, 90, 91, + 92, 90, 91, 92, 430, 426, 90, 91, 92, 431, + 90, 91, 92, 90, 91, 92, 90, 91, 92, 428, + 433, 429, 434, 473, 432, 90, 91, 92, 473, 90, + 91, 92, 430, 435, 90, 91, 92, 431, 90, 91, + 92, 90, 91, 92, 90, 91, 92, 436, 433, 473, + 439, 434, 437, 473, 90, 91, 92, 440, 90, 91, + + 92, 435, 473, 90, 91, 92, 438, 473, 473, 441, + 90, 91, 92, 473, 473, 436, 90, 91, 92, 439, + 437, 90, 91, 92, 473, 473, 440, 444, 473, 473, + 90, 91, 92, 473, 438, 448, 445, 441, 90, 91, + 92, 442, 90, 91, 92, 90, 91, 92, 446, 90, + 91, 92, 90, 91, 92, 444, 473, 443, 90, 91, + 92, 447, 473, 448, 449, 445, 473, 90, 91, 92, + 442, 450, 90, 91, 92, 451, 458, 446, 90, 91, + 92, 452, 90, 91, 92, 443, 90, 91, 92, 454, + 447, 455, 449, 473, 90, 91, 92, 90, 91, 92, + + 450, 90, 91, 92, 451, 458, 453, 90, 91, 92, + 452, 473, 457, 90, 91, 92, 473, 456, 454, 455, + 459, 90, 91, 92, 90, 91, 92, 90, 91, 92, + 473, 90, 91, 92, 453, 90, 91, 92, 90, 91, + 92, 457, 90, 91, 92, 456, 90, 91, 92, 459, + 90, 91, 92, 460, 90, 91, 92, 90, 91, 92, + 90, 91, 92, 90, 91, 92, 461, 473, 90, 91, + 92, 462, 90, 91, 92, 90, 91, 92, 90, 91, + 92, 460, 90, 91, 92, 90, 91, 92, 463, 467, + 473, 90, 91, 92, 464, 461, 90, 91, 92, 462, + + 90, 91, 92, 90, 91, 92, 465, 473, 90, 91, + 92, 466, 473, 468, 470, 473, 463, 467, 90, 91, + 92, 473, 464, 90, 91, 92, 90, 91, 92, 469, + 473, 473, 90, 91, 92, 465, 473, 90, 91, 92, + 466, 468, 473, 470, 473, 471, 90, 91, 92, 473, + 473, 90, 91, 92, 472, 473, 473, 469, 90, 91, + 92, 473, 473, 90, 91, 92, 90, 91, 92, 473, + 90, 91, 92, 471, 473, 473, 473, 473, 473, 473, + 473, 473, 472, 473, 473, 473, 473, 473, 473, 90, + 91, 92, 473, 473, 473, 90, 91, 92, 64, 473, + + 64, 64, 64, 64, 64, 66, 473, 66, 66, 66, + 66, 66, 75, 75, 83, 473, 83, 83, 83, 141, + 473, 141, 141, 141, 141, 141, 143, 473, 143, 143, + 143, 143, 143, 153, 153, 224, 224, 224, 5, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + 473, 473, 473, 473 } ; -static const flex_int16_t yy_chk[2509] = +static const flex_int16_t yy_chk[2525] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -931,277 +936,279 @@ static const flex_int16_t yy_chk[2509] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 4, 8, 8, 9, 9, - 21, 21, 23, 32, 23, 23, 24, 40, 24, 24, - - 27, 27, 27, 29, 29, 34, 23, 62, 62, 34, - 24, 82, 82, 3, 4, 38, 38, 38, 230, 36, - 151, 151, 32, 42, 224, 23, 40, 36, 69, 69, - 83, 83, 83, 36, 34, 23, 152, 152, 34, 24, - 69, 110, 110, 110, 223, 32, 32, 32, 36, 40, - 40, 40, 42, 23, 31, 31, 36, 34, 34, 34, - 35, 36, 35, 162, 31, 161, 31, 35, 41, 69, - 148, 31, 35, 31, 50, 36, 36, 36, 147, 42, - 42, 42, 144, 31, 31, 143, 37, 141, 35, 140, - 35, 92, 31, 37, 31, 35, 91, 41, 90, 31, - - 35, 31, 43, 50, 67, 35, 35, 35, 43, 31, - 31, 31, 33, 154, 154, 37, 41, 41, 41, 33, - 66, 37, 50, 50, 50, 65, 33, 64, 61, 33, - 43, 59, 33, 58, 98, 57, 43, 55, 37, 37, - 37, 33, 54, 53, 43, 43, 43, 30, 33, 71, - 71, 28, 46, 22, 33, 52, 46, 33, 20, 44, - 33, 71, 98, 44, 14, 11, 46, 44, 33, 33, - 33, 39, 39, 98, 98, 98, 45, 10, 39, 39, - 7, 46, 5, 0, 39, 46, 0, 44, 0, 0, - 71, 44, 0, 45, 46, 44, 47, 120, 120, 120, - - 39, 39, 44, 44, 44, 45, 39, 39, 46, 46, - 46, 47, 39, 0, 49, 0, 49, 0, 0, 49, - 0, 45, 39, 39, 39, 47, 51, 51, 52, 52, - 52, 0, 45, 45, 45, 0, 48, 0, 0, 47, - 48, 0, 49, 48, 49, 84, 0, 49, 47, 47, - 47, 0, 0, 48, 0, 51, 51, 49, 49, 49, - 72, 0, 72, 72, 0, 48, 121, 121, 121, 48, - 0, 85, 48, 84, 72, 51, 51, 51, 73, 0, - 73, 48, 88, 73, 73, 86, 0, 84, 84, 84, - 89, 0, 48, 48, 48, 60, 60, 87, 0, 85, - - 146, 146, 146, 72, 0, 60, 0, 60, 85, 85, - 85, 88, 60, 86, 60, 0, 93, 60, 89, 86, - 86, 86, 0, 0, 60, 60, 87, 89, 89, 89, - 94, 95, 104, 60, 97, 60, 88, 88, 88, 0, - 60, 0, 60, 102, 93, 60, 96, 0, 96, 0, - 87, 87, 87, 93, 93, 93, 0, 0, 94, 0, - 95, 104, 100, 97, 0, 99, 103, 0, 94, 94, - 94, 99, 102, 0, 96, 101, 96, 0, 99, 136, - 104, 104, 104, 95, 95, 95, 97, 97, 97, 0, - 100, 96, 96, 96, 99, 103, 102, 102, 102, 99, - - 100, 100, 100, 101, 105, 0, 99, 105, 136, 0, - 106, 0, 0, 101, 101, 101, 99, 99, 99, 109, - 103, 103, 103, 108, 158, 158, 158, 136, 136, 136, - 107, 0, 0, 105, 0, 105, 107, 111, 106, 0, - 0, 112, 0, 116, 0, 113, 0, 109, 0, 0, - 113, 108, 105, 105, 105, 106, 106, 106, 107, 0, - 113, 109, 109, 109, 107, 111, 108, 108, 108, 112, - 0, 116, 0, 114, 113, 107, 107, 107, 115, 113, - 111, 111, 111, 0, 0, 112, 112, 112, 113, 116, - 116, 116, 117, 119, 0, 118, 122, 0, 113, 113, - - 113, 114, 0, 150, 150, 0, 115, 159, 159, 159, - 115, 115, 115, 123, 125, 150, 114, 114, 114, 125, - 117, 119, 124, 118, 0, 122, 124, 0, 0, 117, - 117, 117, 118, 118, 118, 0, 0, 128, 119, 119, - 119, 123, 0, 125, 150, 128, 0, 125, 122, 122, - 122, 124, 123, 123, 123, 124, 126, 126, 0, 127, - 130, 0, 125, 125, 125, 128, 126, 0, 129, 126, - 127, 132, 0, 128, 124, 124, 124, 175, 175, 175, - 0, 0, 128, 128, 128, 126, 126, 127, 0, 130, - 131, 133, 135, 0, 126, 0, 129, 126, 127, 0, - - 132, 138, 0, 149, 127, 127, 127, 126, 126, 126, - 129, 129, 129, 134, 0, 130, 130, 130, 131, 133, - 134, 135, 137, 132, 132, 132, 0, 133, 133, 133, - 138, 157, 149, 0, 131, 131, 131, 139, 155, 160, - 0, 0, 134, 156, 0, 135, 135, 135, 0, 134, - 137, 0, 0, 138, 138, 138, 149, 149, 149, 0, - 157, 137, 137, 137, 0, 139, 155, 160, 134, 134, - 134, 163, 156, 0, 139, 139, 139, 155, 155, 155, - 165, 160, 160, 160, 164, 0, 164, 157, 157, 157, - 168, 156, 156, 156, 170, 0, 166, 0, 170, 163, - - 0, 164, 0, 167, 0, 163, 163, 163, 0, 165, - 191, 191, 191, 164, 0, 164, 167, 0, 0, 168, - 0, 169, 0, 170, 166, 178, 0, 170, 171, 164, - 172, 0, 167, 0, 165, 165, 165, 173, 164, 164, - 164, 166, 166, 166, 167, 0, 168, 168, 168, 169, - 170, 170, 170, 178, 167, 167, 167, 171, 174, 172, - 169, 169, 169, 176, 0, 173, 177, 0, 181, 179, - 178, 178, 178, 184, 173, 173, 173, 209, 209, 209, - 171, 171, 171, 0, 172, 172, 172, 174, 180, 182, - 0, 0, 176, 183, 177, 185, 181, 179, 225, 225, - - 225, 0, 184, 186, 177, 177, 177, 179, 179, 179, - 174, 174, 174, 181, 181, 181, 180, 0, 182, 176, - 176, 176, 183, 185, 187, 180, 180, 180, 184, 184, - 184, 188, 186, 189, 0, 190, 192, 185, 185, 185, - 0, 182, 182, 182, 0, 183, 183, 183, 0, 0, - 193, 0, 194, 187, 195, 186, 186, 186, 0, 188, - 0, 0, 189, 190, 0, 192, 0, 0, 188, 188, - 188, 190, 190, 190, 196, 0, 187, 187, 187, 193, - 194, 197, 195, 198, 0, 189, 189, 189, 192, 192, - 192, 0, 0, 200, 202, 194, 194, 194, 199, 195, - - 195, 195, 196, 0, 193, 193, 193, 201, 0, 197, - 0, 203, 198, 196, 196, 196, 0, 205, 197, 197, - 197, 200, 204, 202, 0, 206, 199, 233, 233, 233, - 0, 200, 200, 200, 210, 0, 201, 198, 198, 198, - 203, 0, 199, 199, 199, 205, 202, 202, 202, 211, - 204, 207, 208, 206, 205, 205, 205, 201, 201, 201, - 0, 207, 210, 203, 203, 203, 0, 204, 204, 204, - 206, 206, 206, 210, 210, 210, 0, 211, 0, 212, - 207, 208, 213, 214, 217, 0, 215, 0, 0, 207, - 0, 216, 0, 0, 211, 211, 211, 0, 0, 207, - - 207, 207, 0, 0, 208, 208, 208, 212, 0, 229, - 213, 218, 214, 217, 215, 221, 234, 234, 234, 216, - 212, 212, 212, 219, 0, 213, 213, 213, 215, 215, - 215, 216, 216, 216, 0, 214, 214, 214, 229, 218, - 217, 217, 217, 220, 221, 226, 228, 220, 227, 0, - 0, 219, 231, 0, 218, 218, 218, 229, 229, 229, - 219, 219, 219, 0, 221, 221, 221, 232, 0, 235, - 236, 220, 238, 226, 228, 220, 227, 0, 228, 228, - 228, 231, 226, 226, 226, 237, 220, 220, 220, 240, - 227, 227, 227, 0, 242, 0, 232, 235, 0, 236, - - 238, 239, 0, 0, 231, 231, 231, 0, 241, 238, - 238, 238, 0, 237, 0, 235, 235, 235, 240, 243, - 0, 0, 242, 232, 232, 232, 236, 236, 236, 239, - 237, 237, 237, 242, 242, 242, 241, 245, 239, 239, - 239, 240, 240, 240, 241, 241, 241, 243, 244, 244, - 244, 246, 246, 246, 247, 248, 243, 243, 243, 249, - 249, 249, 250, 255, 255, 255, 245, 0, 0, 251, - 0, 254, 0, 0, 258, 252, 253, 257, 262, 262, - 262, 0, 247, 248, 0, 245, 245, 245, 265, 265, - 265, 250, 248, 248, 248, 247, 247, 247, 251, 254, - - 256, 0, 258, 252, 259, 253, 257, 258, 258, 258, - 254, 254, 254, 263, 250, 250, 250, 252, 252, 252, - 260, 251, 251, 251, 253, 253, 253, 261, 256, 264, - 257, 257, 257, 259, 266, 266, 266, 0, 0, 256, - 256, 256, 263, 272, 0, 0, 267, 268, 260, 269, - 270, 0, 259, 259, 259, 261, 271, 264, 273, 260, - 260, 260, 263, 263, 263, 264, 264, 264, 274, 280, - 0, 272, 261, 261, 261, 267, 268, 0, 269, 270, - 0, 0, 272, 272, 272, 271, 273, 0, 275, 276, - 0, 273, 273, 273, 267, 267, 267, 274, 280, 268, - - 268, 268, 270, 270, 270, 269, 269, 269, 271, 271, - 271, 277, 278, 278, 278, 285, 275, 0, 276, 279, - 0, 280, 280, 280, 274, 274, 274, 275, 275, 275, - 281, 283, 283, 283, 282, 284, 284, 284, 288, 0, - 277, 0, 287, 285, 276, 276, 276, 0, 279, 0, - 0, 285, 285, 285, 290, 290, 290, 286, 291, 281, - 0, 0, 282, 289, 277, 277, 277, 288, 0, 0, - 287, 0, 0, 279, 279, 279, 282, 282, 282, 287, - 287, 287, 281, 281, 281, 286, 292, 291, 288, 288, - 288, 289, 294, 286, 286, 286, 293, 293, 293, 289, - - 289, 289, 0, 295, 296, 297, 299, 299, 299, 298, - 291, 291, 291, 0, 292, 0, 300, 301, 0, 0, - 294, 0, 0, 303, 311, 311, 311, 0, 292, 292, - 292, 295, 296, 302, 297, 294, 294, 294, 298, 0, - 304, 295, 295, 295, 300, 0, 301, 296, 296, 296, - 305, 306, 303, 300, 300, 300, 0, 297, 297, 297, - 307, 302, 298, 298, 298, 301, 301, 301, 304, 0, - 313, 317, 302, 302, 302, 303, 303, 303, 305, 306, - 308, 309, 0, 304, 304, 304, 314, 0, 310, 307, - 306, 306, 306, 315, 0, 305, 305, 305, 313, 0, - - 317, 312, 316, 319, 313, 313, 313, 0, 308, 0, - 309, 0, 307, 307, 307, 314, 310, 0, 321, 317, - 317, 317, 315, 308, 308, 308, 310, 310, 310, 312, - 320, 316, 319, 309, 309, 309, 314, 314, 314, 0, - 312, 312, 312, 318, 318, 318, 321, 323, 324, 315, - 315, 315, 325, 0, 316, 316, 316, 0, 320, 319, - 319, 319, 326, 321, 321, 321, 329, 320, 320, 320, - 322, 322, 322, 0, 0, 323, 324, 327, 327, 327, - 330, 325, 328, 328, 328, 324, 324, 324, 331, 0, - 326, 0, 323, 323, 323, 329, 333, 332, 334, 334, - - 334, 326, 326, 326, 336, 325, 325, 325, 330, 340, - 0, 335, 337, 337, 337, 0, 0, 331, 329, 329, - 329, 330, 330, 330, 0, 333, 332, 338, 339, 0, - 0, 341, 0, 336, 342, 342, 342, 0, 340, 335, - 343, 0, 331, 331, 331, 332, 332, 332, 335, 335, - 335, 345, 333, 333, 333, 338, 339, 336, 336, 336, - 341, 340, 340, 340, 348, 0, 338, 338, 338, 343, - 0, 339, 339, 339, 344, 344, 344, 0, 349, 345, - 346, 346, 346, 341, 341, 341, 350, 345, 345, 345, - 347, 347, 347, 348, 0, 351, 343, 343, 343, 352, - - 353, 354, 354, 354, 355, 0, 349, 356, 358, 358, - 358, 360, 360, 360, 0, 350, 0, 0, 348, 348, - 348, 349, 349, 349, 351, 361, 361, 361, 352, 353, - 357, 363, 355, 364, 357, 356, 359, 0, 350, 350, - 350, 355, 355, 355, 356, 356, 356, 351, 351, 351, - 362, 362, 362, 352, 352, 352, 353, 353, 353, 357, - 363, 364, 0, 357, 367, 359, 365, 366, 366, 366, - 368, 369, 369, 369, 374, 0, 364, 364, 364, 363, - 363, 363, 370, 370, 370, 371, 357, 357, 357, 372, - 359, 359, 359, 367, 365, 373, 0, 375, 368, 376, - - 376, 376, 374, 365, 365, 365, 374, 374, 374, 380, - 380, 380, 0, 371, 0, 368, 368, 368, 372, 377, - 367, 367, 367, 378, 373, 375, 379, 381, 381, 381, - 371, 371, 371, 382, 384, 384, 384, 372, 372, 372, - 375, 375, 375, 373, 373, 373, 383, 0, 377, 385, - 385, 385, 378, 0, 0, 379, 387, 386, 389, 389, - 389, 0, 382, 390, 390, 390, 0, 0, 388, 393, - 0, 377, 377, 377, 0, 383, 396, 378, 378, 378, - 379, 379, 379, 392, 387, 386, 391, 391, 391, 382, - 382, 382, 0, 387, 387, 387, 388, 394, 393, 383, - - 383, 383, 386, 386, 386, 396, 397, 388, 388, 388, - 398, 392, 395, 395, 395, 0, 0, 393, 393, 393, - 392, 392, 392, 399, 401, 0, 394, 394, 394, 0, - 0, 396, 396, 396, 402, 397, 403, 0, 398, 400, - 400, 400, 404, 404, 404, 0, 405, 398, 398, 398, - 408, 399, 406, 401, 407, 407, 407, 0, 0, 397, - 397, 397, 402, 410, 403, 411, 399, 399, 399, 413, - 0, 402, 402, 402, 405, 412, 401, 401, 401, 408, - 406, 403, 403, 403, 409, 409, 409, 0, 405, 405, - 405, 410, 418, 411, 0, 406, 406, 406, 413, 416, - - 410, 410, 410, 412, 408, 408, 408, 414, 414, 414, - 0, 411, 411, 411, 412, 412, 412, 415, 415, 415, - 418, 413, 413, 413, 417, 417, 417, 419, 416, 420, - 421, 421, 421, 423, 424, 418, 418, 418, 422, 422, - 422, 425, 0, 419, 0, 426, 430, 430, 430, 0, - 0, 416, 416, 416, 0, 0, 419, 420, 427, 0, - 0, 428, 423, 424, 431, 431, 431, 429, 0, 433, - 425, 419, 432, 426, 420, 420, 420, 426, 426, 426, - 419, 419, 419, 423, 423, 423, 427, 424, 424, 424, - 428, 0, 0, 425, 425, 425, 429, 434, 433, 435, - - 432, 427, 427, 427, 432, 432, 432, 439, 439, 439, - 436, 428, 428, 428, 0, 437, 0, 438, 0, 429, - 429, 429, 433, 433, 433, 434, 0, 435, 440, 440, - 440, 441, 441, 441, 445, 0, 435, 435, 435, 436, - 0, 434, 434, 434, 437, 0, 438, 442, 442, 442, - 443, 443, 443, 444, 444, 444, 446, 446, 446, 447, - 447, 447, 445, 437, 437, 437, 436, 436, 436, 438, - 438, 438, 445, 445, 445, 448, 449, 449, 449, 450, - 451, 452, 452, 452, 453, 453, 453, 454, 0, 0, - 455, 0, 463, 456, 458, 458, 458, 460, 460, 460, - - 465, 465, 465, 0, 448, 0, 462, 450, 451, 0, - 0, 457, 0, 459, 0, 454, 450, 450, 450, 455, - 463, 0, 456, 0, 451, 451, 451, 448, 448, 448, - 454, 454, 454, 461, 0, 462, 463, 463, 463, 457, - 464, 459, 455, 455, 455, 456, 456, 456, 457, 457, - 457, 459, 459, 459, 0, 0, 0, 0, 0, 0, - 0, 461, 462, 462, 462, 0, 0, 0, 464, 0, - 461, 461, 461, 0, 0, 0, 0, 0, 0, 0, - 0, 464, 464, 464, 467, 0, 467, 467, 467, 467, - 467, 468, 0, 468, 468, 468, 468, 468, 469, 469, - - 470, 470, 470, 470, 471, 0, 471, 471, 471, 471, - 471, 472, 0, 472, 472, 472, 472, 472, 473, 473, - 474, 474, 474, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - - 466, 466, 466, 466, 466, 466, 466, 466 + 1, 1, 1, 1, 1, 3, 4, 8, 8, 9, + 9, 21, 21, 23, 32, 23, 23, 24, 40, 24, + + 24, 27, 27, 27, 29, 29, 34, 23, 62, 62, + 34, 24, 82, 82, 3, 4, 38, 38, 38, 231, + 36, 151, 151, 32, 42, 225, 23, 40, 36, 69, + 69, 83, 83, 83, 36, 34, 23, 152, 152, 34, + 24, 69, 110, 110, 110, 224, 32, 32, 32, 36, + 40, 40, 40, 42, 23, 31, 31, 36, 34, 34, + 34, 35, 36, 35, 162, 31, 161, 31, 35, 41, + 69, 148, 31, 35, 31, 50, 36, 36, 36, 147, + 42, 42, 42, 144, 31, 31, 143, 37, 141, 35, + 140, 35, 92, 31, 37, 31, 35, 91, 41, 90, + + 31, 35, 31, 43, 50, 67, 35, 35, 35, 43, + 31, 31, 31, 33, 154, 154, 37, 41, 41, 41, + 33, 66, 37, 50, 50, 50, 65, 33, 64, 61, + 33, 43, 59, 33, 58, 98, 57, 43, 55, 37, + 37, 37, 33, 54, 53, 43, 43, 43, 30, 33, + 71, 71, 28, 46, 22, 33, 52, 46, 33, 20, + 44, 33, 71, 98, 44, 14, 11, 46, 44, 33, + 33, 33, 39, 39, 98, 98, 98, 45, 10, 39, + 39, 7, 46, 5, 0, 39, 46, 0, 44, 0, + 0, 71, 44, 0, 45, 46, 44, 47, 120, 120, + + 120, 39, 39, 44, 44, 44, 45, 39, 39, 46, + 46, 46, 47, 39, 0, 49, 0, 49, 0, 0, + 49, 0, 45, 39, 39, 39, 47, 51, 51, 52, + 52, 52, 0, 45, 45, 45, 0, 48, 0, 0, + 47, 48, 0, 49, 48, 49, 84, 0, 49, 47, + 47, 47, 0, 0, 48, 0, 51, 51, 49, 49, + 49, 72, 88, 72, 72, 0, 48, 121, 121, 121, + 48, 0, 85, 48, 84, 72, 51, 51, 51, 73, + 0, 73, 48, 0, 73, 73, 86, 0, 84, 84, + 84, 88, 0, 48, 48, 48, 60, 60, 0, 94, + + 85, 87, 0, 0, 72, 0, 60, 89, 60, 85, + 85, 85, 0, 60, 86, 60, 88, 88, 88, 95, + 86, 86, 86, 0, 0, 60, 60, 94, 0, 93, + 87, 96, 0, 96, 60, 89, 60, 94, 94, 94, + 97, 60, 0, 60, 89, 89, 89, 0, 95, 0, + 0, 60, 60, 60, 87, 87, 87, 93, 100, 96, + 106, 96, 101, 146, 146, 146, 93, 93, 93, 97, + 104, 95, 95, 95, 99, 102, 96, 96, 96, 0, + 99, 103, 0, 150, 150, 0, 100, 99, 106, 108, + 101, 0, 97, 97, 97, 150, 100, 100, 100, 104, + + 101, 101, 101, 99, 102, 106, 106, 106, 99, 105, + 103, 109, 105, 0, 0, 99, 107, 108, 104, 104, + 104, 111, 107, 112, 150, 99, 99, 99, 102, 102, + 102, 0, 108, 108, 108, 103, 103, 103, 105, 109, + 105, 113, 0, 114, 107, 115, 113, 0, 0, 111, + 107, 112, 116, 109, 109, 109, 113, 105, 105, 105, + 0, 107, 107, 107, 111, 111, 111, 112, 112, 112, + 113, 114, 122, 115, 117, 113, 119, 115, 115, 115, + 116, 118, 0, 0, 113, 130, 114, 114, 114, 123, + 158, 158, 158, 0, 113, 113, 113, 0, 116, 116, + + 116, 122, 117, 124, 119, 127, 0, 124, 0, 118, + 125, 117, 117, 117, 130, 125, 127, 123, 118, 118, + 118, 119, 119, 119, 122, 122, 122, 0, 123, 123, + 123, 0, 124, 127, 0, 129, 124, 128, 0, 125, + 130, 130, 130, 125, 127, 128, 0, 0, 131, 0, + 127, 127, 127, 0, 0, 124, 124, 124, 125, 125, + 125, 126, 126, 129, 0, 128, 132, 0, 133, 135, + 0, 126, 0, 128, 126, 126, 131, 129, 129, 129, + 134, 136, 128, 128, 128, 0, 0, 134, 0, 0, + 126, 126, 131, 131, 131, 132, 133, 138, 135, 126, + + 137, 0, 126, 126, 133, 133, 133, 0, 0, 134, + 136, 0, 126, 126, 126, 139, 134, 149, 132, 132, + 132, 0, 135, 135, 135, 0, 138, 155, 137, 136, + 136, 136, 156, 157, 0, 134, 134, 134, 0, 137, + 137, 137, 0, 139, 165, 0, 149, 0, 0, 138, + 138, 138, 139, 139, 139, 155, 159, 159, 159, 160, + 163, 156, 157, 0, 0, 166, 155, 155, 155, 0, + 149, 149, 149, 165, 0, 164, 168, 164, 0, 173, + 156, 156, 156, 0, 167, 0, 0, 160, 163, 157, + 157, 157, 164, 166, 163, 163, 163, 167, 165, 165, + + 165, 160, 160, 160, 164, 168, 164, 173, 0, 171, + 166, 166, 166, 167, 169, 170, 173, 173, 173, 170, + 164, 172, 175, 175, 175, 167, 0, 174, 176, 164, + 164, 164, 168, 168, 168, 167, 167, 167, 171, 191, + 191, 191, 169, 0, 170, 0, 178, 0, 170, 182, + 172, 0, 0, 169, 169, 169, 174, 176, 0, 177, + 0, 171, 171, 171, 0, 0, 179, 181, 210, 210, + 210, 170, 170, 170, 178, 172, 172, 172, 182, 174, + 174, 174, 180, 185, 176, 176, 176, 177, 183, 184, + 0, 178, 178, 178, 179, 181, 188, 177, 177, 177, + + 186, 182, 182, 182, 179, 179, 179, 187, 0, 196, + 180, 185, 181, 181, 181, 0, 0, 183, 184, 180, + 180, 180, 189, 0, 188, 185, 185, 185, 190, 186, + 226, 226, 226, 188, 188, 188, 187, 196, 192, 193, + 183, 183, 183, 194, 184, 184, 184, 0, 196, 196, + 196, 189, 186, 186, 186, 195, 190, 0, 0, 187, + 187, 187, 0, 0, 190, 190, 190, 192, 193, 197, + 198, 194, 0, 0, 189, 189, 189, 199, 0, 0, + 201, 202, 0, 195, 203, 0, 194, 194, 194, 200, + 192, 192, 192, 193, 193, 193, 0, 197, 0, 198, + + 195, 195, 195, 0, 0, 199, 197, 197, 197, 201, + 202, 204, 205, 203, 207, 0, 206, 200, 209, 0, + 212, 199, 199, 199, 198, 198, 198, 200, 200, 200, + 201, 201, 201, 202, 202, 202, 203, 203, 203, 204, + 205, 211, 207, 0, 206, 208, 215, 209, 212, 205, + 205, 205, 206, 206, 206, 208, 204, 204, 204, 207, + 207, 207, 213, 214, 0, 212, 212, 212, 216, 211, + 209, 209, 209, 217, 208, 215, 234, 234, 234, 0, + 211, 211, 211, 208, 235, 235, 235, 218, 0, 219, + 213, 214, 220, 208, 208, 208, 216, 228, 215, 215, + + 215, 217, 0, 213, 213, 213, 214, 214, 214, 222, + 216, 216, 216, 217, 217, 217, 218, 219, 221, 229, + 220, 236, 221, 0, 0, 228, 0, 227, 230, 220, + 220, 220, 219, 219, 219, 245, 245, 245, 222, 228, + 228, 228, 232, 218, 218, 218, 221, 229, 0, 236, + 221, 229, 229, 229, 233, 227, 238, 230, 222, 222, + 222, 221, 221, 221, 227, 227, 227, 236, 236, 236, + 237, 232, 247, 247, 247, 0, 230, 230, 230, 239, + 241, 0, 0, 233, 238, 240, 250, 250, 250, 0, + 0, 246, 0, 242, 232, 232, 232, 243, 0, 237, + + 0, 238, 238, 238, 256, 256, 256, 239, 0, 241, + 233, 233, 233, 240, 244, 248, 239, 239, 239, 262, + 246, 242, 240, 240, 240, 243, 237, 237, 237, 242, + 242, 242, 241, 241, 241, 249, 243, 243, 243, 246, + 246, 246, 244, 248, 0, 0, 251, 262, 253, 252, + 0, 244, 244, 244, 255, 0, 248, 248, 248, 254, + 258, 0, 0, 249, 262, 262, 262, 263, 263, 263, + 0, 0, 249, 249, 249, 251, 253, 257, 252, 266, + 266, 266, 255, 264, 267, 267, 267, 0, 254, 258, + 253, 253, 253, 255, 255, 255, 259, 260, 251, 251, + + 251, 252, 252, 252, 0, 257, 270, 254, 254, 254, + 261, 268, 264, 258, 258, 258, 257, 257, 257, 0, + 265, 0, 0, 269, 259, 0, 260, 0, 0, 259, + 259, 259, 264, 264, 264, 270, 271, 0, 261, 272, + 268, 273, 0, 279, 0, 260, 260, 260, 265, 261, + 261, 261, 269, 0, 275, 0, 265, 265, 265, 268, + 268, 268, 270, 270, 270, 271, 274, 276, 272, 273, + 0, 0, 279, 0, 277, 269, 269, 269, 0, 0, + 273, 273, 273, 275, 280, 280, 280, 278, 271, 271, + 271, 272, 272, 272, 274, 276, 279, 279, 279, 274, + + 274, 274, 277, 281, 0, 284, 276, 276, 276, 282, + 275, 275, 275, 277, 277, 277, 278, 283, 285, 285, + 285, 286, 286, 286, 292, 292, 292, 0, 287, 295, + 295, 295, 281, 284, 301, 301, 301, 0, 282, 288, + 0, 0, 278, 278, 278, 289, 283, 284, 284, 284, + 290, 0, 291, 313, 313, 313, 287, 281, 281, 281, + 0, 282, 282, 282, 287, 287, 287, 288, 293, 283, + 283, 283, 0, 289, 0, 288, 288, 288, 297, 290, + 291, 294, 289, 289, 289, 296, 299, 0, 291, 291, + 291, 298, 320, 320, 320, 0, 0, 293, 300, 0, + + 290, 290, 290, 0, 302, 304, 297, 0, 303, 294, + 324, 324, 324, 296, 0, 299, 297, 297, 297, 298, + 293, 293, 293, 294, 294, 294, 305, 300, 296, 296, + 296, 306, 302, 304, 298, 298, 298, 303, 299, 299, + 299, 302, 302, 302, 304, 304, 304, 0, 0, 307, + 0, 300, 300, 300, 309, 305, 303, 303, 303, 306, + 308, 0, 0, 311, 0, 312, 329, 329, 329, 310, + 314, 0, 0, 317, 306, 306, 306, 307, 305, 305, + 305, 0, 0, 309, 330, 330, 330, 0, 308, 0, + 315, 316, 311, 312, 307, 307, 307, 310, 314, 308, + + 308, 308, 317, 312, 312, 312, 309, 309, 309, 314, + 314, 314, 310, 310, 310, 311, 311, 311, 315, 318, + 316, 322, 321, 0, 315, 315, 315, 319, 0, 317, + 317, 317, 337, 337, 337, 0, 323, 327, 0, 325, + 333, 316, 316, 316, 340, 340, 340, 0, 318, 322, + 0, 321, 345, 345, 345, 0, 319, 0, 322, 322, + 322, 326, 0, 0, 323, 328, 327, 325, 331, 333, + 0, 318, 318, 318, 332, 319, 319, 319, 321, 321, + 321, 323, 323, 323, 325, 325, 325, 0, 0, 326, + 327, 327, 327, 328, 333, 333, 333, 331, 326, 326, + + 326, 334, 332, 335, 328, 328, 328, 336, 343, 347, + 347, 347, 0, 0, 341, 332, 332, 332, 0, 0, + 331, 331, 331, 339, 349, 349, 349, 0, 342, 338, + 334, 335, 350, 350, 350, 0, 336, 343, 0, 0, + 344, 346, 341, 357, 357, 357, 335, 335, 335, 334, + 334, 334, 339, 341, 341, 341, 342, 338, 0, 351, + 343, 343, 343, 336, 336, 336, 338, 338, 338, 344, + 346, 342, 342, 342, 348, 352, 339, 339, 339, 353, + 355, 361, 361, 361, 363, 363, 363, 354, 351, 358, + 0, 0, 344, 344, 344, 356, 0, 346, 346, 346, + + 362, 0, 348, 352, 364, 364, 364, 0, 353, 355, + 348, 348, 348, 351, 351, 351, 354, 358, 352, 352, + 352, 359, 0, 0, 356, 0, 358, 358, 358, 362, + 0, 353, 353, 353, 355, 355, 355, 366, 360, 354, + 354, 354, 360, 365, 365, 365, 367, 0, 370, 359, + 0, 356, 356, 356, 362, 362, 362, 0, 359, 359, + 359, 369, 369, 369, 368, 371, 366, 360, 372, 372, + 372, 360, 374, 0, 367, 0, 0, 370, 373, 373, + 373, 379, 379, 379, 375, 366, 366, 366, 377, 367, + 367, 367, 368, 371, 360, 360, 360, 376, 0, 378, + + 374, 368, 368, 368, 370, 370, 370, 380, 381, 0, + 371, 371, 371, 375, 0, 0, 377, 374, 374, 374, + 377, 377, 377, 382, 383, 386, 376, 378, 384, 384, + 384, 0, 375, 375, 375, 0, 380, 381, 385, 385, + 385, 387, 378, 378, 378, 376, 376, 376, 388, 388, + 388, 0, 382, 383, 386, 389, 389, 389, 390, 380, + 380, 380, 381, 381, 381, 393, 393, 393, 0, 391, + 387, 382, 382, 382, 392, 394, 394, 394, 383, 383, + 383, 386, 386, 386, 396, 0, 390, 395, 395, 395, + 397, 399, 399, 399, 387, 387, 387, 391, 398, 0, + + 0, 400, 392, 390, 390, 390, 391, 391, 391, 402, + 0, 0, 396, 392, 392, 392, 401, 0, 0, 397, + 0, 396, 396, 396, 404, 404, 404, 398, 398, 398, + 400, 403, 405, 408, 408, 408, 409, 402, 397, 397, + 397, 411, 411, 411, 406, 401, 402, 402, 402, 407, + 413, 413, 413, 419, 419, 419, 400, 400, 400, 403, + 410, 405, 412, 0, 409, 420, 420, 420, 0, 401, + 401, 401, 406, 414, 403, 403, 403, 407, 409, 409, + 409, 406, 406, 406, 405, 405, 405, 415, 410, 0, + 418, 412, 416, 0, 407, 407, 407, 421, 422, 422, + + 422, 414, 0, 410, 410, 410, 417, 0, 0, 423, + 414, 414, 414, 0, 0, 415, 412, 412, 412, 418, + 416, 426, 426, 426, 0, 0, 421, 425, 0, 0, + 415, 415, 415, 0, 417, 431, 428, 423, 416, 416, + 416, 424, 418, 418, 418, 417, 417, 417, 429, 421, + 421, 421, 423, 423, 423, 425, 0, 424, 427, 427, + 427, 430, 0, 431, 432, 428, 0, 431, 431, 431, + 424, 433, 425, 425, 425, 434, 443, 429, 435, 435, + 435, 436, 437, 437, 437, 424, 428, 428, 428, 439, + 430, 440, 432, 0, 424, 424, 424, 445, 445, 445, + + 433, 429, 429, 429, 434, 443, 438, 432, 432, 432, + 436, 0, 442, 430, 430, 430, 0, 441, 439, 440, + 444, 433, 433, 433, 443, 443, 443, 434, 434, 434, + 0, 436, 436, 436, 438, 440, 440, 440, 438, 438, + 438, 442, 439, 439, 439, 441, 446, 446, 446, 444, + 447, 447, 447, 451, 441, 441, 441, 448, 448, 448, + 449, 449, 449, 450, 450, 450, 455, 0, 442, 442, + 442, 457, 444, 444, 444, 452, 452, 452, 453, 453, + 453, 451, 454, 454, 454, 456, 456, 456, 458, 464, + 0, 451, 451, 451, 461, 455, 459, 459, 459, 457, + + 460, 460, 460, 465, 465, 465, 462, 0, 457, 457, + 457, 463, 0, 466, 469, 0, 458, 464, 455, 455, + 455, 0, 461, 467, 467, 467, 464, 464, 464, 468, + 0, 0, 458, 458, 458, 462, 0, 461, 461, 461, + 463, 466, 0, 469, 0, 470, 472, 472, 472, 0, + 0, 466, 466, 466, 471, 0, 0, 468, 462, 462, + 462, 0, 0, 463, 463, 463, 468, 468, 468, 0, + 469, 469, 469, 470, 0, 0, 0, 0, 0, 0, + 0, 0, 471, 0, 0, 0, 0, 0, 0, 470, + 470, 470, 0, 0, 0, 471, 471, 471, 474, 0, + + 474, 474, 474, 474, 474, 475, 0, 475, 475, 475, + 475, 475, 476, 476, 477, 0, 477, 477, 477, 478, + 0, 478, 478, 478, 478, 478, 479, 0, 479, 479, + 479, 479, 479, 480, 480, 481, 481, 481, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + 473, 473, 473, 473 } ; -static const flex_int16_t yy_rule_linenum[123] = +static const flex_int16_t yy_rule_linenum[124] = { 0, 80, 81, 83, 89, 113, 114, 115, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, @@ -1211,12 +1218,12 @@ static const flex_int16_t yy_rule_linenum[123] = 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 209, 210, 211, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 234 + 232, 233, 235 } ; /* The intent behind this definition is that it'll catch @@ -1231,7 +1238,7 @@ static const flex_int16_t yy_rule_linenum[123] = #include #include "ParserDriver.h" #include "sqlite3_parser.hpp" -#line 1235 "sqlite3_lexer.cpp" +#line 1241 "sqlite3_lexer.cpp" #define YY_NO_UNISTD_H 1 #line 12 "sqlite3_lexer.ll" #define TOKEN(n) sqlb::parser::parser::symbol_type(sqlb::parser::parser::token::TOK_##n, yytext, loc) @@ -1257,14 +1264,14 @@ static const flex_int16_t yy_rule_linenum[123] = return s; } -#line 1261 "sqlite3_lexer.cpp" +#line 1267 "sqlite3_lexer.cpp" #line 55 "sqlite3_lexer.ll" /* TODO Add $ bind parameters */ // Code run each time a pattern is matched. #define YY_USER_ACTION loc.columns(yyleng); -#line 1266 "sqlite3_lexer.cpp" +#line 1272 "sqlite3_lexer.cpp" -#line 1268 "sqlite3_lexer.cpp" +#line 1274 "sqlite3_lexer.cpp" #define INITIAL 0 #define BETWEEN_MODE 1 @@ -1602,7 +1609,7 @@ YY_DECL loc.step(); -#line 1606 "sqlite3_lexer.cpp" +#line 1612 "sqlite3_lexer.cpp" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1631,13 +1638,13 @@ YY_DECL while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 467 ) + if ( yy_current_state >= 474 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 466 ); + while ( yy_current_state != 473 ); yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; @@ -1656,13 +1663,13 @@ YY_DECL { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 123 ) + else if ( yy_act < 124 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 123 ) + else if ( yy_act == 124 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 124 ) + else if ( yy_act == 125 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -2053,137 +2060,137 @@ return TOKEN(RESTRICT); case 70: YY_RULE_SETUP #line 179 "sqlite3_lexer.ll" -return TOKEN(ROLLBACK); +return TOKEN(RETURNING); YY_BREAK case 71: YY_RULE_SETUP #line 180 "sqlite3_lexer.ll" -return TOKEN(ROWID); +return TOKEN(ROLLBACK); YY_BREAK case 72: YY_RULE_SETUP #line 181 "sqlite3_lexer.ll" -return TOKEN(ROWS); +return TOKEN(ROWID); YY_BREAK case 73: YY_RULE_SETUP #line 182 "sqlite3_lexer.ll" -return TOKEN(SELECT); +return TOKEN(ROWS); YY_BREAK case 74: YY_RULE_SETUP #line 183 "sqlite3_lexer.ll" -return TOKEN(SET); +return TOKEN(SELECT); YY_BREAK case 75: YY_RULE_SETUP #line 184 "sqlite3_lexer.ll" -return TOKEN(STORED); +return TOKEN(SET); YY_BREAK case 76: YY_RULE_SETUP #line 185 "sqlite3_lexer.ll" -return TOKEN(TABLE); +return TOKEN(STORED); YY_BREAK case 77: YY_RULE_SETUP #line 186 "sqlite3_lexer.ll" -return TOKEN(TEMP); +return TOKEN(TABLE); YY_BREAK case 78: YY_RULE_SETUP #line 187 "sqlite3_lexer.ll" -return TOKEN(TEMPORARY); +return TOKEN(TEMP); YY_BREAK case 79: YY_RULE_SETUP #line 188 "sqlite3_lexer.ll" -return TOKEN(THEN); +return TOKEN(TEMPORARY); YY_BREAK case 80: YY_RULE_SETUP #line 189 "sqlite3_lexer.ll" -return TOKEN(TRUE); +return TOKEN(THEN); YY_BREAK case 81: YY_RULE_SETUP #line 190 "sqlite3_lexer.ll" -return TOKEN(UNBOUNDED); +return TOKEN(TRUE); YY_BREAK case 82: YY_RULE_SETUP #line 191 "sqlite3_lexer.ll" -return TOKEN(UNIQUE); +return TOKEN(UNBOUNDED); YY_BREAK case 83: YY_RULE_SETUP #line 192 "sqlite3_lexer.ll" -return TOKEN(UPDATE); +return TOKEN(UNIQUE); YY_BREAK case 84: YY_RULE_SETUP #line 193 "sqlite3_lexer.ll" -return TOKEN(USING); +return TOKEN(UPDATE); YY_BREAK case 85: YY_RULE_SETUP #line 194 "sqlite3_lexer.ll" -return TOKEN(VIRTUAL); +return TOKEN(USING); YY_BREAK case 86: YY_RULE_SETUP #line 195 "sqlite3_lexer.ll" -return TOKEN(WHEN); +return TOKEN(VIRTUAL); YY_BREAK case 87: YY_RULE_SETUP #line 196 "sqlite3_lexer.ll" -return TOKEN(WHERE); +return TOKEN(WHEN); YY_BREAK case 88: YY_RULE_SETUP #line 197 "sqlite3_lexer.ll" -return TOKEN(WITHOUT); +return TOKEN(WHERE); YY_BREAK case 89: YY_RULE_SETUP -#line 199 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_IDENTIFIER(yytext, loc); +#line 198 "sqlite3_lexer.ll" +return TOKEN(WITHOUT); YY_BREAK case 90: YY_RULE_SETUP #line 200 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_IDENTIFIER(unquote_string(yytext, '`'), loc); +return sqlb::parser::parser::make_IDENTIFIER(yytext, loc); YY_BREAK case 91: YY_RULE_SETUP #line 201 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_IDENTIFIER(unquote_string(yytext, '['), loc); +return sqlb::parser::parser::make_IDENTIFIER(unquote_string(yytext, '`'), loc); YY_BREAK case 92: YY_RULE_SETUP #line 202 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_QUOTEDLITERAL(unquote_string(yytext, '"'), loc); +return sqlb::parser::parser::make_IDENTIFIER(unquote_string(yytext, '['), loc); YY_BREAK case 93: YY_RULE_SETUP #line 203 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_STRINGLITERAL(yytext, loc); +return sqlb::parser::parser::make_QUOTEDLITERAL(unquote_string(yytext, '"'), loc); YY_BREAK case 94: YY_RULE_SETUP #line 204 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_NUMERIC(yytext, loc); +return sqlb::parser::parser::make_STRINGLITERAL(yytext, loc); YY_BREAK case 95: YY_RULE_SETUP #line 205 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_BLOBLITERAL(yytext, loc); +return sqlb::parser::parser::make_NUMERIC(yytext, loc); YY_BREAK case 96: YY_RULE_SETUP #line 206 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_BINDPARAMETER(yytext, loc); +return sqlb::parser::parser::make_BLOBLITERAL(yytext, loc); YY_BREAK case 97: YY_RULE_SETUP @@ -2192,140 +2199,145 @@ return sqlb::parser::parser::make_BINDPARAMETER(yytext, loc); YY_BREAK case 98: YY_RULE_SETUP -#line 209 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_LPAREN(loc); +#line 208 "sqlite3_lexer.ll" +return sqlb::parser::parser::make_BINDPARAMETER(yytext, loc); YY_BREAK case 99: YY_RULE_SETUP #line 210 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_RPAREN(loc); +return sqlb::parser::parser::make_LPAREN(loc); YY_BREAK case 100: YY_RULE_SETUP #line 211 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_DOT(loc); +return sqlb::parser::parser::make_RPAREN(loc); YY_BREAK case 101: YY_RULE_SETUP #line 212 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_COMMA(loc); +return sqlb::parser::parser::make_DOT(loc); YY_BREAK case 102: YY_RULE_SETUP #line 213 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_SEMI(loc); +return sqlb::parser::parser::make_COMMA(loc); YY_BREAK case 103: YY_RULE_SETUP #line 214 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_PLUS(loc); +return sqlb::parser::parser::make_SEMI(loc); YY_BREAK case 104: YY_RULE_SETUP #line 215 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_MINUS(loc); +return sqlb::parser::parser::make_PLUS(loc); YY_BREAK case 105: YY_RULE_SETUP #line 216 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_STAR(loc); +return sqlb::parser::parser::make_MINUS(loc); YY_BREAK case 106: YY_RULE_SETUP #line 217 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_SLASH(loc); +return sqlb::parser::parser::make_STAR(loc); YY_BREAK case 107: YY_RULE_SETUP #line 218 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_TILDE(loc); +return sqlb::parser::parser::make_SLASH(loc); YY_BREAK case 108: YY_RULE_SETUP #line 219 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_AMPERSAND(loc); +return sqlb::parser::parser::make_TILDE(loc); YY_BREAK case 109: YY_RULE_SETUP #line 220 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_PERCENT(loc); +return sqlb::parser::parser::make_AMPERSAND(loc); YY_BREAK case 110: YY_RULE_SETUP #line 221 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_BITOR(loc); +return sqlb::parser::parser::make_PERCENT(loc); YY_BREAK case 111: YY_RULE_SETUP #line 222 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_OROP(loc); +return sqlb::parser::parser::make_BITOR(loc); YY_BREAK case 112: YY_RULE_SETUP #line 223 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_EQUAL(loc); +return sqlb::parser::parser::make_OROP(loc); YY_BREAK case 113: YY_RULE_SETUP #line 224 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_EQUAL2(loc); +return sqlb::parser::parser::make_EQUAL(loc); YY_BREAK case 114: YY_RULE_SETUP #line 225 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_GREATER(loc); +return sqlb::parser::parser::make_EQUAL2(loc); YY_BREAK case 115: YY_RULE_SETUP #line 226 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_GREATEREQUAL(loc); +return sqlb::parser::parser::make_GREATER(loc); YY_BREAK case 116: YY_RULE_SETUP #line 227 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_LOWER(loc); +return sqlb::parser::parser::make_GREATEREQUAL(loc); YY_BREAK case 117: YY_RULE_SETUP #line 228 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_LOWEREQUAL(loc); +return sqlb::parser::parser::make_LOWER(loc); YY_BREAK case 118: YY_RULE_SETUP #line 229 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_UNEQUAL(loc); +return sqlb::parser::parser::make_LOWEREQUAL(loc); YY_BREAK case 119: YY_RULE_SETUP #line 230 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_UNEQUAL2(loc); +return sqlb::parser::parser::make_UNEQUAL(loc); YY_BREAK case 120: YY_RULE_SETUP #line 231 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_BITWISELEFT(loc); +return sqlb::parser::parser::make_UNEQUAL2(loc); YY_BREAK case 121: YY_RULE_SETUP #line 232 "sqlite3_lexer.ll" -return sqlb::parser::parser::make_BITWISERIGHT(loc); +return sqlb::parser::parser::make_BITWISELEFT(loc); YY_BREAK case 122: YY_RULE_SETUP -#line 234 "sqlite3_lexer.ll" +#line 233 "sqlite3_lexer.ll" +return sqlb::parser::parser::make_BITWISERIGHT(loc); + YY_BREAK +case 123: +YY_RULE_SETUP +#line 235 "sqlite3_lexer.ll" throw sqlb::parser::parser::syntax_error(loc, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(BETWEEN_MODE): -#line 236 "sqlite3_lexer.ll" +#line 237 "sqlite3_lexer.ll" return sqlb::parser::parser::make_EOF(loc); YY_BREAK -case 123: +case 124: YY_RULE_SETUP -#line 238 "sqlite3_lexer.ll" +#line 239 "sqlite3_lexer.ll" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 2329 "sqlite3_lexer.cpp" +#line 2340 "sqlite3_lexer.cpp" case YY_END_OF_BUFFER: { @@ -2646,7 +2658,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 467 ) + if ( yy_current_state >= 474 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -2680,11 +2692,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 467 ) + if ( yy_current_state >= 474 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 466); + yy_is_jam = (yy_current_state == 473); (void)yyg; return yy_is_jam ? 0 : yy_current_state; @@ -3596,7 +3608,7 @@ void yyfree (void * ptr , yyscan_t yyscanner) /* %ok-for-header */ -#line 238 "sqlite3_lexer.ll" +#line 239 "sqlite3_lexer.ll" namespace sqlb diff --git a/src/sql/parser/sqlite3_lexer.h b/src/sql/parser/sqlite3_lexer.h index 88d59cf89..acecbe8d8 100644 --- a/src/sql/parser/sqlite3_lexer.h +++ b/src/sql/parser/sqlite3_lexer.h @@ -2,9 +2,9 @@ #define yyHEADER_H 1 #define yyIN_HEADER 1 -#line 6 "sqlite3_lexer.h" +#line 5 "sqlite3_lexer.h" -#line 8 "sqlite3_lexer.h" +#line 7 "sqlite3_lexer.h" #define YY_INT_ALIGNED short int @@ -602,9 +602,9 @@ extern int yylex (yyscan_t yyscanner); #undef yyTABLES_NAME #endif -#line 238 "sqlite3_lexer.ll" +#line 239 "sqlite3_lexer.ll" -#line 609 "sqlite3_lexer.h" +#line 608 "sqlite3_lexer.h" #undef yyIN_HEADER #endif /* yyHEADER_H */ diff --git a/src/sql/parser/sqlite3_lexer.ll b/src/sql/parser/sqlite3_lexer.ll index 6c5248716..19d6a1d56 100644 --- a/src/sql/parser/sqlite3_lexer.ll +++ b/src/sql/parser/sqlite3_lexer.ll @@ -40,7 +40,7 @@ U3 [\xe0-\xef] U4 [\xf0-\xf4] UNICODE {U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U} -ID ([a-z_]|{UNICODE})([a-z0-9_]|{UNICODE})* +ID ([a-z_]|{UNICODE})([a-z0-9_$]|{UNICODE})* GRAVEQUOTEDID `([^\n`]|(``))*` SQUAREBRACKETID \[([^\n\]])*\] @@ -175,6 +175,7 @@ WS [ \t\f] "REGEXP" return TOKEN(REGEXP); "REPLACE" return TOKEN(REPLACE); "RESTRICT" return TOKEN(RESTRICT); +"RETURNING" return TOKEN(RETURNING); "ROLLBACK" return TOKEN(ROLLBACK); "ROWID" return TOKEN(ROWID); "ROWS" return TOKEN(ROWS); diff --git a/src/sql/parser/sqlite3_location.h b/src/sql/parser/sqlite3_location.h index ecdfde7a2..528e02d12 100644 --- a/src/sql/parser/sqlite3_location.h +++ b/src/sql/parser/sqlite3_location.h @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.6.3. +// A Bison parser, made by GNU Bison 3.7.5. // Locations for Bison parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -61,11 +61,13 @@ namespace sqlb { namespace parser { class position { public: + /// Type for file name. + typedef const std::string filename_type; /// Type for line and column numbers. typedef int counter_type; /// Construct a position. - explicit position (std::string* f = YY_NULLPTR, + explicit position (filename_type* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) : filename (f) @@ -75,7 +77,7 @@ namespace sqlb { namespace parser { /// Initialization. - void initialize (std::string* fn = YY_NULLPTR, + void initialize (filename_type* fn = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -104,7 +106,7 @@ namespace sqlb { namespace parser { /** \} */ /// File name to which this position refers. - std::string* filename; + filename_type* filename; /// Current line number. counter_type line; /// Current column number. @@ -147,24 +149,6 @@ namespace sqlb { namespace parser { return res -= width; } - /// Compare two position objects. - inline bool - operator== (const position& pos1, const position& pos2) - { - return (pos1.line == pos2.line - && pos1.column == pos2.column - && (pos1.filename == pos2.filename - || (pos1.filename && pos2.filename - && *pos1.filename == *pos2.filename))); - } - - /// Compare two position objects. - inline bool - operator!= (const position& pos1, const position& pos2) - { - return !(pos1 == pos2); - } - /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param pos a reference to the position to redirect @@ -182,6 +166,8 @@ namespace sqlb { namespace parser { class location { public: + /// Type for file name. + typedef position::filename_type filename_type; /// Type for line and column numbers. typedef position::counter_type counter_type; @@ -198,7 +184,7 @@ namespace sqlb { namespace parser { {} /// Construct a 0-width location in \a f, \a l, \a c. - explicit location (std::string* f, + explicit location (filename_type* f, counter_type l = 1, counter_type c = 1) : begin (f, l, c) @@ -207,7 +193,7 @@ namespace sqlb { namespace parser { /// Initialization. - void initialize (std::string* f = YY_NULLPTR, + void initialize (filename_type* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -289,20 +275,6 @@ namespace sqlb { namespace parser { return res -= width; } - /// Compare two location objects. - inline bool - operator== (const location& loc1, const location& loc2) - { - return loc1.begin == loc2.begin && loc1.end == loc2.end; - } - - /// Compare two location objects. - inline bool - operator!= (const location& loc1, const location& loc2) - { - return !(loc1 == loc2); - } - /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param loc a reference to the location to redirect @@ -329,6 +301,6 @@ namespace sqlb { namespace parser { #line 10 "sqlite3_parser.yy" } } // sqlb::parser -#line 333 "sqlite3_location.h" +#line 305 "sqlite3_location.h" #endif // !YY_YY_SQLITE3_LOCATION_H_INCLUDED diff --git a/src/sql/parser/sqlite3_parser.cpp b/src/sql/parser/sqlite3_parser.cpp index 564eed2f2..b719bece1 100644 --- a/src/sql/parser/sqlite3_parser.cpp +++ b/src/sql/parser/sqlite3_parser.cpp @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.6.3. +// A Bison parser, made by GNU Bison 3.7.5. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -48,23 +48,31 @@ static std::string unquote_text(std::string str, char quote_char) { - if(str.front() != quote_char || str.back() != quote_char) - return str; + if(quote_char != '[') + { + if(str.front() != quote_char || str.back() != quote_char) + return str; - str = str.substr(1, str.size()-2); + str = str.substr(1, str.size()-2); - std::string quote(2, quote_char); + std::string quote(2, quote_char); - size_t pos = 0; - while((pos = str.find(quote, pos)) != std::string::npos) - { - str.erase(pos, 1); - pos += 1; // Don't remove the other quote char too + size_t pos = 0; + while((pos = str.find(quote, pos)) != std::string::npos) + { + str.erase(pos, 1); + pos += 1; // Don't remove the other quote char too + } + return str; + } else { + if(str.front() != '[' || str.back() != ']') + return str; + + return str.substr(1, str.size()-2); } - return str; } -#line 68 "sqlite3_parser.cpp" +#line 76 "sqlite3_parser.cpp" #ifndef YY_ @@ -141,7 +149,7 @@ #else // !YYDEBUG # define YYCDEBUG if (false) std::cerr -# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol) +# define YY_SYMBOL_PRINT(Title, Symbol) YY_USE (Symbol) # define YY_REDUCE_PRINT(Rule) static_cast (0) # define YY_STACK_PRINT() static_cast (0) @@ -157,7 +165,7 @@ #line 10 "sqlite3_parser.yy" namespace sqlb { namespace parser { -#line 161 "sqlite3_parser.cpp" +#line 169 "sqlite3_parser.cpp" /// Build a parser object. parser::parser (yyscan_t yyscanner_yyarg, ParserDriver& drv_yyarg) @@ -226,178 +234,179 @@ namespace sqlb { namespace parser { { switch (that.kind ()) { - case 160: // columndef + case symbol_kind::S_columndef: // columndef value.YY_MOVE_OR_COPY< ColumndefData > (YY_MOVE (that.value)); break; - case 142: // optional_if_not_exists - case 144: // optional_unique - case 152: // optional_temporary - case 153: // optional_withoutrowid - case 157: // optional_always_generated + case symbol_kind::S_optional_if_not_exists: // optional_if_not_exists + case symbol_kind::S_optional_unique: // optional_unique + case symbol_kind::S_optional_temporary: // optional_temporary + case symbol_kind::S_optional_withoutrowid: // optional_withoutrowid + case symbol_kind::S_optional_always_generated: // optional_always_generated value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); break; - case 158: // columnconstraint - case 168: // tableconstraint + case symbol_kind::S_columnconstraint: // columnconstraint + case symbol_kind::S_tableconstraint: // tableconstraint value.YY_MOVE_OR_COPY< sqlb::ConstraintPtr > (YY_MOVE (that.value)); break; - case 159: // columnconstraint_list - case 169: // tableconstraint_list - case 170: // optional_tableconstraint_list - value.YY_MOVE_OR_COPY< sqlb::ConstraintSet > (YY_MOVE (that.value)); + case symbol_kind::S_columnconstraint_list: // columnconstraint_list + case symbol_kind::S_tableconstraint_list: // tableconstraint_list + case symbol_kind::S_optional_tableconstraint_list: // optional_tableconstraint_list + value.YY_MOVE_OR_COPY< sqlb::ConstraintVector > (YY_MOVE (that.value)); break; - case 149: // createindex_stmt + case symbol_kind::S_createindex_stmt: // createindex_stmt value.YY_MOVE_OR_COPY< sqlb::IndexPtr > (YY_MOVE (that.value)); break; - case 147: // indexed_column + case symbol_kind::S_indexed_column: // indexed_column value.YY_MOVE_OR_COPY< sqlb::IndexedColumn > (YY_MOVE (that.value)); break; - case 148: // indexed_column_list + case symbol_kind::S_indexed_column_list: // indexed_column_list value.YY_MOVE_OR_COPY< sqlb::IndexedColumnVector > (YY_MOVE (that.value)); break; - case 163: // columnid_list - case 164: // optional_columnid_with_paren_list + case symbol_kind::S_columnid_list: // columnid_list + case symbol_kind::S_optional_columnid_with_paren_list: // optional_columnid_with_paren_list value.YY_MOVE_OR_COPY< sqlb::StringVector > (YY_MOVE (that.value)); break; - case 151: // createvirtualtable_stmt - case 171: // createtable_stmt + case symbol_kind::S_createvirtualtable_stmt: // createvirtualtable_stmt + case symbol_kind::S_createtable_stmt: // createtable_stmt value.YY_MOVE_OR_COPY< sqlb::TablePtr > (YY_MOVE (that.value)); break; - case 27: // "ABORT" - case 28: // "ACTION" - case 29: // "ALWAYS" - case 30: // "AND" - case 31: // "AND BETWEEN" - case 32: // "AS" - case 33: // "ASC" - case 34: // "AUTOINCREMENT" - case 35: // "BETWEEN" - case 36: // "CASCADE" - case 37: // "CASE" - case 38: // "CAST" - case 39: // "CHECK" - case 40: // "COLLATE" - case 41: // "CONFLICT" - case 42: // "CONSTRAINT" - case 43: // "CREATE" - case 44: // "CURRENT_DATE" - case 45: // "CURRENT_TIME" - case 46: // "CURRENT_TIMESTAMP" - case 47: // "DEFAULT" - case 48: // "DEFERRABLE" - case 49: // "DEFERRED" - case 50: // "DELETE" - case 51: // "DESC" - case 52: // "DISTINCT" - case 53: // "ELSE" - case 54: // "END" - case 55: // "ESCAPE" - case 56: // "EXISTS" - case 57: // "FAIL" - case 58: // "FALSE" - case 59: // "FILTER" - case 60: // "FOLLOWING" - case 61: // "FOREIGN" - case 62: // "GENERATED" - case 63: // "GLOB" - case 64: // "IF" - case 65: // "IGNORE" - case 66: // "IMMEDIATE" - case 67: // "IN" - case 68: // "INDEX" - case 69: // "INITIALLY" - case 70: // "INSERT" - case 71: // "IS" - case 72: // "ISNULL" - case 73: // "KEY" - case 74: // "LIKE" - case 75: // "MATCH" - case 76: // "NO" - case 77: // "NOT" - case 78: // "NOTNULL" - case 79: // "NULL" - case 80: // "ON" - case 81: // "OR" - case 82: // "OVER" - case 83: // "PARTITION" - case 84: // "PRECEDING" - case 85: // "PRIMARY" - case 86: // "RAISE" - case 87: // "RANGE" - case 88: // "REFERENCES" - case 89: // "REGEXP" - case 90: // "REPLACE" - case 91: // "RESTRICT" - case 92: // "ROLLBACK" - case 93: // "ROWID" - case 94: // "ROWS" - case 95: // "SELECT" - case 96: // "SET" - case 97: // "STORED" - case 98: // "TABLE" - case 99: // "TEMP" - case 100: // "TEMPORARY" - case 101: // "THEN" - case 102: // "TRUE" - case 103: // "UNBOUNDED" - case 104: // "UNIQUE" - case 105: // "UPDATE" - case 106: // "USING" - case 107: // "VIRTUAL" - case 108: // "WHEN" - case 109: // "WHERE" - case 110: // "WITHOUT" - case 111: // "identifier" - case 112: // "numeric" - case 113: // "string literal" - case 114: // "quoted literal" - case 115: // "blob literal" - case 116: // "bind parameter" - case 120: // literalvalue - case 121: // id - case 122: // allowed_keywords_as_identifier - case 123: // tableid - case 124: // columnid - case 125: // signednumber - case 126: // signednumber_or_numeric - case 127: // typename_namelist - case 128: // type_name - case 129: // unary_expr - case 130: // binary_expr - case 131: // like_expr - case 132: // exprlist_expr - case 133: // function_expr - case 134: // isnull_expr - case 135: // between_expr - case 136: // in_expr - case 137: // whenthenlist_expr - case 138: // case_expr - case 139: // raise_expr - case 140: // expr - case 141: // select_stmt - case 143: // optional_sort_order - case 145: // optional_where - case 146: // tableid_with_uninteresting_schema - case 150: // optional_exprlist_with_paren - case 154: // optional_conflictclause - case 155: // optional_typename - case 156: // optional_storage_identifier - case 162: // optional_constraintname - case 165: // fk_clause_part - case 166: // fk_clause_part_list - case 167: // optional_fk_clause + case symbol_kind::S_ABORT: // "ABORT" + case symbol_kind::S_ACTION: // "ACTION" + case symbol_kind::S_ALWAYS: // "ALWAYS" + case symbol_kind::S_AND: // "AND" + case symbol_kind::S_AND_BETWEEN: // "AND BETWEEN" + case symbol_kind::S_AS: // "AS" + case symbol_kind::S_ASC: // "ASC" + case symbol_kind::S_AUTOINCREMENT: // "AUTOINCREMENT" + case symbol_kind::S_BETWEEN: // "BETWEEN" + case symbol_kind::S_CASCADE: // "CASCADE" + case symbol_kind::S_CASE: // "CASE" + case symbol_kind::S_CAST: // "CAST" + case symbol_kind::S_CHECK: // "CHECK" + case symbol_kind::S_COLLATE: // "COLLATE" + case symbol_kind::S_CONFLICT: // "CONFLICT" + case symbol_kind::S_CONSTRAINT: // "CONSTRAINT" + case symbol_kind::S_CREATE: // "CREATE" + case symbol_kind::S_CURRENT_DATE: // "CURRENT_DATE" + case symbol_kind::S_CURRENT_TIME: // "CURRENT_TIME" + case symbol_kind::S_CURRENT_TIMESTAMP: // "CURRENT_TIMESTAMP" + case symbol_kind::S_DEFAULT: // "DEFAULT" + case symbol_kind::S_DEFERRABLE: // "DEFERRABLE" + case symbol_kind::S_DEFERRED: // "DEFERRED" + case symbol_kind::S_DELETE: // "DELETE" + case symbol_kind::S_DESC: // "DESC" + case symbol_kind::S_DISTINCT: // "DISTINCT" + case symbol_kind::S_ELSE: // "ELSE" + case symbol_kind::S_END: // "END" + case symbol_kind::S_ESCAPE: // "ESCAPE" + case symbol_kind::S_EXISTS: // "EXISTS" + case symbol_kind::S_FAIL: // "FAIL" + case symbol_kind::S_FALSE: // "FALSE" + case symbol_kind::S_FILTER: // "FILTER" + case symbol_kind::S_FOLLOWING: // "FOLLOWING" + case symbol_kind::S_FOREIGN: // "FOREIGN" + case symbol_kind::S_GENERATED: // "GENERATED" + case symbol_kind::S_GLOB: // "GLOB" + case symbol_kind::S_IF: // "IF" + case symbol_kind::S_IGNORE: // "IGNORE" + case symbol_kind::S_IMMEDIATE: // "IMMEDIATE" + case symbol_kind::S_IN: // "IN" + case symbol_kind::S_INDEX: // "INDEX" + case symbol_kind::S_INITIALLY: // "INITIALLY" + case symbol_kind::S_INSERT: // "INSERT" + case symbol_kind::S_IS: // "IS" + case symbol_kind::S_ISNULL: // "ISNULL" + case symbol_kind::S_KEY: // "KEY" + case symbol_kind::S_LIKE: // "LIKE" + case symbol_kind::S_MATCH: // "MATCH" + case symbol_kind::S_NO: // "NO" + case symbol_kind::S_NOT: // "NOT" + case symbol_kind::S_NOTNULL: // "NOTNULL" + case symbol_kind::S_NULL: // "NULL" + case symbol_kind::S_ON: // "ON" + case symbol_kind::S_OR: // "OR" + case symbol_kind::S_OVER: // "OVER" + case symbol_kind::S_PARTITION: // "PARTITION" + case symbol_kind::S_PRECEDING: // "PRECEDING" + case symbol_kind::S_PRIMARY: // "PRIMARY" + case symbol_kind::S_RAISE: // "RAISE" + case symbol_kind::S_RANGE: // "RANGE" + case symbol_kind::S_REFERENCES: // "REFERENCES" + case symbol_kind::S_REGEXP: // "REGEXP" + case symbol_kind::S_REPLACE: // "REPLACE" + case symbol_kind::S_RESTRICT: // "RESTRICT" + case symbol_kind::S_RETURNING: // "RETURNING" + case symbol_kind::S_ROLLBACK: // "ROLLBACK" + case symbol_kind::S_ROWID: // "ROWID" + case symbol_kind::S_ROWS: // "ROWS" + case symbol_kind::S_SELECT: // "SELECT" + case symbol_kind::S_SET: // "SET" + case symbol_kind::S_STORED: // "STORED" + case symbol_kind::S_TABLE: // "TABLE" + case symbol_kind::S_TEMP: // "TEMP" + case symbol_kind::S_TEMPORARY: // "TEMPORARY" + case symbol_kind::S_THEN: // "THEN" + case symbol_kind::S_TRUE: // "TRUE" + case symbol_kind::S_UNBOUNDED: // "UNBOUNDED" + case symbol_kind::S_UNIQUE: // "UNIQUE" + case symbol_kind::S_UPDATE: // "UPDATE" + case symbol_kind::S_USING: // "USING" + case symbol_kind::S_VIRTUAL: // "VIRTUAL" + case symbol_kind::S_WHEN: // "WHEN" + case symbol_kind::S_WHERE: // "WHERE" + case symbol_kind::S_WITHOUT: // "WITHOUT" + case symbol_kind::S_IDENTIFIER: // "identifier" + case symbol_kind::S_NUMERIC: // "numeric" + case symbol_kind::S_STRINGLITERAL: // "string literal" + case symbol_kind::S_QUOTEDLITERAL: // "quoted literal" + case symbol_kind::S_BLOBLITERAL: // "blob literal" + case symbol_kind::S_BINDPARAMETER: // "bind parameter" + case symbol_kind::S_literalvalue: // literalvalue + case symbol_kind::S_id: // id + case symbol_kind::S_allowed_keywords_as_identifier: // allowed_keywords_as_identifier + case symbol_kind::S_tableid: // tableid + case symbol_kind::S_columnid: // columnid + case symbol_kind::S_signednumber: // signednumber + case symbol_kind::S_signednumber_or_numeric: // signednumber_or_numeric + case symbol_kind::S_typename_namelist: // typename_namelist + case symbol_kind::S_type_name: // type_name + case symbol_kind::S_unary_expr: // unary_expr + case symbol_kind::S_binary_expr: // binary_expr + case symbol_kind::S_like_expr: // like_expr + case symbol_kind::S_exprlist_expr: // exprlist_expr + case symbol_kind::S_function_expr: // function_expr + case symbol_kind::S_isnull_expr: // isnull_expr + case symbol_kind::S_between_expr: // between_expr + case symbol_kind::S_in_expr: // in_expr + case symbol_kind::S_whenthenlist_expr: // whenthenlist_expr + case symbol_kind::S_case_expr: // case_expr + case symbol_kind::S_raise_expr: // raise_expr + case symbol_kind::S_expr: // expr + case symbol_kind::S_select_stmt: // select_stmt + case symbol_kind::S_optional_sort_order: // optional_sort_order + case symbol_kind::S_optional_where: // optional_where + case symbol_kind::S_tableid_with_uninteresting_schema: // tableid_with_uninteresting_schema + case symbol_kind::S_optional_exprlist_with_paren: // optional_exprlist_with_paren + case symbol_kind::S_optional_conflictclause: // optional_conflictclause + case symbol_kind::S_optional_typename: // optional_typename + case symbol_kind::S_optional_storage_identifier: // optional_storage_identifier + case symbol_kind::S_optional_constraintname: // optional_constraintname + case symbol_kind::S_fk_clause_part: // fk_clause_part + case symbol_kind::S_fk_clause_part_list: // fk_clause_part_list + case symbol_kind::S_optional_fk_clause: // optional_fk_clause value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; - case 161: // columndef_list + case symbol_kind::S_columndef_list: // columndef_list value.YY_MOVE_OR_COPY< std::vector > (YY_MOVE (that.value)); break; @@ -416,178 +425,179 @@ namespace sqlb { namespace parser { { switch (that.kind ()) { - case 160: // columndef + case symbol_kind::S_columndef: // columndef value.move< ColumndefData > (YY_MOVE (that.value)); break; - case 142: // optional_if_not_exists - case 144: // optional_unique - case 152: // optional_temporary - case 153: // optional_withoutrowid - case 157: // optional_always_generated + case symbol_kind::S_optional_if_not_exists: // optional_if_not_exists + case symbol_kind::S_optional_unique: // optional_unique + case symbol_kind::S_optional_temporary: // optional_temporary + case symbol_kind::S_optional_withoutrowid: // optional_withoutrowid + case symbol_kind::S_optional_always_generated: // optional_always_generated value.move< bool > (YY_MOVE (that.value)); break; - case 158: // columnconstraint - case 168: // tableconstraint + case symbol_kind::S_columnconstraint: // columnconstraint + case symbol_kind::S_tableconstraint: // tableconstraint value.move< sqlb::ConstraintPtr > (YY_MOVE (that.value)); break; - case 159: // columnconstraint_list - case 169: // tableconstraint_list - case 170: // optional_tableconstraint_list - value.move< sqlb::ConstraintSet > (YY_MOVE (that.value)); + case symbol_kind::S_columnconstraint_list: // columnconstraint_list + case symbol_kind::S_tableconstraint_list: // tableconstraint_list + case symbol_kind::S_optional_tableconstraint_list: // optional_tableconstraint_list + value.move< sqlb::ConstraintVector > (YY_MOVE (that.value)); break; - case 149: // createindex_stmt + case symbol_kind::S_createindex_stmt: // createindex_stmt value.move< sqlb::IndexPtr > (YY_MOVE (that.value)); break; - case 147: // indexed_column + case symbol_kind::S_indexed_column: // indexed_column value.move< sqlb::IndexedColumn > (YY_MOVE (that.value)); break; - case 148: // indexed_column_list + case symbol_kind::S_indexed_column_list: // indexed_column_list value.move< sqlb::IndexedColumnVector > (YY_MOVE (that.value)); break; - case 163: // columnid_list - case 164: // optional_columnid_with_paren_list + case symbol_kind::S_columnid_list: // columnid_list + case symbol_kind::S_optional_columnid_with_paren_list: // optional_columnid_with_paren_list value.move< sqlb::StringVector > (YY_MOVE (that.value)); break; - case 151: // createvirtualtable_stmt - case 171: // createtable_stmt + case symbol_kind::S_createvirtualtable_stmt: // createvirtualtable_stmt + case symbol_kind::S_createtable_stmt: // createtable_stmt value.move< sqlb::TablePtr > (YY_MOVE (that.value)); break; - case 27: // "ABORT" - case 28: // "ACTION" - case 29: // "ALWAYS" - case 30: // "AND" - case 31: // "AND BETWEEN" - case 32: // "AS" - case 33: // "ASC" - case 34: // "AUTOINCREMENT" - case 35: // "BETWEEN" - case 36: // "CASCADE" - case 37: // "CASE" - case 38: // "CAST" - case 39: // "CHECK" - case 40: // "COLLATE" - case 41: // "CONFLICT" - case 42: // "CONSTRAINT" - case 43: // "CREATE" - case 44: // "CURRENT_DATE" - case 45: // "CURRENT_TIME" - case 46: // "CURRENT_TIMESTAMP" - case 47: // "DEFAULT" - case 48: // "DEFERRABLE" - case 49: // "DEFERRED" - case 50: // "DELETE" - case 51: // "DESC" - case 52: // "DISTINCT" - case 53: // "ELSE" - case 54: // "END" - case 55: // "ESCAPE" - case 56: // "EXISTS" - case 57: // "FAIL" - case 58: // "FALSE" - case 59: // "FILTER" - case 60: // "FOLLOWING" - case 61: // "FOREIGN" - case 62: // "GENERATED" - case 63: // "GLOB" - case 64: // "IF" - case 65: // "IGNORE" - case 66: // "IMMEDIATE" - case 67: // "IN" - case 68: // "INDEX" - case 69: // "INITIALLY" - case 70: // "INSERT" - case 71: // "IS" - case 72: // "ISNULL" - case 73: // "KEY" - case 74: // "LIKE" - case 75: // "MATCH" - case 76: // "NO" - case 77: // "NOT" - case 78: // "NOTNULL" - case 79: // "NULL" - case 80: // "ON" - case 81: // "OR" - case 82: // "OVER" - case 83: // "PARTITION" - case 84: // "PRECEDING" - case 85: // "PRIMARY" - case 86: // "RAISE" - case 87: // "RANGE" - case 88: // "REFERENCES" - case 89: // "REGEXP" - case 90: // "REPLACE" - case 91: // "RESTRICT" - case 92: // "ROLLBACK" - case 93: // "ROWID" - case 94: // "ROWS" - case 95: // "SELECT" - case 96: // "SET" - case 97: // "STORED" - case 98: // "TABLE" - case 99: // "TEMP" - case 100: // "TEMPORARY" - case 101: // "THEN" - case 102: // "TRUE" - case 103: // "UNBOUNDED" - case 104: // "UNIQUE" - case 105: // "UPDATE" - case 106: // "USING" - case 107: // "VIRTUAL" - case 108: // "WHEN" - case 109: // "WHERE" - case 110: // "WITHOUT" - case 111: // "identifier" - case 112: // "numeric" - case 113: // "string literal" - case 114: // "quoted literal" - case 115: // "blob literal" - case 116: // "bind parameter" - case 120: // literalvalue - case 121: // id - case 122: // allowed_keywords_as_identifier - case 123: // tableid - case 124: // columnid - case 125: // signednumber - case 126: // signednumber_or_numeric - case 127: // typename_namelist - case 128: // type_name - case 129: // unary_expr - case 130: // binary_expr - case 131: // like_expr - case 132: // exprlist_expr - case 133: // function_expr - case 134: // isnull_expr - case 135: // between_expr - case 136: // in_expr - case 137: // whenthenlist_expr - case 138: // case_expr - case 139: // raise_expr - case 140: // expr - case 141: // select_stmt - case 143: // optional_sort_order - case 145: // optional_where - case 146: // tableid_with_uninteresting_schema - case 150: // optional_exprlist_with_paren - case 154: // optional_conflictclause - case 155: // optional_typename - case 156: // optional_storage_identifier - case 162: // optional_constraintname - case 165: // fk_clause_part - case 166: // fk_clause_part_list - case 167: // optional_fk_clause + case symbol_kind::S_ABORT: // "ABORT" + case symbol_kind::S_ACTION: // "ACTION" + case symbol_kind::S_ALWAYS: // "ALWAYS" + case symbol_kind::S_AND: // "AND" + case symbol_kind::S_AND_BETWEEN: // "AND BETWEEN" + case symbol_kind::S_AS: // "AS" + case symbol_kind::S_ASC: // "ASC" + case symbol_kind::S_AUTOINCREMENT: // "AUTOINCREMENT" + case symbol_kind::S_BETWEEN: // "BETWEEN" + case symbol_kind::S_CASCADE: // "CASCADE" + case symbol_kind::S_CASE: // "CASE" + case symbol_kind::S_CAST: // "CAST" + case symbol_kind::S_CHECK: // "CHECK" + case symbol_kind::S_COLLATE: // "COLLATE" + case symbol_kind::S_CONFLICT: // "CONFLICT" + case symbol_kind::S_CONSTRAINT: // "CONSTRAINT" + case symbol_kind::S_CREATE: // "CREATE" + case symbol_kind::S_CURRENT_DATE: // "CURRENT_DATE" + case symbol_kind::S_CURRENT_TIME: // "CURRENT_TIME" + case symbol_kind::S_CURRENT_TIMESTAMP: // "CURRENT_TIMESTAMP" + case symbol_kind::S_DEFAULT: // "DEFAULT" + case symbol_kind::S_DEFERRABLE: // "DEFERRABLE" + case symbol_kind::S_DEFERRED: // "DEFERRED" + case symbol_kind::S_DELETE: // "DELETE" + case symbol_kind::S_DESC: // "DESC" + case symbol_kind::S_DISTINCT: // "DISTINCT" + case symbol_kind::S_ELSE: // "ELSE" + case symbol_kind::S_END: // "END" + case symbol_kind::S_ESCAPE: // "ESCAPE" + case symbol_kind::S_EXISTS: // "EXISTS" + case symbol_kind::S_FAIL: // "FAIL" + case symbol_kind::S_FALSE: // "FALSE" + case symbol_kind::S_FILTER: // "FILTER" + case symbol_kind::S_FOLLOWING: // "FOLLOWING" + case symbol_kind::S_FOREIGN: // "FOREIGN" + case symbol_kind::S_GENERATED: // "GENERATED" + case symbol_kind::S_GLOB: // "GLOB" + case symbol_kind::S_IF: // "IF" + case symbol_kind::S_IGNORE: // "IGNORE" + case symbol_kind::S_IMMEDIATE: // "IMMEDIATE" + case symbol_kind::S_IN: // "IN" + case symbol_kind::S_INDEX: // "INDEX" + case symbol_kind::S_INITIALLY: // "INITIALLY" + case symbol_kind::S_INSERT: // "INSERT" + case symbol_kind::S_IS: // "IS" + case symbol_kind::S_ISNULL: // "ISNULL" + case symbol_kind::S_KEY: // "KEY" + case symbol_kind::S_LIKE: // "LIKE" + case symbol_kind::S_MATCH: // "MATCH" + case symbol_kind::S_NO: // "NO" + case symbol_kind::S_NOT: // "NOT" + case symbol_kind::S_NOTNULL: // "NOTNULL" + case symbol_kind::S_NULL: // "NULL" + case symbol_kind::S_ON: // "ON" + case symbol_kind::S_OR: // "OR" + case symbol_kind::S_OVER: // "OVER" + case symbol_kind::S_PARTITION: // "PARTITION" + case symbol_kind::S_PRECEDING: // "PRECEDING" + case symbol_kind::S_PRIMARY: // "PRIMARY" + case symbol_kind::S_RAISE: // "RAISE" + case symbol_kind::S_RANGE: // "RANGE" + case symbol_kind::S_REFERENCES: // "REFERENCES" + case symbol_kind::S_REGEXP: // "REGEXP" + case symbol_kind::S_REPLACE: // "REPLACE" + case symbol_kind::S_RESTRICT: // "RESTRICT" + case symbol_kind::S_RETURNING: // "RETURNING" + case symbol_kind::S_ROLLBACK: // "ROLLBACK" + case symbol_kind::S_ROWID: // "ROWID" + case symbol_kind::S_ROWS: // "ROWS" + case symbol_kind::S_SELECT: // "SELECT" + case symbol_kind::S_SET: // "SET" + case symbol_kind::S_STORED: // "STORED" + case symbol_kind::S_TABLE: // "TABLE" + case symbol_kind::S_TEMP: // "TEMP" + case symbol_kind::S_TEMPORARY: // "TEMPORARY" + case symbol_kind::S_THEN: // "THEN" + case symbol_kind::S_TRUE: // "TRUE" + case symbol_kind::S_UNBOUNDED: // "UNBOUNDED" + case symbol_kind::S_UNIQUE: // "UNIQUE" + case symbol_kind::S_UPDATE: // "UPDATE" + case symbol_kind::S_USING: // "USING" + case symbol_kind::S_VIRTUAL: // "VIRTUAL" + case symbol_kind::S_WHEN: // "WHEN" + case symbol_kind::S_WHERE: // "WHERE" + case symbol_kind::S_WITHOUT: // "WITHOUT" + case symbol_kind::S_IDENTIFIER: // "identifier" + case symbol_kind::S_NUMERIC: // "numeric" + case symbol_kind::S_STRINGLITERAL: // "string literal" + case symbol_kind::S_QUOTEDLITERAL: // "quoted literal" + case symbol_kind::S_BLOBLITERAL: // "blob literal" + case symbol_kind::S_BINDPARAMETER: // "bind parameter" + case symbol_kind::S_literalvalue: // literalvalue + case symbol_kind::S_id: // id + case symbol_kind::S_allowed_keywords_as_identifier: // allowed_keywords_as_identifier + case symbol_kind::S_tableid: // tableid + case symbol_kind::S_columnid: // columnid + case symbol_kind::S_signednumber: // signednumber + case symbol_kind::S_signednumber_or_numeric: // signednumber_or_numeric + case symbol_kind::S_typename_namelist: // typename_namelist + case symbol_kind::S_type_name: // type_name + case symbol_kind::S_unary_expr: // unary_expr + case symbol_kind::S_binary_expr: // binary_expr + case symbol_kind::S_like_expr: // like_expr + case symbol_kind::S_exprlist_expr: // exprlist_expr + case symbol_kind::S_function_expr: // function_expr + case symbol_kind::S_isnull_expr: // isnull_expr + case symbol_kind::S_between_expr: // between_expr + case symbol_kind::S_in_expr: // in_expr + case symbol_kind::S_whenthenlist_expr: // whenthenlist_expr + case symbol_kind::S_case_expr: // case_expr + case symbol_kind::S_raise_expr: // raise_expr + case symbol_kind::S_expr: // expr + case symbol_kind::S_select_stmt: // select_stmt + case symbol_kind::S_optional_sort_order: // optional_sort_order + case symbol_kind::S_optional_where: // optional_where + case symbol_kind::S_tableid_with_uninteresting_schema: // tableid_with_uninteresting_schema + case symbol_kind::S_optional_exprlist_with_paren: // optional_exprlist_with_paren + case symbol_kind::S_optional_conflictclause: // optional_conflictclause + case symbol_kind::S_optional_typename: // optional_typename + case symbol_kind::S_optional_storage_identifier: // optional_storage_identifier + case symbol_kind::S_optional_constraintname: // optional_constraintname + case symbol_kind::S_fk_clause_part: // fk_clause_part + case symbol_kind::S_fk_clause_part_list: // fk_clause_part_list + case symbol_kind::S_optional_fk_clause: // optional_fk_clause value.move< std::string > (YY_MOVE (that.value)); break; - case 161: // columndef_list + case symbol_kind::S_columndef_list: // columndef_list value.move< std::vector > (YY_MOVE (that.value)); break; @@ -606,178 +616,179 @@ namespace sqlb { namespace parser { state = that.state; switch (that.kind ()) { - case 160: // columndef + case symbol_kind::S_columndef: // columndef value.copy< ColumndefData > (that.value); break; - case 142: // optional_if_not_exists - case 144: // optional_unique - case 152: // optional_temporary - case 153: // optional_withoutrowid - case 157: // optional_always_generated + case symbol_kind::S_optional_if_not_exists: // optional_if_not_exists + case symbol_kind::S_optional_unique: // optional_unique + case symbol_kind::S_optional_temporary: // optional_temporary + case symbol_kind::S_optional_withoutrowid: // optional_withoutrowid + case symbol_kind::S_optional_always_generated: // optional_always_generated value.copy< bool > (that.value); break; - case 158: // columnconstraint - case 168: // tableconstraint + case symbol_kind::S_columnconstraint: // columnconstraint + case symbol_kind::S_tableconstraint: // tableconstraint value.copy< sqlb::ConstraintPtr > (that.value); break; - case 159: // columnconstraint_list - case 169: // tableconstraint_list - case 170: // optional_tableconstraint_list - value.copy< sqlb::ConstraintSet > (that.value); + case symbol_kind::S_columnconstraint_list: // columnconstraint_list + case symbol_kind::S_tableconstraint_list: // tableconstraint_list + case symbol_kind::S_optional_tableconstraint_list: // optional_tableconstraint_list + value.copy< sqlb::ConstraintVector > (that.value); break; - case 149: // createindex_stmt + case symbol_kind::S_createindex_stmt: // createindex_stmt value.copy< sqlb::IndexPtr > (that.value); break; - case 147: // indexed_column + case symbol_kind::S_indexed_column: // indexed_column value.copy< sqlb::IndexedColumn > (that.value); break; - case 148: // indexed_column_list + case symbol_kind::S_indexed_column_list: // indexed_column_list value.copy< sqlb::IndexedColumnVector > (that.value); break; - case 163: // columnid_list - case 164: // optional_columnid_with_paren_list + case symbol_kind::S_columnid_list: // columnid_list + case symbol_kind::S_optional_columnid_with_paren_list: // optional_columnid_with_paren_list value.copy< sqlb::StringVector > (that.value); break; - case 151: // createvirtualtable_stmt - case 171: // createtable_stmt + case symbol_kind::S_createvirtualtable_stmt: // createvirtualtable_stmt + case symbol_kind::S_createtable_stmt: // createtable_stmt value.copy< sqlb::TablePtr > (that.value); break; - case 27: // "ABORT" - case 28: // "ACTION" - case 29: // "ALWAYS" - case 30: // "AND" - case 31: // "AND BETWEEN" - case 32: // "AS" - case 33: // "ASC" - case 34: // "AUTOINCREMENT" - case 35: // "BETWEEN" - case 36: // "CASCADE" - case 37: // "CASE" - case 38: // "CAST" - case 39: // "CHECK" - case 40: // "COLLATE" - case 41: // "CONFLICT" - case 42: // "CONSTRAINT" - case 43: // "CREATE" - case 44: // "CURRENT_DATE" - case 45: // "CURRENT_TIME" - case 46: // "CURRENT_TIMESTAMP" - case 47: // "DEFAULT" - case 48: // "DEFERRABLE" - case 49: // "DEFERRED" - case 50: // "DELETE" - case 51: // "DESC" - case 52: // "DISTINCT" - case 53: // "ELSE" - case 54: // "END" - case 55: // "ESCAPE" - case 56: // "EXISTS" - case 57: // "FAIL" - case 58: // "FALSE" - case 59: // "FILTER" - case 60: // "FOLLOWING" - case 61: // "FOREIGN" - case 62: // "GENERATED" - case 63: // "GLOB" - case 64: // "IF" - case 65: // "IGNORE" - case 66: // "IMMEDIATE" - case 67: // "IN" - case 68: // "INDEX" - case 69: // "INITIALLY" - case 70: // "INSERT" - case 71: // "IS" - case 72: // "ISNULL" - case 73: // "KEY" - case 74: // "LIKE" - case 75: // "MATCH" - case 76: // "NO" - case 77: // "NOT" - case 78: // "NOTNULL" - case 79: // "NULL" - case 80: // "ON" - case 81: // "OR" - case 82: // "OVER" - case 83: // "PARTITION" - case 84: // "PRECEDING" - case 85: // "PRIMARY" - case 86: // "RAISE" - case 87: // "RANGE" - case 88: // "REFERENCES" - case 89: // "REGEXP" - case 90: // "REPLACE" - case 91: // "RESTRICT" - case 92: // "ROLLBACK" - case 93: // "ROWID" - case 94: // "ROWS" - case 95: // "SELECT" - case 96: // "SET" - case 97: // "STORED" - case 98: // "TABLE" - case 99: // "TEMP" - case 100: // "TEMPORARY" - case 101: // "THEN" - case 102: // "TRUE" - case 103: // "UNBOUNDED" - case 104: // "UNIQUE" - case 105: // "UPDATE" - case 106: // "USING" - case 107: // "VIRTUAL" - case 108: // "WHEN" - case 109: // "WHERE" - case 110: // "WITHOUT" - case 111: // "identifier" - case 112: // "numeric" - case 113: // "string literal" - case 114: // "quoted literal" - case 115: // "blob literal" - case 116: // "bind parameter" - case 120: // literalvalue - case 121: // id - case 122: // allowed_keywords_as_identifier - case 123: // tableid - case 124: // columnid - case 125: // signednumber - case 126: // signednumber_or_numeric - case 127: // typename_namelist - case 128: // type_name - case 129: // unary_expr - case 130: // binary_expr - case 131: // like_expr - case 132: // exprlist_expr - case 133: // function_expr - case 134: // isnull_expr - case 135: // between_expr - case 136: // in_expr - case 137: // whenthenlist_expr - case 138: // case_expr - case 139: // raise_expr - case 140: // expr - case 141: // select_stmt - case 143: // optional_sort_order - case 145: // optional_where - case 146: // tableid_with_uninteresting_schema - case 150: // optional_exprlist_with_paren - case 154: // optional_conflictclause - case 155: // optional_typename - case 156: // optional_storage_identifier - case 162: // optional_constraintname - case 165: // fk_clause_part - case 166: // fk_clause_part_list - case 167: // optional_fk_clause + case symbol_kind::S_ABORT: // "ABORT" + case symbol_kind::S_ACTION: // "ACTION" + case symbol_kind::S_ALWAYS: // "ALWAYS" + case symbol_kind::S_AND: // "AND" + case symbol_kind::S_AND_BETWEEN: // "AND BETWEEN" + case symbol_kind::S_AS: // "AS" + case symbol_kind::S_ASC: // "ASC" + case symbol_kind::S_AUTOINCREMENT: // "AUTOINCREMENT" + case symbol_kind::S_BETWEEN: // "BETWEEN" + case symbol_kind::S_CASCADE: // "CASCADE" + case symbol_kind::S_CASE: // "CASE" + case symbol_kind::S_CAST: // "CAST" + case symbol_kind::S_CHECK: // "CHECK" + case symbol_kind::S_COLLATE: // "COLLATE" + case symbol_kind::S_CONFLICT: // "CONFLICT" + case symbol_kind::S_CONSTRAINT: // "CONSTRAINT" + case symbol_kind::S_CREATE: // "CREATE" + case symbol_kind::S_CURRENT_DATE: // "CURRENT_DATE" + case symbol_kind::S_CURRENT_TIME: // "CURRENT_TIME" + case symbol_kind::S_CURRENT_TIMESTAMP: // "CURRENT_TIMESTAMP" + case symbol_kind::S_DEFAULT: // "DEFAULT" + case symbol_kind::S_DEFERRABLE: // "DEFERRABLE" + case symbol_kind::S_DEFERRED: // "DEFERRED" + case symbol_kind::S_DELETE: // "DELETE" + case symbol_kind::S_DESC: // "DESC" + case symbol_kind::S_DISTINCT: // "DISTINCT" + case symbol_kind::S_ELSE: // "ELSE" + case symbol_kind::S_END: // "END" + case symbol_kind::S_ESCAPE: // "ESCAPE" + case symbol_kind::S_EXISTS: // "EXISTS" + case symbol_kind::S_FAIL: // "FAIL" + case symbol_kind::S_FALSE: // "FALSE" + case symbol_kind::S_FILTER: // "FILTER" + case symbol_kind::S_FOLLOWING: // "FOLLOWING" + case symbol_kind::S_FOREIGN: // "FOREIGN" + case symbol_kind::S_GENERATED: // "GENERATED" + case symbol_kind::S_GLOB: // "GLOB" + case symbol_kind::S_IF: // "IF" + case symbol_kind::S_IGNORE: // "IGNORE" + case symbol_kind::S_IMMEDIATE: // "IMMEDIATE" + case symbol_kind::S_IN: // "IN" + case symbol_kind::S_INDEX: // "INDEX" + case symbol_kind::S_INITIALLY: // "INITIALLY" + case symbol_kind::S_INSERT: // "INSERT" + case symbol_kind::S_IS: // "IS" + case symbol_kind::S_ISNULL: // "ISNULL" + case symbol_kind::S_KEY: // "KEY" + case symbol_kind::S_LIKE: // "LIKE" + case symbol_kind::S_MATCH: // "MATCH" + case symbol_kind::S_NO: // "NO" + case symbol_kind::S_NOT: // "NOT" + case symbol_kind::S_NOTNULL: // "NOTNULL" + case symbol_kind::S_NULL: // "NULL" + case symbol_kind::S_ON: // "ON" + case symbol_kind::S_OR: // "OR" + case symbol_kind::S_OVER: // "OVER" + case symbol_kind::S_PARTITION: // "PARTITION" + case symbol_kind::S_PRECEDING: // "PRECEDING" + case symbol_kind::S_PRIMARY: // "PRIMARY" + case symbol_kind::S_RAISE: // "RAISE" + case symbol_kind::S_RANGE: // "RANGE" + case symbol_kind::S_REFERENCES: // "REFERENCES" + case symbol_kind::S_REGEXP: // "REGEXP" + case symbol_kind::S_REPLACE: // "REPLACE" + case symbol_kind::S_RESTRICT: // "RESTRICT" + case symbol_kind::S_RETURNING: // "RETURNING" + case symbol_kind::S_ROLLBACK: // "ROLLBACK" + case symbol_kind::S_ROWID: // "ROWID" + case symbol_kind::S_ROWS: // "ROWS" + case symbol_kind::S_SELECT: // "SELECT" + case symbol_kind::S_SET: // "SET" + case symbol_kind::S_STORED: // "STORED" + case symbol_kind::S_TABLE: // "TABLE" + case symbol_kind::S_TEMP: // "TEMP" + case symbol_kind::S_TEMPORARY: // "TEMPORARY" + case symbol_kind::S_THEN: // "THEN" + case symbol_kind::S_TRUE: // "TRUE" + case symbol_kind::S_UNBOUNDED: // "UNBOUNDED" + case symbol_kind::S_UNIQUE: // "UNIQUE" + case symbol_kind::S_UPDATE: // "UPDATE" + case symbol_kind::S_USING: // "USING" + case symbol_kind::S_VIRTUAL: // "VIRTUAL" + case symbol_kind::S_WHEN: // "WHEN" + case symbol_kind::S_WHERE: // "WHERE" + case symbol_kind::S_WITHOUT: // "WITHOUT" + case symbol_kind::S_IDENTIFIER: // "identifier" + case symbol_kind::S_NUMERIC: // "numeric" + case symbol_kind::S_STRINGLITERAL: // "string literal" + case symbol_kind::S_QUOTEDLITERAL: // "quoted literal" + case symbol_kind::S_BLOBLITERAL: // "blob literal" + case symbol_kind::S_BINDPARAMETER: // "bind parameter" + case symbol_kind::S_literalvalue: // literalvalue + case symbol_kind::S_id: // id + case symbol_kind::S_allowed_keywords_as_identifier: // allowed_keywords_as_identifier + case symbol_kind::S_tableid: // tableid + case symbol_kind::S_columnid: // columnid + case symbol_kind::S_signednumber: // signednumber + case symbol_kind::S_signednumber_or_numeric: // signednumber_or_numeric + case symbol_kind::S_typename_namelist: // typename_namelist + case symbol_kind::S_type_name: // type_name + case symbol_kind::S_unary_expr: // unary_expr + case symbol_kind::S_binary_expr: // binary_expr + case symbol_kind::S_like_expr: // like_expr + case symbol_kind::S_exprlist_expr: // exprlist_expr + case symbol_kind::S_function_expr: // function_expr + case symbol_kind::S_isnull_expr: // isnull_expr + case symbol_kind::S_between_expr: // between_expr + case symbol_kind::S_in_expr: // in_expr + case symbol_kind::S_whenthenlist_expr: // whenthenlist_expr + case symbol_kind::S_case_expr: // case_expr + case symbol_kind::S_raise_expr: // raise_expr + case symbol_kind::S_expr: // expr + case symbol_kind::S_select_stmt: // select_stmt + case symbol_kind::S_optional_sort_order: // optional_sort_order + case symbol_kind::S_optional_where: // optional_where + case symbol_kind::S_tableid_with_uninteresting_schema: // tableid_with_uninteresting_schema + case symbol_kind::S_optional_exprlist_with_paren: // optional_exprlist_with_paren + case symbol_kind::S_optional_conflictclause: // optional_conflictclause + case symbol_kind::S_optional_typename: // optional_typename + case symbol_kind::S_optional_storage_identifier: // optional_storage_identifier + case symbol_kind::S_optional_constraintname: // optional_constraintname + case symbol_kind::S_fk_clause_part: // fk_clause_part + case symbol_kind::S_fk_clause_part_list: // fk_clause_part_list + case symbol_kind::S_optional_fk_clause: // optional_fk_clause value.copy< std::string > (that.value); break; - case 161: // columndef_list + case symbol_kind::S_columndef_list: // columndef_list value.copy< std::vector > (that.value); break; @@ -795,178 +806,179 @@ namespace sqlb { namespace parser { state = that.state; switch (that.kind ()) { - case 160: // columndef + case symbol_kind::S_columndef: // columndef value.move< ColumndefData > (that.value); break; - case 142: // optional_if_not_exists - case 144: // optional_unique - case 152: // optional_temporary - case 153: // optional_withoutrowid - case 157: // optional_always_generated + case symbol_kind::S_optional_if_not_exists: // optional_if_not_exists + case symbol_kind::S_optional_unique: // optional_unique + case symbol_kind::S_optional_temporary: // optional_temporary + case symbol_kind::S_optional_withoutrowid: // optional_withoutrowid + case symbol_kind::S_optional_always_generated: // optional_always_generated value.move< bool > (that.value); break; - case 158: // columnconstraint - case 168: // tableconstraint + case symbol_kind::S_columnconstraint: // columnconstraint + case symbol_kind::S_tableconstraint: // tableconstraint value.move< sqlb::ConstraintPtr > (that.value); break; - case 159: // columnconstraint_list - case 169: // tableconstraint_list - case 170: // optional_tableconstraint_list - value.move< sqlb::ConstraintSet > (that.value); + case symbol_kind::S_columnconstraint_list: // columnconstraint_list + case symbol_kind::S_tableconstraint_list: // tableconstraint_list + case symbol_kind::S_optional_tableconstraint_list: // optional_tableconstraint_list + value.move< sqlb::ConstraintVector > (that.value); break; - case 149: // createindex_stmt + case symbol_kind::S_createindex_stmt: // createindex_stmt value.move< sqlb::IndexPtr > (that.value); break; - case 147: // indexed_column + case symbol_kind::S_indexed_column: // indexed_column value.move< sqlb::IndexedColumn > (that.value); break; - case 148: // indexed_column_list + case symbol_kind::S_indexed_column_list: // indexed_column_list value.move< sqlb::IndexedColumnVector > (that.value); break; - case 163: // columnid_list - case 164: // optional_columnid_with_paren_list + case symbol_kind::S_columnid_list: // columnid_list + case symbol_kind::S_optional_columnid_with_paren_list: // optional_columnid_with_paren_list value.move< sqlb::StringVector > (that.value); break; - case 151: // createvirtualtable_stmt - case 171: // createtable_stmt + case symbol_kind::S_createvirtualtable_stmt: // createvirtualtable_stmt + case symbol_kind::S_createtable_stmt: // createtable_stmt value.move< sqlb::TablePtr > (that.value); break; - case 27: // "ABORT" - case 28: // "ACTION" - case 29: // "ALWAYS" - case 30: // "AND" - case 31: // "AND BETWEEN" - case 32: // "AS" - case 33: // "ASC" - case 34: // "AUTOINCREMENT" - case 35: // "BETWEEN" - case 36: // "CASCADE" - case 37: // "CASE" - case 38: // "CAST" - case 39: // "CHECK" - case 40: // "COLLATE" - case 41: // "CONFLICT" - case 42: // "CONSTRAINT" - case 43: // "CREATE" - case 44: // "CURRENT_DATE" - case 45: // "CURRENT_TIME" - case 46: // "CURRENT_TIMESTAMP" - case 47: // "DEFAULT" - case 48: // "DEFERRABLE" - case 49: // "DEFERRED" - case 50: // "DELETE" - case 51: // "DESC" - case 52: // "DISTINCT" - case 53: // "ELSE" - case 54: // "END" - case 55: // "ESCAPE" - case 56: // "EXISTS" - case 57: // "FAIL" - case 58: // "FALSE" - case 59: // "FILTER" - case 60: // "FOLLOWING" - case 61: // "FOREIGN" - case 62: // "GENERATED" - case 63: // "GLOB" - case 64: // "IF" - case 65: // "IGNORE" - case 66: // "IMMEDIATE" - case 67: // "IN" - case 68: // "INDEX" - case 69: // "INITIALLY" - case 70: // "INSERT" - case 71: // "IS" - case 72: // "ISNULL" - case 73: // "KEY" - case 74: // "LIKE" - case 75: // "MATCH" - case 76: // "NO" - case 77: // "NOT" - case 78: // "NOTNULL" - case 79: // "NULL" - case 80: // "ON" - case 81: // "OR" - case 82: // "OVER" - case 83: // "PARTITION" - case 84: // "PRECEDING" - case 85: // "PRIMARY" - case 86: // "RAISE" - case 87: // "RANGE" - case 88: // "REFERENCES" - case 89: // "REGEXP" - case 90: // "REPLACE" - case 91: // "RESTRICT" - case 92: // "ROLLBACK" - case 93: // "ROWID" - case 94: // "ROWS" - case 95: // "SELECT" - case 96: // "SET" - case 97: // "STORED" - case 98: // "TABLE" - case 99: // "TEMP" - case 100: // "TEMPORARY" - case 101: // "THEN" - case 102: // "TRUE" - case 103: // "UNBOUNDED" - case 104: // "UNIQUE" - case 105: // "UPDATE" - case 106: // "USING" - case 107: // "VIRTUAL" - case 108: // "WHEN" - case 109: // "WHERE" - case 110: // "WITHOUT" - case 111: // "identifier" - case 112: // "numeric" - case 113: // "string literal" - case 114: // "quoted literal" - case 115: // "blob literal" - case 116: // "bind parameter" - case 120: // literalvalue - case 121: // id - case 122: // allowed_keywords_as_identifier - case 123: // tableid - case 124: // columnid - case 125: // signednumber - case 126: // signednumber_or_numeric - case 127: // typename_namelist - case 128: // type_name - case 129: // unary_expr - case 130: // binary_expr - case 131: // like_expr - case 132: // exprlist_expr - case 133: // function_expr - case 134: // isnull_expr - case 135: // between_expr - case 136: // in_expr - case 137: // whenthenlist_expr - case 138: // case_expr - case 139: // raise_expr - case 140: // expr - case 141: // select_stmt - case 143: // optional_sort_order - case 145: // optional_where - case 146: // tableid_with_uninteresting_schema - case 150: // optional_exprlist_with_paren - case 154: // optional_conflictclause - case 155: // optional_typename - case 156: // optional_storage_identifier - case 162: // optional_constraintname - case 165: // fk_clause_part - case 166: // fk_clause_part_list - case 167: // optional_fk_clause + case symbol_kind::S_ABORT: // "ABORT" + case symbol_kind::S_ACTION: // "ACTION" + case symbol_kind::S_ALWAYS: // "ALWAYS" + case symbol_kind::S_AND: // "AND" + case symbol_kind::S_AND_BETWEEN: // "AND BETWEEN" + case symbol_kind::S_AS: // "AS" + case symbol_kind::S_ASC: // "ASC" + case symbol_kind::S_AUTOINCREMENT: // "AUTOINCREMENT" + case symbol_kind::S_BETWEEN: // "BETWEEN" + case symbol_kind::S_CASCADE: // "CASCADE" + case symbol_kind::S_CASE: // "CASE" + case symbol_kind::S_CAST: // "CAST" + case symbol_kind::S_CHECK: // "CHECK" + case symbol_kind::S_COLLATE: // "COLLATE" + case symbol_kind::S_CONFLICT: // "CONFLICT" + case symbol_kind::S_CONSTRAINT: // "CONSTRAINT" + case symbol_kind::S_CREATE: // "CREATE" + case symbol_kind::S_CURRENT_DATE: // "CURRENT_DATE" + case symbol_kind::S_CURRENT_TIME: // "CURRENT_TIME" + case symbol_kind::S_CURRENT_TIMESTAMP: // "CURRENT_TIMESTAMP" + case symbol_kind::S_DEFAULT: // "DEFAULT" + case symbol_kind::S_DEFERRABLE: // "DEFERRABLE" + case symbol_kind::S_DEFERRED: // "DEFERRED" + case symbol_kind::S_DELETE: // "DELETE" + case symbol_kind::S_DESC: // "DESC" + case symbol_kind::S_DISTINCT: // "DISTINCT" + case symbol_kind::S_ELSE: // "ELSE" + case symbol_kind::S_END: // "END" + case symbol_kind::S_ESCAPE: // "ESCAPE" + case symbol_kind::S_EXISTS: // "EXISTS" + case symbol_kind::S_FAIL: // "FAIL" + case symbol_kind::S_FALSE: // "FALSE" + case symbol_kind::S_FILTER: // "FILTER" + case symbol_kind::S_FOLLOWING: // "FOLLOWING" + case symbol_kind::S_FOREIGN: // "FOREIGN" + case symbol_kind::S_GENERATED: // "GENERATED" + case symbol_kind::S_GLOB: // "GLOB" + case symbol_kind::S_IF: // "IF" + case symbol_kind::S_IGNORE: // "IGNORE" + case symbol_kind::S_IMMEDIATE: // "IMMEDIATE" + case symbol_kind::S_IN: // "IN" + case symbol_kind::S_INDEX: // "INDEX" + case symbol_kind::S_INITIALLY: // "INITIALLY" + case symbol_kind::S_INSERT: // "INSERT" + case symbol_kind::S_IS: // "IS" + case symbol_kind::S_ISNULL: // "ISNULL" + case symbol_kind::S_KEY: // "KEY" + case symbol_kind::S_LIKE: // "LIKE" + case symbol_kind::S_MATCH: // "MATCH" + case symbol_kind::S_NO: // "NO" + case symbol_kind::S_NOT: // "NOT" + case symbol_kind::S_NOTNULL: // "NOTNULL" + case symbol_kind::S_NULL: // "NULL" + case symbol_kind::S_ON: // "ON" + case symbol_kind::S_OR: // "OR" + case symbol_kind::S_OVER: // "OVER" + case symbol_kind::S_PARTITION: // "PARTITION" + case symbol_kind::S_PRECEDING: // "PRECEDING" + case symbol_kind::S_PRIMARY: // "PRIMARY" + case symbol_kind::S_RAISE: // "RAISE" + case symbol_kind::S_RANGE: // "RANGE" + case symbol_kind::S_REFERENCES: // "REFERENCES" + case symbol_kind::S_REGEXP: // "REGEXP" + case symbol_kind::S_REPLACE: // "REPLACE" + case symbol_kind::S_RESTRICT: // "RESTRICT" + case symbol_kind::S_RETURNING: // "RETURNING" + case symbol_kind::S_ROLLBACK: // "ROLLBACK" + case symbol_kind::S_ROWID: // "ROWID" + case symbol_kind::S_ROWS: // "ROWS" + case symbol_kind::S_SELECT: // "SELECT" + case symbol_kind::S_SET: // "SET" + case symbol_kind::S_STORED: // "STORED" + case symbol_kind::S_TABLE: // "TABLE" + case symbol_kind::S_TEMP: // "TEMP" + case symbol_kind::S_TEMPORARY: // "TEMPORARY" + case symbol_kind::S_THEN: // "THEN" + case symbol_kind::S_TRUE: // "TRUE" + case symbol_kind::S_UNBOUNDED: // "UNBOUNDED" + case symbol_kind::S_UNIQUE: // "UNIQUE" + case symbol_kind::S_UPDATE: // "UPDATE" + case symbol_kind::S_USING: // "USING" + case symbol_kind::S_VIRTUAL: // "VIRTUAL" + case symbol_kind::S_WHEN: // "WHEN" + case symbol_kind::S_WHERE: // "WHERE" + case symbol_kind::S_WITHOUT: // "WITHOUT" + case symbol_kind::S_IDENTIFIER: // "identifier" + case symbol_kind::S_NUMERIC: // "numeric" + case symbol_kind::S_STRINGLITERAL: // "string literal" + case symbol_kind::S_QUOTEDLITERAL: // "quoted literal" + case symbol_kind::S_BLOBLITERAL: // "blob literal" + case symbol_kind::S_BINDPARAMETER: // "bind parameter" + case symbol_kind::S_literalvalue: // literalvalue + case symbol_kind::S_id: // id + case symbol_kind::S_allowed_keywords_as_identifier: // allowed_keywords_as_identifier + case symbol_kind::S_tableid: // tableid + case symbol_kind::S_columnid: // columnid + case symbol_kind::S_signednumber: // signednumber + case symbol_kind::S_signednumber_or_numeric: // signednumber_or_numeric + case symbol_kind::S_typename_namelist: // typename_namelist + case symbol_kind::S_type_name: // type_name + case symbol_kind::S_unary_expr: // unary_expr + case symbol_kind::S_binary_expr: // binary_expr + case symbol_kind::S_like_expr: // like_expr + case symbol_kind::S_exprlist_expr: // exprlist_expr + case symbol_kind::S_function_expr: // function_expr + case symbol_kind::S_isnull_expr: // isnull_expr + case symbol_kind::S_between_expr: // between_expr + case symbol_kind::S_in_expr: // in_expr + case symbol_kind::S_whenthenlist_expr: // whenthenlist_expr + case symbol_kind::S_case_expr: // case_expr + case symbol_kind::S_raise_expr: // raise_expr + case symbol_kind::S_expr: // expr + case symbol_kind::S_select_stmt: // select_stmt + case symbol_kind::S_optional_sort_order: // optional_sort_order + case symbol_kind::S_optional_where: // optional_where + case symbol_kind::S_tableid_with_uninteresting_schema: // tableid_with_uninteresting_schema + case symbol_kind::S_optional_exprlist_with_paren: // optional_exprlist_with_paren + case symbol_kind::S_optional_conflictclause: // optional_conflictclause + case symbol_kind::S_optional_typename: // optional_typename + case symbol_kind::S_optional_storage_identifier: // optional_storage_identifier + case symbol_kind::S_optional_constraintname: // optional_constraintname + case symbol_kind::S_fk_clause_part: // fk_clause_part + case symbol_kind::S_fk_clause_part_list: // fk_clause_part_list + case symbol_kind::S_optional_fk_clause: // optional_fk_clause value.move< std::string > (that.value); break; - case 161: // columndef_list + case symbol_kind::S_columndef_list: // columndef_list value.move< std::vector > (that.value); break; @@ -995,7 +1007,7 @@ namespace sqlb { namespace parser { parser::yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const { std::ostream& yyoutput = yyo; - YYUSE (yyoutput); + YY_USE (yyoutput); if (yysym.empty ()) yyo << "empty symbol"; else @@ -1004,7 +1016,7 @@ namespace sqlb { namespace parser { yyo << (yykind < YYNTOKENS ? "token" : "nterm") << ' ' << yysym.name () << " (" << yysym.location << ": "; - YYUSE (yykind); + YY_USE (yykind); yyo << ')'; } } @@ -1229,178 +1241,179 @@ namespace sqlb { namespace parser { when using variants. */ switch (yyr1_[yyn]) { - case 160: // columndef + case symbol_kind::S_columndef: // columndef yylhs.value.emplace< ColumndefData > (); break; - case 142: // optional_if_not_exists - case 144: // optional_unique - case 152: // optional_temporary - case 153: // optional_withoutrowid - case 157: // optional_always_generated + case symbol_kind::S_optional_if_not_exists: // optional_if_not_exists + case symbol_kind::S_optional_unique: // optional_unique + case symbol_kind::S_optional_temporary: // optional_temporary + case symbol_kind::S_optional_withoutrowid: // optional_withoutrowid + case symbol_kind::S_optional_always_generated: // optional_always_generated yylhs.value.emplace< bool > (); break; - case 158: // columnconstraint - case 168: // tableconstraint + case symbol_kind::S_columnconstraint: // columnconstraint + case symbol_kind::S_tableconstraint: // tableconstraint yylhs.value.emplace< sqlb::ConstraintPtr > (); break; - case 159: // columnconstraint_list - case 169: // tableconstraint_list - case 170: // optional_tableconstraint_list - yylhs.value.emplace< sqlb::ConstraintSet > (); + case symbol_kind::S_columnconstraint_list: // columnconstraint_list + case symbol_kind::S_tableconstraint_list: // tableconstraint_list + case symbol_kind::S_optional_tableconstraint_list: // optional_tableconstraint_list + yylhs.value.emplace< sqlb::ConstraintVector > (); break; - case 149: // createindex_stmt + case symbol_kind::S_createindex_stmt: // createindex_stmt yylhs.value.emplace< sqlb::IndexPtr > (); break; - case 147: // indexed_column + case symbol_kind::S_indexed_column: // indexed_column yylhs.value.emplace< sqlb::IndexedColumn > (); break; - case 148: // indexed_column_list + case symbol_kind::S_indexed_column_list: // indexed_column_list yylhs.value.emplace< sqlb::IndexedColumnVector > (); break; - case 163: // columnid_list - case 164: // optional_columnid_with_paren_list + case symbol_kind::S_columnid_list: // columnid_list + case symbol_kind::S_optional_columnid_with_paren_list: // optional_columnid_with_paren_list yylhs.value.emplace< sqlb::StringVector > (); break; - case 151: // createvirtualtable_stmt - case 171: // createtable_stmt + case symbol_kind::S_createvirtualtable_stmt: // createvirtualtable_stmt + case symbol_kind::S_createtable_stmt: // createtable_stmt yylhs.value.emplace< sqlb::TablePtr > (); break; - case 27: // "ABORT" - case 28: // "ACTION" - case 29: // "ALWAYS" - case 30: // "AND" - case 31: // "AND BETWEEN" - case 32: // "AS" - case 33: // "ASC" - case 34: // "AUTOINCREMENT" - case 35: // "BETWEEN" - case 36: // "CASCADE" - case 37: // "CASE" - case 38: // "CAST" - case 39: // "CHECK" - case 40: // "COLLATE" - case 41: // "CONFLICT" - case 42: // "CONSTRAINT" - case 43: // "CREATE" - case 44: // "CURRENT_DATE" - case 45: // "CURRENT_TIME" - case 46: // "CURRENT_TIMESTAMP" - case 47: // "DEFAULT" - case 48: // "DEFERRABLE" - case 49: // "DEFERRED" - case 50: // "DELETE" - case 51: // "DESC" - case 52: // "DISTINCT" - case 53: // "ELSE" - case 54: // "END" - case 55: // "ESCAPE" - case 56: // "EXISTS" - case 57: // "FAIL" - case 58: // "FALSE" - case 59: // "FILTER" - case 60: // "FOLLOWING" - case 61: // "FOREIGN" - case 62: // "GENERATED" - case 63: // "GLOB" - case 64: // "IF" - case 65: // "IGNORE" - case 66: // "IMMEDIATE" - case 67: // "IN" - case 68: // "INDEX" - case 69: // "INITIALLY" - case 70: // "INSERT" - case 71: // "IS" - case 72: // "ISNULL" - case 73: // "KEY" - case 74: // "LIKE" - case 75: // "MATCH" - case 76: // "NO" - case 77: // "NOT" - case 78: // "NOTNULL" - case 79: // "NULL" - case 80: // "ON" - case 81: // "OR" - case 82: // "OVER" - case 83: // "PARTITION" - case 84: // "PRECEDING" - case 85: // "PRIMARY" - case 86: // "RAISE" - case 87: // "RANGE" - case 88: // "REFERENCES" - case 89: // "REGEXP" - case 90: // "REPLACE" - case 91: // "RESTRICT" - case 92: // "ROLLBACK" - case 93: // "ROWID" - case 94: // "ROWS" - case 95: // "SELECT" - case 96: // "SET" - case 97: // "STORED" - case 98: // "TABLE" - case 99: // "TEMP" - case 100: // "TEMPORARY" - case 101: // "THEN" - case 102: // "TRUE" - case 103: // "UNBOUNDED" - case 104: // "UNIQUE" - case 105: // "UPDATE" - case 106: // "USING" - case 107: // "VIRTUAL" - case 108: // "WHEN" - case 109: // "WHERE" - case 110: // "WITHOUT" - case 111: // "identifier" - case 112: // "numeric" - case 113: // "string literal" - case 114: // "quoted literal" - case 115: // "blob literal" - case 116: // "bind parameter" - case 120: // literalvalue - case 121: // id - case 122: // allowed_keywords_as_identifier - case 123: // tableid - case 124: // columnid - case 125: // signednumber - case 126: // signednumber_or_numeric - case 127: // typename_namelist - case 128: // type_name - case 129: // unary_expr - case 130: // binary_expr - case 131: // like_expr - case 132: // exprlist_expr - case 133: // function_expr - case 134: // isnull_expr - case 135: // between_expr - case 136: // in_expr - case 137: // whenthenlist_expr - case 138: // case_expr - case 139: // raise_expr - case 140: // expr - case 141: // select_stmt - case 143: // optional_sort_order - case 145: // optional_where - case 146: // tableid_with_uninteresting_schema - case 150: // optional_exprlist_with_paren - case 154: // optional_conflictclause - case 155: // optional_typename - case 156: // optional_storage_identifier - case 162: // optional_constraintname - case 165: // fk_clause_part - case 166: // fk_clause_part_list - case 167: // optional_fk_clause + case symbol_kind::S_ABORT: // "ABORT" + case symbol_kind::S_ACTION: // "ACTION" + case symbol_kind::S_ALWAYS: // "ALWAYS" + case symbol_kind::S_AND: // "AND" + case symbol_kind::S_AND_BETWEEN: // "AND BETWEEN" + case symbol_kind::S_AS: // "AS" + case symbol_kind::S_ASC: // "ASC" + case symbol_kind::S_AUTOINCREMENT: // "AUTOINCREMENT" + case symbol_kind::S_BETWEEN: // "BETWEEN" + case symbol_kind::S_CASCADE: // "CASCADE" + case symbol_kind::S_CASE: // "CASE" + case symbol_kind::S_CAST: // "CAST" + case symbol_kind::S_CHECK: // "CHECK" + case symbol_kind::S_COLLATE: // "COLLATE" + case symbol_kind::S_CONFLICT: // "CONFLICT" + case symbol_kind::S_CONSTRAINT: // "CONSTRAINT" + case symbol_kind::S_CREATE: // "CREATE" + case symbol_kind::S_CURRENT_DATE: // "CURRENT_DATE" + case symbol_kind::S_CURRENT_TIME: // "CURRENT_TIME" + case symbol_kind::S_CURRENT_TIMESTAMP: // "CURRENT_TIMESTAMP" + case symbol_kind::S_DEFAULT: // "DEFAULT" + case symbol_kind::S_DEFERRABLE: // "DEFERRABLE" + case symbol_kind::S_DEFERRED: // "DEFERRED" + case symbol_kind::S_DELETE: // "DELETE" + case symbol_kind::S_DESC: // "DESC" + case symbol_kind::S_DISTINCT: // "DISTINCT" + case symbol_kind::S_ELSE: // "ELSE" + case symbol_kind::S_END: // "END" + case symbol_kind::S_ESCAPE: // "ESCAPE" + case symbol_kind::S_EXISTS: // "EXISTS" + case symbol_kind::S_FAIL: // "FAIL" + case symbol_kind::S_FALSE: // "FALSE" + case symbol_kind::S_FILTER: // "FILTER" + case symbol_kind::S_FOLLOWING: // "FOLLOWING" + case symbol_kind::S_FOREIGN: // "FOREIGN" + case symbol_kind::S_GENERATED: // "GENERATED" + case symbol_kind::S_GLOB: // "GLOB" + case symbol_kind::S_IF: // "IF" + case symbol_kind::S_IGNORE: // "IGNORE" + case symbol_kind::S_IMMEDIATE: // "IMMEDIATE" + case symbol_kind::S_IN: // "IN" + case symbol_kind::S_INDEX: // "INDEX" + case symbol_kind::S_INITIALLY: // "INITIALLY" + case symbol_kind::S_INSERT: // "INSERT" + case symbol_kind::S_IS: // "IS" + case symbol_kind::S_ISNULL: // "ISNULL" + case symbol_kind::S_KEY: // "KEY" + case symbol_kind::S_LIKE: // "LIKE" + case symbol_kind::S_MATCH: // "MATCH" + case symbol_kind::S_NO: // "NO" + case symbol_kind::S_NOT: // "NOT" + case symbol_kind::S_NOTNULL: // "NOTNULL" + case symbol_kind::S_NULL: // "NULL" + case symbol_kind::S_ON: // "ON" + case symbol_kind::S_OR: // "OR" + case symbol_kind::S_OVER: // "OVER" + case symbol_kind::S_PARTITION: // "PARTITION" + case symbol_kind::S_PRECEDING: // "PRECEDING" + case symbol_kind::S_PRIMARY: // "PRIMARY" + case symbol_kind::S_RAISE: // "RAISE" + case symbol_kind::S_RANGE: // "RANGE" + case symbol_kind::S_REFERENCES: // "REFERENCES" + case symbol_kind::S_REGEXP: // "REGEXP" + case symbol_kind::S_REPLACE: // "REPLACE" + case symbol_kind::S_RESTRICT: // "RESTRICT" + case symbol_kind::S_RETURNING: // "RETURNING" + case symbol_kind::S_ROLLBACK: // "ROLLBACK" + case symbol_kind::S_ROWID: // "ROWID" + case symbol_kind::S_ROWS: // "ROWS" + case symbol_kind::S_SELECT: // "SELECT" + case symbol_kind::S_SET: // "SET" + case symbol_kind::S_STORED: // "STORED" + case symbol_kind::S_TABLE: // "TABLE" + case symbol_kind::S_TEMP: // "TEMP" + case symbol_kind::S_TEMPORARY: // "TEMPORARY" + case symbol_kind::S_THEN: // "THEN" + case symbol_kind::S_TRUE: // "TRUE" + case symbol_kind::S_UNBOUNDED: // "UNBOUNDED" + case symbol_kind::S_UNIQUE: // "UNIQUE" + case symbol_kind::S_UPDATE: // "UPDATE" + case symbol_kind::S_USING: // "USING" + case symbol_kind::S_VIRTUAL: // "VIRTUAL" + case symbol_kind::S_WHEN: // "WHEN" + case symbol_kind::S_WHERE: // "WHERE" + case symbol_kind::S_WITHOUT: // "WITHOUT" + case symbol_kind::S_IDENTIFIER: // "identifier" + case symbol_kind::S_NUMERIC: // "numeric" + case symbol_kind::S_STRINGLITERAL: // "string literal" + case symbol_kind::S_QUOTEDLITERAL: // "quoted literal" + case symbol_kind::S_BLOBLITERAL: // "blob literal" + case symbol_kind::S_BINDPARAMETER: // "bind parameter" + case symbol_kind::S_literalvalue: // literalvalue + case symbol_kind::S_id: // id + case symbol_kind::S_allowed_keywords_as_identifier: // allowed_keywords_as_identifier + case symbol_kind::S_tableid: // tableid + case symbol_kind::S_columnid: // columnid + case symbol_kind::S_signednumber: // signednumber + case symbol_kind::S_signednumber_or_numeric: // signednumber_or_numeric + case symbol_kind::S_typename_namelist: // typename_namelist + case symbol_kind::S_type_name: // type_name + case symbol_kind::S_unary_expr: // unary_expr + case symbol_kind::S_binary_expr: // binary_expr + case symbol_kind::S_like_expr: // like_expr + case symbol_kind::S_exprlist_expr: // exprlist_expr + case symbol_kind::S_function_expr: // function_expr + case symbol_kind::S_isnull_expr: // isnull_expr + case symbol_kind::S_between_expr: // between_expr + case symbol_kind::S_in_expr: // in_expr + case symbol_kind::S_whenthenlist_expr: // whenthenlist_expr + case symbol_kind::S_case_expr: // case_expr + case symbol_kind::S_raise_expr: // raise_expr + case symbol_kind::S_expr: // expr + case symbol_kind::S_select_stmt: // select_stmt + case symbol_kind::S_optional_sort_order: // optional_sort_order + case symbol_kind::S_optional_where: // optional_where + case symbol_kind::S_tableid_with_uninteresting_schema: // tableid_with_uninteresting_schema + case symbol_kind::S_optional_exprlist_with_paren: // optional_exprlist_with_paren + case symbol_kind::S_optional_conflictclause: // optional_conflictclause + case symbol_kind::S_optional_typename: // optional_typename + case symbol_kind::S_optional_storage_identifier: // optional_storage_identifier + case symbol_kind::S_optional_constraintname: // optional_constraintname + case symbol_kind::S_fk_clause_part: // fk_clause_part + case symbol_kind::S_fk_clause_part_list: // fk_clause_part_list + case symbol_kind::S_optional_fk_clause: // optional_fk_clause yylhs.value.emplace< std::string > (); break; - case 161: // columndef_list + case symbol_kind::S_columndef_list: // columndef_list yylhs.value.emplace< std::vector > (); break; @@ -1424,1112 +1437,1118 @@ namespace sqlb { namespace parser { { switch (yyn) { - case 4: -#line 259 "sqlite3_parser.yy" + case 4: // statement: createindex_stmt +#line 268 "sqlite3_parser.yy" { drv.result = yystack_[0].value.as < sqlb::IndexPtr > (); } -#line 1431 "sqlite3_parser.cpp" +#line 1444 "sqlite3_parser.cpp" break; - case 5: -#line 260 "sqlite3_parser.yy" + case 5: // statement: createvirtualtable_stmt +#line 269 "sqlite3_parser.yy" { drv.result = yystack_[0].value.as < sqlb::TablePtr > (); } -#line 1437 "sqlite3_parser.cpp" +#line 1450 "sqlite3_parser.cpp" break; - case 6: -#line 261 "sqlite3_parser.yy" + case 6: // statement: createtable_stmt +#line 270 "sqlite3_parser.yy" { drv.result = yystack_[0].value.as < sqlb::TablePtr > (); } -#line 1443 "sqlite3_parser.cpp" +#line 1456 "sqlite3_parser.cpp" break; - case 7: -#line 269 "sqlite3_parser.yy" + case 7: // literalvalue: "numeric" +#line 278 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1449 "sqlite3_parser.cpp" - break; - - case 8: -#line 270 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1455 "sqlite3_parser.cpp" - break; - - case 9: -#line 271 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1461 "sqlite3_parser.cpp" +#line 1462 "sqlite3_parser.cpp" break; - case 10: -#line 272 "sqlite3_parser.yy" + case 8: // literalvalue: "string literal" +#line 279 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1467 "sqlite3_parser.cpp" +#line 1468 "sqlite3_parser.cpp" break; - case 11: -#line 273 "sqlite3_parser.yy" + case 9: // literalvalue: "blob literal" +#line 280 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1473 "sqlite3_parser.cpp" +#line 1474 "sqlite3_parser.cpp" break; - case 12: -#line 274 "sqlite3_parser.yy" + case 10: // literalvalue: "NULL" +#line 281 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1479 "sqlite3_parser.cpp" +#line 1480 "sqlite3_parser.cpp" break; - case 13: -#line 275 "sqlite3_parser.yy" + case 11: // literalvalue: "TRUE" +#line 282 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1485 "sqlite3_parser.cpp" +#line 1486 "sqlite3_parser.cpp" break; - case 14: -#line 276 "sqlite3_parser.yy" + case 12: // literalvalue: "FALSE" +#line 283 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1491 "sqlite3_parser.cpp" +#line 1492 "sqlite3_parser.cpp" break; - case 15: -#line 277 "sqlite3_parser.yy" + case 13: // literalvalue: "CURRENT_TIME" +#line 284 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1497 "sqlite3_parser.cpp" - break; - - case 16: -#line 281 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1503 "sqlite3_parser.cpp" +#line 1498 "sqlite3_parser.cpp" break; - case 17: -#line 282 "sqlite3_parser.yy" + case 14: // literalvalue: "CURRENT_DATE" +#line 285 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1509 "sqlite3_parser.cpp" +#line 1504 "sqlite3_parser.cpp" break; - case 18: -#line 287 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1515 "sqlite3_parser.cpp" - break; - - case 19: -#line 288 "sqlite3_parser.yy" + case 15: // literalvalue: "CURRENT_TIMESTAMP" +#line 286 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1521 "sqlite3_parser.cpp" +#line 1510 "sqlite3_parser.cpp" break; - case 20: -#line 289 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1527 "sqlite3_parser.cpp" - break; - - case 21: + case 16: // id: "identifier" #line 290 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1533 "sqlite3_parser.cpp" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1516 "sqlite3_parser.cpp" break; - case 22: + case 17: // id: "quoted literal" #line 291 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1539 "sqlite3_parser.cpp" +#line 1522 "sqlite3_parser.cpp" break; - case 23: -#line 292 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1545 "sqlite3_parser.cpp" - break; - - case 24: -#line 293 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1551 "sqlite3_parser.cpp" - break; - - case 25: -#line 294 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1557 "sqlite3_parser.cpp" - break; - - case 26: -#line 295 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1563 "sqlite3_parser.cpp" - break; - - case 27: + case 18: // allowed_keywords_as_identifier: "ABORT" #line 296 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1569 "sqlite3_parser.cpp" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1528 "sqlite3_parser.cpp" break; - case 28: + case 19: // allowed_keywords_as_identifier: "ACTION" #line 297 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1575 "sqlite3_parser.cpp" +#line 1534 "sqlite3_parser.cpp" break; - case 29: + case 20: // allowed_keywords_as_identifier: "ALWAYS" #line 298 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1581 "sqlite3_parser.cpp" +#line 1540 "sqlite3_parser.cpp" break; - case 30: + case 21: // allowed_keywords_as_identifier: "ASC" #line 299 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1587 "sqlite3_parser.cpp" +#line 1546 "sqlite3_parser.cpp" break; - case 31: + case 22: // allowed_keywords_as_identifier: "CASCADE" #line 300 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1593 "sqlite3_parser.cpp" +#line 1552 "sqlite3_parser.cpp" break; - case 32: + case 23: // allowed_keywords_as_identifier: "CAST" #line 301 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1599 "sqlite3_parser.cpp" +#line 1558 "sqlite3_parser.cpp" break; - case 33: + case 24: // allowed_keywords_as_identifier: "CONFLICT" #line 302 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1605 "sqlite3_parser.cpp" +#line 1564 "sqlite3_parser.cpp" break; - case 34: + case 25: // allowed_keywords_as_identifier: "DEFERRED" #line 303 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1611 "sqlite3_parser.cpp" +#line 1570 "sqlite3_parser.cpp" break; - case 35: + case 26: // allowed_keywords_as_identifier: "DESC" #line 304 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1617 "sqlite3_parser.cpp" +#line 1576 "sqlite3_parser.cpp" break; - case 36: + case 27: // allowed_keywords_as_identifier: "END" #line 305 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1623 "sqlite3_parser.cpp" +#line 1582 "sqlite3_parser.cpp" break; - case 37: + case 28: // allowed_keywords_as_identifier: "FAIL" #line 306 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1629 "sqlite3_parser.cpp" +#line 1588 "sqlite3_parser.cpp" break; - case 38: + case 29: // allowed_keywords_as_identifier: "FILTER" #line 307 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1635 "sqlite3_parser.cpp" +#line 1594 "sqlite3_parser.cpp" break; - case 39: + case 30: // allowed_keywords_as_identifier: "FOLLOWING" #line 308 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1641 "sqlite3_parser.cpp" +#line 1600 "sqlite3_parser.cpp" break; - case 40: + case 31: // allowed_keywords_as_identifier: "GENERATED" #line 309 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1647 "sqlite3_parser.cpp" +#line 1606 "sqlite3_parser.cpp" break; - case 41: + case 32: // allowed_keywords_as_identifier: "GLOB" #line 310 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1653 "sqlite3_parser.cpp" +#line 1612 "sqlite3_parser.cpp" break; - case 42: + case 33: // allowed_keywords_as_identifier: "KEY" #line 311 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1659 "sqlite3_parser.cpp" +#line 1618 "sqlite3_parser.cpp" break; - case 43: + case 34: // allowed_keywords_as_identifier: "LIKE" #line 312 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1665 "sqlite3_parser.cpp" +#line 1624 "sqlite3_parser.cpp" break; - case 44: + case 35: // allowed_keywords_as_identifier: "IGNORE" #line 313 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1671 "sqlite3_parser.cpp" +#line 1630 "sqlite3_parser.cpp" break; - case 45: + case 36: // allowed_keywords_as_identifier: "INITIALLY" #line 314 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1677 "sqlite3_parser.cpp" +#line 1636 "sqlite3_parser.cpp" break; - case 46: + case 37: // allowed_keywords_as_identifier: "IMMEDIATE" #line 315 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1683 "sqlite3_parser.cpp" +#line 1642 "sqlite3_parser.cpp" break; - case 47: + case 38: // allowed_keywords_as_identifier: "MATCH" #line 316 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1689 "sqlite3_parser.cpp" +#line 1648 "sqlite3_parser.cpp" break; - case 48: + case 39: // allowed_keywords_as_identifier: "NO" #line 317 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1695 "sqlite3_parser.cpp" +#line 1654 "sqlite3_parser.cpp" break; - case 49: + case 40: // allowed_keywords_as_identifier: "OVER" #line 318 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1701 "sqlite3_parser.cpp" +#line 1660 "sqlite3_parser.cpp" break; - case 50: + case 41: // allowed_keywords_as_identifier: "PARTITION" #line 319 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1707 "sqlite3_parser.cpp" +#line 1666 "sqlite3_parser.cpp" break; - case 51: + case 42: // allowed_keywords_as_identifier: "PRECEDING" #line 320 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1713 "sqlite3_parser.cpp" +#line 1672 "sqlite3_parser.cpp" break; - case 52: + case 43: // allowed_keywords_as_identifier: "RAISE" #line 321 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1719 "sqlite3_parser.cpp" +#line 1678 "sqlite3_parser.cpp" break; - case 53: + case 44: // allowed_keywords_as_identifier: "RANGE" #line 322 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1725 "sqlite3_parser.cpp" +#line 1684 "sqlite3_parser.cpp" break; - case 54: + case 45: // allowed_keywords_as_identifier: "REGEXP" #line 323 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1731 "sqlite3_parser.cpp" +#line 1690 "sqlite3_parser.cpp" break; - case 55: + case 46: // allowed_keywords_as_identifier: "REPLACE" #line 324 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1737 "sqlite3_parser.cpp" +#line 1696 "sqlite3_parser.cpp" break; - case 56: + case 47: // allowed_keywords_as_identifier: "RESTRICT" #line 325 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1743 "sqlite3_parser.cpp" +#line 1702 "sqlite3_parser.cpp" break; - case 57: + case 48: // allowed_keywords_as_identifier: "RETURNING" +#line 326 "sqlite3_parser.yy" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1708 "sqlite3_parser.cpp" + break; + + case 49: // allowed_keywords_as_identifier: "ROLLBACK" +#line 327 "sqlite3_parser.yy" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1714 "sqlite3_parser.cpp" + break; + + case 50: // allowed_keywords_as_identifier: "ROWID" +#line 328 "sqlite3_parser.yy" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1720 "sqlite3_parser.cpp" + break; + + case 51: // allowed_keywords_as_identifier: "ROWS" #line 329 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1749 "sqlite3_parser.cpp" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1726 "sqlite3_parser.cpp" break; - case 58: + case 52: // allowed_keywords_as_identifier: "STORED" #line 330 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1755 "sqlite3_parser.cpp" +#line 1732 "sqlite3_parser.cpp" break; - case 59: + case 53: // allowed_keywords_as_identifier: "TEMPORARY" #line 331 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1761 "sqlite3_parser.cpp" +#line 1738 "sqlite3_parser.cpp" break; - case 60: + case 54: // allowed_keywords_as_identifier: "TEMP" #line 332 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1767 "sqlite3_parser.cpp" +#line 1744 "sqlite3_parser.cpp" break; - case 61: + case 55: // allowed_keywords_as_identifier: "UNBOUNDED" #line 333 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1773 "sqlite3_parser.cpp" +#line 1750 "sqlite3_parser.cpp" break; - case 62: + case 56: // allowed_keywords_as_identifier: "VIRTUAL" #line 334 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = unquote_text(yystack_[0].value.as < std::string > (), '\''); } -#line 1779 "sqlite3_parser.cpp" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1756 "sqlite3_parser.cpp" break; - case 63: -#line 338 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1785 "sqlite3_parser.cpp" + case 57: // allowed_keywords_as_identifier: "WITHOUT" +#line 335 "sqlite3_parser.yy" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1762 "sqlite3_parser.cpp" break; - case 64: + case 58: // tableid: allowed_keywords_as_identifier #line 339 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1791 "sqlite3_parser.cpp" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1768 "sqlite3_parser.cpp" break; - case 65: + case 59: // tableid: "CURRENT_TIME" #line 340 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1797 "sqlite3_parser.cpp" +#line 1774 "sqlite3_parser.cpp" break; - case 66: + case 60: // tableid: "CURRENT_DATE" #line 341 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1803 "sqlite3_parser.cpp" +#line 1780 "sqlite3_parser.cpp" break; - case 67: + case 61: // tableid: "CURRENT_TIMESTAMP" #line 342 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1809 "sqlite3_parser.cpp" +#line 1786 "sqlite3_parser.cpp" break; - case 68: + case 62: // tableid: id #line 343 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1815 "sqlite3_parser.cpp" +#line 1792 "sqlite3_parser.cpp" break; - case 69: + case 63: // tableid: "string literal" #line 344 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = unquote_text(yystack_[0].value.as < std::string > (), '\''); } -#line 1821 "sqlite3_parser.cpp" +#line 1798 "sqlite3_parser.cpp" break; - case 70: + case 64: // columnid: allowed_keywords_as_identifier #line 348 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = "+" + yystack_[0].value.as < std::string > (); } -#line 1827 "sqlite3_parser.cpp" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1804 "sqlite3_parser.cpp" break; - case 71: + case 65: // columnid: "CURRENT_TIME" #line 349 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = "-" + yystack_[0].value.as < std::string > (); } -#line 1833 "sqlite3_parser.cpp" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1810 "sqlite3_parser.cpp" + break; + + case 66: // columnid: "CURRENT_DATE" +#line 350 "sqlite3_parser.yy" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1816 "sqlite3_parser.cpp" + break; + + case 67: // columnid: "CURRENT_TIMESTAMP" +#line 351 "sqlite3_parser.yy" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1822 "sqlite3_parser.cpp" + break; + + case 68: // columnid: "IF" +#line 352 "sqlite3_parser.yy" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1828 "sqlite3_parser.cpp" break; - case 72: + case 69: // columnid: id #line 353 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1839 "sqlite3_parser.cpp" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1834 "sqlite3_parser.cpp" break; - case 73: + case 70: // columnid: "string literal" #line 354 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1845 "sqlite3_parser.cpp" + { yylhs.value.as < std::string > () = unquote_text(yystack_[0].value.as < std::string > (), '\''); } +#line 1840 "sqlite3_parser.cpp" break; - case 74: + case 71: // signednumber: "+" "numeric" #line 358 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1851 "sqlite3_parser.cpp" + { yylhs.value.as < std::string > () = "+" + yystack_[0].value.as < std::string > (); } +#line 1846 "sqlite3_parser.cpp" break; - case 75: + case 72: // signednumber: "-" "numeric" #line 359 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 1857 "sqlite3_parser.cpp" + { yylhs.value.as < std::string > () = "-" + yystack_[0].value.as < std::string > (); } +#line 1852 "sqlite3_parser.cpp" break; - case 76: + case 73: // signednumber_or_numeric: signednumber #line 363 "sqlite3_parser.yy" - { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 1863 "sqlite3_parser.cpp" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1858 "sqlite3_parser.cpp" break; - case 77: + case 74: // signednumber_or_numeric: "numeric" #line 364 "sqlite3_parser.yy" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1864 "sqlite3_parser.cpp" + break; + + case 75: // typename_namelist: tableid +#line 368 "sqlite3_parser.yy" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1870 "sqlite3_parser.cpp" + break; + + case 76: // typename_namelist: typename_namelist tableid +#line 369 "sqlite3_parser.yy" + { yylhs.value.as < std::string > () = yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } +#line 1876 "sqlite3_parser.cpp" + break; + + case 77: // type_name: typename_namelist +#line 373 "sqlite3_parser.yy" + { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } +#line 1882 "sqlite3_parser.cpp" + break; + + case 78: // type_name: typename_namelist "(" signednumber_or_numeric ")" +#line 374 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + "(" + yystack_[1].value.as < std::string > () + ")"; } -#line 1869 "sqlite3_parser.cpp" +#line 1888 "sqlite3_parser.cpp" break; - case 78: -#line 365 "sqlite3_parser.yy" + case 79: // type_name: typename_namelist "(" signednumber_or_numeric "," signednumber_or_numeric ")" +#line 375 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[5].value.as < std::string > () + "(" + yystack_[3].value.as < std::string > () + ", " + yystack_[1].value.as < std::string > () + ")"; } -#line 1875 "sqlite3_parser.cpp" +#line 1894 "sqlite3_parser.cpp" break; - case 79: -#line 369 "sqlite3_parser.yy" + case 80: // unary_expr: "-" expr +#line 379 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "-" + yystack_[0].value.as < std::string > (); } -#line 1881 "sqlite3_parser.cpp" +#line 1900 "sqlite3_parser.cpp" break; - case 80: -#line 370 "sqlite3_parser.yy" + case 81: // unary_expr: "+" expr +#line 380 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "+" + yystack_[0].value.as < std::string > (); } -#line 1887 "sqlite3_parser.cpp" +#line 1906 "sqlite3_parser.cpp" break; - case 81: -#line 371 "sqlite3_parser.yy" + case 82: // unary_expr: "~" expr +#line 381 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "~" + yystack_[0].value.as < std::string > (); } -#line 1893 "sqlite3_parser.cpp" +#line 1912 "sqlite3_parser.cpp" break; - case 82: -#line 372 "sqlite3_parser.yy" + case 83: // unary_expr: "NOT" expr +#line 382 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "NOT " + yystack_[0].value.as < std::string > (); } -#line 1899 "sqlite3_parser.cpp" +#line 1918 "sqlite3_parser.cpp" break; - case 83: -#line 376 "sqlite3_parser.yy" + case 84: // binary_expr: expr "||" expr +#line 386 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " || " + yystack_[0].value.as < std::string > (); } -#line 1905 "sqlite3_parser.cpp" +#line 1924 "sqlite3_parser.cpp" break; - case 84: -#line 377 "sqlite3_parser.yy" + case 85: // binary_expr: expr "*" expr +#line 387 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " * " + yystack_[0].value.as < std::string > (); } -#line 1911 "sqlite3_parser.cpp" +#line 1930 "sqlite3_parser.cpp" break; - case 85: -#line 378 "sqlite3_parser.yy" + case 86: // binary_expr: expr "/" expr +#line 388 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " / " + yystack_[0].value.as < std::string > (); } -#line 1917 "sqlite3_parser.cpp" +#line 1936 "sqlite3_parser.cpp" break; - case 86: -#line 379 "sqlite3_parser.yy" + case 87: // binary_expr: expr "%" expr +#line 389 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " % " + yystack_[0].value.as < std::string > (); } -#line 1923 "sqlite3_parser.cpp" +#line 1942 "sqlite3_parser.cpp" break; - case 87: -#line 380 "sqlite3_parser.yy" + case 88: // binary_expr: expr "+" expr +#line 390 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " + " + yystack_[0].value.as < std::string > (); } -#line 1929 "sqlite3_parser.cpp" +#line 1948 "sqlite3_parser.cpp" break; - case 88: -#line 381 "sqlite3_parser.yy" + case 89: // binary_expr: expr "-" expr +#line 391 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " - " + yystack_[0].value.as < std::string > (); } -#line 1935 "sqlite3_parser.cpp" +#line 1954 "sqlite3_parser.cpp" break; - case 89: -#line 382 "sqlite3_parser.yy" + case 90: // binary_expr: expr "<<" expr +#line 392 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " << " + yystack_[0].value.as < std::string > (); } -#line 1941 "sqlite3_parser.cpp" +#line 1960 "sqlite3_parser.cpp" break; - case 90: -#line 383 "sqlite3_parser.yy" + case 91: // binary_expr: expr ">>" expr +#line 393 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " >> " + yystack_[0].value.as < std::string > (); } -#line 1947 "sqlite3_parser.cpp" +#line 1966 "sqlite3_parser.cpp" break; - case 91: -#line 384 "sqlite3_parser.yy" + case 92: // binary_expr: expr "&" expr +#line 394 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " & " + yystack_[0].value.as < std::string > (); } -#line 1953 "sqlite3_parser.cpp" +#line 1972 "sqlite3_parser.cpp" break; - case 92: -#line 385 "sqlite3_parser.yy" + case 93: // binary_expr: expr "|" expr +#line 395 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " | " + yystack_[0].value.as < std::string > (); } -#line 1959 "sqlite3_parser.cpp" +#line 1978 "sqlite3_parser.cpp" break; - case 93: -#line 386 "sqlite3_parser.yy" + case 94: // binary_expr: expr "<" expr +#line 396 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " < " + yystack_[0].value.as < std::string > (); } -#line 1965 "sqlite3_parser.cpp" +#line 1984 "sqlite3_parser.cpp" break; - case 94: -#line 387 "sqlite3_parser.yy" + case 95: // binary_expr: expr "<=" expr +#line 397 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " <= " + yystack_[0].value.as < std::string > (); } -#line 1971 "sqlite3_parser.cpp" +#line 1990 "sqlite3_parser.cpp" break; - case 95: -#line 388 "sqlite3_parser.yy" + case 96: // binary_expr: expr ">" expr +#line 398 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " > " + yystack_[0].value.as < std::string > (); } -#line 1977 "sqlite3_parser.cpp" +#line 1996 "sqlite3_parser.cpp" break; - case 96: -#line 389 "sqlite3_parser.yy" + case 97: // binary_expr: expr ">=" expr +#line 399 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " >= " + yystack_[0].value.as < std::string > (); } -#line 1983 "sqlite3_parser.cpp" +#line 2002 "sqlite3_parser.cpp" break; - case 97: -#line 390 "sqlite3_parser.yy" + case 98: // binary_expr: expr "=" expr +#line 400 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " = " + yystack_[0].value.as < std::string > (); } -#line 1989 "sqlite3_parser.cpp" +#line 2008 "sqlite3_parser.cpp" break; - case 98: -#line 391 "sqlite3_parser.yy" + case 99: // binary_expr: expr "==" expr +#line 401 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " == " + yystack_[0].value.as < std::string > (); } -#line 1995 "sqlite3_parser.cpp" +#line 2014 "sqlite3_parser.cpp" break; - case 99: -#line 392 "sqlite3_parser.yy" + case 100: // binary_expr: expr "!=" expr +#line 402 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " != " + yystack_[0].value.as < std::string > (); } -#line 2001 "sqlite3_parser.cpp" +#line 2020 "sqlite3_parser.cpp" break; - case 100: -#line 393 "sqlite3_parser.yy" + case 101: // binary_expr: expr "<>" expr +#line 403 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " <> " + yystack_[0].value.as < std::string > (); } -#line 2007 "sqlite3_parser.cpp" +#line 2026 "sqlite3_parser.cpp" break; - case 101: -#line 394 "sqlite3_parser.yy" + case 102: // binary_expr: expr "IS" expr +#line 404 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " IS " + yystack_[0].value.as < std::string > (); } -#line 2013 "sqlite3_parser.cpp" +#line 2032 "sqlite3_parser.cpp" break; - case 102: -#line 395 "sqlite3_parser.yy" + case 103: // binary_expr: expr "AND" expr +#line 405 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " AND " + yystack_[0].value.as < std::string > (); } -#line 2019 "sqlite3_parser.cpp" +#line 2038 "sqlite3_parser.cpp" break; - case 103: -#line 396 "sqlite3_parser.yy" + case 104: // binary_expr: expr "OR" expr +#line 406 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " OR " + yystack_[0].value.as < std::string > (); } -#line 2025 "sqlite3_parser.cpp" +#line 2044 "sqlite3_parser.cpp" break; - case 104: -#line 400 "sqlite3_parser.yy" + case 105: // like_expr: expr "LIKE" expr +#line 410 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " LIKE " + yystack_[0].value.as < std::string > (); } -#line 2031 "sqlite3_parser.cpp" +#line 2050 "sqlite3_parser.cpp" break; - case 105: -#line 401 "sqlite3_parser.yy" + case 106: // like_expr: expr "GLOB" expr +#line 411 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " GLOB " + yystack_[0].value.as < std::string > (); } -#line 2037 "sqlite3_parser.cpp" +#line 2056 "sqlite3_parser.cpp" break; - case 106: -#line 402 "sqlite3_parser.yy" + case 107: // like_expr: expr "MATCH" expr +#line 412 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " MATCH " + yystack_[0].value.as < std::string > (); } -#line 2043 "sqlite3_parser.cpp" +#line 2062 "sqlite3_parser.cpp" break; - case 107: -#line 403 "sqlite3_parser.yy" + case 108: // like_expr: expr "REGEXP" expr +#line 413 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " REGEXP " + yystack_[0].value.as < std::string > (); } -#line 2049 "sqlite3_parser.cpp" +#line 2068 "sqlite3_parser.cpp" break; - case 108: -#line 404 "sqlite3_parser.yy" + case 109: // like_expr: expr "NOT" "LIKE" expr +#line 414 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " NOT LIKE " + yystack_[0].value.as < std::string > (); } -#line 2055 "sqlite3_parser.cpp" +#line 2074 "sqlite3_parser.cpp" break; - case 109: -#line 405 "sqlite3_parser.yy" + case 110: // like_expr: expr "NOT" "GLOB" expr +#line 415 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " NOT GLOB " + yystack_[0].value.as < std::string > (); } -#line 2061 "sqlite3_parser.cpp" +#line 2080 "sqlite3_parser.cpp" break; - case 110: -#line 406 "sqlite3_parser.yy" + case 111: // like_expr: expr "NOT" "MATCH" expr +#line 416 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " NOT MATCH " + yystack_[0].value.as < std::string > (); } -#line 2067 "sqlite3_parser.cpp" +#line 2086 "sqlite3_parser.cpp" break; - case 111: -#line 407 "sqlite3_parser.yy" + case 112: // like_expr: expr "NOT" "REGEXP" expr +#line 417 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " NOT REGEXP " + yystack_[0].value.as < std::string > (); } -#line 2073 "sqlite3_parser.cpp" +#line 2092 "sqlite3_parser.cpp" break; - case 112: -#line 408 "sqlite3_parser.yy" + case 113: // like_expr: expr "LIKE" expr "ESCAPE" expr +#line 418 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[4].value.as < std::string > () + " LIKE " + yystack_[2].value.as < std::string > () + " ESCAPE " + yystack_[0].value.as < std::string > (); } -#line 2079 "sqlite3_parser.cpp" +#line 2098 "sqlite3_parser.cpp" break; - case 113: -#line 409 "sqlite3_parser.yy" + case 114: // like_expr: expr "GLOB" expr "ESCAPE" expr +#line 419 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[4].value.as < std::string > () + " GLOB " + yystack_[2].value.as < std::string > () + " ESCAPE " + yystack_[0].value.as < std::string > (); } -#line 2085 "sqlite3_parser.cpp" +#line 2104 "sqlite3_parser.cpp" break; - case 114: -#line 410 "sqlite3_parser.yy" + case 115: // like_expr: expr "MATCH" expr "ESCAPE" expr +#line 420 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[4].value.as < std::string > () + " MATCH " + yystack_[2].value.as < std::string > () + " ESCAPE " + yystack_[0].value.as < std::string > (); } -#line 2091 "sqlite3_parser.cpp" +#line 2110 "sqlite3_parser.cpp" break; - case 115: -#line 411 "sqlite3_parser.yy" + case 116: // like_expr: expr "REGEXP" expr "ESCAPE" expr +#line 421 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[4].value.as < std::string > () + " REGEXP " + yystack_[2].value.as < std::string > () + " ESCAPE " + yystack_[0].value.as < std::string > (); } -#line 2097 "sqlite3_parser.cpp" +#line 2116 "sqlite3_parser.cpp" break; - case 116: -#line 412 "sqlite3_parser.yy" + case 117: // like_expr: expr "NOT" "LIKE" expr "ESCAPE" expr +#line 422 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[5].value.as < std::string > () + " NOT LIKE " + yystack_[3].value.as < std::string > () + " ESCAPE " + yystack_[0].value.as < std::string > (); } -#line 2103 "sqlite3_parser.cpp" +#line 2122 "sqlite3_parser.cpp" break; - case 117: -#line 413 "sqlite3_parser.yy" + case 118: // like_expr: expr "NOT" "GLOB" expr "ESCAPE" expr +#line 423 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[5].value.as < std::string > () + " NOT GLOB " + yystack_[3].value.as < std::string > () + " ESCAPE " + yystack_[0].value.as < std::string > (); } -#line 2109 "sqlite3_parser.cpp" +#line 2128 "sqlite3_parser.cpp" break; - case 118: -#line 414 "sqlite3_parser.yy" + case 119: // like_expr: expr "NOT" "MATCH" expr "ESCAPE" expr +#line 424 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[5].value.as < std::string > () + " NOT MATCH " + yystack_[3].value.as < std::string > () + " ESCAPE " + yystack_[0].value.as < std::string > (); } -#line 2115 "sqlite3_parser.cpp" +#line 2134 "sqlite3_parser.cpp" break; - case 119: -#line 415 "sqlite3_parser.yy" + case 120: // like_expr: expr "NOT" "REGEXP" expr "ESCAPE" expr +#line 425 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[5].value.as < std::string > () + " NOT REGEXP " + yystack_[3].value.as < std::string > () + " ESCAPE " + yystack_[0].value.as < std::string > (); } -#line 2121 "sqlite3_parser.cpp" +#line 2140 "sqlite3_parser.cpp" break; - case 120: -#line 419 "sqlite3_parser.yy" + case 121: // exprlist_expr: expr +#line 429 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2127 "sqlite3_parser.cpp" +#line 2146 "sqlite3_parser.cpp" break; - case 121: -#line 420 "sqlite3_parser.yy" + case 122: // exprlist_expr: exprlist_expr "," expr +#line 430 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + ", " + yystack_[0].value.as < std::string > (); } -#line 2133 "sqlite3_parser.cpp" +#line 2152 "sqlite3_parser.cpp" break; - case 122: -#line 424 "sqlite3_parser.yy" + case 123: // function_expr: id "(" exprlist_expr ")" +#line 434 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + "(" + yystack_[1].value.as < std::string > () + ")"; } -#line 2139 "sqlite3_parser.cpp" +#line 2158 "sqlite3_parser.cpp" break; - case 123: -#line 425 "sqlite3_parser.yy" + case 124: // function_expr: id "(" "DISTINCT" exprlist_expr ")" +#line 435 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[4].value.as < std::string > () + "(DISTINCT " + yystack_[1].value.as < std::string > () + ")"; } -#line 2145 "sqlite3_parser.cpp" +#line 2164 "sqlite3_parser.cpp" break; - case 124: -#line 426 "sqlite3_parser.yy" + case 125: // function_expr: id "(" ")" +#line 436 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + "()"; } -#line 2151 "sqlite3_parser.cpp" +#line 2170 "sqlite3_parser.cpp" break; - case 125: -#line 427 "sqlite3_parser.yy" + case 126: // function_expr: id "(" "*" ")" +#line 437 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + "(*)"; } -#line 2157 "sqlite3_parser.cpp" +#line 2176 "sqlite3_parser.cpp" break; - case 126: -#line 431 "sqlite3_parser.yy" + case 127: // isnull_expr: expr "ISNULL" +#line 441 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[1].value.as < std::string > () + " ISNULL"; } -#line 2163 "sqlite3_parser.cpp" +#line 2182 "sqlite3_parser.cpp" break; - case 127: -#line 432 "sqlite3_parser.yy" + case 128: // isnull_expr: expr "NOTNULL" +#line 442 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[1].value.as < std::string > () + " NOTNULL"; } -#line 2169 "sqlite3_parser.cpp" +#line 2188 "sqlite3_parser.cpp" break; - case 128: -#line 433 "sqlite3_parser.yy" + case 129: // isnull_expr: expr "NOT" "NULL" +#line 443 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " NOT NULL"; } -#line 2175 "sqlite3_parser.cpp" +#line 2194 "sqlite3_parser.cpp" break; - case 129: -#line 437 "sqlite3_parser.yy" + case 130: // between_expr: expr "BETWEEN" expr "AND BETWEEN" expr +#line 447 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[4].value.as < std::string > () + " BETWEEN " + yystack_[2].value.as < std::string > () + " AND " + yystack_[0].value.as < std::string > (); } -#line 2181 "sqlite3_parser.cpp" +#line 2200 "sqlite3_parser.cpp" break; - case 130: -#line 438 "sqlite3_parser.yy" + case 131: // between_expr: expr "NOT" "BETWEEN" expr "AND BETWEEN" expr +#line 448 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[5].value.as < std::string > () + " NOT BETWEEN " + yystack_[2].value.as < std::string > () + " AND " + yystack_[0].value.as < std::string > (); } -#line 2187 "sqlite3_parser.cpp" +#line 2206 "sqlite3_parser.cpp" break; - case 131: -#line 442 "sqlite3_parser.yy" + case 132: // in_expr: expr "IN" "(" ")" +#line 452 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " IN ()"; } -#line 2193 "sqlite3_parser.cpp" +#line 2212 "sqlite3_parser.cpp" break; - case 132: -#line 443 "sqlite3_parser.yy" + case 133: // in_expr: expr "IN" "(" select_stmt ")" +#line 453 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[4].value.as < std::string > () + " IN (" + yystack_[1].value.as < std::string > () + ")"; } -#line 2199 "sqlite3_parser.cpp" +#line 2218 "sqlite3_parser.cpp" break; - case 133: -#line 444 "sqlite3_parser.yy" + case 134: // in_expr: expr "IN" "(" exprlist_expr ")" +#line 454 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[4].value.as < std::string > () + " IN (" + yystack_[1].value.as < std::string > () + ")"; } -#line 2205 "sqlite3_parser.cpp" +#line 2224 "sqlite3_parser.cpp" break; - case 134: -#line 445 "sqlite3_parser.yy" + case 135: // in_expr: expr "IN" id "." tableid +#line 455 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[4].value.as < std::string > () + " IN " + sqlb::escapeIdentifier(yystack_[2].value.as < std::string > ()) + "." + sqlb::escapeIdentifier(yystack_[0].value.as < std::string > ()); } -#line 2211 "sqlite3_parser.cpp" +#line 2230 "sqlite3_parser.cpp" break; - case 135: -#line 446 "sqlite3_parser.yy" + case 136: // in_expr: expr "IN" tableid +#line 456 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " IN " + sqlb::escapeIdentifier(yystack_[0].value.as < std::string > ()); } -#line 2217 "sqlite3_parser.cpp" +#line 2236 "sqlite3_parser.cpp" break; - case 136: -#line 447 "sqlite3_parser.yy" + case 137: // in_expr: expr "IN" id "." id "(" ")" +#line 457 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[6].value.as < std::string > () + " IN " + sqlb::escapeIdentifier(yystack_[4].value.as < std::string > ()) + "." + yystack_[2].value.as < std::string > () + "()"; } -#line 2223 "sqlite3_parser.cpp" +#line 2242 "sqlite3_parser.cpp" break; - case 137: -#line 448 "sqlite3_parser.yy" + case 138: // in_expr: expr "IN" id "." id "(" exprlist_expr ")" +#line 458 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[7].value.as < std::string > () + " IN " + sqlb::escapeIdentifier(yystack_[5].value.as < std::string > ()) + "." + yystack_[3].value.as < std::string > () + "(" + yystack_[1].value.as < std::string > () + ")"; } -#line 2229 "sqlite3_parser.cpp" +#line 2248 "sqlite3_parser.cpp" break; - case 138: -#line 449 "sqlite3_parser.yy" + case 139: // in_expr: expr "IN" id "(" exprlist_expr ")" +#line 459 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[5].value.as < std::string > () + " IN " + yystack_[3].value.as < std::string > () + "(" + yystack_[1].value.as < std::string > () + ")"; } -#line 2235 "sqlite3_parser.cpp" +#line 2254 "sqlite3_parser.cpp" break; - case 139: -#line 450 "sqlite3_parser.yy" + case 140: // in_expr: expr "NOT" "IN" "(" ")" +#line 460 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[4].value.as < std::string > () + " NOT IN ()"; } -#line 2241 "sqlite3_parser.cpp" +#line 2260 "sqlite3_parser.cpp" break; - case 140: -#line 451 "sqlite3_parser.yy" + case 141: // in_expr: expr "NOT" "IN" "(" select_stmt ")" +#line 461 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[5].value.as < std::string > () + " NOT IN (" + yystack_[1].value.as < std::string > () + ")"; } -#line 2247 "sqlite3_parser.cpp" +#line 2266 "sqlite3_parser.cpp" break; - case 141: -#line 452 "sqlite3_parser.yy" + case 142: // in_expr: expr "NOT" "IN" "(" exprlist_expr ")" +#line 462 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[5].value.as < std::string > () + " NOT IN (" + yystack_[1].value.as < std::string > () + ")"; } -#line 2253 "sqlite3_parser.cpp" +#line 2272 "sqlite3_parser.cpp" break; - case 142: -#line 453 "sqlite3_parser.yy" + case 143: // in_expr: expr "NOT" "IN" id "." tableid +#line 463 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[5].value.as < std::string > () + " NOT IN " + sqlb::escapeIdentifier(yystack_[2].value.as < std::string > ()) + "." + sqlb::escapeIdentifier(yystack_[0].value.as < std::string > ()); } -#line 2259 "sqlite3_parser.cpp" +#line 2278 "sqlite3_parser.cpp" break; - case 143: -#line 454 "sqlite3_parser.yy" + case 144: // in_expr: expr "NOT" "IN" tableid +#line 464 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " NOT IN " + sqlb::escapeIdentifier(yystack_[0].value.as < std::string > ()); } -#line 2265 "sqlite3_parser.cpp" +#line 2284 "sqlite3_parser.cpp" break; - case 144: -#line 455 "sqlite3_parser.yy" + case 145: // in_expr: expr "NOT" "IN" id "." id "(" ")" +#line 465 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[7].value.as < std::string > () + " NOT IN " + sqlb::escapeIdentifier(yystack_[4].value.as < std::string > ()) + "." + yystack_[2].value.as < std::string > () + "()"; } -#line 2271 "sqlite3_parser.cpp" +#line 2290 "sqlite3_parser.cpp" break; - case 145: -#line 456 "sqlite3_parser.yy" + case 146: // in_expr: expr "NOT" "IN" id "." id "(" exprlist_expr ")" +#line 466 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[8].value.as < std::string > () + " NOT IN " + sqlb::escapeIdentifier(yystack_[5].value.as < std::string > ()) + "." + yystack_[3].value.as < std::string > () + "(" + yystack_[1].value.as < std::string > () + ")"; } -#line 2277 "sqlite3_parser.cpp" +#line 2296 "sqlite3_parser.cpp" break; - case 146: -#line 457 "sqlite3_parser.yy" + case 147: // in_expr: expr "NOT" "IN" id "(" exprlist_expr ")" +#line 467 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[6].value.as < std::string > () + " NOT IN " + yystack_[3].value.as < std::string > () + "(" + yystack_[1].value.as < std::string > () + ")"; } -#line 2283 "sqlite3_parser.cpp" +#line 2302 "sqlite3_parser.cpp" break; - case 147: -#line 461 "sqlite3_parser.yy" + case 148: // whenthenlist_expr: "WHEN" expr "THEN" expr +#line 471 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "WHEN " + yystack_[2].value.as < std::string > () + " THEN " + yystack_[0].value.as < std::string > (); } -#line 2289 "sqlite3_parser.cpp" +#line 2308 "sqlite3_parser.cpp" break; - case 148: -#line 462 "sqlite3_parser.yy" + case 149: // whenthenlist_expr: whenthenlist_expr "WHEN" expr "THEN" expr +#line 472 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[4].value.as < std::string > () + " WHEN" + yystack_[2].value.as < std::string > () + " THEN " + yystack_[0].value.as < std::string > (); } -#line 2295 "sqlite3_parser.cpp" +#line 2314 "sqlite3_parser.cpp" break; - case 149: -#line 466 "sqlite3_parser.yy" + case 150: // case_expr: "CASE" expr whenthenlist_expr "ELSE" expr "END" +#line 476 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "CASE " + yystack_[4].value.as < std::string > () + " " + yystack_[3].value.as < std::string > () + " ELSE " + yystack_[1].value.as < std::string > () + " END"; } -#line 2301 "sqlite3_parser.cpp" +#line 2320 "sqlite3_parser.cpp" break; - case 150: -#line 467 "sqlite3_parser.yy" + case 151: // case_expr: "CASE" expr whenthenlist_expr "END" +#line 477 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "CASE " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " END"; } -#line 2307 "sqlite3_parser.cpp" +#line 2326 "sqlite3_parser.cpp" break; - case 151: -#line 468 "sqlite3_parser.yy" + case 152: // case_expr: "CASE" whenthenlist_expr "ELSE" expr "END" +#line 478 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "CASE " + yystack_[3].value.as < std::string > () + " ELSE " + yystack_[1].value.as < std::string > () + " END"; } -#line 2313 "sqlite3_parser.cpp" +#line 2332 "sqlite3_parser.cpp" break; - case 152: -#line 469 "sqlite3_parser.yy" + case 153: // case_expr: "CASE" whenthenlist_expr "END" +#line 479 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "CASE " + yystack_[1].value.as < std::string > () + " END"; } -#line 2319 "sqlite3_parser.cpp" +#line 2338 "sqlite3_parser.cpp" break; - case 153: -#line 473 "sqlite3_parser.yy" + case 154: // raise_expr: "RAISE" "(" "IGNORE" ")" +#line 483 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "RAISE(IGNORE)"; } -#line 2325 "sqlite3_parser.cpp" +#line 2344 "sqlite3_parser.cpp" break; - case 154: -#line 474 "sqlite3_parser.yy" + case 155: // raise_expr: "RAISE" "(" "ROLLBACK" "," "string literal" ")" +#line 484 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "RAISE(ROLLBACK, " + yystack_[1].value.as < std::string > () + ")"; } -#line 2331 "sqlite3_parser.cpp" +#line 2350 "sqlite3_parser.cpp" break; - case 155: -#line 475 "sqlite3_parser.yy" + case 156: // raise_expr: "RAISE" "(" "ABORT" "," "string literal" ")" +#line 485 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "RAISE(ABORT, " + yystack_[1].value.as < std::string > () + ")"; } -#line 2337 "sqlite3_parser.cpp" +#line 2356 "sqlite3_parser.cpp" break; - case 156: -#line 476 "sqlite3_parser.yy" + case 157: // raise_expr: "RAISE" "(" "FAIL" "," "string literal" ")" +#line 486 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "RAISE(FAIL, " + yystack_[1].value.as < std::string > () + ")"; } -#line 2343 "sqlite3_parser.cpp" +#line 2362 "sqlite3_parser.cpp" break; - case 157: -#line 480 "sqlite3_parser.yy" + case 158: // expr: literalvalue +#line 490 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2349 "sqlite3_parser.cpp" +#line 2368 "sqlite3_parser.cpp" break; - case 158: -#line 481 "sqlite3_parser.yy" + case 159: // expr: allowed_keywords_as_identifier +#line 491 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = sqlb::escapeIdentifier(yystack_[0].value.as < std::string > ()); } -#line 2355 "sqlite3_parser.cpp" +#line 2374 "sqlite3_parser.cpp" break; - case 159: -#line 482 "sqlite3_parser.yy" + case 160: // expr: "bind parameter" +#line 492 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2361 "sqlite3_parser.cpp" +#line 2380 "sqlite3_parser.cpp" break; - case 160: -#line 483 "sqlite3_parser.yy" + case 161: // expr: id "." id "." id +#line 493 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = sqlb::escapeIdentifier(yystack_[4].value.as < std::string > ()) + "." + sqlb::escapeIdentifier(yystack_[2].value.as < std::string > ()) + "." + sqlb::escapeIdentifier(yystack_[0].value.as < std::string > ()); } -#line 2367 "sqlite3_parser.cpp" +#line 2386 "sqlite3_parser.cpp" break; - case 161: -#line 484 "sqlite3_parser.yy" + case 162: // expr: id "." id +#line 494 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = sqlb::escapeIdentifier(yystack_[2].value.as < std::string > ()) + "." + sqlb::escapeIdentifier(yystack_[0].value.as < std::string > ()); } -#line 2373 "sqlite3_parser.cpp" +#line 2392 "sqlite3_parser.cpp" break; - case 162: -#line 485 "sqlite3_parser.yy" + case 163: // expr: id +#line 495 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = sqlb::escapeIdentifier(yystack_[0].value.as < std::string > ()); } -#line 2379 "sqlite3_parser.cpp" +#line 2398 "sqlite3_parser.cpp" break; - case 163: -#line 486 "sqlite3_parser.yy" + case 164: // expr: unary_expr +#line 496 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2385 "sqlite3_parser.cpp" +#line 2404 "sqlite3_parser.cpp" break; - case 164: -#line 487 "sqlite3_parser.yy" + case 165: // expr: binary_expr +#line 497 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2391 "sqlite3_parser.cpp" +#line 2410 "sqlite3_parser.cpp" break; - case 165: -#line 488 "sqlite3_parser.yy" + case 166: // expr: function_expr +#line 498 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2397 "sqlite3_parser.cpp" +#line 2416 "sqlite3_parser.cpp" break; - case 166: -#line 489 "sqlite3_parser.yy" + case 167: // expr: "(" exprlist_expr ")" +#line 499 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "(" + yystack_[1].value.as < std::string > () + ")"; } -#line 2403 "sqlite3_parser.cpp" +#line 2422 "sqlite3_parser.cpp" break; - case 167: -#line 490 "sqlite3_parser.yy" + case 168: // expr: "CAST" "(" expr "AS" type_name ")" +#line 500 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "CAST(" + yystack_[3].value.as < std::string > () + " AS " + yystack_[1].value.as < std::string > () + ")"; } -#line 2409 "sqlite3_parser.cpp" +#line 2428 "sqlite3_parser.cpp" break; - case 168: -#line 491 "sqlite3_parser.yy" + case 169: // expr: expr "COLLATE" id +#line 501 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " COLLATE " + yystack_[0].value.as < std::string > (); } -#line 2415 "sqlite3_parser.cpp" +#line 2434 "sqlite3_parser.cpp" break; - case 169: -#line 492 "sqlite3_parser.yy" + case 170: // expr: like_expr +#line 502 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2421 "sqlite3_parser.cpp" +#line 2440 "sqlite3_parser.cpp" break; - case 170: -#line 493 "sqlite3_parser.yy" + case 171: // expr: isnull_expr +#line 503 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2427 "sqlite3_parser.cpp" +#line 2446 "sqlite3_parser.cpp" break; - case 171: -#line 494 "sqlite3_parser.yy" + case 172: // expr: between_expr +#line 504 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2433 "sqlite3_parser.cpp" +#line 2452 "sqlite3_parser.cpp" break; - case 172: -#line 495 "sqlite3_parser.yy" + case 173: // expr: in_expr +#line 505 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2439 "sqlite3_parser.cpp" +#line 2458 "sqlite3_parser.cpp" break; - case 173: -#line 496 "sqlite3_parser.yy" + case 174: // expr: case_expr +#line 506 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2445 "sqlite3_parser.cpp" +#line 2464 "sqlite3_parser.cpp" break; - case 174: -#line 497 "sqlite3_parser.yy" + case 175: // expr: raise_expr +#line 507 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2451 "sqlite3_parser.cpp" +#line 2470 "sqlite3_parser.cpp" break; - case 175: -#line 506 "sqlite3_parser.yy" + case 176: // select_stmt: "SELECT" +#line 516 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "SELECT"; } -#line 2457 "sqlite3_parser.cpp" +#line 2476 "sqlite3_parser.cpp" break; - case 176: -#line 514 "sqlite3_parser.yy" + case 177: // optional_if_not_exists: %empty +#line 524 "sqlite3_parser.yy" { yylhs.value.as < bool > () = false; } -#line 2463 "sqlite3_parser.cpp" +#line 2482 "sqlite3_parser.cpp" break; - case 177: -#line 515 "sqlite3_parser.yy" + case 178: // optional_if_not_exists: "IF" "NOT" "EXISTS" +#line 525 "sqlite3_parser.yy" { yylhs.value.as < bool > () = true; } -#line 2469 "sqlite3_parser.cpp" +#line 2488 "sqlite3_parser.cpp" break; - case 178: -#line 519 "sqlite3_parser.yy" + case 179: // optional_sort_order: %empty +#line 529 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = ""; } -#line 2475 "sqlite3_parser.cpp" +#line 2494 "sqlite3_parser.cpp" break; - case 179: -#line 520 "sqlite3_parser.yy" + case 180: // optional_sort_order: "ASC" +#line 530 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "ASC"; } -#line 2481 "sqlite3_parser.cpp" +#line 2500 "sqlite3_parser.cpp" break; - case 180: -#line 521 "sqlite3_parser.yy" + case 181: // optional_sort_order: "DESC" +#line 531 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "DESC"; } -#line 2487 "sqlite3_parser.cpp" +#line 2506 "sqlite3_parser.cpp" break; - case 181: -#line 529 "sqlite3_parser.yy" + case 182: // optional_unique: %empty +#line 539 "sqlite3_parser.yy" { yylhs.value.as < bool > () = false; } -#line 2493 "sqlite3_parser.cpp" +#line 2512 "sqlite3_parser.cpp" break; - case 182: -#line 530 "sqlite3_parser.yy" + case 183: // optional_unique: "UNIQUE" +#line 540 "sqlite3_parser.yy" { yylhs.value.as < bool > () = true; } -#line 2499 "sqlite3_parser.cpp" +#line 2518 "sqlite3_parser.cpp" break; - case 183: -#line 534 "sqlite3_parser.yy" + case 184: // optional_where: %empty +#line 544 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = ""; } -#line 2505 "sqlite3_parser.cpp" +#line 2524 "sqlite3_parser.cpp" break; - case 184: -#line 535 "sqlite3_parser.yy" + case 185: // optional_where: "WHERE" expr +#line 545 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2511 "sqlite3_parser.cpp" +#line 2530 "sqlite3_parser.cpp" break; - case 185: -#line 539 "sqlite3_parser.yy" + case 186: // tableid_with_uninteresting_schema: id "." tableid +#line 549 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2517 "sqlite3_parser.cpp" +#line 2536 "sqlite3_parser.cpp" break; - case 186: -#line 540 "sqlite3_parser.yy" + case 187: // tableid_with_uninteresting_schema: "TEMP" "." tableid +#line 550 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2523 "sqlite3_parser.cpp" +#line 2542 "sqlite3_parser.cpp" break; - case 187: -#line 541 "sqlite3_parser.yy" + case 188: // tableid_with_uninteresting_schema: tableid +#line 551 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2529 "sqlite3_parser.cpp" +#line 2548 "sqlite3_parser.cpp" break; - case 188: -#line 545 "sqlite3_parser.yy" + case 189: // indexed_column: expr optional_sort_order +#line 555 "sqlite3_parser.yy" { // If the expression is only one column name and nothing else, treat it as a column name; otherwise as an expression. char quote = getIdentifierQuoteChar(); @@ -2541,23 +2560,23 @@ namespace sqlb { namespace parser { yylhs.value.as < sqlb::IndexedColumn > () = sqlb::IndexedColumn(yystack_[1].value.as < std::string > (), true, yystack_[0].value.as < std::string > ()); } } -#line 2545 "sqlite3_parser.cpp" +#line 2564 "sqlite3_parser.cpp" break; - case 189: -#line 559 "sqlite3_parser.yy" + case 190: // indexed_column_list: indexed_column +#line 569 "sqlite3_parser.yy" { yylhs.value.as < sqlb::IndexedColumnVector > () = sqlb::IndexedColumnVector(1, yystack_[0].value.as < sqlb::IndexedColumn > ()); } -#line 2551 "sqlite3_parser.cpp" +#line 2570 "sqlite3_parser.cpp" break; - case 190: -#line 560 "sqlite3_parser.yy" + case 191: // indexed_column_list: indexed_column_list "," indexed_column +#line 570 "sqlite3_parser.yy" { yylhs.value.as < sqlb::IndexedColumnVector > () = yystack_[2].value.as < sqlb::IndexedColumnVector > (); yylhs.value.as < sqlb::IndexedColumnVector > ().push_back(yystack_[0].value.as < sqlb::IndexedColumn > ()); } -#line 2557 "sqlite3_parser.cpp" +#line 2576 "sqlite3_parser.cpp" break; - case 191: -#line 564 "sqlite3_parser.yy" + case 192: // createindex_stmt: "CREATE" optional_unique "INDEX" optional_if_not_exists tableid_with_uninteresting_schema "ON" tableid "(" indexed_column_list ")" optional_where +#line 574 "sqlite3_parser.yy" { yylhs.value.as < sqlb::IndexPtr > () = std::make_shared(yystack_[6].value.as < std::string > ()); yylhs.value.as < sqlb::IndexPtr > ()->setTable(yystack_[4].value.as < std::string > ()); @@ -2566,158 +2585,158 @@ namespace sqlb { namespace parser { yylhs.value.as < sqlb::IndexPtr > ()->fields = yystack_[2].value.as < sqlb::IndexedColumnVector > (); yylhs.value.as < sqlb::IndexPtr > ()->setFullyParsed(true); } -#line 2570 "sqlite3_parser.cpp" +#line 2589 "sqlite3_parser.cpp" break; - case 192: -#line 579 "sqlite3_parser.yy" + case 193: // optional_exprlist_with_paren: %empty +#line 589 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = {}; } -#line 2576 "sqlite3_parser.cpp" +#line 2595 "sqlite3_parser.cpp" break; - case 193: -#line 580 "sqlite3_parser.yy" + case 194: // optional_exprlist_with_paren: "(" ")" +#line 590 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = {}; } -#line 2582 "sqlite3_parser.cpp" +#line 2601 "sqlite3_parser.cpp" break; - case 194: -#line 581 "sqlite3_parser.yy" + case 195: // optional_exprlist_with_paren: "(" exprlist_expr ")" +#line 591 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[1].value.as < std::string > (); } -#line 2588 "sqlite3_parser.cpp" +#line 2607 "sqlite3_parser.cpp" break; - case 195: -#line 585 "sqlite3_parser.yy" + case 196: // createvirtualtable_stmt: "CREATE" "VIRTUAL" "TABLE" optional_if_not_exists tableid_with_uninteresting_schema "USING" id optional_exprlist_with_paren +#line 595 "sqlite3_parser.yy" { yylhs.value.as < sqlb::TablePtr > () = std::make_shared(yystack_[3].value.as < std::string > ()); yylhs.value.as < sqlb::TablePtr > ()->setVirtualUsing(yystack_[1].value.as < std::string > ()); yylhs.value.as < sqlb::TablePtr > ()->setFullyParsed(false); } -#line 2598 "sqlite3_parser.cpp" +#line 2617 "sqlite3_parser.cpp" break; - case 196: -#line 597 "sqlite3_parser.yy" + case 197: // optional_temporary: %empty +#line 607 "sqlite3_parser.yy" { yylhs.value.as < bool > () = false; } -#line 2604 "sqlite3_parser.cpp" +#line 2623 "sqlite3_parser.cpp" break; - case 197: -#line 598 "sqlite3_parser.yy" + case 198: // optional_temporary: "TEMP" +#line 608 "sqlite3_parser.yy" { yylhs.value.as < bool > () = true; } -#line 2610 "sqlite3_parser.cpp" +#line 2629 "sqlite3_parser.cpp" break; - case 198: -#line 599 "sqlite3_parser.yy" + case 199: // optional_temporary: "TEMPORARY" +#line 609 "sqlite3_parser.yy" { yylhs.value.as < bool > () = true; } -#line 2616 "sqlite3_parser.cpp" +#line 2635 "sqlite3_parser.cpp" break; - case 199: -#line 603 "sqlite3_parser.yy" + case 200: // optional_withoutrowid: %empty +#line 613 "sqlite3_parser.yy" { yylhs.value.as < bool > () = false; } -#line 2622 "sqlite3_parser.cpp" +#line 2641 "sqlite3_parser.cpp" break; - case 200: -#line 604 "sqlite3_parser.yy" + case 201: // optional_withoutrowid: "WITHOUT" "ROWID" +#line 614 "sqlite3_parser.yy" { yylhs.value.as < bool > () = true; } -#line 2628 "sqlite3_parser.cpp" +#line 2647 "sqlite3_parser.cpp" break; - case 201: -#line 608 "sqlite3_parser.yy" + case 202: // optional_conflictclause: %empty +#line 618 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = ""; } -#line 2634 "sqlite3_parser.cpp" +#line 2653 "sqlite3_parser.cpp" break; - case 202: -#line 609 "sqlite3_parser.yy" + case 203: // optional_conflictclause: "ON" "CONFLICT" "ROLLBACK" +#line 619 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2640 "sqlite3_parser.cpp" +#line 2659 "sqlite3_parser.cpp" break; - case 203: -#line 610 "sqlite3_parser.yy" + case 204: // optional_conflictclause: "ON" "CONFLICT" "ABORT" +#line 620 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2646 "sqlite3_parser.cpp" +#line 2665 "sqlite3_parser.cpp" break; - case 204: -#line 611 "sqlite3_parser.yy" + case 205: // optional_conflictclause: "ON" "CONFLICT" "FAIL" +#line 621 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2652 "sqlite3_parser.cpp" +#line 2671 "sqlite3_parser.cpp" break; - case 205: -#line 612 "sqlite3_parser.yy" + case 206: // optional_conflictclause: "ON" "CONFLICT" "IGNORE" +#line 622 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2658 "sqlite3_parser.cpp" +#line 2677 "sqlite3_parser.cpp" break; - case 206: -#line 613 "sqlite3_parser.yy" + case 207: // optional_conflictclause: "ON" "CONFLICT" "REPLACE" +#line 623 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2664 "sqlite3_parser.cpp" +#line 2683 "sqlite3_parser.cpp" break; - case 207: -#line 617 "sqlite3_parser.yy" + case 208: // optional_typename: %empty +#line 627 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = ""; } -#line 2670 "sqlite3_parser.cpp" +#line 2689 "sqlite3_parser.cpp" break; - case 208: -#line 618 "sqlite3_parser.yy" + case 209: // optional_typename: type_name +#line 628 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2676 "sqlite3_parser.cpp" +#line 2695 "sqlite3_parser.cpp" break; - case 209: -#line 622 "sqlite3_parser.yy" + case 210: // optional_storage_identifier: %empty +#line 632 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "VIRTUAL"; } -#line 2682 "sqlite3_parser.cpp" +#line 2701 "sqlite3_parser.cpp" break; - case 210: -#line 623 "sqlite3_parser.yy" + case 211: // optional_storage_identifier: "STORED" +#line 633 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "STORED"; } -#line 2688 "sqlite3_parser.cpp" +#line 2707 "sqlite3_parser.cpp" break; - case 211: -#line 624 "sqlite3_parser.yy" + case 212: // optional_storage_identifier: "VIRTUAL" +#line 634 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = "VIRTUAL"; } -#line 2694 "sqlite3_parser.cpp" +#line 2713 "sqlite3_parser.cpp" break; - case 212: -#line 628 "sqlite3_parser.yy" + case 213: // optional_always_generated: %empty +#line 638 "sqlite3_parser.yy" { yylhs.value.as < bool > () = false; } -#line 2700 "sqlite3_parser.cpp" +#line 2719 "sqlite3_parser.cpp" break; - case 213: -#line 629 "sqlite3_parser.yy" + case 214: // optional_always_generated: "GENERATED" "ALWAYS" +#line 639 "sqlite3_parser.yy" { yylhs.value.as < bool > () = true; } -#line 2706 "sqlite3_parser.cpp" +#line 2725 "sqlite3_parser.cpp" break; - case 214: -#line 633 "sqlite3_parser.yy" + case 215: // columnconstraint: optional_constraintname "PRIMARY" "KEY" optional_sort_order optional_conflictclause +#line 643 "sqlite3_parser.yy" { auto pk = std::make_shared(sqlb::IndexedColumnVector{sqlb::IndexedColumn("", false, yystack_[1].value.as < std::string > ())}); pk->setName(yystack_[4].value.as < std::string > ()); pk->setConflictAction(yystack_[0].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > () = pk; } -#line 2717 "sqlite3_parser.cpp" +#line 2736 "sqlite3_parser.cpp" break; - case 215: -#line 639 "sqlite3_parser.yy" + case 216: // columnconstraint: optional_constraintname "PRIMARY" "KEY" optional_sort_order optional_conflictclause "AUTOINCREMENT" +#line 649 "sqlite3_parser.yy" { auto pk = std::make_shared(sqlb::IndexedColumnVector{sqlb::IndexedColumn("", false, yystack_[2].value.as < std::string > ())}); pk->setName(yystack_[5].value.as < std::string > ()); @@ -2725,113 +2744,113 @@ namespace sqlb { namespace parser { pk->setAutoIncrement(true); yylhs.value.as < sqlb::ConstraintPtr > () = pk; } -#line 2729 "sqlite3_parser.cpp" +#line 2748 "sqlite3_parser.cpp" break; - case 216: -#line 646 "sqlite3_parser.yy" + case 217: // columnconstraint: optional_constraintname "NOT" "NULL" optional_conflictclause +#line 656 "sqlite3_parser.yy" { auto nn = std::make_shared(); nn->setName(yystack_[3].value.as < std::string > ()); nn->setConflictAction(yystack_[0].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > () = nn; } -#line 2740 "sqlite3_parser.cpp" +#line 2759 "sqlite3_parser.cpp" break; - case 217: -#line 652 "sqlite3_parser.yy" + case 218: // columnconstraint: optional_constraintname "NULL" +#line 662 "sqlite3_parser.yy" { } -#line 2747 "sqlite3_parser.cpp" +#line 2766 "sqlite3_parser.cpp" break; - case 218: -#line 654 "sqlite3_parser.yy" + case 219: // columnconstraint: optional_constraintname "UNIQUE" optional_conflictclause +#line 664 "sqlite3_parser.yy" { auto u = std::make_shared(); u->setName(yystack_[2].value.as < std::string > ()); u->setConflictAction(yystack_[0].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > () = u; } -#line 2758 "sqlite3_parser.cpp" +#line 2777 "sqlite3_parser.cpp" break; - case 219: -#line 660 "sqlite3_parser.yy" + case 220: // columnconstraint: optional_constraintname "CHECK" "(" expr ")" +#line 670 "sqlite3_parser.yy" { yylhs.value.as < sqlb::ConstraintPtr > () = std::make_shared(yystack_[1].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > ()->setName(yystack_[4].value.as < std::string > ()); } -#line 2767 "sqlite3_parser.cpp" +#line 2786 "sqlite3_parser.cpp" break; - case 220: -#line 664 "sqlite3_parser.yy" + case 221: // columnconstraint: optional_constraintname "DEFAULT" signednumber +#line 674 "sqlite3_parser.yy" { yylhs.value.as < sqlb::ConstraintPtr > () = std::make_shared(yystack_[0].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > ()->setName(yystack_[2].value.as < std::string > ()); } -#line 2776 "sqlite3_parser.cpp" +#line 2795 "sqlite3_parser.cpp" break; - case 221: -#line 668 "sqlite3_parser.yy" + case 222: // columnconstraint: optional_constraintname "DEFAULT" literalvalue +#line 678 "sqlite3_parser.yy" { yylhs.value.as < sqlb::ConstraintPtr > () = std::make_shared(yystack_[0].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > ()->setName(yystack_[2].value.as < std::string > ()); } -#line 2785 "sqlite3_parser.cpp" +#line 2804 "sqlite3_parser.cpp" break; - case 222: -#line 672 "sqlite3_parser.yy" + case 223: // columnconstraint: optional_constraintname "DEFAULT" id +#line 682 "sqlite3_parser.yy" { yylhs.value.as < sqlb::ConstraintPtr > () = std::make_shared(yystack_[0].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > ()->setName(yystack_[2].value.as < std::string > ()); } -#line 2794 "sqlite3_parser.cpp" +#line 2813 "sqlite3_parser.cpp" break; - case 223: -#line 676 "sqlite3_parser.yy" + case 224: // columnconstraint: optional_constraintname "DEFAULT" allowed_keywords_as_identifier +#line 686 "sqlite3_parser.yy" { // We must allow the same keywords as unquoted default values as in the columnid context. // But we do not use columnid here in order to avoid reduce/reduce conflicts. yylhs.value.as < sqlb::ConstraintPtr > () = std::make_shared(yystack_[0].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > ()->setName(yystack_[2].value.as < std::string > ()); } -#line 2804 "sqlite3_parser.cpp" +#line 2823 "sqlite3_parser.cpp" break; - case 224: -#line 681 "sqlite3_parser.yy" + case 225: // columnconstraint: optional_constraintname "DEFAULT" "IF" +#line 691 "sqlite3_parser.yy" { // Same as above. yylhs.value.as < sqlb::ConstraintPtr > () = std::make_shared(yystack_[0].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > ()->setName(yystack_[2].value.as < std::string > ()); } -#line 2813 "sqlite3_parser.cpp" +#line 2832 "sqlite3_parser.cpp" break; - case 225: -#line 685 "sqlite3_parser.yy" + case 226: // columnconstraint: optional_constraintname "DEFAULT" "(" expr ")" +#line 695 "sqlite3_parser.yy" { yylhs.value.as < sqlb::ConstraintPtr > () = std::make_shared("(" + yystack_[1].value.as < std::string > () + ")"); yylhs.value.as < sqlb::ConstraintPtr > ()->setName(yystack_[4].value.as < std::string > ()); } -#line 2822 "sqlite3_parser.cpp" +#line 2841 "sqlite3_parser.cpp" break; - case 226: -#line 689 "sqlite3_parser.yy" + case 227: // columnconstraint: optional_constraintname "COLLATE" id +#line 699 "sqlite3_parser.yy" { yylhs.value.as < sqlb::ConstraintPtr > () = std::make_shared(yystack_[0].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > ()->setName(yystack_[2].value.as < std::string > ()); } -#line 2831 "sqlite3_parser.cpp" +#line 2850 "sqlite3_parser.cpp" break; - case 227: -#line 693 "sqlite3_parser.yy" + case 228: // columnconstraint: optional_constraintname "REFERENCES" tableid optional_columnid_with_paren_list optional_fk_clause +#line 703 "sqlite3_parser.yy" { // TODO Solve shift/reduce conflict. It is not super important though as shifting seems to be right here. auto fk = std::make_shared(); fk->setName(yystack_[4].value.as < std::string > ()); @@ -2840,36 +2859,36 @@ namespace sqlb { namespace parser { fk->setConstraint(yystack_[0].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > () = fk; } -#line 2844 "sqlite3_parser.cpp" +#line 2863 "sqlite3_parser.cpp" break; - case 228: -#line 701 "sqlite3_parser.yy" + case 229: // columnconstraint: optional_constraintname optional_always_generated "AS" "(" expr ")" optional_storage_identifier +#line 711 "sqlite3_parser.yy" { // TODO Solve shift/reduce conflict. yylhs.value.as < sqlb::ConstraintPtr > () = std::make_shared(yystack_[2].value.as < std::string > (), yystack_[0].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > ()->setName(yystack_[6].value.as < std::string > ()); } -#line 2853 "sqlite3_parser.cpp" +#line 2872 "sqlite3_parser.cpp" break; - case 229: -#line 708 "sqlite3_parser.yy" - { yylhs.value.as < sqlb::ConstraintSet > () = { yystack_[0].value.as < sqlb::ConstraintPtr > () }; } -#line 2859 "sqlite3_parser.cpp" + case 230: // columnconstraint_list: columnconstraint +#line 718 "sqlite3_parser.yy" + { yylhs.value.as < sqlb::ConstraintVector > () = { yystack_[0].value.as < sqlb::ConstraintPtr > () }; } +#line 2878 "sqlite3_parser.cpp" break; - case 230: -#line 709 "sqlite3_parser.yy" - { yylhs.value.as < sqlb::ConstraintSet > () = yystack_[1].value.as < sqlb::ConstraintSet > (); yylhs.value.as < sqlb::ConstraintSet > ().insert(yystack_[0].value.as < sqlb::ConstraintPtr > ()); } -#line 2865 "sqlite3_parser.cpp" + case 231: // columnconstraint_list: columnconstraint_list columnconstraint +#line 719 "sqlite3_parser.yy" + { yylhs.value.as < sqlb::ConstraintVector > () = yystack_[1].value.as < sqlb::ConstraintVector > (); yylhs.value.as < sqlb::ConstraintVector > ().push_back(yystack_[0].value.as < sqlb::ConstraintPtr > ()); } +#line 2884 "sqlite3_parser.cpp" break; - case 231: -#line 713 "sqlite3_parser.yy" + case 232: // columndef: columnid optional_typename columnconstraint_list +#line 723 "sqlite3_parser.yy" { sqlb::Field f(yystack_[2].value.as < std::string > (), yystack_[1].value.as < std::string > ()); - sqlb::ConstraintSet table_constraints{}; - for(const auto& c : yystack_[0].value.as < sqlb::ConstraintSet > ()) + sqlb::ConstraintVector table_constraints{}; + for(const auto& c : yystack_[0].value.as < sqlb::ConstraintVector > ()) { if(!c) continue; @@ -2885,7 +2904,7 @@ namespace sqlb { namespace parser { c->setColumnList({yystack_[2].value.as < std::string > ()}); else c->replaceInColumnList("", yystack_[2].value.as < std::string > ()); - table_constraints.insert(c); + table_constraints.push_back(c); break; } case sqlb::Constraint::NotNullConstraintType: @@ -2920,279 +2939,281 @@ namespace sqlb { namespace parser { } break; } + default: + break; } } yylhs.value.as < ColumndefData > () = std::make_tuple(f, table_constraints); } -#line 2929 "sqlite3_parser.cpp" +#line 2950 "sqlite3_parser.cpp" break; - case 232: -#line 772 "sqlite3_parser.yy" - { yylhs.value.as < ColumndefData > () = std::make_tuple(sqlb::Field(yystack_[1].value.as < std::string > (), yystack_[0].value.as < std::string > ()), sqlb::ConstraintSet{}); } -#line 2935 "sqlite3_parser.cpp" + case 233: // columndef: columnid optional_typename +#line 784 "sqlite3_parser.yy" + { yylhs.value.as < ColumndefData > () = std::make_tuple(sqlb::Field(yystack_[1].value.as < std::string > (), yystack_[0].value.as < std::string > ()), sqlb::ConstraintVector{}); } +#line 2956 "sqlite3_parser.cpp" break; - case 233: -#line 776 "sqlite3_parser.yy" + case 234: // columndef_list: columndef +#line 788 "sqlite3_parser.yy" { yylhs.value.as < std::vector > () = {yystack_[0].value.as < ColumndefData > ()}; } -#line 2941 "sqlite3_parser.cpp" +#line 2962 "sqlite3_parser.cpp" break; - case 234: -#line 777 "sqlite3_parser.yy" + case 235: // columndef_list: columndef_list "," columndef +#line 789 "sqlite3_parser.yy" { yylhs.value.as < std::vector > () = yystack_[2].value.as < std::vector > (); yylhs.value.as < std::vector > ().push_back(yystack_[0].value.as < ColumndefData > ()); } -#line 2947 "sqlite3_parser.cpp" +#line 2968 "sqlite3_parser.cpp" break; - case 235: -#line 781 "sqlite3_parser.yy" + case 236: // optional_constraintname: %empty +#line 793 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = ""; } -#line 2953 "sqlite3_parser.cpp" +#line 2974 "sqlite3_parser.cpp" break; - case 236: -#line 782 "sqlite3_parser.yy" + case 237: // optional_constraintname: "CONSTRAINT" id +#line 794 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2959 "sqlite3_parser.cpp" +#line 2980 "sqlite3_parser.cpp" break; - case 237: -#line 783 "sqlite3_parser.yy" + case 238: // optional_constraintname: "CONSTRAINT" "string literal" +#line 795 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 2965 "sqlite3_parser.cpp" +#line 2986 "sqlite3_parser.cpp" break; - case 238: -#line 787 "sqlite3_parser.yy" + case 239: // columnid_list: columnid +#line 799 "sqlite3_parser.yy" { yylhs.value.as < sqlb::StringVector > () = sqlb::StringVector(1, yystack_[0].value.as < std::string > ()); } -#line 2971 "sqlite3_parser.cpp" +#line 2992 "sqlite3_parser.cpp" break; - case 239: -#line 788 "sqlite3_parser.yy" + case 240: // columnid_list: columnid_list "," columnid +#line 800 "sqlite3_parser.yy" { yylhs.value.as < sqlb::StringVector > () = yystack_[2].value.as < sqlb::StringVector > (); yylhs.value.as < sqlb::StringVector > ().push_back(yystack_[0].value.as < std::string > ()); } -#line 2977 "sqlite3_parser.cpp" +#line 2998 "sqlite3_parser.cpp" break; - case 240: -#line 792 "sqlite3_parser.yy" + case 241: // optional_columnid_with_paren_list: %empty +#line 804 "sqlite3_parser.yy" { yylhs.value.as < sqlb::StringVector > () = sqlb::StringVector(); } -#line 2983 "sqlite3_parser.cpp" +#line 3004 "sqlite3_parser.cpp" break; - case 241: -#line 793 "sqlite3_parser.yy" + case 242: // optional_columnid_with_paren_list: "(" columnid_list ")" +#line 805 "sqlite3_parser.yy" { yylhs.value.as < sqlb::StringVector > () = yystack_[1].value.as < sqlb::StringVector > (); } -#line 2989 "sqlite3_parser.cpp" +#line 3010 "sqlite3_parser.cpp" break; - case 242: -#line 797 "sqlite3_parser.yy" + case 243: // fk_clause_part: "ON" "DELETE" "SET" "NULL" +#line 809 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 2995 "sqlite3_parser.cpp" +#line 3016 "sqlite3_parser.cpp" break; - case 243: -#line 798 "sqlite3_parser.yy" + case 244: // fk_clause_part: "ON" "DELETE" "SET" "DEFAULT" +#line 810 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3001 "sqlite3_parser.cpp" +#line 3022 "sqlite3_parser.cpp" break; - case 244: -#line 799 "sqlite3_parser.yy" + case 245: // fk_clause_part: "ON" "DELETE" "CASCADE" +#line 811 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3007 "sqlite3_parser.cpp" +#line 3028 "sqlite3_parser.cpp" break; - case 245: -#line 800 "sqlite3_parser.yy" + case 246: // fk_clause_part: "ON" "DELETE" "RESTRICT" +#line 812 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3013 "sqlite3_parser.cpp" +#line 3034 "sqlite3_parser.cpp" break; - case 246: -#line 801 "sqlite3_parser.yy" + case 247: // fk_clause_part: "ON" "DELETE" "NO" "ACTION" +#line 813 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3019 "sqlite3_parser.cpp" +#line 3040 "sqlite3_parser.cpp" break; - case 247: -#line 802 "sqlite3_parser.yy" + case 248: // fk_clause_part: "ON" "UPDATE" "SET" "NULL" +#line 814 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3025 "sqlite3_parser.cpp" +#line 3046 "sqlite3_parser.cpp" break; - case 248: -#line 803 "sqlite3_parser.yy" + case 249: // fk_clause_part: "ON" "UPDATE" "SET" "DEFAULT" +#line 815 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3031 "sqlite3_parser.cpp" +#line 3052 "sqlite3_parser.cpp" break; - case 249: -#line 804 "sqlite3_parser.yy" + case 250: // fk_clause_part: "ON" "UPDATE" "CASCADE" +#line 816 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3037 "sqlite3_parser.cpp" +#line 3058 "sqlite3_parser.cpp" break; - case 250: -#line 805 "sqlite3_parser.yy" + case 251: // fk_clause_part: "ON" "UPDATE" "RESTRICT" +#line 817 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3043 "sqlite3_parser.cpp" +#line 3064 "sqlite3_parser.cpp" break; - case 251: -#line 806 "sqlite3_parser.yy" + case 252: // fk_clause_part: "ON" "UPDATE" "NO" "ACTION" +#line 818 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3049 "sqlite3_parser.cpp" +#line 3070 "sqlite3_parser.cpp" break; - case 252: -#line 807 "sqlite3_parser.yy" + case 253: // fk_clause_part: "ON" "INSERT" "SET" "NULL" +#line 819 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3055 "sqlite3_parser.cpp" +#line 3076 "sqlite3_parser.cpp" break; - case 253: -#line 808 "sqlite3_parser.yy" + case 254: // fk_clause_part: "ON" "INSERT" "SET" "DEFAULT" +#line 820 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3061 "sqlite3_parser.cpp" +#line 3082 "sqlite3_parser.cpp" break; - case 254: -#line 809 "sqlite3_parser.yy" + case 255: // fk_clause_part: "ON" "INSERT" "CASCADE" +#line 821 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3067 "sqlite3_parser.cpp" +#line 3088 "sqlite3_parser.cpp" break; - case 255: -#line 810 "sqlite3_parser.yy" + case 256: // fk_clause_part: "ON" "INSERT" "RESTRICT" +#line 822 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3073 "sqlite3_parser.cpp" +#line 3094 "sqlite3_parser.cpp" break; - case 256: -#line 811 "sqlite3_parser.yy" + case 257: // fk_clause_part: "ON" "INSERT" "NO" "ACTION" +#line 823 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3079 "sqlite3_parser.cpp" +#line 3100 "sqlite3_parser.cpp" break; - case 257: -#line 812 "sqlite3_parser.yy" + case 258: // fk_clause_part: "MATCH" id +#line 824 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3085 "sqlite3_parser.cpp" +#line 3106 "sqlite3_parser.cpp" break; - case 258: -#line 816 "sqlite3_parser.yy" + case 259: // fk_clause_part_list: fk_clause_part +#line 828 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 3091 "sqlite3_parser.cpp" +#line 3112 "sqlite3_parser.cpp" break; - case 259: -#line 817 "sqlite3_parser.yy" + case 260: // fk_clause_part_list: fk_clause_part_list fk_clause_part +#line 829 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3097 "sqlite3_parser.cpp" +#line 3118 "sqlite3_parser.cpp" break; - case 260: -#line 821 "sqlite3_parser.yy" + case 261: // optional_fk_clause: %empty +#line 833 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = ""; } -#line 3103 "sqlite3_parser.cpp" +#line 3124 "sqlite3_parser.cpp" break; - case 261: -#line 822 "sqlite3_parser.yy" + case 262: // optional_fk_clause: fk_clause_part_list +#line 834 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 3109 "sqlite3_parser.cpp" +#line 3130 "sqlite3_parser.cpp" break; - case 262: -#line 823 "sqlite3_parser.yy" + case 263: // optional_fk_clause: fk_clause_part_list "DEFERRABLE" "INITIALLY" "DEFERRED" +#line 835 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3115 "sqlite3_parser.cpp" +#line 3136 "sqlite3_parser.cpp" break; - case 263: -#line 824 "sqlite3_parser.yy" + case 264: // optional_fk_clause: fk_clause_part_list "DEFERRABLE" "INITIALLY" "IMMEDIATE" +#line 836 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3121 "sqlite3_parser.cpp" +#line 3142 "sqlite3_parser.cpp" break; - case 264: -#line 825 "sqlite3_parser.yy" + case 265: // optional_fk_clause: fk_clause_part_list "DEFERRABLE" +#line 837 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3127 "sqlite3_parser.cpp" +#line 3148 "sqlite3_parser.cpp" break; - case 265: -#line 826 "sqlite3_parser.yy" + case 266: // optional_fk_clause: fk_clause_part_list "NOT" "DEFERRABLE" "INITIALLY" "DEFERRED" +#line 838 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[4].value.as < std::string > () + " " + yystack_[3].value.as < std::string > () + " " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3133 "sqlite3_parser.cpp" +#line 3154 "sqlite3_parser.cpp" break; - case 266: -#line 827 "sqlite3_parser.yy" + case 267: // optional_fk_clause: fk_clause_part_list "NOT" "DEFERRABLE" "INITIALLY" "IMMEDIATE" +#line 839 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[4].value.as < std::string > () + " " + yystack_[3].value.as < std::string > () + " " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3139 "sqlite3_parser.cpp" +#line 3160 "sqlite3_parser.cpp" break; - case 267: -#line 828 "sqlite3_parser.yy" + case 268: // optional_fk_clause: fk_clause_part_list "NOT" "DEFERRABLE" +#line 840 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3145 "sqlite3_parser.cpp" +#line 3166 "sqlite3_parser.cpp" break; - case 268: -#line 829 "sqlite3_parser.yy" + case 269: // optional_fk_clause: "DEFERRABLE" "INITIALLY" "DEFERRED" +#line 841 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3151 "sqlite3_parser.cpp" +#line 3172 "sqlite3_parser.cpp" break; - case 269: -#line 830 "sqlite3_parser.yy" + case 270: // optional_fk_clause: "DEFERRABLE" "INITIALLY" "IMMEDIATE" +#line 842 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3157 "sqlite3_parser.cpp" +#line 3178 "sqlite3_parser.cpp" break; - case 270: -#line 831 "sqlite3_parser.yy" + case 271: // optional_fk_clause: "DEFERRABLE" +#line 843 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[0].value.as < std::string > (); } -#line 3163 "sqlite3_parser.cpp" +#line 3184 "sqlite3_parser.cpp" break; - case 271: -#line 832 "sqlite3_parser.yy" + case 272: // optional_fk_clause: "NOT" "DEFERRABLE" "INITIALLY" "DEFERRED" +#line 844 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3169 "sqlite3_parser.cpp" +#line 3190 "sqlite3_parser.cpp" break; - case 272: -#line 833 "sqlite3_parser.yy" + case 273: // optional_fk_clause: "NOT" "DEFERRABLE" "INITIALLY" "IMMEDIATE" +#line 845 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[3].value.as < std::string > () + " " + yystack_[2].value.as < std::string > () + " " + yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3175 "sqlite3_parser.cpp" +#line 3196 "sqlite3_parser.cpp" break; - case 273: -#line 834 "sqlite3_parser.yy" + case 274: // optional_fk_clause: "NOT" "DEFERRABLE" +#line 846 "sqlite3_parser.yy" { yylhs.value.as < std::string > () = yystack_[1].value.as < std::string > () + " " + yystack_[0].value.as < std::string > (); } -#line 3181 "sqlite3_parser.cpp" +#line 3202 "sqlite3_parser.cpp" break; - case 274: -#line 838 "sqlite3_parser.yy" + case 275: // tableconstraint: optional_constraintname "PRIMARY" "KEY" "(" indexed_column_list ")" optional_conflictclause +#line 850 "sqlite3_parser.yy" { auto pk = std::make_shared(yystack_[2].value.as < sqlb::IndexedColumnVector > ()); pk->setName(yystack_[6].value.as < std::string > ()); pk->setConflictAction(yystack_[0].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > () = pk; } -#line 3192 "sqlite3_parser.cpp" +#line 3213 "sqlite3_parser.cpp" break; - case 275: -#line 844 "sqlite3_parser.yy" + case 276: // tableconstraint: optional_constraintname "PRIMARY" "KEY" "(" indexed_column_list "AUTOINCREMENT" ")" optional_conflictclause +#line 856 "sqlite3_parser.yy" { auto pk = std::make_shared(yystack_[3].value.as < sqlb::IndexedColumnVector > ()); pk->setName(yystack_[7].value.as < std::string > ()); @@ -3200,90 +3221,90 @@ namespace sqlb { namespace parser { pk->setAutoIncrement(true); yylhs.value.as < sqlb::ConstraintPtr > () = pk; } -#line 3204 "sqlite3_parser.cpp" +#line 3225 "sqlite3_parser.cpp" break; - case 276: -#line 851 "sqlite3_parser.yy" + case 277: // tableconstraint: optional_constraintname "UNIQUE" "(" indexed_column_list ")" optional_conflictclause +#line 863 "sqlite3_parser.yy" { auto u = std::make_shared(yystack_[2].value.as < sqlb::IndexedColumnVector > ()); u->setName(yystack_[5].value.as < std::string > ()); u->setConflictAction(yystack_[0].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > () = u; } -#line 3215 "sqlite3_parser.cpp" +#line 3236 "sqlite3_parser.cpp" break; - case 277: -#line 857 "sqlite3_parser.yy" + case 278: // tableconstraint: optional_constraintname "CHECK" "(" expr ")" +#line 869 "sqlite3_parser.yy" { yylhs.value.as < sqlb::ConstraintPtr > () = std::make_shared(yystack_[1].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > ()->setName(yystack_[4].value.as < std::string > ()); } -#line 3224 "sqlite3_parser.cpp" +#line 3245 "sqlite3_parser.cpp" break; - case 278: -#line 861 "sqlite3_parser.yy" + case 279: // tableconstraint: optional_constraintname "FOREIGN" "KEY" "(" columnid_list ")" "REFERENCES" tableid optional_columnid_with_paren_list optional_fk_clause +#line 873 "sqlite3_parser.yy" { yylhs.value.as < sqlb::ConstraintPtr > () = std::make_shared(yystack_[2].value.as < std::string > (), yystack_[1].value.as < sqlb::StringVector > (), yystack_[0].value.as < std::string > ()); yylhs.value.as < sqlb::ConstraintPtr > ()->setColumnList(yystack_[5].value.as < sqlb::StringVector > ()); yylhs.value.as < sqlb::ConstraintPtr > ()->setName(yystack_[9].value.as < std::string > ()); } -#line 3234 "sqlite3_parser.cpp" +#line 3255 "sqlite3_parser.cpp" break; - case 279: -#line 869 "sqlite3_parser.yy" - { yylhs.value.as < sqlb::ConstraintSet > () = {yystack_[0].value.as < sqlb::ConstraintPtr > ()}; } -#line 3240 "sqlite3_parser.cpp" + case 280: // tableconstraint_list: tableconstraint +#line 881 "sqlite3_parser.yy" + { yylhs.value.as < sqlb::ConstraintVector > () = {yystack_[0].value.as < sqlb::ConstraintPtr > ()}; } +#line 3261 "sqlite3_parser.cpp" break; - case 280: -#line 870 "sqlite3_parser.yy" - { yylhs.value.as < sqlb::ConstraintSet > () = yystack_[2].value.as < sqlb::ConstraintSet > (); yylhs.value.as < sqlb::ConstraintSet > ().insert(yystack_[0].value.as < sqlb::ConstraintPtr > ()); } -#line 3246 "sqlite3_parser.cpp" + case 281: // tableconstraint_list: tableconstraint_list "," tableconstraint +#line 882 "sqlite3_parser.yy" + { yylhs.value.as < sqlb::ConstraintVector > () = yystack_[2].value.as < sqlb::ConstraintVector > (); yylhs.value.as < sqlb::ConstraintVector > ().push_back(yystack_[0].value.as < sqlb::ConstraintPtr > ()); } +#line 3267 "sqlite3_parser.cpp" break; - case 281: -#line 871 "sqlite3_parser.yy" - { yylhs.value.as < sqlb::ConstraintSet > () = yystack_[1].value.as < sqlb::ConstraintSet > (); yylhs.value.as < sqlb::ConstraintSet > ().insert(yystack_[0].value.as < sqlb::ConstraintPtr > ()); } -#line 3252 "sqlite3_parser.cpp" + case 282: // tableconstraint_list: tableconstraint_list tableconstraint +#line 883 "sqlite3_parser.yy" + { yylhs.value.as < sqlb::ConstraintVector > () = yystack_[1].value.as < sqlb::ConstraintVector > (); yylhs.value.as < sqlb::ConstraintVector > ().push_back(yystack_[0].value.as < sqlb::ConstraintPtr > ()); } +#line 3273 "sqlite3_parser.cpp" break; - case 282: -#line 875 "sqlite3_parser.yy" - { yylhs.value.as < sqlb::ConstraintSet > () = {}; } -#line 3258 "sqlite3_parser.cpp" + case 283: // optional_tableconstraint_list: %empty +#line 887 "sqlite3_parser.yy" + { yylhs.value.as < sqlb::ConstraintVector > () = {}; } +#line 3279 "sqlite3_parser.cpp" break; - case 283: -#line 876 "sqlite3_parser.yy" - { yylhs.value.as < sqlb::ConstraintSet > () = yystack_[0].value.as < sqlb::ConstraintSet > (); } -#line 3264 "sqlite3_parser.cpp" + case 284: // optional_tableconstraint_list: "," tableconstraint_list +#line 888 "sqlite3_parser.yy" + { yylhs.value.as < sqlb::ConstraintVector > () = yystack_[0].value.as < sqlb::ConstraintVector > (); } +#line 3285 "sqlite3_parser.cpp" break; - case 284: -#line 880 "sqlite3_parser.yy" + case 285: // createtable_stmt: "CREATE" optional_temporary "TABLE" optional_if_not_exists tableid_with_uninteresting_schema "AS" select_stmt +#line 892 "sqlite3_parser.yy" { yylhs.value.as < sqlb::TablePtr > () = std::make_shared(yystack_[2].value.as < std::string > ()); yylhs.value.as < sqlb::TablePtr > ()->setFullyParsed(false); } -#line 3273 "sqlite3_parser.cpp" +#line 3294 "sqlite3_parser.cpp" break; - case 285: -#line 884 "sqlite3_parser.yy" + case 286: // createtable_stmt: "CREATE" optional_temporary "TABLE" optional_if_not_exists tableid_with_uninteresting_schema "(" columndef_list optional_tableconstraint_list ")" optional_withoutrowid +#line 896 "sqlite3_parser.yy" { yylhs.value.as < sqlb::TablePtr > () = std::make_shared(yystack_[5].value.as < std::string > ()); yylhs.value.as < sqlb::TablePtr > ()->setWithoutRowidTable(yystack_[0].value.as < bool > ()); - yylhs.value.as < sqlb::TablePtr > ()->setConstraints(yystack_[2].value.as < sqlb::ConstraintSet > ()); + yylhs.value.as < sqlb::TablePtr > ()->setConstraints(yystack_[2].value.as < sqlb::ConstraintVector > ()); yylhs.value.as < sqlb::TablePtr > ()->setFullyParsed(true); for(const auto& column : yystack_[3].value.as < std::vector > ()) { sqlb::Field f; - sqlb::ConstraintSet c; + sqlb::ConstraintVector c; std::tie(f, c) = column; yylhs.value.as < sqlb::TablePtr > ()->fields.push_back(f); @@ -3291,11 +3312,11 @@ namespace sqlb { namespace parser { yylhs.value.as < sqlb::TablePtr > ()->addConstraint(i); } } -#line 3295 "sqlite3_parser.cpp" +#line 3316 "sqlite3_parser.cpp" break; -#line 3299 "sqlite3_parser.cpp" +#line 3320 "sqlite3_parser.cpp" default: break; @@ -3644,309 +3665,310 @@ namespace sqlb { namespace parser { } - const short parser::yypact_ninf_ = -341; + const short parser::yypact_ninf_ = -342; - const short parser::yytable_ninf_ = -284; + const short parser::yytable_ninf_ = -285; const short parser::yypact_[] = { - -8, 157, 30, 41, -341, -341, -341, -341, -341, -341, - -59, 23, -26, -341, -341, 68, 68, 68, 59, 2140, - 2140, 2140, 89, -341, -341, -341, -341, -341, -341, -341, - -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, - -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, - -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, - 150, -341, -341, -341, -341, -341, -341, -341, 160, -341, - -341, 45, 100, 17, -341, 2228, 2228, 48, 2228, 2052, - 79, -341, -341, -341, -341, 180, 187, -341, -341, -341, - -341, -341, -341, -341, 2228, -341, 193, -341, -341, 953, - -341, 1409, -341, 1615, -341, 27, 1964, 200, 1409, -341, - 1409, 1409, 1409, 1067, 208, -341, -341, -341, -341, 1409, - -341, 212, -341, -341, -341, -341, -341, -341, 205, -341, - -341, -341, -341, 210, -341, -341, -341, -341, -341, -341, - 3121, 2659, -341, 218, 5, -341, 92, -341, 32, 94, - -341, -18, -341, 36, 113, 265, -341, -341, -341, 1409, - -35, 86, 1409, 3231, 58, 611, 48, -341, 1409, 1409, - 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, - 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 48, - 1409, 1707, 1409, -341, 1409, 1409, 146, -341, 1409, 1409, - -341, -341, -341, 117, 1409, 121, 133, -341, -341, 266, - -341, -341, -341, 227, 48, 1523, 211, 167, -341, 178, - 2228, 182, 234, 278, 204, 209, 285, 251, -341, 201, - -341, -341, 453, 1409, -341, 1409, -31, 2736, 294, 297, - 308, 303, -341, 317, 1409, 269, 321, 3121, 128, 128, - 10, 10, 177, 10, 177, 301, 314, 314, 370, 370, - 370, 370, 314, 314, 177, 177, 3231, 2813, -341, 228, - 725, 271, -341, 314, 276, 489, 1409, 1409, 1799, 1409, - 1409, -341, 1409, 3198, 1934, 1409, -341, -341, -341, -341, - -341, 5, 1409, -341, 1409, -341, -341, -341, -341, -341, - -341, 182, -6, 356, 311, -341, 357, 1409, 358, 359, - 1409, -341, -341, 1409, 2890, 1906, 1409, -341, 2228, 250, - 257, -341, 259, -341, 274, -341, 48, 1409, 1409, -341, - 300, 360, 1409, 2228, 1409, 1409, 2967, 2364, 839, 305, - -341, 2446, 2528, 2610, 1409, 3121, 369, 2336, 2418, -341, - 182, 2052, 152, -10, 1409, 2500, 2052, 1409, 307, 3121, - -341, 1409, 3044, 372, 378, 383, 384, -341, -341, 314, - 314, -341, -341, 313, 371, -341, 314, 314, 1409, 1409, - -341, 338, 385, 1409, 2228, 1409, 1409, 1409, 314, -341, - -341, -341, 363, -341, 341, 322, 48, 342, -16, -341, - 183, -341, -341, -341, -341, -341, -341, 2582, -341, 344, - 118, 182, 3121, -341, -341, -341, -341, -341, -341, 1181, - 314, 314, -341, -341, 345, 389, -341, 314, 314, 314, - -341, -341, 2052, -20, -341, 324, 52, 93, 101, 325, - 350, -341, -56, 312, 182, 395, -341, -341, 349, -341, - 1295, -341, -341, -341, 4, -341, 373, -341, -15, -341, - 374, -341, -3, -341, 375, -341, 51, 65, 335, -341, - -341, -341, 2228, -341, 182, -341, -341, 352, -341, -341, - -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, - -341, 69, 356, -341, -341, -341, -341, 152, -341 + -10, 116, 45, 93, -342, -342, -342, -342, -342, -342, + 12, 61, 63, -342, -342, 40, 40, 40, 67, 2242, + 2242, 2242, 100, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, 172, -342, -342, -342, -342, -342, -342, -342, 180, + -342, -342, 84, 120, 19, -342, 2331, 2331, -16, 2331, + 2153, 105, -342, -342, -342, -342, 203, 207, -342, -342, + -342, -342, -342, -342, -342, 2331, -342, 208, -342, -342, + 957, -342, 1417, -342, 1625, -342, 103, 2064, 215, 1417, + -342, 1417, 1417, 1417, 1072, 224, -342, -342, -342, -342, + 1417, -342, 227, -342, -342, -342, -342, -342, -342, 121, + -342, -342, -342, -342, 21, -342, -342, -342, -342, -342, + -342, 3225, 2763, -342, 201, 5, -342, -74, -342, 110, + -8, -342, -15, -342, 111, 129, 205, -342, -342, -342, + 1417, -34, 454, 1417, 3335, 8, 612, -16, -342, 1417, + 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, + 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, + -16, 1417, 1718, 1417, -342, 1417, 1417, 68, -342, 1417, + 1417, -342, -342, -342, 112, 1417, 113, 128, -342, -342, + 214, -342, -342, -342, 243, -16, 1532, 218, 171, -342, + 185, 2331, 196, 233, 274, 206, 212, 287, 249, -342, + 202, -342, -342, 1919, 1417, -342, 1417, -11, 2840, 291, + 303, 306, 305, -342, 308, 1417, 219, 309, 3225, 164, + 164, 13, 13, 150, 13, 150, 277, 371, 371, 316, + 316, 316, 316, 371, 371, 150, 150, 3335, 2917, -342, + 173, 727, 248, -342, 371, 223, 273, 1417, 1417, 1811, + 1417, 1417, -342, 1417, 3302, 490, 1417, -342, -342, -342, + -342, -342, 5, 1417, -342, 1417, -342, -342, -342, -342, + -342, -342, 196, -7, 317, 278, -342, 319, 1417, 320, + 331, 1417, -342, -342, 1417, 2994, 2009, 1417, -342, 2331, + 221, 222, -342, 226, -342, 250, -342, -16, 1417, 1417, + -342, 251, 333, 1417, 2331, 1417, 1417, 3071, 1947, 842, + 259, -342, 2048, 2468, 2550, 1417, 3225, 339, 2440, 2522, + -342, 196, 2153, 57, -9, 1417, 2604, 2153, 1417, 255, + 3225, -342, 1417, 3148, 341, 342, 344, 345, -342, -342, + 371, 371, -342, -342, 264, 347, -342, 371, 371, 1417, + 1417, -342, 265, 348, 1417, 2331, 1417, 1417, 1417, 371, + -342, -342, -342, 321, -342, 268, 282, -16, 311, -20, + -342, 88, -342, -342, -342, -342, -342, -342, 2686, -342, + 269, 115, 196, 3225, -342, -342, -342, -342, -342, -342, + 1187, 371, 371, -342, -342, 297, 350, -342, 371, 371, + 371, -342, -342, 2153, 44, -342, 285, -2, 11, 36, + 288, 312, -342, 22, 275, 196, 357, -342, -342, 298, + -342, 1302, -342, -342, -342, 73, -342, 334, -342, -30, + -342, 336, -342, -24, -342, 337, -342, 59, 74, 302, + -342, -342, -342, 2331, -342, 196, -342, -342, 301, -342, + -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, + -342, -342, 106, 317, -342, -342, -342, -342, 57, -342 }; const short parser::yydefact_[] = { - 0, 181, 0, 2, 4, 5, 6, 197, 198, 182, - 0, 0, 0, 1, 3, 176, 176, 176, 0, 0, + 0, 182, 0, 2, 4, 5, 6, 198, 199, 183, + 0, 0, 0, 1, 3, 177, 177, 177, 0, 0, 0, 0, 0, 18, 19, 20, 21, 22, 23, 24, - 59, 58, 60, 25, 26, 27, 28, 29, 30, 31, + 60, 59, 61, 25, 26, 27, 28, 29, 30, 31, 32, 35, 37, 36, 33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 53, 52, 54, 55, 56, 16, 62, 17, 61, 57, - 187, 0, 0, 0, 177, 0, 0, 0, 0, 0, - 0, 53, 61, 186, 185, 192, 0, 65, 64, 66, - 67, 69, 68, 63, 207, 233, 282, 175, 284, 0, - 195, 0, 74, 76, 208, 235, 235, 0, 0, 193, - 0, 0, 0, 0, 23, 14, 13, 15, 12, 0, - 10, 43, 11, 7, 8, 9, 159, 157, 162, 158, - 163, 164, 169, 0, 165, 170, 171, 172, 173, 174, - 120, 178, 189, 0, 0, 75, 0, 229, 235, 212, - 234, 0, 279, 235, 199, 0, 80, 79, 81, 0, - 0, 0, 0, 82, 0, 0, 0, 194, 0, 0, + 52, 54, 53, 55, 56, 57, 16, 63, 17, 62, + 58, 188, 0, 0, 0, 178, 0, 0, 0, 0, + 0, 0, 54, 62, 187, 186, 193, 0, 66, 65, + 67, 68, 70, 69, 64, 208, 234, 283, 176, 285, + 0, 196, 0, 75, 77, 209, 236, 236, 0, 0, + 194, 0, 0, 0, 0, 23, 14, 13, 15, 12, + 0, 10, 43, 11, 7, 8, 9, 160, 158, 163, + 159, 164, 165, 170, 0, 166, 171, 172, 173, 174, + 175, 121, 179, 190, 0, 0, 76, 0, 230, 236, + 213, 235, 0, 280, 236, 200, 0, 81, 80, 82, + 0, 0, 0, 0, 83, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 126, 0, 0, 0, 127, 0, 0, - 179, 180, 188, 183, 0, 0, 0, 73, 72, 0, - 237, 236, 230, 0, 0, 0, 0, 0, 217, 0, - 0, 201, 0, 0, 0, 0, 0, 235, 281, 0, - 285, 166, 0, 0, 152, 0, 0, 0, 0, 0, - 0, 0, 124, 0, 0, 0, 161, 121, 87, 88, - 84, 85, 91, 86, 92, 83, 97, 98, 95, 96, - 93, 94, 99, 100, 89, 90, 102, 0, 168, 105, - 0, 61, 135, 101, 104, 106, 0, 0, 0, 0, - 0, 128, 0, 103, 107, 0, 191, 190, 70, 71, - 77, 0, 0, 226, 0, 224, 221, 222, 223, 220, - 213, 201, 178, 240, 0, 218, 0, 0, 0, 0, - 0, 280, 200, 0, 0, 0, 0, 150, 0, 0, - 0, 153, 0, 125, 0, 122, 0, 0, 0, 131, - 0, 0, 0, 0, 0, 0, 0, 109, 0, 61, - 143, 108, 110, 111, 0, 184, 0, 0, 0, 216, - 201, 0, 260, 0, 0, 0, 0, 0, 0, 147, - 151, 0, 0, 0, 0, 0, 0, 123, 160, 129, - 113, 133, 132, 0, 61, 134, 112, 114, 0, 0, - 139, 0, 0, 0, 0, 0, 0, 0, 115, 78, - 219, 225, 214, 238, 0, 270, 0, 0, 0, 258, - 261, 227, 203, 204, 205, 206, 202, 0, 277, 0, - 0, 201, 148, 149, 167, 155, 156, 154, 138, 0, - 130, 117, 141, 140, 0, 61, 142, 116, 118, 119, - 215, 241, 0, 0, 257, 273, 0, 0, 0, 264, - 0, 259, 209, 0, 201, 0, 276, 136, 0, 146, - 0, 239, 268, 269, 0, 244, 0, 245, 0, 254, - 0, 255, 0, 249, 0, 250, 0, 0, 267, 210, - 211, 228, 0, 274, 201, 137, 144, 0, 271, 272, - 246, 243, 242, 256, 253, 252, 251, 248, 247, 262, - 263, 0, 240, 275, 145, 265, 266, 260, 278 + 0, 0, 0, 0, 127, 0, 0, 0, 128, 0, + 0, 180, 181, 189, 184, 0, 0, 0, 74, 73, + 0, 238, 237, 231, 0, 0, 0, 0, 0, 218, + 0, 0, 202, 0, 0, 0, 0, 0, 236, 282, + 0, 286, 167, 0, 0, 153, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 0, 0, 162, 122, 88, + 89, 85, 86, 92, 87, 93, 84, 98, 99, 96, + 97, 94, 95, 100, 101, 90, 91, 103, 0, 169, + 106, 0, 62, 136, 102, 105, 107, 0, 0, 0, + 0, 0, 129, 0, 104, 108, 0, 192, 191, 71, + 72, 78, 0, 0, 227, 0, 225, 222, 223, 224, + 221, 214, 202, 179, 241, 0, 219, 0, 0, 0, + 0, 0, 281, 201, 0, 0, 0, 0, 151, 0, + 0, 0, 154, 0, 126, 0, 123, 0, 0, 0, + 132, 0, 0, 0, 0, 0, 0, 0, 110, 0, + 62, 144, 109, 111, 112, 0, 185, 0, 0, 0, + 217, 202, 0, 261, 0, 0, 0, 0, 0, 0, + 148, 152, 0, 0, 0, 0, 0, 0, 124, 161, + 130, 114, 134, 133, 0, 62, 135, 113, 115, 0, + 0, 140, 0, 0, 0, 0, 0, 0, 0, 116, + 79, 220, 226, 215, 239, 0, 271, 0, 0, 0, + 259, 262, 228, 204, 205, 206, 207, 203, 0, 278, + 0, 0, 202, 149, 150, 168, 156, 157, 155, 139, + 0, 131, 118, 142, 141, 0, 62, 143, 117, 119, + 120, 216, 242, 0, 0, 258, 274, 0, 0, 0, + 265, 0, 260, 210, 0, 202, 0, 277, 137, 0, + 147, 0, 240, 269, 270, 0, 245, 0, 246, 0, + 255, 0, 256, 0, 250, 0, 251, 0, 0, 268, + 211, 212, 229, 0, 275, 202, 138, 145, 0, 272, + 273, 247, 244, 243, 257, 254, 253, 252, 249, 248, + 263, 264, 0, 241, 276, 146, 266, 267, 261, 279 }; const short parser::yypgoto_[] = { - -341, -341, -341, 190, -19, -13, -66, -340, 192, 120, - -341, 90, -341, -341, -341, -104, -341, -341, -341, -341, - 248, -341, -341, 256, -255, 103, 110, -341, -341, 198, - 213, -286, -341, -341, -341, -341, -341, -298, -341, -341, - -341, 268, -341, 315, -341, -80, 64, -78, 22, -341, - -74, -148, -341, -341, -341 + -342, -342, -342, 157, -19, -13, -67, -341, 158, 83, + -342, 58, -342, -342, -342, -104, -342, -342, -342, -342, + 232, -342, -342, 256, -256, 134, 80, -342, -342, 149, + 183, -290, -342, -342, -342, -342, -342, -299, -342, -342, + -342, 240, -342, 292, -342, -70, 38, -95, -1, -342, + -97, -150, -342, -342, -342 }; const short parser::yydefgoto_[] = { - -1, 2, 3, 127, 128, 129, 70, 94, 208, 209, - 103, 104, 130, 131, 132, 133, 134, 135, 136, 137, - 160, 138, 139, 140, 98, 19, 202, 11, 286, 71, - 142, 143, 4, 100, 5, 12, 230, 305, 105, 471, - 222, 147, 148, 95, 96, 151, 394, 352, 399, 400, - 401, 152, 153, 107, 6 + 0, 2, 3, 128, 129, 130, 71, 95, 209, 210, + 104, 105, 131, 132, 133, 134, 135, 136, 137, 138, + 161, 139, 140, 141, 99, 19, 203, 11, 287, 72, + 143, 144, 4, 101, 5, 12, 231, 306, 106, 472, + 223, 148, 149, 96, 97, 152, 395, 353, 400, 401, + 402, 153, 154, 108, 6 }; const short parser::yytable_[] = { - 68, 68, 68, 349, 155, 228, 69, 69, 69, 83, - 84, 393, 86, 205, 206, 331, 393, 402, 233, 234, - 79, 223, 316, 317, 358, 149, 176, 200, 102, 452, - 13, -232, 481, -232, 436, 1, -231, 145, -231, 15, - -283, 469, 227, 224, 484, 201, 453, 403, 14, 80, - 189, 470, 392, 478, 437, 404, 82, 82, 85, 82, - 92, 245, 69, 69, 482, 69, 93, 225, 149, 146, - 479, 410, 17, 235, 146, 82, 485, 235, 146, 311, - 405, 69, 406, 382, 82, 238, 226, 92, 455, 438, - 69, 16, 451, 93, 169, 170, 171, 172, 487, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 446, 489, 239, 187, 207, 495, 20, - 21, 188, 444, 240, 204, 272, 189, 211, 456, 459, - 488, 490, 18, 213, 214, 496, 22, 463, 171, 172, - 324, 215, 174, 457, 176, 74, 473, 246, 458, 190, - 241, 77, 445, 191, 303, 75, 216, 192, 193, 65, - 194, 195, 67, 196, 197, 76, 330, 198, 189, 460, - 268, 217, 271, 218, 97, 199, 493, 464, 69, 219, - 78, 276, 220, 99, 461, 169, 170, 171, 172, 462, - 101, 174, 465, 176, 159, 293, 297, 466, 221, 106, - 395, 82, 298, 65, 154, 210, 67, 69, 165, 277, - 166, 162, 340, 278, 167, 164, 168, 189, 72, 73, - 279, 280, 203, 229, 204, 281, 285, 396, 373, 397, - 292, 439, 398, 288, 381, 282, 169, 170, 171, 172, - 300, 173, 174, 175, 176, 289, 301, 179, 180, 181, - 182, 302, 102, 185, 186, -196, 7, 8, 396, 339, - 440, 9, 304, 398, 10, 69, 306, 375, 189, 231, - 290, 168, 291, 325, 332, 168, 333, 308, 367, 424, - 168, 307, 309, 328, 169, 170, 171, 172, 310, 173, - 174, 175, 176, 146, 312, 179, 180, 181, 182, 82, - 319, 185, 186, 320, 371, 69, 168, 368, 383, 322, - 384, 411, 321, 204, 374, 448, 189, 418, 426, 168, - 69, 323, 169, 170, 171, 172, 326, 173, 174, 175, - 176, 334, 92, 179, 180, 181, 182, 92, 93, 185, - 186, 189, 422, 93, 168, 431, 477, 432, 443, 449, - 432, 168, 353, 475, 189, 168, 494, 141, 168, 351, - 354, 356, 357, 364, 372, 425, 156, 157, 158, 161, - 365, 69, 366, 389, 419, 163, 414, 434, 169, 170, - 171, 172, 415, 173, 174, 175, 176, 416, 417, 423, - 435, 433, 450, 454, 467, 185, 186, 430, 468, 474, - 472, 480, 483, 486, 491, 296, 492, 299, 363, 236, - 189, 346, 350, 92, 497, 232, 212, 287, 237, 93, - 409, 150, 441, 498, 247, 248, 249, 250, 251, 252, + 69, 69, 69, 350, 229, 156, 70, 70, 70, 84, + 85, 394, 87, 206, 207, 332, 394, 482, 403, 234, + 235, 359, 80, 485, 224, 168, 201, 169, 103, 177, + 437, 214, 215, 1, 456, 239, 150, 146, 66, 216, + 211, 68, 317, 318, 202, 13, 225, 460, 404, 483, + 438, 81, 393, 190, 217, 486, 405, 83, 83, 86, + 83, 93, 246, 70, 70, 240, 70, 94, 411, 218, + 226, 219, 464, 241, 457, 236, 83, 220, 312, 150, + 221, 406, 70, 383, 407, 83, 439, 461, 93, 458, + 227, 70, 452, 453, 94, 459, 66, 222, 236, 68, + 14, 242, 462, 277, 18, 396, 488, -233, 463, -233, + 454, 15, 465, 447, -232, -284, -232, 228, 208, 445, + 470, 205, 479, 490, 166, 273, 167, 466, 212, 16, + 471, 278, 397, 467, 398, 279, 440, 399, 489, 480, + 491, 325, 280, 281, 22, 147, 474, 282, 247, 446, + 20, 21, 147, 147, 304, 496, 75, 283, 170, 171, + 172, 173, 17, 397, 175, 441, 177, 331, 399, 73, + 74, 269, 497, 272, 172, 173, 494, 76, 175, 70, + 177, 170, 171, 172, 173, 77, 174, 175, 176, 177, + 190, 78, 180, 181, 182, 183, 294, 298, 186, 187, + 79, 98, 83, 299, 190, 204, 100, 205, 70, 232, + 102, 169, 341, 190, 107, -197, 7, 8, 291, 155, + 292, 9, 286, 326, 10, 169, 289, 163, 329, 374, + 165, 170, 171, 172, 173, 382, 174, 175, 176, 177, + 230, 290, 180, 181, 182, 183, 293, 301, 186, 187, + 302, 333, 103, 334, 368, 372, 169, 169, 303, 412, + 340, 205, 384, 190, 385, 307, 70, 376, 419, 423, + 169, 169, 432, 444, 433, 433, 305, 308, 335, 309, + 425, 170, 171, 172, 173, 310, 174, 175, 176, 177, + 311, 147, 180, 181, 182, 183, 313, 320, 186, 187, + 83, 450, 476, 169, 169, 495, 70, 169, 369, 321, + 322, 323, 324, 190, 327, 375, 449, 190, 427, 354, + 352, 70, 355, 357, 170, 171, 172, 173, 336, 174, + 175, 176, 177, 93, 358, 365, 366, 373, 93, 94, + 367, 186, 187, 390, 94, 415, 416, 478, 417, 418, + 420, 434, 424, 451, 455, 431, 190, 468, 142, 436, + 469, 475, 481, 473, 484, 487, 426, 157, 158, 159, + 162, 492, 70, 297, 300, 347, 164, 364, 435, 170, + 171, 172, 173, 351, 174, 175, 176, 177, 288, 213, + 180, 181, 182, 183, 237, 410, 186, 187, 498, 151, + 442, 499, 0, 0, 0, 0, 493, 0, 0, 0, + 0, 190, 0, 0, 93, 0, 233, 0, 0, 238, + 94, 0, 0, 0, 0, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 0, 269, 0, 273, 0, - 274, 275, 0, 82, 283, 284, 0, 0, 0, 69, - 141, 169, 170, 171, 172, 0, 173, 174, 175, 176, + 263, 264, 265, 266, 267, 268, 0, 270, 0, 274, + 0, 275, 276, 0, 83, 284, 285, 0, 0, 0, + 70, 142, 170, 171, 172, 173, 0, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 0, 0, 0, 187, 0, 0, 0, 0, 188, 314, - 0, 315, 0, 189, 0, 0, 0, 169, 170, 171, - 172, 0, 173, 174, 175, 176, 0, 0, 179, 180, - 181, 182, 0, 0, 185, 186, 190, 0, 0, 0, - 191, 0, 0, 0, 192, 193, 0, 194, 195, 189, - 196, 197, 336, 337, 198, 341, 342, 0, 343, 0, - 0, 345, 199, 0, 335, 0, 0, 0, 347, 0, - 348, 0, 0, 0, 313, 0, 0, 0, 0, 0, - 0, 0, 0, 355, 0, 0, 141, 0, 0, 359, - 0, 0, 362, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 369, 370, 0, 0, 0, 0, 0, - 376, 377, 0, 0, 0, 0, 0, 0, 0, 0, - 388, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 407, 0, 0, 141, 108, 242, 0, 412, 0, 110, - 111, 243, 0, 112, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 420, 421, 0, 0, 23, 24, - 25, 427, 428, 429, 26, 0, 0, 27, 113, 114, - 0, 0, 29, 0, 0, 115, 116, 117, 0, 0, - 33, 0, 34, 244, 0, 35, 0, 0, 36, 118, - 37, 38, 0, 39, 40, 0, 41, 42, 0, 0, - 43, 0, 0, 0, 44, 45, 46, 47, 119, 0, - 120, 0, 0, 48, 49, 50, 0, 121, 52, 0, - 53, 54, 55, 56, 57, 58, 0, 0, 59, 0, - 81, 61, 0, 122, 62, 0, 0, 0, 63, 0, - 0, 64, 65, 123, 124, 67, 125, 126, 108, 329, - 0, 0, 0, 110, 111, 0, 0, 112, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 23, 24, 25, 0, 0, 0, 26, 0, - 0, 27, 113, 114, 0, 0, 29, 0, 0, 115, - 116, 117, 0, 0, 33, 0, 34, 0, 0, 35, - 0, 0, 36, 118, 37, 38, 0, 39, 40, 0, - 41, 42, 0, 0, 43, 0, 0, 0, 44, 45, - 46, 47, 119, 0, 120, 0, 0, 48, 49, 50, - 0, 121, 52, 0, 53, 54, 55, 56, 57, 58, - 97, 0, 59, 0, 81, 61, 0, 122, 62, 0, - 0, 0, 63, 0, 0, 64, 65, 123, 124, 67, - 125, 126, 108, 380, 0, 0, 0, 110, 111, 0, - 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 23, 24, 25, 0, - 0, 0, 26, 0, 0, 27, 113, 114, 0, 0, - 29, 0, 0, 115, 116, 117, 0, 0, 33, 0, - 34, 0, 0, 35, 0, 0, 36, 118, 37, 38, - 0, 39, 40, 0, 41, 42, 0, 0, 43, 0, - 0, 0, 44, 45, 46, 47, 119, 0, 120, 0, - 0, 48, 49, 50, 0, 121, 52, 0, 53, 54, - 55, 56, 57, 58, 97, 0, 59, 0, 81, 61, - 0, 122, 62, 0, 0, 0, 63, 0, 0, 64, - 65, 123, 124, 67, 125, 126, 108, 109, 0, 0, - 0, 110, 111, 0, 0, 112, 0, 0, 0, 0, + 187, 0, 0, 0, 188, 0, 0, 0, 0, 189, + 315, 0, 316, 0, 190, 0, 0, 0, 170, 171, + 172, 173, 0, 174, 175, 176, 177, 0, 0, 180, + 181, 182, 183, 0, 0, 186, 187, 191, 0, 0, + 0, 192, 0, 0, 0, 193, 194, 0, 195, 196, + 190, 197, 198, 337, 338, 199, 342, 343, 0, 344, + 0, 0, 346, 200, 0, 345, 0, 0, 0, 348, + 0, 349, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 160, 356, 0, 0, 142, 0, 0, + 360, 0, 0, 363, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 370, 371, 0, 0, 0, 0, + 0, 377, 378, 0, 0, 0, 0, 0, 0, 0, + 0, 389, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 408, 0, 0, 142, 109, 243, 0, 413, 0, + 111, 112, 244, 0, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 421, 422, 0, 0, 23, + 24, 25, 428, 429, 430, 26, 0, 0, 27, 114, + 115, 0, 0, 29, 0, 0, 116, 117, 118, 0, + 0, 33, 0, 34, 245, 0, 35, 0, 0, 36, + 119, 37, 38, 0, 39, 40, 0, 41, 42, 0, + 0, 43, 0, 0, 0, 44, 45, 46, 47, 120, + 0, 121, 0, 0, 48, 49, 50, 0, 122, 52, + 0, 53, 54, 55, 56, 57, 58, 59, 0, 0, + 60, 0, 82, 62, 0, 123, 63, 0, 0, 0, + 64, 0, 0, 65, 66, 124, 125, 68, 126, 127, + 109, 330, 0, 0, 0, 111, 112, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 23, 24, 25, 0, 0, 0, 26, 0, 0, 27, - 113, 114, 0, 0, 29, 0, 0, 115, 116, 117, - 0, 0, 33, 0, 34, 0, 0, 35, 0, 0, - 36, 118, 37, 38, 0, 39, 40, 0, 41, 42, - 0, 0, 43, 0, 0, 0, 44, 45, 46, 47, - 119, 0, 120, 0, 0, 48, 49, 50, 0, 121, - 52, 0, 53, 54, 55, 56, 57, 58, 0, 0, - 59, 0, 81, 61, 0, 122, 62, 0, 0, 0, - 63, 0, 0, 64, 65, 123, 124, 67, 125, 126, - 108, 0, 0, 0, 0, 110, 111, 0, 0, 112, + 0, 0, 0, 0, 23, 24, 25, 0, 0, 0, + 26, 0, 0, 27, 114, 115, 0, 0, 29, 0, + 0, 116, 117, 118, 0, 0, 33, 0, 34, 0, + 0, 35, 0, 0, 36, 119, 37, 38, 0, 39, + 40, 0, 41, 42, 0, 0, 43, 0, 0, 0, + 44, 45, 46, 47, 120, 0, 121, 0, 0, 48, + 49, 50, 0, 122, 52, 0, 53, 54, 55, 56, + 57, 58, 59, 98, 0, 60, 0, 82, 62, 0, + 123, 63, 0, 0, 0, 64, 0, 0, 65, 66, + 124, 125, 68, 126, 127, 109, 381, 0, 0, 0, + 111, 112, 0, 0, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, + 24, 25, 0, 0, 0, 26, 0, 0, 27, 114, + 115, 0, 0, 29, 0, 0, 116, 117, 118, 0, + 0, 33, 0, 34, 0, 0, 35, 0, 0, 36, + 119, 37, 38, 0, 39, 40, 0, 41, 42, 0, + 0, 43, 0, 0, 0, 44, 45, 46, 47, 120, + 0, 121, 0, 0, 48, 49, 50, 0, 122, 52, + 0, 53, 54, 55, 56, 57, 58, 59, 98, 0, + 60, 0, 82, 62, 0, 123, 63, 0, 0, 0, + 64, 0, 0, 65, 66, 124, 125, 68, 126, 127, + 109, 110, 0, 0, 0, 111, 112, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 24, 25, 0, 0, 0, - 26, 0, 0, 27, 113, 114, 0, 0, 29, 0, - 0, 115, 116, 117, 0, 0, 33, 0, 34, 0, - 0, 35, 0, 0, 36, 118, 37, 38, 0, 39, + 26, 0, 0, 27, 114, 115, 0, 0, 29, 0, + 0, 116, 117, 118, 0, 0, 33, 0, 34, 0, + 0, 35, 0, 0, 36, 119, 37, 38, 0, 39, 40, 0, 41, 42, 0, 0, 43, 0, 0, 0, - 44, 45, 46, 47, 119, 0, 120, 0, 0, 48, - 49, 50, 0, 121, 52, 0, 53, 54, 55, 56, - 57, 58, 0, 0, 59, 0, 81, 61, 0, 122, - 62, 0, 0, 0, 63, 159, 0, 64, 65, 123, - 124, 67, 125, 126, 108, 447, 0, 0, 0, 110, - 111, 0, 0, 112, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 24, - 25, 0, 0, 0, 26, 0, 0, 27, 113, 114, - 0, 0, 29, 0, 0, 115, 116, 117, 0, 0, - 33, 0, 34, 0, 0, 35, 0, 0, 36, 118, - 37, 38, 0, 39, 40, 0, 41, 42, 0, 0, - 43, 0, 0, 0, 44, 45, 46, 47, 119, 0, - 120, 0, 0, 48, 49, 50, 0, 121, 52, 0, - 53, 54, 55, 56, 57, 58, 0, 0, 59, 0, - 81, 61, 0, 122, 62, 0, 0, 0, 63, 0, - 0, 64, 65, 123, 124, 67, 125, 126, 108, 476, - 0, 0, 0, 110, 111, 0, 0, 112, 0, 0, + 44, 45, 46, 47, 120, 0, 121, 0, 0, 48, + 49, 50, 0, 122, 52, 0, 53, 54, 55, 56, + 57, 58, 59, 0, 0, 60, 0, 82, 62, 0, + 123, 63, 0, 0, 0, 64, 0, 0, 65, 66, + 124, 125, 68, 126, 127, 109, 0, 0, 0, 0, + 111, 112, 0, 0, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, + 24, 25, 0, 0, 0, 26, 0, 0, 27, 114, + 115, 0, 0, 29, 0, 0, 116, 117, 118, 0, + 0, 33, 0, 34, 0, 0, 35, 0, 0, 36, + 119, 37, 38, 0, 39, 40, 0, 41, 42, 0, + 0, 43, 0, 0, 0, 44, 45, 46, 47, 120, + 0, 121, 0, 0, 48, 49, 50, 0, 122, 52, + 0, 53, 54, 55, 56, 57, 58, 59, 0, 0, + 60, 0, 82, 62, 0, 123, 63, 0, 0, 0, + 64, 160, 0, 65, 66, 124, 125, 68, 126, 127, + 109, 448, 0, 0, 0, 111, 112, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 23, 24, 25, 0, 0, 0, 26, 0, - 0, 27, 113, 114, 0, 0, 29, 0, 0, 115, - 116, 117, 0, 0, 33, 0, 34, 0, 0, 35, - 0, 0, 36, 118, 37, 38, 0, 39, 40, 0, - 41, 42, 0, 0, 43, 0, 0, 0, 44, 45, - 46, 47, 119, 0, 120, 0, 0, 48, 49, 50, - 0, 121, 52, 0, 53, 54, 55, 56, 57, 58, - 0, 0, 59, 0, 81, 61, 0, 122, 62, 0, - 0, 0, 63, 0, 0, 64, 65, 123, 124, 67, - 125, 126, 108, 0, 0, 0, 0, 110, 111, 0, - 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 23, 24, 25, 0, - 0, 0, 26, 0, 0, 27, 113, 114, 0, 0, - 29, 0, 0, 115, 116, 117, 0, 0, 33, 0, - 34, 0, 0, 35, 0, 0, 36, 118, 37, 38, - 0, 39, 40, 0, 41, 42, 0, 0, 43, 0, - 0, 0, 44, 45, 46, 47, 119, 0, 120, 0, - 0, 48, 49, 50, 0, 121, 52, 0, 53, 54, - 55, 56, 57, 58, 0, 0, 59, 0, 81, 61, - 0, 122, 62, 0, 0, 0, 63, 0, 0, 64, - 65, 123, 124, 67, 125, 126, 294, 0, 0, 0, - 0, 205, 206, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 24, 25, 0, 0, 0, + 26, 0, 0, 27, 114, 115, 0, 0, 29, 0, + 0, 116, 117, 118, 0, 0, 33, 0, 34, 0, + 0, 35, 0, 0, 36, 119, 37, 38, 0, 39, + 40, 0, 41, 42, 0, 0, 43, 0, 0, 0, + 44, 45, 46, 47, 120, 0, 121, 0, 0, 48, + 49, 50, 0, 122, 52, 0, 53, 54, 55, 56, + 57, 58, 59, 0, 0, 60, 0, 82, 62, 0, + 123, 63, 0, 0, 0, 64, 0, 0, 65, 66, + 124, 125, 68, 126, 127, 109, 477, 0, 0, 0, + 111, 112, 0, 0, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, + 24, 25, 0, 0, 0, 26, 0, 0, 27, 114, + 115, 0, 0, 29, 0, 0, 116, 117, 118, 0, + 0, 33, 0, 34, 0, 0, 35, 0, 0, 36, + 119, 37, 38, 0, 39, 40, 0, 41, 42, 0, + 0, 43, 0, 0, 0, 44, 45, 46, 47, 120, + 0, 121, 0, 0, 48, 49, 50, 0, 122, 52, + 0, 53, 54, 55, 56, 57, 58, 59, 0, 0, + 60, 0, 82, 62, 0, 123, 63, 0, 0, 0, + 64, 0, 0, 65, 66, 124, 125, 68, 126, 127, + 109, 0, 0, 0, 0, 111, 112, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 23, 24, 25, 0, 0, 0, 26, 0, 0, 27, - 0, 28, 0, 0, 29, 0, 0, 115, 116, 117, - 0, 0, 33, 0, 34, 0, 0, 35, 0, 0, - 36, 118, 37, 38, 0, 39, 40, 295, 41, 42, - 0, 0, 43, 0, 0, 0, 44, 45, 46, 47, - 0, 0, 120, 0, 0, 48, 49, 50, 0, 51, - 52, 0, 53, 54, 55, 56, 57, 58, 144, 0, - 59, 0, 81, 61, 0, 122, 62, 0, 0, 0, - 63, 0, 0, 64, 65, 123, 124, 67, 125, 0, + 0, 0, 0, 0, 23, 24, 25, 0, 0, 0, + 26, 0, 0, 27, 114, 115, 0, 0, 29, 0, + 0, 116, 117, 118, 0, 0, 33, 0, 34, 0, + 0, 35, 0, 0, 36, 119, 37, 38, 0, 39, + 40, 0, 41, 42, 0, 0, 43, 0, 0, 0, + 44, 45, 46, 47, 120, 0, 121, 0, 0, 48, + 49, 50, 0, 122, 52, 0, 53, 54, 55, 56, + 57, 58, 59, 0, 0, 60, 0, 82, 62, 0, + 123, 63, 0, 0, 0, 64, 0, 0, 65, 66, + 124, 125, 68, 126, 127, 295, 0, 0, 0, 0, + 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, + 24, 25, 0, 0, 0, 26, 0, 0, 27, 0, + 28, 0, 0, 29, 0, 0, 116, 117, 118, 0, + 0, 33, 0, 34, 0, 0, 35, 0, 0, 36, + 119, 37, 38, 0, 39, 40, 296, 41, 42, 0, + 0, 43, 0, 0, 0, 44, 45, 46, 47, 0, + 0, 121, 0, 0, 48, 49, 50, 0, 51, 52, + 0, 53, 54, 55, 56, 57, 58, 59, 145, 0, + 60, 0, 82, 62, 0, 123, 63, 0, 0, 0, + 64, 0, 0, 65, 66, 124, 125, 68, 126, 0, 0, 0, 23, 24, 25, 0, 0, 0, 26, 0, 0, 27, 0, 28, 0, 0, 29, 0, 0, 30, 31, 32, 0, 0, 33, 0, 34, 0, 0, 35, @@ -3954,281 +3976,279 @@ namespace sqlb { namespace parser { 41, 42, 0, 0, 43, 0, 0, 0, 44, 45, 46, 47, 0, 0, 0, 0, 0, 48, 49, 50, 0, 51, 52, 0, 53, 54, 55, 56, 57, 58, - 270, 0, 59, 0, 81, 61, 0, 0, 62, 0, - 0, 0, 63, 0, 0, 64, 65, 0, 66, 67, - 0, 0, 0, 0, 23, 24, 25, 0, 0, 0, - 26, 0, 0, 27, 0, 28, 0, 0, 29, 0, - 0, 30, 31, 32, 0, 0, 33, 0, 34, 0, - 0, 35, 0, 0, 36, 0, 37, 38, 0, 39, - 40, 0, 41, 42, 0, 0, 43, 0, 0, 0, - 44, 45, 46, 47, 0, 0, 0, 0, 0, 48, - 49, 50, 0, 51, 52, 0, 53, 54, 55, 56, - 57, 58, 338, 0, 59, 0, 81, 61, 0, 0, - 62, 0, 0, 0, 63, 0, 0, 64, 65, 0, - 66, 67, 0, 0, 0, 0, 23, 24, 25, 0, - 0, 0, 26, 0, 0, 27, 0, 28, 0, 0, - 29, 0, 0, 30, 31, 32, 0, 0, 33, 0, - 34, 0, 0, 35, 0, 0, 36, 0, 37, 38, - 0, 39, 40, 0, 41, 42, 0, 0, 43, 0, - 0, 0, 44, 45, 46, 47, 0, 0, 0, 0, - 0, 48, 49, 50, 0, 51, 52, 0, 53, 54, - 55, 56, 57, 58, 0, 0, 59, 0, 81, 61, - 0, 0, 62, 0, 0, 0, 63, 0, 0, 64, - 65, 0, 66, 67, 169, 170, 171, 172, 0, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 0, 0, 0, 187, 0, 0, 0, - 0, 188, 169, 170, 171, 172, 189, 173, 174, 175, - 176, 0, 0, 179, 180, 181, 182, 0, 0, 185, - 186, 0, 0, 0, 0, 0, 0, 0, 0, 190, - 0, 0, 0, 191, 189, 0, 0, 192, 193, 0, - 194, 195, 0, 196, 197, 0, 0, 198, 0, 344, - 0, 23, 24, 25, 0, 199, 0, 26, 0, 0, - 27, 0, 28, 0, 0, 29, 146, 361, 87, 88, - 89, 0, 0, 33, 0, 34, 0, 0, 35, 0, - 0, 36, 0, 37, 38, 0, 39, 40, 90, 41, - 42, 0, 0, 43, 0, 0, 0, 44, 45, 46, - 47, 0, 0, 0, 0, 0, 48, 49, 50, 0, - 51, 52, 0, 53, 54, 55, 56, 57, 58, 0, - 0, 59, 0, 81, 61, 0, 0, 62, 0, 0, - 0, 63, 0, 0, 64, 65, 0, 91, 67, 23, - 24, 25, 0, 0, 0, 26, 0, 0, 27, 0, - 28, 0, 0, 29, 0, 0, 87, 88, 89, 0, - 0, 33, 0, 34, 0, 0, 35, 0, 0, 36, - 0, 37, 38, 0, 39, 40, 90, 41, 42, 0, - 0, 43, 0, 0, 0, 44, 45, 46, 47, 0, - 0, 0, 0, 0, 48, 49, 50, 0, 51, 52, - 0, 53, 54, 55, 56, 57, 58, 0, 0, 59, - 0, 81, 61, 0, 0, 62, 0, 0, 0, 63, - 0, 0, 64, 65, 0, 91, 67, 23, 24, 25, - 0, 0, 0, 26, 0, 0, 27, 0, 28, 0, - 0, 29, 0, 0, 30, 31, 32, 0, 0, 33, - 0, 34, 0, 0, 35, 0, 0, 36, 0, 37, - 38, 0, 39, 40, 0, 41, 42, 0, 0, 43, - 0, 0, 0, 44, 45, 46, 47, 0, 0, 0, - 0, 0, 48, 49, 50, 0, 51, 52, 0, 53, - 54, 55, 56, 57, 58, 0, 0, 59, 0, 60, - 61, 0, 0, 62, 0, 0, 0, 63, 0, 0, - 64, 65, 0, 66, 67, 23, 24, 25, 0, 0, + 59, 271, 0, 60, 0, 82, 62, 0, 0, 63, + 0, 0, 0, 64, 0, 0, 65, 66, 0, 67, + 68, 0, 0, 0, 0, 23, 24, 25, 0, 0, 0, 26, 0, 0, 27, 0, 28, 0, 0, 29, 0, 0, 30, 31, 32, 0, 0, 33, 0, 34, 0, 0, 35, 0, 0, 36, 0, 37, 38, 0, 39, 40, 0, 41, 42, 0, 0, 43, 0, 0, 0, 44, 45, 46, 47, 0, 0, 0, 0, 0, 48, 49, 50, 0, 51, 52, 0, 53, 54, 55, - 56, 57, 58, 0, 0, 59, 0, 81, 61, 0, - 0, 62, 0, 0, 0, 63, 0, 0, 64, 65, - 390, 66, 67, 0, 169, 170, 171, 172, 0, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 0, 0, 0, 187, 0, 0, 0, - 0, 188, 169, 170, 171, 172, 189, 173, 174, 175, - 176, 0, 0, 179, 180, 181, 182, 0, 0, 185, - 186, 0, 0, 0, 0, 0, 0, 0, 0, 190, - 0, 0, 0, 191, 189, 0, 0, 192, 193, 0, - 194, 195, 0, 196, 197, 0, 0, 198, 0, 379, - 0, 0, 391, 0, 0, 199, 169, 170, 171, 172, - 0, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 0, 0, 0, 187, 0, - 0, 0, 0, 188, 169, 170, 171, 172, 189, 173, - 174, 175, 176, 0, 0, 179, 180, 181, 182, 0, - 0, 185, 186, 0, 0, 0, 0, 0, 0, 0, - 0, 190, 0, 0, 0, 191, 189, 0, 0, 192, - 193, 0, 194, 195, 0, 196, 197, 0, 0, 198, - 0, 385, 0, 0, 408, 0, 0, 199, 169, 170, - 171, 172, 0, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 0, 0, 0, - 187, 0, 0, 0, 0, 188, 169, 170, 171, 172, - 189, 173, 174, 175, 176, 0, 0, 179, 180, 181, - 182, 0, 0, 185, 186, 0, 0, 0, 0, 0, - 0, 0, 0, 190, 0, 0, 0, 191, 189, 0, - 0, 192, 193, 0, 194, 195, 0, 196, 197, 0, - 0, 198, 0, 386, 0, 0, 442, 0, 0, 199, - 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 0, - 0, 0, 187, 0, 0, 0, 0, 188, 169, 170, - 171, 172, 189, 173, 174, 175, 176, 0, 0, 179, - 180, 181, 182, 0, 0, 185, 186, 0, 0, 0, - 0, 0, 0, 0, 0, 190, 0, 0, 0, 191, - 189, 0, 0, 192, 193, 0, 194, 195, 0, 196, - 197, 0, 0, 198, 0, 387, 0, 169, 170, 171, - 172, 199, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 0, 0, 0, 187, - 0, 0, 200, 0, 188, 0, 0, 0, 0, 189, + 56, 57, 58, 59, 339, 0, 60, 0, 82, 62, + 0, 0, 63, 0, 0, 0, 64, 0, 0, 65, + 66, 0, 67, 68, 0, 0, 0, 0, 23, 24, + 25, 0, 0, 0, 26, 0, 0, 27, 0, 28, + 0, 0, 29, 0, 0, 30, 31, 32, 0, 0, + 33, 0, 34, 0, 0, 35, 0, 0, 36, 0, + 37, 38, 0, 39, 40, 0, 41, 42, 0, 0, + 43, 0, 0, 0, 44, 45, 46, 47, 0, 0, + 0, 0, 0, 48, 49, 50, 0, 51, 52, 0, + 53, 54, 55, 56, 57, 58, 59, 0, 0, 60, + 0, 82, 62, 0, 0, 63, 0, 0, 0, 64, + 0, 0, 65, 66, 0, 67, 68, 170, 171, 172, + 173, 0, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 0, 0, 0, 188, + 0, 0, 0, 0, 189, 170, 171, 172, 173, 190, + 174, 175, 176, 177, 0, 0, 180, 181, 182, 183, + 0, 0, 186, 187, 0, 0, 0, 0, 0, 0, + 0, 0, 191, 0, 0, 0, 192, 190, 0, 0, + 193, 194, 0, 195, 196, 0, 197, 198, 0, 0, + 199, 0, 380, 0, 0, 0, 0, 0, 200, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 171, 172, + 173, 314, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 0, 0, 0, 188, + 0, 0, 0, 0, 189, 0, 0, 0, 0, 190, + 0, 0, 0, 0, 0, 0, 170, 171, 172, 173, + 0, 174, 175, 176, 177, 0, 0, 180, 181, 182, + 183, 0, 191, 186, 187, 0, 192, 0, 0, 0, + 193, 194, 0, 195, 196, 0, 197, 198, 190, 0, + 199, 23, 24, 25, 0, 0, 0, 26, 200, 0, + 27, 0, 28, 386, 0, 29, 147, 0, 88, 89, + 90, 362, 0, 33, 0, 34, 0, 0, 35, 0, + 0, 36, 0, 37, 38, 0, 39, 40, 91, 41, + 42, 0, 0, 43, 0, 0, 0, 44, 45, 46, + 47, 0, 0, 0, 0, 0, 48, 49, 50, 0, + 51, 52, 0, 53, 54, 55, 56, 57, 58, 59, + 0, 0, 60, 0, 82, 62, 0, 0, 63, 0, + 0, 0, 64, 0, 0, 65, 66, 0, 92, 68, + 23, 24, 25, 0, 0, 0, 26, 0, 0, 27, + 0, 28, 0, 0, 29, 0, 0, 88, 89, 90, + 0, 0, 33, 0, 34, 0, 0, 35, 0, 0, + 36, 0, 37, 38, 0, 39, 40, 91, 41, 42, + 0, 0, 43, 0, 0, 0, 44, 45, 46, 47, + 0, 0, 0, 0, 0, 48, 49, 50, 0, 51, + 52, 0, 53, 54, 55, 56, 57, 58, 59, 0, + 0, 60, 0, 82, 62, 0, 0, 63, 0, 0, + 0, 64, 0, 0, 65, 66, 0, 92, 68, 23, + 24, 25, 0, 0, 0, 26, 0, 0, 27, 0, + 28, 0, 0, 29, 0, 0, 30, 31, 32, 0, + 0, 33, 0, 34, 0, 0, 35, 0, 0, 36, + 0, 37, 38, 0, 39, 40, 0, 41, 42, 0, + 0, 43, 0, 0, 0, 44, 45, 46, 47, 0, + 0, 0, 0, 0, 48, 49, 50, 0, 51, 52, + 0, 53, 54, 55, 56, 57, 58, 59, 0, 0, + 60, 0, 61, 62, 0, 0, 63, 0, 0, 0, + 64, 0, 0, 65, 66, 0, 67, 68, 23, 24, + 25, 0, 0, 0, 26, 0, 0, 27, 0, 28, + 0, 0, 29, 0, 0, 30, 31, 32, 0, 0, + 33, 0, 34, 0, 0, 35, 0, 0, 36, 0, + 37, 38, 0, 39, 40, 0, 41, 42, 0, 0, + 43, 0, 0, 0, 44, 45, 46, 47, 0, 0, + 0, 0, 0, 48, 49, 50, 0, 51, 52, 0, + 53, 54, 55, 56, 57, 58, 59, 0, 0, 60, + 0, 82, 62, 0, 0, 63, 0, 0, 0, 64, + 0, 0, 65, 66, 391, 67, 68, 0, 170, 171, + 172, 173, 0, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 0, 0, 0, + 188, 0, 0, 0, 0, 189, 170, 171, 172, 173, + 190, 174, 175, 176, 177, 0, 0, 180, 181, 182, + 183, 0, 0, 186, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 191, 0, 0, 0, 192, 190, 0, + 0, 193, 194, 0, 195, 196, 0, 197, 198, 0, + 0, 199, 0, 387, 0, 0, 392, 0, 0, 200, + 170, 171, 172, 173, 0, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 0, + 0, 0, 188, 0, 0, 0, 0, 189, 170, 171, + 172, 173, 190, 174, 175, 176, 177, 0, 0, 180, + 181, 182, 183, 0, 0, 186, 187, 0, 0, 0, + 0, 0, 0, 0, 0, 191, 0, 0, 0, 192, + 190, 0, 0, 193, 194, 0, 195, 196, 0, 197, + 198, 0, 0, 199, 0, 388, 0, 0, 409, 0, + 0, 200, 170, 171, 172, 173, 0, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 0, 0, 0, 188, 0, 0, 0, 0, 189, + 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, + 0, 192, 0, 0, 0, 193, 194, 0, 195, 196, + 0, 197, 198, 0, 0, 199, 0, 0, 0, 0, + 443, 0, 0, 200, 170, 171, 172, 173, 0, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 0, 0, 0, 188, 0, 0, 0, + 0, 189, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 190, 0, 0, 0, 191, 0, 0, 0, - 192, 193, 0, 194, 195, 0, 196, 197, 0, 0, - 198, 0, 0, 0, 169, 170, 171, 172, 199, 173, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, + 0, 0, 0, 192, 0, 0, 0, 193, 194, 0, + 195, 196, 0, 197, 198, 0, 0, 199, 0, 0, + 0, 170, 171, 172, 173, 200, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 0, 0, 0, 188, 0, 0, 201, 0, 189, 0, + 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, + 192, 0, 0, 0, 193, 194, 0, 195, 196, 0, + 197, 198, 0, 0, 199, 0, 0, 0, 170, 171, + 172, 173, 200, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 0, 0, 0, + 188, 0, 319, 0, 0, 189, 0, 0, 0, 0, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 191, 0, 0, 0, 192, 0, 0, + 0, 193, 194, 0, 195, 196, 0, 197, 198, 0, + 0, 199, 0, 0, 0, 170, 171, 172, 173, 200, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 0, 0, 0, 187, 0, 318, 0, - 0, 188, 0, 0, 0, 0, 189, 0, 0, 0, + 184, 185, 186, 187, 0, 0, 0, 188, 328, 0, + 0, 0, 189, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, - 0, 0, 0, 191, 0, 0, 0, 192, 193, 0, - 194, 195, 0, 196, 197, 0, 0, 198, 0, 0, - 0, 169, 170, 171, 172, 199, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 0, 0, 0, 187, 327, 0, 0, 0, 188, 0, - 0, 0, 0, 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, - 191, 0, 0, 0, 192, 193, 0, 194, 195, 0, - 196, 197, 0, 0, 198, 0, 0, 0, 169, 170, - 171, 172, 199, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 0, 0, 0, - 187, 0, 0, 0, 0, 188, 0, 0, 0, 0, - 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 360, 0, 0, 0, 0, 0, - 0, 0, 0, 190, 0, 0, 0, 191, 0, 0, - 0, 192, 193, 0, 194, 195, 0, 196, 197, 0, - 0, 198, 0, 0, 0, 169, 170, 171, 172, 199, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 0, 0, 0, 187, 378, 0, - 0, 0, 188, 0, 0, 0, 0, 189, 0, 0, + 191, 0, 0, 0, 192, 0, 0, 0, 193, 194, + 0, 195, 196, 0, 197, 198, 0, 0, 199, 0, + 0, 0, 170, 171, 172, 173, 200, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 0, 0, 0, 188, 0, 0, 0, 0, 189, + 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 361, 0, + 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, + 0, 192, 0, 0, 0, 193, 194, 0, 195, 196, + 0, 197, 198, 0, 0, 199, 0, 0, 0, 170, + 171, 172, 173, 200, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 0, 0, + 0, 188, 379, 0, 0, 0, 189, 0, 0, 0, + 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 191, 0, 0, 0, 192, 0, + 0, 0, 193, 194, 0, 195, 196, 0, 197, 198, + 0, 0, 199, 0, 0, 0, 170, 171, 172, 173, + 200, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 0, 0, 0, 188, 0, + 0, 0, 0, 189, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 190, 0, 0, 0, 191, 0, 0, 0, 192, 193, - 0, 194, 195, 0, 196, 197, 0, 0, 198, 0, - 0, 0, 169, 170, 171, 172, 199, 173, 174, 175, + 0, 0, 414, 0, 0, 0, 0, 0, 0, 0, + 0, 191, 0, 0, 0, 192, 0, 0, 0, 193, + 194, 0, 195, 196, 0, 197, 198, 0, 0, 199, + 0, 0, 0, 170, 171, 172, 173, 200, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 0, 0, 0, 187, 0, 0, 0, 0, 188, - 0, 0, 0, 0, 189, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, - 0, 191, 0, 0, 0, 192, 193, 0, 194, 195, - 0, 196, 197, 0, 0, 198, 0, 0, 0, 169, - 170, 171, 172, 199, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 0, 0, - 0, 187, 0, 0, 0, 0, 188, 0, 0, 0, - 0, 189, 0, 0, 0, 0, 0, 0, 0, 0, + 186, 187, 0, 0, 0, 188, 0, 0, 0, 0, + 189, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 190, 0, 0, 0, 191, 0, - 0, 0, 192, 193, 0, 194, 195, 0, 196, 197, - 0, 0, 198, 0, 0, 0, 169, 170, 171, 172, - 199, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 0, 0, 0, 187, 0, - 0, 0, 0, 188, 0, 0, 0, 0, 189, 169, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 0, 0, - 0, 190, 0, 0, 0, 191, 188, 0, 0, 192, - 193, 189, 194, 195, 0, 196, 197, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, - 0, 0, 0, 0, 190, 0, 0, 0, 191, 0, - 0, 0, 192, 193, 0, 194, 195, 0, 196, 197, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 199 + 0, 0, 0, 0, 0, 0, 0, 0, 191, 0, + 0, 0, 192, 0, 0, 0, 193, 194, 0, 195, + 196, 0, 197, 198, 0, 0, 199, 0, 0, 0, + 170, 171, 172, 173, 200, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 0, + 0, 0, 188, 0, 0, 0, 0, 189, 0, 0, + 0, 0, 190, 170, 171, 172, 173, 0, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 0, 0, 0, 191, 0, 0, 0, 192, + 189, 0, 0, 193, 194, 190, 195, 196, 0, 197, + 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 200, 0, 0, 0, 0, 0, 0, 191, 0, + 0, 0, 192, 0, 0, 0, 193, 194, 0, 195, + 196, 0, 197, 198, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 200 }; const short parser::yycheck_[] = { - 19, 20, 21, 301, 108, 153, 19, 20, 21, 75, - 76, 351, 78, 8, 9, 270, 356, 27, 53, 54, - 3, 39, 53, 54, 310, 105, 16, 33, 94, 49, - 0, 4, 47, 6, 50, 43, 4, 103, 6, 98, - 4, 97, 6, 61, 47, 51, 66, 57, 7, 32, - 40, 107, 350, 49, 70, 65, 75, 76, 77, 78, - 79, 165, 75, 76, 79, 78, 79, 85, 148, 42, - 66, 357, 98, 108, 42, 94, 79, 108, 42, 227, - 90, 94, 92, 338, 103, 27, 104, 106, 36, 105, - 103, 68, 432, 106, 8, 9, 10, 11, 47, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 411, 49, 57, 30, 112, 49, 16, - 17, 35, 4, 65, 6, 191, 40, 146, 76, 36, - 79, 66, 64, 39, 40, 66, 77, 36, 10, 11, - 244, 47, 14, 91, 16, 56, 444, 166, 96, 63, - 92, 106, 34, 67, 220, 5, 62, 71, 72, 111, - 74, 75, 114, 77, 78, 5, 270, 81, 40, 76, - 189, 77, 191, 79, 95, 89, 474, 76, 191, 85, - 80, 35, 88, 3, 91, 8, 9, 10, 11, 96, - 3, 14, 91, 16, 108, 214, 215, 96, 104, 6, - 48, 220, 215, 111, 4, 113, 114, 220, 3, 63, - 5, 3, 278, 67, 4, 3, 6, 40, 20, 21, - 74, 75, 4, 110, 6, 79, 109, 75, 332, 77, - 3, 48, 80, 112, 338, 89, 8, 9, 10, 11, - 29, 13, 14, 15, 16, 112, 79, 19, 20, 21, - 22, 73, 318, 25, 26, 98, 99, 100, 75, 278, - 77, 104, 80, 80, 107, 278, 32, 333, 40, 4, - 4, 6, 6, 4, 3, 6, 5, 73, 4, 383, - 6, 3, 73, 55, 8, 9, 10, 11, 3, 13, - 14, 15, 16, 42, 93, 19, 20, 21, 22, 318, - 6, 25, 26, 6, 4, 318, 6, 326, 3, 6, - 5, 4, 4, 6, 333, 419, 40, 4, 384, 6, - 333, 4, 8, 9, 10, 11, 5, 13, 14, 15, - 16, 55, 351, 19, 20, 21, 22, 356, 351, 25, - 26, 40, 4, 356, 6, 4, 450, 6, 4, 4, - 6, 6, 41, 4, 40, 6, 4, 101, 6, 3, - 3, 3, 3, 113, 4, 384, 110, 111, 112, 113, - 113, 384, 113, 4, 3, 119, 4, 396, 8, 9, - 10, 11, 4, 13, 14, 15, 16, 4, 4, 4, - 48, 69, 3, 69, 69, 25, 26, 34, 48, 4, - 88, 28, 28, 28, 69, 215, 472, 215, 318, 161, - 40, 291, 302, 432, 492, 159, 148, 204, 162, 432, - 356, 106, 400, 497, 168, 169, 170, 171, 172, 173, + 19, 20, 21, 302, 154, 109, 19, 20, 21, 76, + 77, 352, 79, 8, 9, 271, 357, 47, 27, 53, + 54, 311, 3, 47, 39, 4, 33, 6, 95, 16, + 50, 39, 40, 43, 36, 27, 106, 104, 112, 47, + 114, 115, 53, 54, 51, 0, 61, 36, 57, 79, + 70, 32, 351, 40, 62, 79, 65, 76, 77, 78, + 79, 80, 166, 76, 77, 57, 79, 80, 358, 77, + 85, 79, 36, 65, 76, 109, 95, 85, 228, 149, + 88, 90, 95, 339, 93, 104, 106, 76, 107, 91, + 105, 104, 433, 49, 107, 97, 112, 105, 109, 115, + 7, 93, 91, 35, 64, 48, 47, 4, 97, 6, + 66, 99, 76, 412, 4, 4, 6, 6, 113, 4, + 98, 6, 49, 49, 3, 192, 5, 91, 147, 68, + 108, 63, 75, 97, 77, 67, 48, 80, 79, 66, + 66, 245, 74, 75, 77, 42, 445, 79, 167, 34, + 16, 17, 42, 42, 221, 49, 56, 89, 8, 9, + 10, 11, 99, 75, 14, 77, 16, 271, 80, 20, + 21, 190, 66, 192, 10, 11, 475, 5, 14, 192, + 16, 8, 9, 10, 11, 5, 13, 14, 15, 16, + 40, 107, 19, 20, 21, 22, 215, 216, 25, 26, + 80, 96, 221, 216, 40, 4, 3, 6, 221, 4, + 3, 6, 279, 40, 6, 99, 100, 101, 4, 4, + 6, 105, 110, 4, 108, 6, 113, 3, 55, 333, + 3, 8, 9, 10, 11, 339, 13, 14, 15, 16, + 111, 113, 19, 20, 21, 22, 3, 29, 25, 26, + 79, 3, 319, 5, 4, 4, 6, 6, 73, 4, + 279, 6, 3, 40, 5, 32, 279, 334, 4, 4, + 6, 6, 4, 4, 6, 6, 80, 3, 55, 73, + 384, 8, 9, 10, 11, 73, 13, 14, 15, 16, + 3, 42, 19, 20, 21, 22, 94, 6, 25, 26, + 319, 4, 4, 6, 6, 4, 319, 6, 327, 6, + 4, 6, 4, 40, 5, 334, 420, 40, 385, 41, + 3, 334, 3, 3, 8, 9, 10, 11, 55, 13, + 14, 15, 16, 352, 3, 114, 114, 4, 357, 352, + 114, 25, 26, 4, 357, 4, 4, 451, 4, 4, + 3, 69, 4, 3, 69, 34, 40, 69, 102, 48, + 48, 4, 28, 88, 28, 28, 385, 111, 112, 113, + 114, 69, 385, 216, 216, 292, 120, 319, 397, 8, + 9, 10, 11, 303, 13, 14, 15, 16, 205, 149, + 19, 20, 21, 22, 162, 357, 25, 26, 493, 107, + 401, 498, -1, -1, -1, -1, 473, -1, -1, -1, + -1, 40, -1, -1, 433, -1, 160, -1, -1, 163, + 433, -1, -1, -1, -1, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, -1, 190, -1, 192, -1, - 194, 195, -1, 472, 198, 199, -1, -1, -1, 472, - 204, 8, 9, 10, 11, -1, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - -1, -1, -1, 30, -1, -1, -1, -1, 35, 233, - -1, 235, -1, 40, -1, -1, -1, 8, 9, 10, - 11, -1, 13, 14, 15, 16, -1, -1, 19, 20, - 21, 22, -1, -1, 25, 26, 63, -1, -1, -1, - 67, -1, -1, -1, 71, 72, -1, 74, 75, 40, - 77, 78, 276, 277, 81, 279, 280, -1, 282, -1, - -1, 285, 89, -1, 55, -1, -1, -1, 292, -1, - 294, -1, -1, -1, 101, -1, -1, -1, -1, -1, - -1, -1, -1, 307, -1, -1, 310, -1, -1, 313, - -1, -1, 316, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 327, 328, -1, -1, -1, -1, -1, - 334, 335, -1, -1, -1, -1, -1, -1, -1, -1, - 344, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 354, -1, -1, 357, 3, 4, -1, 361, -1, 8, - 9, 10, -1, 12, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 378, 379, -1, -1, 27, 28, - 29, 385, 386, 387, 33, -1, -1, 36, 37, 38, - -1, -1, 41, -1, -1, 44, 45, 46, -1, -1, - 49, -1, 51, 52, -1, 54, -1, -1, 57, 58, - 59, 60, -1, 62, 63, -1, 65, 66, -1, -1, - 69, -1, -1, -1, 73, 74, 75, 76, 77, -1, - 79, -1, -1, 82, 83, 84, -1, 86, 87, -1, - 89, 90, 91, 92, 93, 94, -1, -1, 97, -1, - 99, 100, -1, 102, 103, -1, -1, -1, 107, -1, - -1, 110, 111, 112, 113, 114, 115, 116, 3, 4, - -1, -1, -1, 8, 9, -1, -1, 12, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 27, 28, 29, -1, -1, -1, 33, -1, - -1, 36, 37, 38, -1, -1, 41, -1, -1, 44, - 45, 46, -1, -1, 49, -1, 51, -1, -1, 54, - -1, -1, 57, 58, 59, 60, -1, 62, 63, -1, - 65, 66, -1, -1, 69, -1, -1, -1, 73, 74, - 75, 76, 77, -1, 79, -1, -1, 82, 83, 84, - -1, 86, 87, -1, 89, 90, 91, 92, 93, 94, - 95, -1, 97, -1, 99, 100, -1, 102, 103, -1, - -1, -1, 107, -1, -1, 110, 111, 112, 113, 114, - 115, 116, 3, 4, -1, -1, -1, 8, 9, -1, - -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 27, 28, 29, -1, - -1, -1, 33, -1, -1, 36, 37, 38, -1, -1, - 41, -1, -1, 44, 45, 46, -1, -1, 49, -1, - 51, -1, -1, 54, -1, -1, 57, 58, 59, 60, - -1, 62, 63, -1, 65, 66, -1, -1, 69, -1, - -1, -1, 73, 74, 75, 76, 77, -1, 79, -1, - -1, 82, 83, 84, -1, 86, 87, -1, 89, 90, - 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, - -1, 102, 103, -1, -1, -1, 107, -1, -1, 110, - 111, 112, 113, 114, 115, 116, 3, 4, -1, -1, - -1, 8, 9, -1, -1, 12, -1, -1, -1, -1, + 184, 185, 186, 187, 188, 189, -1, 191, -1, 193, + -1, 195, 196, -1, 473, 199, 200, -1, -1, -1, + 473, 205, 8, 9, 10, 11, -1, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, -1, -1, -1, 30, -1, -1, -1, -1, 35, + 234, -1, 236, -1, 40, -1, -1, -1, 8, 9, + 10, 11, -1, 13, 14, 15, 16, -1, -1, 19, + 20, 21, 22, -1, -1, 25, 26, 63, -1, -1, + -1, 67, -1, -1, -1, 71, 72, -1, 74, 75, + 40, 77, 78, 277, 278, 81, 280, 281, -1, 283, + -1, -1, 286, 89, -1, 55, -1, -1, -1, 293, + -1, 295, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 109, 308, -1, -1, 311, -1, -1, + 314, -1, -1, 317, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 328, 329, -1, -1, -1, -1, + -1, 335, 336, -1, -1, -1, -1, -1, -1, -1, + -1, 345, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 355, -1, -1, 358, 3, 4, -1, 362, -1, + 8, 9, 10, -1, 12, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 379, 380, -1, -1, 27, + 28, 29, 386, 387, 388, 33, -1, -1, 36, 37, + 38, -1, -1, 41, -1, -1, 44, 45, 46, -1, + -1, 49, -1, 51, 52, -1, 54, -1, -1, 57, + 58, 59, 60, -1, 62, 63, -1, 65, 66, -1, + -1, 69, -1, -1, -1, 73, 74, 75, 76, 77, + -1, 79, -1, -1, 82, 83, 84, -1, 86, 87, + -1, 89, 90, 91, 92, 93, 94, 95, -1, -1, + 98, -1, 100, 101, -1, 103, 104, -1, -1, -1, + 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, + 3, 4, -1, -1, -1, 8, 9, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 27, 28, 29, -1, -1, -1, 33, -1, -1, 36, - 37, 38, -1, -1, 41, -1, -1, 44, 45, 46, - -1, -1, 49, -1, 51, -1, -1, 54, -1, -1, - 57, 58, 59, 60, -1, 62, 63, -1, 65, 66, - -1, -1, 69, -1, -1, -1, 73, 74, 75, 76, - 77, -1, 79, -1, -1, 82, 83, 84, -1, 86, - 87, -1, 89, 90, 91, 92, 93, 94, -1, -1, - 97, -1, 99, 100, -1, 102, 103, -1, -1, -1, - 107, -1, -1, 110, 111, 112, 113, 114, 115, 116, - 3, -1, -1, -1, -1, 8, 9, -1, -1, 12, + -1, -1, -1, -1, 27, 28, 29, -1, -1, -1, + 33, -1, -1, 36, 37, 38, -1, -1, 41, -1, + -1, 44, 45, 46, -1, -1, 49, -1, 51, -1, + -1, 54, -1, -1, 57, 58, 59, 60, -1, 62, + 63, -1, 65, 66, -1, -1, 69, -1, -1, -1, + 73, 74, 75, 76, 77, -1, 79, -1, -1, 82, + 83, 84, -1, 86, 87, -1, 89, 90, 91, 92, + 93, 94, 95, 96, -1, 98, -1, 100, 101, -1, + 103, 104, -1, -1, -1, 108, -1, -1, 111, 112, + 113, 114, 115, 116, 117, 3, 4, -1, -1, -1, + 8, 9, -1, -1, 12, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, + 28, 29, -1, -1, -1, 33, -1, -1, 36, 37, + 38, -1, -1, 41, -1, -1, 44, 45, 46, -1, + -1, 49, -1, 51, -1, -1, 54, -1, -1, 57, + 58, 59, 60, -1, 62, 63, -1, 65, 66, -1, + -1, 69, -1, -1, -1, 73, 74, 75, 76, 77, + -1, 79, -1, -1, 82, 83, 84, -1, 86, 87, + -1, 89, 90, 91, 92, 93, 94, 95, 96, -1, + 98, -1, 100, 101, -1, 103, 104, -1, -1, -1, + 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, + 3, 4, -1, -1, -1, 8, 9, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, 28, 29, -1, -1, -1, 33, -1, -1, 36, 37, 38, -1, -1, 41, -1, @@ -4237,54 +4257,66 @@ namespace sqlb { namespace parser { 63, -1, 65, 66, -1, -1, 69, -1, -1, -1, 73, 74, 75, 76, 77, -1, 79, -1, -1, 82, 83, 84, -1, 86, 87, -1, 89, 90, 91, 92, - 93, 94, -1, -1, 97, -1, 99, 100, -1, 102, - 103, -1, -1, -1, 107, 108, -1, 110, 111, 112, - 113, 114, 115, 116, 3, 4, -1, -1, -1, 8, - 9, -1, -1, 12, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 27, 28, - 29, -1, -1, -1, 33, -1, -1, 36, 37, 38, - -1, -1, 41, -1, -1, 44, 45, 46, -1, -1, - 49, -1, 51, -1, -1, 54, -1, -1, 57, 58, - 59, 60, -1, 62, 63, -1, 65, 66, -1, -1, - 69, -1, -1, -1, 73, 74, 75, 76, 77, -1, - 79, -1, -1, 82, 83, 84, -1, 86, 87, -1, - 89, 90, 91, 92, 93, 94, -1, -1, 97, -1, - 99, 100, -1, 102, 103, -1, -1, -1, 107, -1, - -1, 110, 111, 112, 113, 114, 115, 116, 3, 4, - -1, -1, -1, 8, 9, -1, -1, 12, -1, -1, + 93, 94, 95, -1, -1, 98, -1, 100, 101, -1, + 103, 104, -1, -1, -1, 108, -1, -1, 111, 112, + 113, 114, 115, 116, 117, 3, -1, -1, -1, -1, + 8, 9, -1, -1, 12, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, + 28, 29, -1, -1, -1, 33, -1, -1, 36, 37, + 38, -1, -1, 41, -1, -1, 44, 45, 46, -1, + -1, 49, -1, 51, -1, -1, 54, -1, -1, 57, + 58, 59, 60, -1, 62, 63, -1, 65, 66, -1, + -1, 69, -1, -1, -1, 73, 74, 75, 76, 77, + -1, 79, -1, -1, 82, 83, 84, -1, 86, 87, + -1, 89, 90, 91, 92, 93, 94, 95, -1, -1, + 98, -1, 100, 101, -1, 103, 104, -1, -1, -1, + 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, + 3, 4, -1, -1, -1, 8, 9, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 27, 28, 29, -1, -1, -1, 33, -1, - -1, 36, 37, 38, -1, -1, 41, -1, -1, 44, - 45, 46, -1, -1, 49, -1, 51, -1, -1, 54, - -1, -1, 57, 58, 59, 60, -1, 62, 63, -1, - 65, 66, -1, -1, 69, -1, -1, -1, 73, 74, - 75, 76, 77, -1, 79, -1, -1, 82, 83, 84, - -1, 86, 87, -1, 89, 90, 91, 92, 93, 94, - -1, -1, 97, -1, 99, 100, -1, 102, 103, -1, - -1, -1, 107, -1, -1, 110, 111, 112, 113, 114, - 115, 116, 3, -1, -1, -1, -1, 8, 9, -1, - -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 27, 28, 29, -1, - -1, -1, 33, -1, -1, 36, 37, 38, -1, -1, - 41, -1, -1, 44, 45, 46, -1, -1, 49, -1, - 51, -1, -1, 54, -1, -1, 57, 58, 59, 60, - -1, 62, 63, -1, 65, 66, -1, -1, 69, -1, - -1, -1, 73, 74, 75, 76, 77, -1, 79, -1, - -1, 82, 83, 84, -1, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, -1, 97, -1, 99, 100, - -1, 102, 103, -1, -1, -1, 107, -1, -1, 110, - 111, 112, 113, 114, 115, 116, 3, -1, -1, -1, - -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 27, 28, 29, -1, -1, -1, + 33, -1, -1, 36, 37, 38, -1, -1, 41, -1, + -1, 44, 45, 46, -1, -1, 49, -1, 51, -1, + -1, 54, -1, -1, 57, 58, 59, 60, -1, 62, + 63, -1, 65, 66, -1, -1, 69, -1, -1, -1, + 73, 74, 75, 76, 77, -1, 79, -1, -1, 82, + 83, 84, -1, 86, 87, -1, 89, 90, 91, 92, + 93, 94, 95, -1, -1, 98, -1, 100, 101, -1, + 103, 104, -1, -1, -1, 108, -1, -1, 111, 112, + 113, 114, 115, 116, 117, 3, 4, -1, -1, -1, + 8, 9, -1, -1, 12, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, + 28, 29, -1, -1, -1, 33, -1, -1, 36, 37, + 38, -1, -1, 41, -1, -1, 44, 45, 46, -1, + -1, 49, -1, 51, -1, -1, 54, -1, -1, 57, + 58, 59, 60, -1, 62, 63, -1, 65, 66, -1, + -1, 69, -1, -1, -1, 73, 74, 75, 76, 77, + -1, 79, -1, -1, 82, 83, 84, -1, 86, 87, + -1, 89, 90, 91, 92, 93, 94, 95, -1, -1, + 98, -1, 100, 101, -1, 103, 104, -1, -1, -1, + 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, + 3, -1, -1, -1, -1, 8, 9, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 27, 28, 29, -1, -1, -1, 33, -1, -1, 36, - -1, 38, -1, -1, 41, -1, -1, 44, 45, 46, - -1, -1, 49, -1, 51, -1, -1, 54, -1, -1, - 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, - -1, -1, 69, -1, -1, -1, 73, 74, 75, 76, - -1, -1, 79, -1, -1, 82, 83, 84, -1, 86, - 87, -1, 89, 90, 91, 92, 93, 94, 3, -1, - 97, -1, 99, 100, -1, 102, 103, -1, -1, -1, - 107, -1, -1, 110, 111, 112, 113, 114, 115, -1, + -1, -1, -1, -1, 27, 28, 29, -1, -1, -1, + 33, -1, -1, 36, 37, 38, -1, -1, 41, -1, + -1, 44, 45, 46, -1, -1, 49, -1, 51, -1, + -1, 54, -1, -1, 57, 58, 59, 60, -1, 62, + 63, -1, 65, 66, -1, -1, 69, -1, -1, -1, + 73, 74, 75, 76, 77, -1, 79, -1, -1, 82, + 83, 84, -1, 86, 87, -1, 89, 90, 91, 92, + 93, 94, 95, -1, -1, 98, -1, 100, 101, -1, + 103, 104, -1, -1, -1, 108, -1, -1, 111, 112, + 113, 114, 115, 116, 117, 3, -1, -1, -1, -1, + 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, + 28, 29, -1, -1, -1, 33, -1, -1, 36, -1, + 38, -1, -1, 41, -1, -1, 44, 45, 46, -1, + -1, 49, -1, 51, -1, -1, 54, -1, -1, 57, + 58, 59, 60, -1, 62, 63, 64, 65, 66, -1, + -1, 69, -1, -1, -1, 73, 74, 75, 76, -1, + -1, 79, -1, -1, 82, 83, 84, -1, 86, 87, + -1, 89, 90, 91, 92, 93, 94, 95, 3, -1, + 98, -1, 100, 101, -1, 103, 104, -1, -1, -1, + 108, -1, -1, 111, 112, 113, 114, 115, 116, -1, -1, -1, 27, 28, 29, -1, -1, -1, 33, -1, -1, 36, -1, 38, -1, -1, 41, -1, -1, 44, 45, 46, -1, -1, 49, -1, 51, -1, -1, 54, @@ -4292,86 +4324,79 @@ namespace sqlb { namespace parser { 65, 66, -1, -1, 69, -1, -1, -1, 73, 74, 75, 76, -1, -1, -1, -1, -1, 82, 83, 84, -1, 86, 87, -1, 89, 90, 91, 92, 93, 94, - 3, -1, 97, -1, 99, 100, -1, -1, 103, -1, - -1, -1, 107, -1, -1, 110, 111, -1, 113, 114, - -1, -1, -1, -1, 27, 28, 29, -1, -1, -1, - 33, -1, -1, 36, -1, 38, -1, -1, 41, -1, - -1, 44, 45, 46, -1, -1, 49, -1, 51, -1, - -1, 54, -1, -1, 57, -1, 59, 60, -1, 62, - 63, -1, 65, 66, -1, -1, 69, -1, -1, -1, - 73, 74, 75, 76, -1, -1, -1, -1, -1, 82, - 83, 84, -1, 86, 87, -1, 89, 90, 91, 92, - 93, 94, 3, -1, 97, -1, 99, 100, -1, -1, - 103, -1, -1, -1, 107, -1, -1, 110, 111, -1, - 113, 114, -1, -1, -1, -1, 27, 28, 29, -1, - -1, -1, 33, -1, -1, 36, -1, 38, -1, -1, - 41, -1, -1, 44, 45, 46, -1, -1, 49, -1, - 51, -1, -1, 54, -1, -1, 57, -1, 59, 60, - -1, 62, 63, -1, 65, 66, -1, -1, 69, -1, - -1, -1, 73, 74, 75, 76, -1, -1, -1, -1, - -1, 82, 83, 84, -1, 86, 87, -1, 89, 90, - 91, 92, 93, 94, -1, -1, 97, -1, 99, 100, - -1, -1, 103, -1, -1, -1, 107, -1, -1, 110, - 111, -1, 113, 114, 8, 9, 10, 11, -1, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, -1, -1, -1, 30, -1, -1, -1, - -1, 35, 8, 9, 10, 11, 40, 13, 14, 15, - 16, -1, -1, 19, 20, 21, 22, -1, -1, 25, - 26, -1, -1, -1, -1, -1, -1, -1, -1, 63, - -1, -1, -1, 67, 40, -1, -1, 71, 72, -1, - 74, 75, -1, 77, 78, -1, -1, 81, -1, 55, - -1, 27, 28, 29, -1, 89, -1, 33, -1, -1, - 36, -1, 38, -1, -1, 41, 42, 101, 44, 45, - 46, -1, -1, 49, -1, 51, -1, -1, 54, -1, + 95, 3, -1, 98, -1, 100, 101, -1, -1, 104, + -1, -1, -1, 108, -1, -1, 111, 112, -1, 114, + 115, -1, -1, -1, -1, 27, 28, 29, -1, -1, + -1, 33, -1, -1, 36, -1, 38, -1, -1, 41, + -1, -1, 44, 45, 46, -1, -1, 49, -1, 51, + -1, -1, 54, -1, -1, 57, -1, 59, 60, -1, + 62, 63, -1, 65, 66, -1, -1, 69, -1, -1, + -1, 73, 74, 75, 76, -1, -1, -1, -1, -1, + 82, 83, 84, -1, 86, 87, -1, 89, 90, 91, + 92, 93, 94, 95, 3, -1, 98, -1, 100, 101, + -1, -1, 104, -1, -1, -1, 108, -1, -1, 111, + 112, -1, 114, 115, -1, -1, -1, -1, 27, 28, + 29, -1, -1, -1, 33, -1, -1, 36, -1, 38, + -1, -1, 41, -1, -1, 44, 45, 46, -1, -1, + 49, -1, 51, -1, -1, 54, -1, -1, 57, -1, + 59, 60, -1, 62, 63, -1, 65, 66, -1, -1, + 69, -1, -1, -1, 73, 74, 75, 76, -1, -1, + -1, -1, -1, 82, 83, 84, -1, 86, 87, -1, + 89, 90, 91, 92, 93, 94, 95, -1, -1, 98, + -1, 100, 101, -1, -1, 104, -1, -1, -1, 108, + -1, -1, 111, 112, -1, 114, 115, 8, 9, 10, + 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, + -1, -1, -1, -1, 35, 8, 9, 10, 11, 40, + 13, 14, 15, 16, -1, -1, 19, 20, 21, 22, + -1, -1, 25, 26, -1, -1, -1, -1, -1, -1, + -1, -1, 63, -1, -1, -1, 67, 40, -1, -1, + 71, 72, -1, 74, 75, -1, 77, 78, -1, -1, + 81, -1, 55, -1, -1, -1, -1, -1, 89, -1, + -1, -1, -1, -1, -1, -1, -1, 8, 9, 10, + 11, 102, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, + -1, -1, -1, -1, 35, -1, -1, -1, -1, 40, + -1, -1, -1, -1, -1, -1, 8, 9, 10, 11, + -1, 13, 14, 15, 16, -1, -1, 19, 20, 21, + 22, -1, 63, 25, 26, -1, 67, -1, -1, -1, + 71, 72, -1, 74, 75, -1, 77, 78, 40, -1, + 81, 27, 28, 29, -1, -1, -1, 33, 89, -1, + 36, -1, 38, 55, -1, 41, 42, -1, 44, 45, + 46, 102, -1, 49, -1, 51, -1, -1, 54, -1, -1, 57, -1, 59, 60, -1, 62, 63, 64, 65, 66, -1, -1, 69, -1, -1, -1, 73, 74, 75, 76, -1, -1, -1, -1, -1, 82, 83, 84, -1, - 86, 87, -1, 89, 90, 91, 92, 93, 94, -1, - -1, 97, -1, 99, 100, -1, -1, 103, -1, -1, - -1, 107, -1, -1, 110, 111, -1, 113, 114, 27, + 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, + -1, -1, 98, -1, 100, 101, -1, -1, 104, -1, + -1, -1, 108, -1, -1, 111, 112, -1, 114, 115, + 27, 28, 29, -1, -1, -1, 33, -1, -1, 36, + -1, 38, -1, -1, 41, -1, -1, 44, 45, 46, + -1, -1, 49, -1, 51, -1, -1, 54, -1, -1, + 57, -1, 59, 60, -1, 62, 63, 64, 65, 66, + -1, -1, 69, -1, -1, -1, 73, 74, 75, 76, + -1, -1, -1, -1, -1, 82, 83, 84, -1, 86, + 87, -1, 89, 90, 91, 92, 93, 94, 95, -1, + -1, 98, -1, 100, 101, -1, -1, 104, -1, -1, + -1, 108, -1, -1, 111, 112, -1, 114, 115, 27, 28, 29, -1, -1, -1, 33, -1, -1, 36, -1, 38, -1, -1, 41, -1, -1, 44, 45, 46, -1, -1, 49, -1, 51, -1, -1, 54, -1, -1, 57, - -1, 59, 60, -1, 62, 63, 64, 65, 66, -1, + -1, 59, 60, -1, 62, 63, -1, 65, 66, -1, -1, 69, -1, -1, -1, 73, 74, 75, 76, -1, -1, -1, -1, -1, 82, 83, 84, -1, 86, 87, - -1, 89, 90, 91, 92, 93, 94, -1, -1, 97, - -1, 99, 100, -1, -1, 103, -1, -1, -1, 107, - -1, -1, 110, 111, -1, 113, 114, 27, 28, 29, - -1, -1, -1, 33, -1, -1, 36, -1, 38, -1, - -1, 41, -1, -1, 44, 45, 46, -1, -1, 49, - -1, 51, -1, -1, 54, -1, -1, 57, -1, 59, - 60, -1, 62, 63, -1, 65, 66, -1, -1, 69, - -1, -1, -1, 73, 74, 75, 76, -1, -1, -1, - -1, -1, 82, 83, 84, -1, 86, 87, -1, 89, - 90, 91, 92, 93, 94, -1, -1, 97, -1, 99, - 100, -1, -1, 103, -1, -1, -1, 107, -1, -1, - 110, 111, -1, 113, 114, 27, 28, 29, -1, -1, - -1, 33, -1, -1, 36, -1, 38, -1, -1, 41, - -1, -1, 44, 45, 46, -1, -1, 49, -1, 51, - -1, -1, 54, -1, -1, 57, -1, 59, 60, -1, - 62, 63, -1, 65, 66, -1, -1, 69, -1, -1, - -1, 73, 74, 75, 76, -1, -1, -1, -1, -1, - 82, 83, 84, -1, 86, 87, -1, 89, 90, 91, - 92, 93, 94, -1, -1, 97, -1, 99, 100, -1, - -1, 103, -1, -1, -1, 107, -1, -1, 110, 111, - 4, 113, 114, -1, 8, 9, 10, 11, -1, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, -1, -1, -1, 30, -1, -1, -1, - -1, 35, 8, 9, 10, 11, 40, 13, 14, 15, - 16, -1, -1, 19, 20, 21, 22, -1, -1, 25, - 26, -1, -1, -1, -1, -1, -1, -1, -1, 63, - -1, -1, -1, 67, 40, -1, -1, 71, 72, -1, - 74, 75, -1, 77, 78, -1, -1, 81, -1, 55, - -1, -1, 4, -1, -1, 89, 8, 9, 10, 11, - -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, -1, -1, -1, 30, -1, - -1, -1, -1, 35, 8, 9, 10, 11, 40, 13, - 14, 15, 16, -1, -1, 19, 20, 21, 22, -1, - -1, 25, 26, -1, -1, -1, -1, -1, -1, -1, - -1, 63, -1, -1, -1, 67, 40, -1, -1, 71, - 72, -1, 74, 75, -1, 77, 78, -1, -1, 81, - -1, 55, -1, -1, 4, -1, -1, 89, 8, 9, + -1, 89, 90, 91, 92, 93, 94, 95, -1, -1, + 98, -1, 100, 101, -1, -1, 104, -1, -1, -1, + 108, -1, -1, 111, 112, -1, 114, 115, 27, 28, + 29, -1, -1, -1, 33, -1, -1, 36, -1, 38, + -1, -1, 41, -1, -1, 44, 45, 46, -1, -1, + 49, -1, 51, -1, -1, 54, -1, -1, 57, -1, + 59, 60, -1, 62, 63, -1, 65, 66, -1, -1, + 69, -1, -1, -1, 73, 74, 75, 76, -1, -1, + -1, -1, -1, 82, 83, 84, -1, 86, 87, -1, + 89, 90, 91, 92, 93, 94, 95, -1, -1, 98, + -1, 100, 101, -1, -1, 104, -1, -1, -1, 108, + -1, -1, 111, 112, 4, 114, 115, -1, 8, 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, -1, -1, -1, -1, 35, 8, 9, 10, 11, @@ -4387,17 +4412,18 @@ namespace sqlb { namespace parser { 20, 21, 22, -1, -1, 25, 26, -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, -1, 67, 40, -1, -1, 71, 72, -1, 74, 75, -1, 77, - 78, -1, -1, 81, -1, 55, -1, 8, 9, 10, - 11, 89, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, - -1, -1, 33, -1, 35, -1, -1, -1, -1, 40, + 78, -1, -1, 81, -1, 55, -1, -1, 4, -1, + -1, 89, 8, 9, 10, 11, -1, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, -1, -1, -1, 30, -1, -1, -1, -1, 35, + -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 63, -1, -1, -1, 67, -1, -1, -1, - 71, 72, -1, 74, 75, -1, 77, 78, -1, -1, - 81, -1, -1, -1, 8, 9, 10, 11, 89, 13, + -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, + -1, 67, -1, -1, -1, 71, 72, -1, 74, 75, + -1, 77, 78, -1, -1, 81, -1, -1, -1, -1, + 4, -1, -1, 89, 8, 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, -1, -1, -1, 30, -1, 32, -1, + 24, 25, 26, -1, -1, -1, 30, -1, -1, -1, -1, 35, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, @@ -4405,17 +4431,17 @@ namespace sqlb { namespace parser { 74, 75, -1, 77, 78, -1, -1, 81, -1, -1, -1, 8, 9, 10, 11, 89, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - -1, -1, -1, 30, 31, -1, -1, -1, 35, -1, + -1, -1, -1, 30, -1, -1, 33, -1, 35, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, -1, 67, -1, -1, -1, 71, 72, -1, 74, 75, -1, 77, 78, -1, -1, 81, -1, -1, -1, 8, 9, 10, 11, 89, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, - 30, -1, -1, -1, -1, 35, -1, -1, -1, -1, + 30, -1, 32, -1, -1, 35, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, -1, 67, -1, -1, -1, 71, 72, -1, 74, 75, -1, 77, 78, -1, -1, 81, -1, -1, -1, 8, 9, 10, 11, 89, @@ -4436,7 +4462,7 @@ namespace sqlb { namespace parser { -1, 77, 78, -1, -1, 81, -1, -1, -1, 8, 9, 10, 11, 89, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, - -1, 30, -1, -1, -1, -1, 35, -1, -1, -1, + -1, 30, 31, -1, -1, -1, 35, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, -1, 67, -1, @@ -4444,105 +4470,120 @@ namespace sqlb { namespace parser { -1, -1, 81, -1, -1, -1, 8, 9, 10, 11, 89, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, -1, - -1, -1, -1, 35, -1, -1, -1, -1, 40, 8, - 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, - -1, 63, -1, -1, -1, 67, 35, -1, -1, 71, - 72, 40, 74, 75, -1, 77, 78, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 89, -1, -1, - -1, -1, -1, -1, 63, -1, -1, -1, 67, -1, - -1, -1, 71, 72, -1, 74, 75, -1, 77, 78, + -1, -1, -1, 35, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 89 + -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, + -1, 63, -1, -1, -1, 67, -1, -1, -1, 71, + 72, -1, 74, 75, -1, 77, 78, -1, -1, 81, + -1, -1, -1, 8, 9, 10, 11, 89, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, -1, -1, -1, 30, -1, -1, -1, -1, + 35, -1, -1, -1, -1, 40, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, + -1, -1, 67, -1, -1, -1, 71, 72, -1, 74, + 75, -1, 77, 78, -1, -1, 81, -1, -1, -1, + 8, 9, 10, 11, 89, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, + -1, -1, 30, -1, -1, -1, -1, 35, -1, -1, + -1, -1, 40, 8, 9, 10, 11, -1, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, -1, -1, -1, 63, -1, -1, -1, 67, + 35, -1, -1, 71, 72, 40, 74, 75, -1, 77, + 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 89, -1, -1, -1, -1, -1, -1, 63, -1, + -1, -1, 67, -1, -1, -1, 71, 72, -1, 74, + 75, -1, 77, 78, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 89 }; const unsigned char parser::yystos_[] = { - 0, 43, 118, 119, 149, 151, 171, 99, 100, 104, - 107, 144, 152, 0, 7, 98, 68, 98, 64, 142, - 142, 142, 77, 27, 28, 29, 33, 36, 38, 41, + 0, 43, 119, 120, 150, 152, 172, 100, 101, 105, + 108, 145, 153, 0, 7, 99, 68, 99, 64, 143, + 143, 143, 77, 27, 28, 29, 33, 36, 38, 41, 44, 45, 46, 49, 51, 54, 57, 59, 60, 62, 63, 65, 66, 69, 73, 74, 75, 76, 82, 83, - 84, 86, 87, 89, 90, 91, 92, 93, 94, 97, - 99, 100, 103, 107, 110, 111, 113, 114, 121, 122, - 123, 146, 146, 146, 56, 5, 5, 106, 80, 3, - 32, 99, 121, 123, 123, 121, 123, 44, 45, 46, - 64, 113, 121, 122, 124, 160, 161, 95, 141, 3, - 150, 3, 123, 127, 128, 155, 6, 170, 3, 4, - 8, 9, 12, 37, 38, 44, 45, 46, 58, 77, - 79, 86, 102, 112, 113, 115, 116, 120, 121, 122, - 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, - 140, 140, 147, 148, 3, 123, 42, 158, 159, 162, - 160, 162, 168, 169, 4, 132, 140, 140, 140, 108, - 137, 140, 3, 140, 3, 3, 5, 4, 6, 8, - 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 30, 35, 40, - 63, 67, 71, 72, 74, 75, 77, 78, 81, 89, - 33, 51, 143, 4, 6, 8, 9, 112, 125, 126, - 113, 121, 158, 39, 40, 47, 62, 77, 79, 85, - 88, 104, 157, 39, 61, 85, 104, 6, 168, 110, - 153, 4, 140, 53, 54, 108, 137, 140, 27, 57, - 65, 92, 4, 10, 52, 132, 121, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 121, 140, - 3, 121, 123, 140, 140, 140, 35, 63, 67, 74, - 75, 79, 89, 140, 140, 109, 145, 147, 112, 112, - 4, 6, 3, 121, 3, 64, 120, 121, 122, 125, - 29, 79, 73, 123, 80, 154, 32, 3, 73, 73, - 3, 168, 93, 101, 140, 140, 53, 54, 32, 6, - 6, 4, 6, 4, 132, 4, 5, 31, 55, 4, - 132, 141, 3, 5, 55, 55, 140, 140, 3, 121, - 123, 140, 140, 140, 55, 140, 126, 140, 140, 154, - 143, 3, 164, 41, 3, 140, 3, 3, 148, 140, - 54, 101, 140, 128, 113, 113, 113, 4, 121, 140, - 140, 4, 4, 132, 121, 123, 140, 140, 31, 55, - 4, 132, 141, 3, 5, 55, 55, 55, 140, 4, - 4, 4, 154, 124, 163, 48, 75, 77, 80, 165, - 166, 167, 27, 57, 65, 90, 92, 140, 4, 163, - 148, 4, 140, 54, 4, 4, 4, 4, 4, 3, - 140, 140, 4, 4, 132, 121, 123, 140, 140, 140, - 34, 4, 6, 69, 121, 48, 50, 70, 105, 48, - 77, 165, 4, 4, 4, 34, 154, 4, 132, 4, - 3, 124, 49, 66, 69, 36, 76, 91, 96, 36, - 76, 91, 96, 36, 76, 91, 96, 69, 48, 97, - 107, 156, 88, 154, 4, 4, 4, 132, 49, 66, - 28, 47, 79, 28, 47, 79, 28, 47, 79, 49, - 66, 69, 123, 154, 4, 49, 66, 164, 167 + 84, 86, 87, 89, 90, 91, 92, 93, 94, 95, + 98, 100, 101, 104, 108, 111, 112, 114, 115, 122, + 123, 124, 147, 147, 147, 56, 5, 5, 107, 80, + 3, 32, 100, 122, 124, 124, 122, 124, 44, 45, + 46, 64, 114, 122, 123, 125, 161, 162, 96, 142, + 3, 151, 3, 124, 128, 129, 156, 6, 171, 3, + 4, 8, 9, 12, 37, 38, 44, 45, 46, 58, + 77, 79, 86, 103, 113, 114, 116, 117, 121, 122, + 123, 130, 131, 132, 133, 134, 135, 136, 137, 139, + 140, 141, 141, 148, 149, 3, 124, 42, 159, 160, + 163, 161, 163, 169, 170, 4, 133, 141, 141, 141, + 109, 138, 141, 3, 141, 3, 3, 5, 4, 6, + 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 30, 35, + 40, 63, 67, 71, 72, 74, 75, 77, 78, 81, + 89, 33, 51, 144, 4, 6, 8, 9, 113, 126, + 127, 114, 122, 159, 39, 40, 47, 62, 77, 79, + 85, 88, 105, 158, 39, 61, 85, 105, 6, 169, + 111, 154, 4, 141, 53, 54, 109, 138, 141, 27, + 57, 65, 93, 4, 10, 52, 133, 122, 141, 141, + 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, + 141, 141, 141, 141, 141, 141, 141, 141, 141, 122, + 141, 3, 122, 124, 141, 141, 141, 35, 63, 67, + 74, 75, 79, 89, 141, 141, 110, 146, 148, 113, + 113, 4, 6, 3, 122, 3, 64, 121, 122, 123, + 126, 29, 79, 73, 124, 80, 155, 32, 3, 73, + 73, 3, 169, 94, 102, 141, 141, 53, 54, 32, + 6, 6, 4, 6, 4, 133, 4, 5, 31, 55, + 4, 133, 142, 3, 5, 55, 55, 141, 141, 3, + 122, 124, 141, 141, 141, 55, 141, 127, 141, 141, + 155, 144, 3, 165, 41, 3, 141, 3, 3, 149, + 141, 54, 102, 141, 129, 114, 114, 114, 4, 122, + 141, 141, 4, 4, 133, 122, 124, 141, 141, 31, + 55, 4, 133, 142, 3, 5, 55, 55, 55, 141, + 4, 4, 4, 155, 125, 164, 48, 75, 77, 80, + 166, 167, 168, 27, 57, 65, 90, 93, 141, 4, + 164, 149, 4, 141, 54, 4, 4, 4, 4, 4, + 3, 141, 141, 4, 4, 133, 122, 124, 141, 141, + 141, 34, 4, 6, 69, 122, 48, 50, 70, 106, + 48, 77, 166, 4, 4, 4, 34, 155, 4, 133, + 4, 3, 125, 49, 66, 69, 36, 76, 91, 97, + 36, 76, 91, 97, 36, 76, 91, 97, 69, 48, + 98, 108, 157, 88, 155, 4, 4, 4, 133, 49, + 66, 28, 47, 79, 28, 47, 79, 28, 47, 79, + 49, 66, 69, 124, 155, 4, 49, 66, 165, 168 }; const unsigned char parser::yyr1_[] = { - 0, 117, 118, 118, 119, 119, 119, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 121, 121, 122, 122, - 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, - 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, - 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, - 122, 122, 122, 122, 122, 122, 122, 123, 123, 123, - 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, - 125, 125, 126, 126, 127, 127, 128, 128, 128, 129, - 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 0, 118, 119, 119, 120, 120, 120, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 122, 122, 123, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 124, 124, + 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, + 125, 126, 126, 127, 127, 128, 128, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 132, 132, 133, 133, 133, 133, 134, 134, 134, 135, - 135, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 137, 137, 138, - 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 141, 142, 142, 143, 143, - 143, 144, 144, 145, 145, 146, 146, 146, 147, 148, - 148, 149, 150, 150, 150, 151, 152, 152, 152, 153, - 153, 154, 154, 154, 154, 154, 154, 155, 155, 156, - 156, 156, 157, 157, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 159, - 159, 160, 160, 161, 161, 162, 162, 162, 163, 163, - 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 166, 166, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 168, 168, 168, 168, 168, 169, - 169, 169, 170, 170, 171, 171 + 131, 131, 131, 131, 131, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 133, 133, 134, 134, 134, 134, 135, 135, 135, + 136, 136, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 138, 138, + 139, 139, 139, 139, 140, 140, 140, 140, 141, 141, + 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, + 141, 141, 141, 141, 141, 141, 142, 143, 143, 144, + 144, 144, 145, 145, 146, 146, 147, 147, 147, 148, + 149, 149, 150, 151, 151, 151, 152, 153, 153, 153, + 154, 154, 155, 155, 155, 155, 155, 155, 156, 156, + 157, 157, 157, 158, 158, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 160, 160, 161, 161, 162, 162, 163, 163, 163, 164, + 164, 165, 165, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 167, + 167, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, + 170, 170, 170, 171, 171, 172, 172 }; const signed char @@ -4555,28 +4596,28 @@ namespace sqlb { namespace parser { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 1, 1, 1, 2, 1, 4, 6, 2, - 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 1, 2, 2, 1, 1, 1, 2, 1, 4, 6, + 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, - 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, - 1, 3, 4, 5, 3, 4, 2, 2, 3, 5, - 6, 4, 5, 5, 5, 3, 7, 8, 6, 5, - 6, 6, 6, 4, 8, 9, 7, 4, 5, 6, - 4, 5, 3, 4, 6, 6, 6, 1, 1, 1, - 5, 3, 1, 1, 1, 1, 3, 6, 3, 1, - 1, 1, 1, 1, 1, 1, 0, 3, 0, 1, - 1, 0, 1, 0, 2, 3, 3, 1, 2, 1, - 3, 11, 0, 2, 3, 8, 0, 1, 1, 0, - 2, 0, 3, 3, 3, 3, 3, 0, 1, 0, - 1, 1, 0, 2, 5, 6, 4, 2, 3, 5, - 3, 3, 3, 3, 3, 5, 3, 5, 7, 1, - 2, 3, 2, 1, 3, 0, 2, 2, 1, 3, - 0, 3, 4, 4, 3, 3, 4, 4, 4, 3, - 3, 4, 4, 4, 3, 3, 4, 2, 1, 2, - 0, 1, 4, 4, 2, 5, 5, 3, 3, 3, - 1, 4, 4, 2, 7, 8, 6, 5, 10, 1, - 3, 2, 0, 2, 7, 10 + 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, + 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, + 6, 1, 3, 4, 5, 3, 4, 2, 2, 3, + 5, 6, 4, 5, 5, 5, 3, 7, 8, 6, + 5, 6, 6, 6, 4, 8, 9, 7, 4, 5, + 6, 4, 5, 3, 4, 6, 6, 6, 1, 1, + 1, 5, 3, 1, 1, 1, 1, 3, 6, 3, + 1, 1, 1, 1, 1, 1, 1, 0, 3, 0, + 1, 1, 0, 1, 0, 2, 3, 3, 1, 2, + 1, 3, 11, 0, 2, 3, 8, 0, 1, 1, + 0, 2, 0, 3, 3, 3, 3, 3, 0, 1, + 0, 1, 1, 0, 2, 5, 6, 4, 2, 3, + 5, 3, 3, 3, 3, 3, 5, 3, 5, 7, + 1, 2, 3, 2, 1, 3, 0, 2, 2, 1, + 3, 0, 3, 4, 4, 3, 3, 4, 4, 4, + 3, 3, 4, 4, 4, 3, 3, 4, 2, 1, + 2, 0, 1, 4, 4, 2, 5, 5, 3, 3, + 3, 1, 4, 4, 2, 7, 8, 6, 5, 10, + 1, 3, 2, 0, 2, 7, 10 }; @@ -4603,11 +4644,11 @@ namespace sqlb { namespace parser { "\"NO\"", "\"NOT\"", "\"NOTNULL\"", "\"NULL\"", "\"ON\"", "\"OR\"", "\"OVER\"", "\"PARTITION\"", "\"PRECEDING\"", "\"PRIMARY\"", "\"RAISE\"", "\"RANGE\"", "\"REFERENCES\"", "\"REGEXP\"", "\"REPLACE\"", - "\"RESTRICT\"", "\"ROLLBACK\"", "\"ROWID\"", "\"ROWS\"", "\"SELECT\"", - "\"SET\"", "\"STORED\"", "\"TABLE\"", "\"TEMP\"", "\"TEMPORARY\"", - "\"THEN\"", "\"TRUE\"", "\"UNBOUNDED\"", "\"UNIQUE\"", "\"UPDATE\"", - "\"USING\"", "\"VIRTUAL\"", "\"WHEN\"", "\"WHERE\"", "\"WITHOUT\"", - "\"identifier\"", "\"numeric\"", "\"string literal\"", + "\"RESTRICT\"", "\"RETURNING\"", "\"ROLLBACK\"", "\"ROWID\"", "\"ROWS\"", + "\"SELECT\"", "\"SET\"", "\"STORED\"", "\"TABLE\"", "\"TEMP\"", + "\"TEMPORARY\"", "\"THEN\"", "\"TRUE\"", "\"UNBOUNDED\"", "\"UNIQUE\"", + "\"UPDATE\"", "\"USING\"", "\"VIRTUAL\"", "\"WHEN\"", "\"WHERE\"", + "\"WITHOUT\"", "\"identifier\"", "\"numeric\"", "\"string literal\"", "\"quoted literal\"", "\"blob literal\"", "\"bind parameter\"", "$accept", "sql", "statement", "literalvalue", "id", "allowed_keywords_as_identifier", "tableid", "columnid", "signednumber", @@ -4635,35 +4676,35 @@ namespace sqlb { namespace parser { const short parser::yyrline_[] = { - 0, 254, 254, 255, 259, 260, 261, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 281, 282, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 329, 330, 331, - 332, 333, 334, 338, 339, 340, 341, 342, 343, 344, - 348, 349, 353, 354, 358, 359, 363, 364, 365, 369, - 370, 371, 372, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 419, 420, 424, 425, 426, 427, 431, 432, 433, 437, - 438, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 461, 462, 466, - 467, 468, 469, 473, 474, 475, 476, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 506, 514, 515, 519, 520, - 521, 529, 530, 534, 535, 539, 540, 541, 545, 559, - 560, 564, 579, 580, 581, 585, 597, 598, 599, 603, - 604, 608, 609, 610, 611, 612, 613, 617, 618, 622, - 623, 624, 628, 629, 633, 639, 646, 652, 654, 660, - 664, 668, 672, 676, 681, 685, 689, 693, 701, 708, - 709, 713, 772, 776, 777, 781, 782, 783, 787, 788, - 792, 793, 797, 798, 799, 800, 801, 802, 803, 804, - 805, 806, 807, 808, 809, 810, 811, 812, 816, 817, - 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, - 831, 832, 833, 834, 838, 844, 851, 857, 861, 869, - 870, 871, 875, 876, 880, 884 + 0, 263, 263, 264, 268, 269, 270, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 290, 291, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 339, 340, + 341, 342, 343, 344, 348, 349, 350, 351, 352, 353, + 354, 358, 359, 363, 364, 368, 369, 373, 374, 375, + 379, 380, 381, 382, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 429, 430, 434, 435, 436, 437, 441, 442, 443, + 447, 448, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 471, 472, + 476, 477, 478, 479, 483, 484, 485, 486, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 516, 524, 525, 529, + 530, 531, 539, 540, 544, 545, 549, 550, 551, 555, + 569, 570, 574, 589, 590, 591, 595, 607, 608, 609, + 613, 614, 618, 619, 620, 621, 622, 623, 627, 628, + 632, 633, 634, 638, 639, 643, 649, 656, 662, 664, + 670, 674, 678, 682, 686, 691, 695, 699, 703, 711, + 718, 719, 723, 784, 788, 789, 793, 794, 795, 799, + 800, 804, 805, 809, 810, 811, 812, 813, 814, 815, + 816, 817, 818, 819, 820, 821, 822, 823, 824, 828, + 829, 833, 834, 835, 836, 837, 838, 839, 840, 841, + 842, 843, 844, 845, 846, 850, 856, 863, 869, 873, + 881, 882, 883, 887, 888, 892, 896 }; void @@ -4696,9 +4737,9 @@ namespace sqlb { namespace parser { #line 10 "sqlite3_parser.yy" } } // sqlb::parser -#line 4700 "sqlite3_parser.cpp" +#line 4741 "sqlite3_parser.cpp" -#line 903 "sqlite3_parser.yy" +#line 915 "sqlite3_parser.yy" void sqlb::parser::parser::error(const location_type& l, const std::string& m) diff --git a/src/sql/parser/sqlite3_parser.hpp b/src/sql/parser/sqlite3_parser.hpp index c36c0b7b1..ff21ab99d 100644 --- a/src/sql/parser/sqlite3_parser.hpp +++ b/src/sql/parser/sqlite3_parser.hpp @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.6.3. +// A Bison parser, made by GNU Bison 3.7.5. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -55,7 +55,7 @@ typedef void* yyscan_t; // Colum definitions are a tuple of two elements: the Field object and a set of table constraints - using ColumndefData = std::tuple; + using ColumndefData = std::tuple; #line 61 "sqlite3_parser.hpp" @@ -128,9 +128,9 @@ /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ @@ -423,7 +423,7 @@ namespace sqlb { namespace parser { // columnconstraint_list // tableconstraint_list // optional_tableconstraint_list - char dummy4[sizeof (sqlb::ConstraintSet)]; + char dummy4[sizeof (sqlb::ConstraintVector)]; // createindex_stmt char dummy5[sizeof (sqlb::IndexPtr)]; @@ -507,6 +507,7 @@ namespace sqlb { namespace parser { // "REGEXP" // "REPLACE" // "RESTRICT" + // "RETURNING" // "ROLLBACK" // "ROWID" // "ROWS" @@ -709,31 +710,32 @@ namespace sqlb { namespace parser { TOK_REGEXP = 344, // "REGEXP" TOK_REPLACE = 345, // "REPLACE" TOK_RESTRICT = 346, // "RESTRICT" - TOK_ROLLBACK = 347, // "ROLLBACK" - TOK_ROWID = 348, // "ROWID" - TOK_ROWS = 349, // "ROWS" - TOK_SELECT = 350, // "SELECT" - TOK_SET = 351, // "SET" - TOK_STORED = 352, // "STORED" - TOK_TABLE = 353, // "TABLE" - TOK_TEMP = 354, // "TEMP" - TOK_TEMPORARY = 355, // "TEMPORARY" - TOK_THEN = 356, // "THEN" - TOK_TRUE = 357, // "TRUE" - TOK_UNBOUNDED = 358, // "UNBOUNDED" - TOK_UNIQUE = 359, // "UNIQUE" - TOK_UPDATE = 360, // "UPDATE" - TOK_USING = 361, // "USING" - TOK_VIRTUAL = 362, // "VIRTUAL" - TOK_WHEN = 363, // "WHEN" - TOK_WHERE = 364, // "WHERE" - TOK_WITHOUT = 365, // "WITHOUT" - TOK_IDENTIFIER = 366, // "identifier" - TOK_NUMERIC = 367, // "numeric" - TOK_STRINGLITERAL = 368, // "string literal" - TOK_QUOTEDLITERAL = 369, // "quoted literal" - TOK_BLOBLITERAL = 370, // "blob literal" - TOK_BINDPARAMETER = 371 // "bind parameter" + TOK_RETURNING = 347, // "RETURNING" + TOK_ROLLBACK = 348, // "ROLLBACK" + TOK_ROWID = 349, // "ROWID" + TOK_ROWS = 350, // "ROWS" + TOK_SELECT = 351, // "SELECT" + TOK_SET = 352, // "SET" + TOK_STORED = 353, // "STORED" + TOK_TABLE = 354, // "TABLE" + TOK_TEMP = 355, // "TEMP" + TOK_TEMPORARY = 356, // "TEMPORARY" + TOK_THEN = 357, // "THEN" + TOK_TRUE = 358, // "TRUE" + TOK_UNBOUNDED = 359, // "UNBOUNDED" + TOK_UNIQUE = 360, // "UNIQUE" + TOK_UPDATE = 361, // "UPDATE" + TOK_USING = 362, // "USING" + TOK_VIRTUAL = 363, // "VIRTUAL" + TOK_WHEN = 364, // "WHEN" + TOK_WHERE = 365, // "WHERE" + TOK_WITHOUT = 366, // "WITHOUT" + TOK_IDENTIFIER = 367, // "identifier" + TOK_NUMERIC = 368, // "numeric" + TOK_STRINGLITERAL = 369, // "string literal" + TOK_QUOTEDLITERAL = 370, // "quoted literal" + TOK_BLOBLITERAL = 371, // "blob literal" + TOK_BINDPARAMETER = 372 // "bind parameter" }; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type yytokentype; @@ -750,7 +752,7 @@ namespace sqlb { namespace parser { { enum symbol_kind_type { - YYNTOKENS = 117, ///< Number of tokens. + YYNTOKENS = 118, ///< Number of tokens. S_YYEMPTY = -2, S_YYEOF = 0, // "end of file" S_YYerror = 1, // error @@ -844,86 +846,87 @@ namespace sqlb { namespace parser { S_REGEXP = 89, // "REGEXP" S_REPLACE = 90, // "REPLACE" S_RESTRICT = 91, // "RESTRICT" - S_ROLLBACK = 92, // "ROLLBACK" - S_ROWID = 93, // "ROWID" - S_ROWS = 94, // "ROWS" - S_SELECT = 95, // "SELECT" - S_SET = 96, // "SET" - S_STORED = 97, // "STORED" - S_TABLE = 98, // "TABLE" - S_TEMP = 99, // "TEMP" - S_TEMPORARY = 100, // "TEMPORARY" - S_THEN = 101, // "THEN" - S_TRUE = 102, // "TRUE" - S_UNBOUNDED = 103, // "UNBOUNDED" - S_UNIQUE = 104, // "UNIQUE" - S_UPDATE = 105, // "UPDATE" - S_USING = 106, // "USING" - S_VIRTUAL = 107, // "VIRTUAL" - S_WHEN = 108, // "WHEN" - S_WHERE = 109, // "WHERE" - S_WITHOUT = 110, // "WITHOUT" - S_IDENTIFIER = 111, // "identifier" - S_NUMERIC = 112, // "numeric" - S_STRINGLITERAL = 113, // "string literal" - S_QUOTEDLITERAL = 114, // "quoted literal" - S_BLOBLITERAL = 115, // "blob literal" - S_BINDPARAMETER = 116, // "bind parameter" - S_YYACCEPT = 117, // $accept - S_sql = 118, // sql - S_statement = 119, // statement - S_literalvalue = 120, // literalvalue - S_id = 121, // id - S_allowed_keywords_as_identifier = 122, // allowed_keywords_as_identifier - S_tableid = 123, // tableid - S_columnid = 124, // columnid - S_signednumber = 125, // signednumber - S_signednumber_or_numeric = 126, // signednumber_or_numeric - S_typename_namelist = 127, // typename_namelist - S_type_name = 128, // type_name - S_unary_expr = 129, // unary_expr - S_binary_expr = 130, // binary_expr - S_like_expr = 131, // like_expr - S_exprlist_expr = 132, // exprlist_expr - S_function_expr = 133, // function_expr - S_isnull_expr = 134, // isnull_expr - S_between_expr = 135, // between_expr - S_in_expr = 136, // in_expr - S_whenthenlist_expr = 137, // whenthenlist_expr - S_case_expr = 138, // case_expr - S_raise_expr = 139, // raise_expr - S_expr = 140, // expr - S_select_stmt = 141, // select_stmt - S_optional_if_not_exists = 142, // optional_if_not_exists - S_optional_sort_order = 143, // optional_sort_order - S_optional_unique = 144, // optional_unique - S_optional_where = 145, // optional_where - S_tableid_with_uninteresting_schema = 146, // tableid_with_uninteresting_schema - S_indexed_column = 147, // indexed_column - S_indexed_column_list = 148, // indexed_column_list - S_createindex_stmt = 149, // createindex_stmt - S_optional_exprlist_with_paren = 150, // optional_exprlist_with_paren - S_createvirtualtable_stmt = 151, // createvirtualtable_stmt - S_optional_temporary = 152, // optional_temporary - S_optional_withoutrowid = 153, // optional_withoutrowid - S_optional_conflictclause = 154, // optional_conflictclause - S_optional_typename = 155, // optional_typename - S_optional_storage_identifier = 156, // optional_storage_identifier - S_optional_always_generated = 157, // optional_always_generated - S_columnconstraint = 158, // columnconstraint - S_columnconstraint_list = 159, // columnconstraint_list - S_columndef = 160, // columndef - S_columndef_list = 161, // columndef_list - S_optional_constraintname = 162, // optional_constraintname - S_columnid_list = 163, // columnid_list - S_optional_columnid_with_paren_list = 164, // optional_columnid_with_paren_list - S_fk_clause_part = 165, // fk_clause_part - S_fk_clause_part_list = 166, // fk_clause_part_list - S_optional_fk_clause = 167, // optional_fk_clause - S_tableconstraint = 168, // tableconstraint - S_tableconstraint_list = 169, // tableconstraint_list - S_optional_tableconstraint_list = 170, // optional_tableconstraint_list - S_createtable_stmt = 171 // createtable_stmt + S_RETURNING = 92, // "RETURNING" + S_ROLLBACK = 93, // "ROLLBACK" + S_ROWID = 94, // "ROWID" + S_ROWS = 95, // "ROWS" + S_SELECT = 96, // "SELECT" + S_SET = 97, // "SET" + S_STORED = 98, // "STORED" + S_TABLE = 99, // "TABLE" + S_TEMP = 100, // "TEMP" + S_TEMPORARY = 101, // "TEMPORARY" + S_THEN = 102, // "THEN" + S_TRUE = 103, // "TRUE" + S_UNBOUNDED = 104, // "UNBOUNDED" + S_UNIQUE = 105, // "UNIQUE" + S_UPDATE = 106, // "UPDATE" + S_USING = 107, // "USING" + S_VIRTUAL = 108, // "VIRTUAL" + S_WHEN = 109, // "WHEN" + S_WHERE = 110, // "WHERE" + S_WITHOUT = 111, // "WITHOUT" + S_IDENTIFIER = 112, // "identifier" + S_NUMERIC = 113, // "numeric" + S_STRINGLITERAL = 114, // "string literal" + S_QUOTEDLITERAL = 115, // "quoted literal" + S_BLOBLITERAL = 116, // "blob literal" + S_BINDPARAMETER = 117, // "bind parameter" + S_YYACCEPT = 118, // $accept + S_sql = 119, // sql + S_statement = 120, // statement + S_literalvalue = 121, // literalvalue + S_id = 122, // id + S_allowed_keywords_as_identifier = 123, // allowed_keywords_as_identifier + S_tableid = 124, // tableid + S_columnid = 125, // columnid + S_signednumber = 126, // signednumber + S_signednumber_or_numeric = 127, // signednumber_or_numeric + S_typename_namelist = 128, // typename_namelist + S_type_name = 129, // type_name + S_unary_expr = 130, // unary_expr + S_binary_expr = 131, // binary_expr + S_like_expr = 132, // like_expr + S_exprlist_expr = 133, // exprlist_expr + S_function_expr = 134, // function_expr + S_isnull_expr = 135, // isnull_expr + S_between_expr = 136, // between_expr + S_in_expr = 137, // in_expr + S_whenthenlist_expr = 138, // whenthenlist_expr + S_case_expr = 139, // case_expr + S_raise_expr = 140, // raise_expr + S_expr = 141, // expr + S_select_stmt = 142, // select_stmt + S_optional_if_not_exists = 143, // optional_if_not_exists + S_optional_sort_order = 144, // optional_sort_order + S_optional_unique = 145, // optional_unique + S_optional_where = 146, // optional_where + S_tableid_with_uninteresting_schema = 147, // tableid_with_uninteresting_schema + S_indexed_column = 148, // indexed_column + S_indexed_column_list = 149, // indexed_column_list + S_createindex_stmt = 150, // createindex_stmt + S_optional_exprlist_with_paren = 151, // optional_exprlist_with_paren + S_createvirtualtable_stmt = 152, // createvirtualtable_stmt + S_optional_temporary = 153, // optional_temporary + S_optional_withoutrowid = 154, // optional_withoutrowid + S_optional_conflictclause = 155, // optional_conflictclause + S_optional_typename = 156, // optional_typename + S_optional_storage_identifier = 157, // optional_storage_identifier + S_optional_always_generated = 158, // optional_always_generated + S_columnconstraint = 159, // columnconstraint + S_columnconstraint_list = 160, // columnconstraint_list + S_columndef = 161, // columndef + S_columndef_list = 162, // columndef_list + S_optional_constraintname = 163, // optional_constraintname + S_columnid_list = 164, // columnid_list + S_optional_columnid_with_paren_list = 165, // optional_columnid_with_paren_list + S_fk_clause_part = 166, // fk_clause_part + S_fk_clause_part_list = 167, // fk_clause_part_list + S_optional_fk_clause = 168, // optional_fk_clause + S_tableconstraint = 169, // tableconstraint + S_tableconstraint_list = 170, // tableconstraint_list + S_optional_tableconstraint_list = 171, // optional_tableconstraint_list + S_createtable_stmt = 172 // createtable_stmt }; }; @@ -960,178 +963,179 @@ namespace sqlb { namespace parser { { switch (this->kind ()) { - case 160: // columndef + case symbol_kind::S_columndef: // columndef value.move< ColumndefData > (std::move (that.value)); break; - case 142: // optional_if_not_exists - case 144: // optional_unique - case 152: // optional_temporary - case 153: // optional_withoutrowid - case 157: // optional_always_generated + case symbol_kind::S_optional_if_not_exists: // optional_if_not_exists + case symbol_kind::S_optional_unique: // optional_unique + case symbol_kind::S_optional_temporary: // optional_temporary + case symbol_kind::S_optional_withoutrowid: // optional_withoutrowid + case symbol_kind::S_optional_always_generated: // optional_always_generated value.move< bool > (std::move (that.value)); break; - case 158: // columnconstraint - case 168: // tableconstraint + case symbol_kind::S_columnconstraint: // columnconstraint + case symbol_kind::S_tableconstraint: // tableconstraint value.move< sqlb::ConstraintPtr > (std::move (that.value)); break; - case 159: // columnconstraint_list - case 169: // tableconstraint_list - case 170: // optional_tableconstraint_list - value.move< sqlb::ConstraintSet > (std::move (that.value)); + case symbol_kind::S_columnconstraint_list: // columnconstraint_list + case symbol_kind::S_tableconstraint_list: // tableconstraint_list + case symbol_kind::S_optional_tableconstraint_list: // optional_tableconstraint_list + value.move< sqlb::ConstraintVector > (std::move (that.value)); break; - case 149: // createindex_stmt + case symbol_kind::S_createindex_stmt: // createindex_stmt value.move< sqlb::IndexPtr > (std::move (that.value)); break; - case 147: // indexed_column + case symbol_kind::S_indexed_column: // indexed_column value.move< sqlb::IndexedColumn > (std::move (that.value)); break; - case 148: // indexed_column_list + case symbol_kind::S_indexed_column_list: // indexed_column_list value.move< sqlb::IndexedColumnVector > (std::move (that.value)); break; - case 163: // columnid_list - case 164: // optional_columnid_with_paren_list + case symbol_kind::S_columnid_list: // columnid_list + case symbol_kind::S_optional_columnid_with_paren_list: // optional_columnid_with_paren_list value.move< sqlb::StringVector > (std::move (that.value)); break; - case 151: // createvirtualtable_stmt - case 171: // createtable_stmt + case symbol_kind::S_createvirtualtable_stmt: // createvirtualtable_stmt + case symbol_kind::S_createtable_stmt: // createtable_stmt value.move< sqlb::TablePtr > (std::move (that.value)); break; - case 27: // "ABORT" - case 28: // "ACTION" - case 29: // "ALWAYS" - case 30: // "AND" - case 31: // "AND BETWEEN" - case 32: // "AS" - case 33: // "ASC" - case 34: // "AUTOINCREMENT" - case 35: // "BETWEEN" - case 36: // "CASCADE" - case 37: // "CASE" - case 38: // "CAST" - case 39: // "CHECK" - case 40: // "COLLATE" - case 41: // "CONFLICT" - case 42: // "CONSTRAINT" - case 43: // "CREATE" - case 44: // "CURRENT_DATE" - case 45: // "CURRENT_TIME" - case 46: // "CURRENT_TIMESTAMP" - case 47: // "DEFAULT" - case 48: // "DEFERRABLE" - case 49: // "DEFERRED" - case 50: // "DELETE" - case 51: // "DESC" - case 52: // "DISTINCT" - case 53: // "ELSE" - case 54: // "END" - case 55: // "ESCAPE" - case 56: // "EXISTS" - case 57: // "FAIL" - case 58: // "FALSE" - case 59: // "FILTER" - case 60: // "FOLLOWING" - case 61: // "FOREIGN" - case 62: // "GENERATED" - case 63: // "GLOB" - case 64: // "IF" - case 65: // "IGNORE" - case 66: // "IMMEDIATE" - case 67: // "IN" - case 68: // "INDEX" - case 69: // "INITIALLY" - case 70: // "INSERT" - case 71: // "IS" - case 72: // "ISNULL" - case 73: // "KEY" - case 74: // "LIKE" - case 75: // "MATCH" - case 76: // "NO" - case 77: // "NOT" - case 78: // "NOTNULL" - case 79: // "NULL" - case 80: // "ON" - case 81: // "OR" - case 82: // "OVER" - case 83: // "PARTITION" - case 84: // "PRECEDING" - case 85: // "PRIMARY" - case 86: // "RAISE" - case 87: // "RANGE" - case 88: // "REFERENCES" - case 89: // "REGEXP" - case 90: // "REPLACE" - case 91: // "RESTRICT" - case 92: // "ROLLBACK" - case 93: // "ROWID" - case 94: // "ROWS" - case 95: // "SELECT" - case 96: // "SET" - case 97: // "STORED" - case 98: // "TABLE" - case 99: // "TEMP" - case 100: // "TEMPORARY" - case 101: // "THEN" - case 102: // "TRUE" - case 103: // "UNBOUNDED" - case 104: // "UNIQUE" - case 105: // "UPDATE" - case 106: // "USING" - case 107: // "VIRTUAL" - case 108: // "WHEN" - case 109: // "WHERE" - case 110: // "WITHOUT" - case 111: // "identifier" - case 112: // "numeric" - case 113: // "string literal" - case 114: // "quoted literal" - case 115: // "blob literal" - case 116: // "bind parameter" - case 120: // literalvalue - case 121: // id - case 122: // allowed_keywords_as_identifier - case 123: // tableid - case 124: // columnid - case 125: // signednumber - case 126: // signednumber_or_numeric - case 127: // typename_namelist - case 128: // type_name - case 129: // unary_expr - case 130: // binary_expr - case 131: // like_expr - case 132: // exprlist_expr - case 133: // function_expr - case 134: // isnull_expr - case 135: // between_expr - case 136: // in_expr - case 137: // whenthenlist_expr - case 138: // case_expr - case 139: // raise_expr - case 140: // expr - case 141: // select_stmt - case 143: // optional_sort_order - case 145: // optional_where - case 146: // tableid_with_uninteresting_schema - case 150: // optional_exprlist_with_paren - case 154: // optional_conflictclause - case 155: // optional_typename - case 156: // optional_storage_identifier - case 162: // optional_constraintname - case 165: // fk_clause_part - case 166: // fk_clause_part_list - case 167: // optional_fk_clause + case symbol_kind::S_ABORT: // "ABORT" + case symbol_kind::S_ACTION: // "ACTION" + case symbol_kind::S_ALWAYS: // "ALWAYS" + case symbol_kind::S_AND: // "AND" + case symbol_kind::S_AND_BETWEEN: // "AND BETWEEN" + case symbol_kind::S_AS: // "AS" + case symbol_kind::S_ASC: // "ASC" + case symbol_kind::S_AUTOINCREMENT: // "AUTOINCREMENT" + case symbol_kind::S_BETWEEN: // "BETWEEN" + case symbol_kind::S_CASCADE: // "CASCADE" + case symbol_kind::S_CASE: // "CASE" + case symbol_kind::S_CAST: // "CAST" + case symbol_kind::S_CHECK: // "CHECK" + case symbol_kind::S_COLLATE: // "COLLATE" + case symbol_kind::S_CONFLICT: // "CONFLICT" + case symbol_kind::S_CONSTRAINT: // "CONSTRAINT" + case symbol_kind::S_CREATE: // "CREATE" + case symbol_kind::S_CURRENT_DATE: // "CURRENT_DATE" + case symbol_kind::S_CURRENT_TIME: // "CURRENT_TIME" + case symbol_kind::S_CURRENT_TIMESTAMP: // "CURRENT_TIMESTAMP" + case symbol_kind::S_DEFAULT: // "DEFAULT" + case symbol_kind::S_DEFERRABLE: // "DEFERRABLE" + case symbol_kind::S_DEFERRED: // "DEFERRED" + case symbol_kind::S_DELETE: // "DELETE" + case symbol_kind::S_DESC: // "DESC" + case symbol_kind::S_DISTINCT: // "DISTINCT" + case symbol_kind::S_ELSE: // "ELSE" + case symbol_kind::S_END: // "END" + case symbol_kind::S_ESCAPE: // "ESCAPE" + case symbol_kind::S_EXISTS: // "EXISTS" + case symbol_kind::S_FAIL: // "FAIL" + case symbol_kind::S_FALSE: // "FALSE" + case symbol_kind::S_FILTER: // "FILTER" + case symbol_kind::S_FOLLOWING: // "FOLLOWING" + case symbol_kind::S_FOREIGN: // "FOREIGN" + case symbol_kind::S_GENERATED: // "GENERATED" + case symbol_kind::S_GLOB: // "GLOB" + case symbol_kind::S_IF: // "IF" + case symbol_kind::S_IGNORE: // "IGNORE" + case symbol_kind::S_IMMEDIATE: // "IMMEDIATE" + case symbol_kind::S_IN: // "IN" + case symbol_kind::S_INDEX: // "INDEX" + case symbol_kind::S_INITIALLY: // "INITIALLY" + case symbol_kind::S_INSERT: // "INSERT" + case symbol_kind::S_IS: // "IS" + case symbol_kind::S_ISNULL: // "ISNULL" + case symbol_kind::S_KEY: // "KEY" + case symbol_kind::S_LIKE: // "LIKE" + case symbol_kind::S_MATCH: // "MATCH" + case symbol_kind::S_NO: // "NO" + case symbol_kind::S_NOT: // "NOT" + case symbol_kind::S_NOTNULL: // "NOTNULL" + case symbol_kind::S_NULL: // "NULL" + case symbol_kind::S_ON: // "ON" + case symbol_kind::S_OR: // "OR" + case symbol_kind::S_OVER: // "OVER" + case symbol_kind::S_PARTITION: // "PARTITION" + case symbol_kind::S_PRECEDING: // "PRECEDING" + case symbol_kind::S_PRIMARY: // "PRIMARY" + case symbol_kind::S_RAISE: // "RAISE" + case symbol_kind::S_RANGE: // "RANGE" + case symbol_kind::S_REFERENCES: // "REFERENCES" + case symbol_kind::S_REGEXP: // "REGEXP" + case symbol_kind::S_REPLACE: // "REPLACE" + case symbol_kind::S_RESTRICT: // "RESTRICT" + case symbol_kind::S_RETURNING: // "RETURNING" + case symbol_kind::S_ROLLBACK: // "ROLLBACK" + case symbol_kind::S_ROWID: // "ROWID" + case symbol_kind::S_ROWS: // "ROWS" + case symbol_kind::S_SELECT: // "SELECT" + case symbol_kind::S_SET: // "SET" + case symbol_kind::S_STORED: // "STORED" + case symbol_kind::S_TABLE: // "TABLE" + case symbol_kind::S_TEMP: // "TEMP" + case symbol_kind::S_TEMPORARY: // "TEMPORARY" + case symbol_kind::S_THEN: // "THEN" + case symbol_kind::S_TRUE: // "TRUE" + case symbol_kind::S_UNBOUNDED: // "UNBOUNDED" + case symbol_kind::S_UNIQUE: // "UNIQUE" + case symbol_kind::S_UPDATE: // "UPDATE" + case symbol_kind::S_USING: // "USING" + case symbol_kind::S_VIRTUAL: // "VIRTUAL" + case symbol_kind::S_WHEN: // "WHEN" + case symbol_kind::S_WHERE: // "WHERE" + case symbol_kind::S_WITHOUT: // "WITHOUT" + case symbol_kind::S_IDENTIFIER: // "identifier" + case symbol_kind::S_NUMERIC: // "numeric" + case symbol_kind::S_STRINGLITERAL: // "string literal" + case symbol_kind::S_QUOTEDLITERAL: // "quoted literal" + case symbol_kind::S_BLOBLITERAL: // "blob literal" + case symbol_kind::S_BINDPARAMETER: // "bind parameter" + case symbol_kind::S_literalvalue: // literalvalue + case symbol_kind::S_id: // id + case symbol_kind::S_allowed_keywords_as_identifier: // allowed_keywords_as_identifier + case symbol_kind::S_tableid: // tableid + case symbol_kind::S_columnid: // columnid + case symbol_kind::S_signednumber: // signednumber + case symbol_kind::S_signednumber_or_numeric: // signednumber_or_numeric + case symbol_kind::S_typename_namelist: // typename_namelist + case symbol_kind::S_type_name: // type_name + case symbol_kind::S_unary_expr: // unary_expr + case symbol_kind::S_binary_expr: // binary_expr + case symbol_kind::S_like_expr: // like_expr + case symbol_kind::S_exprlist_expr: // exprlist_expr + case symbol_kind::S_function_expr: // function_expr + case symbol_kind::S_isnull_expr: // isnull_expr + case symbol_kind::S_between_expr: // between_expr + case symbol_kind::S_in_expr: // in_expr + case symbol_kind::S_whenthenlist_expr: // whenthenlist_expr + case symbol_kind::S_case_expr: // case_expr + case symbol_kind::S_raise_expr: // raise_expr + case symbol_kind::S_expr: // expr + case symbol_kind::S_select_stmt: // select_stmt + case symbol_kind::S_optional_sort_order: // optional_sort_order + case symbol_kind::S_optional_where: // optional_where + case symbol_kind::S_tableid_with_uninteresting_schema: // tableid_with_uninteresting_schema + case symbol_kind::S_optional_exprlist_with_paren: // optional_exprlist_with_paren + case symbol_kind::S_optional_conflictclause: // optional_conflictclause + case symbol_kind::S_optional_typename: // optional_typename + case symbol_kind::S_optional_storage_identifier: // optional_storage_identifier + case symbol_kind::S_optional_constraintname: // optional_constraintname + case symbol_kind::S_fk_clause_part: // fk_clause_part + case symbol_kind::S_fk_clause_part_list: // fk_clause_part_list + case symbol_kind::S_optional_fk_clause: // optional_fk_clause value.move< std::string > (std::move (that.value)); break; - case 161: // columndef_list + case symbol_kind::S_columndef_list: // columndef_list value.move< std::vector > (std::move (that.value)); break; @@ -1145,7 +1149,7 @@ namespace sqlb { namespace parser { /// Copy constructor. basic_symbol (const basic_symbol& that); - /// Constructor for valueless symbols, and symbols from each type. + /// Constructors for typed symbols. #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, location_type&& l) : Base (t) @@ -1157,6 +1161,7 @@ namespace sqlb { namespace parser { , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ColumndefData&& v, location_type&& l) : Base (t) @@ -1170,6 +1175,7 @@ namespace sqlb { namespace parser { , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) : Base (t) @@ -1183,6 +1189,7 @@ namespace sqlb { namespace parser { , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, sqlb::ConstraintPtr&& v, location_type&& l) : Base (t) @@ -1196,19 +1203,21 @@ namespace sqlb { namespace parser { , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, sqlb::ConstraintSet&& v, location_type&& l) + basic_symbol (typename Base::kind_type t, sqlb::ConstraintVector&& v, location_type&& l) : Base (t) , value (std::move (v)) , location (std::move (l)) {} #else - basic_symbol (typename Base::kind_type t, const sqlb::ConstraintSet& v, const location_type& l) + basic_symbol (typename Base::kind_type t, const sqlb::ConstraintVector& v, const location_type& l) : Base (t) , value (v) , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, sqlb::IndexPtr&& v, location_type&& l) : Base (t) @@ -1222,6 +1231,7 @@ namespace sqlb { namespace parser { , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, sqlb::IndexedColumn&& v, location_type&& l) : Base (t) @@ -1235,6 +1245,7 @@ namespace sqlb { namespace parser { , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, sqlb::IndexedColumnVector&& v, location_type&& l) : Base (t) @@ -1248,6 +1259,7 @@ namespace sqlb { namespace parser { , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, sqlb::StringVector&& v, location_type&& l) : Base (t) @@ -1261,6 +1273,7 @@ namespace sqlb { namespace parser { , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, sqlb::TablePtr&& v, location_type&& l) : Base (t) @@ -1274,6 +1287,7 @@ namespace sqlb { namespace parser { , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) : Base (t) @@ -1287,6 +1301,7 @@ namespace sqlb { namespace parser { , location (l) {} #endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, std::vector&& v, location_type&& l) : Base (t) @@ -1308,7 +1323,7 @@ namespace sqlb { namespace parser { } /// Destroy contents, and record that is empty. - void clear () + void clear () YY_NOEXCEPT { // User destructor. symbol_kind_type yykind = this->kind (); @@ -1323,178 +1338,179 @@ namespace sqlb { namespace parser { // Value type destructor. switch (yykind) { - case 160: // columndef + case symbol_kind::S_columndef: // columndef value.template destroy< ColumndefData > (); break; - case 142: // optional_if_not_exists - case 144: // optional_unique - case 152: // optional_temporary - case 153: // optional_withoutrowid - case 157: // optional_always_generated + case symbol_kind::S_optional_if_not_exists: // optional_if_not_exists + case symbol_kind::S_optional_unique: // optional_unique + case symbol_kind::S_optional_temporary: // optional_temporary + case symbol_kind::S_optional_withoutrowid: // optional_withoutrowid + case symbol_kind::S_optional_always_generated: // optional_always_generated value.template destroy< bool > (); break; - case 158: // columnconstraint - case 168: // tableconstraint + case symbol_kind::S_columnconstraint: // columnconstraint + case symbol_kind::S_tableconstraint: // tableconstraint value.template destroy< sqlb::ConstraintPtr > (); break; - case 159: // columnconstraint_list - case 169: // tableconstraint_list - case 170: // optional_tableconstraint_list - value.template destroy< sqlb::ConstraintSet > (); + case symbol_kind::S_columnconstraint_list: // columnconstraint_list + case symbol_kind::S_tableconstraint_list: // tableconstraint_list + case symbol_kind::S_optional_tableconstraint_list: // optional_tableconstraint_list + value.template destroy< sqlb::ConstraintVector > (); break; - case 149: // createindex_stmt + case symbol_kind::S_createindex_stmt: // createindex_stmt value.template destroy< sqlb::IndexPtr > (); break; - case 147: // indexed_column + case symbol_kind::S_indexed_column: // indexed_column value.template destroy< sqlb::IndexedColumn > (); break; - case 148: // indexed_column_list + case symbol_kind::S_indexed_column_list: // indexed_column_list value.template destroy< sqlb::IndexedColumnVector > (); break; - case 163: // columnid_list - case 164: // optional_columnid_with_paren_list + case symbol_kind::S_columnid_list: // columnid_list + case symbol_kind::S_optional_columnid_with_paren_list: // optional_columnid_with_paren_list value.template destroy< sqlb::StringVector > (); break; - case 151: // createvirtualtable_stmt - case 171: // createtable_stmt + case symbol_kind::S_createvirtualtable_stmt: // createvirtualtable_stmt + case symbol_kind::S_createtable_stmt: // createtable_stmt value.template destroy< sqlb::TablePtr > (); break; - case 27: // "ABORT" - case 28: // "ACTION" - case 29: // "ALWAYS" - case 30: // "AND" - case 31: // "AND BETWEEN" - case 32: // "AS" - case 33: // "ASC" - case 34: // "AUTOINCREMENT" - case 35: // "BETWEEN" - case 36: // "CASCADE" - case 37: // "CASE" - case 38: // "CAST" - case 39: // "CHECK" - case 40: // "COLLATE" - case 41: // "CONFLICT" - case 42: // "CONSTRAINT" - case 43: // "CREATE" - case 44: // "CURRENT_DATE" - case 45: // "CURRENT_TIME" - case 46: // "CURRENT_TIMESTAMP" - case 47: // "DEFAULT" - case 48: // "DEFERRABLE" - case 49: // "DEFERRED" - case 50: // "DELETE" - case 51: // "DESC" - case 52: // "DISTINCT" - case 53: // "ELSE" - case 54: // "END" - case 55: // "ESCAPE" - case 56: // "EXISTS" - case 57: // "FAIL" - case 58: // "FALSE" - case 59: // "FILTER" - case 60: // "FOLLOWING" - case 61: // "FOREIGN" - case 62: // "GENERATED" - case 63: // "GLOB" - case 64: // "IF" - case 65: // "IGNORE" - case 66: // "IMMEDIATE" - case 67: // "IN" - case 68: // "INDEX" - case 69: // "INITIALLY" - case 70: // "INSERT" - case 71: // "IS" - case 72: // "ISNULL" - case 73: // "KEY" - case 74: // "LIKE" - case 75: // "MATCH" - case 76: // "NO" - case 77: // "NOT" - case 78: // "NOTNULL" - case 79: // "NULL" - case 80: // "ON" - case 81: // "OR" - case 82: // "OVER" - case 83: // "PARTITION" - case 84: // "PRECEDING" - case 85: // "PRIMARY" - case 86: // "RAISE" - case 87: // "RANGE" - case 88: // "REFERENCES" - case 89: // "REGEXP" - case 90: // "REPLACE" - case 91: // "RESTRICT" - case 92: // "ROLLBACK" - case 93: // "ROWID" - case 94: // "ROWS" - case 95: // "SELECT" - case 96: // "SET" - case 97: // "STORED" - case 98: // "TABLE" - case 99: // "TEMP" - case 100: // "TEMPORARY" - case 101: // "THEN" - case 102: // "TRUE" - case 103: // "UNBOUNDED" - case 104: // "UNIQUE" - case 105: // "UPDATE" - case 106: // "USING" - case 107: // "VIRTUAL" - case 108: // "WHEN" - case 109: // "WHERE" - case 110: // "WITHOUT" - case 111: // "identifier" - case 112: // "numeric" - case 113: // "string literal" - case 114: // "quoted literal" - case 115: // "blob literal" - case 116: // "bind parameter" - case 120: // literalvalue - case 121: // id - case 122: // allowed_keywords_as_identifier - case 123: // tableid - case 124: // columnid - case 125: // signednumber - case 126: // signednumber_or_numeric - case 127: // typename_namelist - case 128: // type_name - case 129: // unary_expr - case 130: // binary_expr - case 131: // like_expr - case 132: // exprlist_expr - case 133: // function_expr - case 134: // isnull_expr - case 135: // between_expr - case 136: // in_expr - case 137: // whenthenlist_expr - case 138: // case_expr - case 139: // raise_expr - case 140: // expr - case 141: // select_stmt - case 143: // optional_sort_order - case 145: // optional_where - case 146: // tableid_with_uninteresting_schema - case 150: // optional_exprlist_with_paren - case 154: // optional_conflictclause - case 155: // optional_typename - case 156: // optional_storage_identifier - case 162: // optional_constraintname - case 165: // fk_clause_part - case 166: // fk_clause_part_list - case 167: // optional_fk_clause + case symbol_kind::S_ABORT: // "ABORT" + case symbol_kind::S_ACTION: // "ACTION" + case symbol_kind::S_ALWAYS: // "ALWAYS" + case symbol_kind::S_AND: // "AND" + case symbol_kind::S_AND_BETWEEN: // "AND BETWEEN" + case symbol_kind::S_AS: // "AS" + case symbol_kind::S_ASC: // "ASC" + case symbol_kind::S_AUTOINCREMENT: // "AUTOINCREMENT" + case symbol_kind::S_BETWEEN: // "BETWEEN" + case symbol_kind::S_CASCADE: // "CASCADE" + case symbol_kind::S_CASE: // "CASE" + case symbol_kind::S_CAST: // "CAST" + case symbol_kind::S_CHECK: // "CHECK" + case symbol_kind::S_COLLATE: // "COLLATE" + case symbol_kind::S_CONFLICT: // "CONFLICT" + case symbol_kind::S_CONSTRAINT: // "CONSTRAINT" + case symbol_kind::S_CREATE: // "CREATE" + case symbol_kind::S_CURRENT_DATE: // "CURRENT_DATE" + case symbol_kind::S_CURRENT_TIME: // "CURRENT_TIME" + case symbol_kind::S_CURRENT_TIMESTAMP: // "CURRENT_TIMESTAMP" + case symbol_kind::S_DEFAULT: // "DEFAULT" + case symbol_kind::S_DEFERRABLE: // "DEFERRABLE" + case symbol_kind::S_DEFERRED: // "DEFERRED" + case symbol_kind::S_DELETE: // "DELETE" + case symbol_kind::S_DESC: // "DESC" + case symbol_kind::S_DISTINCT: // "DISTINCT" + case symbol_kind::S_ELSE: // "ELSE" + case symbol_kind::S_END: // "END" + case symbol_kind::S_ESCAPE: // "ESCAPE" + case symbol_kind::S_EXISTS: // "EXISTS" + case symbol_kind::S_FAIL: // "FAIL" + case symbol_kind::S_FALSE: // "FALSE" + case symbol_kind::S_FILTER: // "FILTER" + case symbol_kind::S_FOLLOWING: // "FOLLOWING" + case symbol_kind::S_FOREIGN: // "FOREIGN" + case symbol_kind::S_GENERATED: // "GENERATED" + case symbol_kind::S_GLOB: // "GLOB" + case symbol_kind::S_IF: // "IF" + case symbol_kind::S_IGNORE: // "IGNORE" + case symbol_kind::S_IMMEDIATE: // "IMMEDIATE" + case symbol_kind::S_IN: // "IN" + case symbol_kind::S_INDEX: // "INDEX" + case symbol_kind::S_INITIALLY: // "INITIALLY" + case symbol_kind::S_INSERT: // "INSERT" + case symbol_kind::S_IS: // "IS" + case symbol_kind::S_ISNULL: // "ISNULL" + case symbol_kind::S_KEY: // "KEY" + case symbol_kind::S_LIKE: // "LIKE" + case symbol_kind::S_MATCH: // "MATCH" + case symbol_kind::S_NO: // "NO" + case symbol_kind::S_NOT: // "NOT" + case symbol_kind::S_NOTNULL: // "NOTNULL" + case symbol_kind::S_NULL: // "NULL" + case symbol_kind::S_ON: // "ON" + case symbol_kind::S_OR: // "OR" + case symbol_kind::S_OVER: // "OVER" + case symbol_kind::S_PARTITION: // "PARTITION" + case symbol_kind::S_PRECEDING: // "PRECEDING" + case symbol_kind::S_PRIMARY: // "PRIMARY" + case symbol_kind::S_RAISE: // "RAISE" + case symbol_kind::S_RANGE: // "RANGE" + case symbol_kind::S_REFERENCES: // "REFERENCES" + case symbol_kind::S_REGEXP: // "REGEXP" + case symbol_kind::S_REPLACE: // "REPLACE" + case symbol_kind::S_RESTRICT: // "RESTRICT" + case symbol_kind::S_RETURNING: // "RETURNING" + case symbol_kind::S_ROLLBACK: // "ROLLBACK" + case symbol_kind::S_ROWID: // "ROWID" + case symbol_kind::S_ROWS: // "ROWS" + case symbol_kind::S_SELECT: // "SELECT" + case symbol_kind::S_SET: // "SET" + case symbol_kind::S_STORED: // "STORED" + case symbol_kind::S_TABLE: // "TABLE" + case symbol_kind::S_TEMP: // "TEMP" + case symbol_kind::S_TEMPORARY: // "TEMPORARY" + case symbol_kind::S_THEN: // "THEN" + case symbol_kind::S_TRUE: // "TRUE" + case symbol_kind::S_UNBOUNDED: // "UNBOUNDED" + case symbol_kind::S_UNIQUE: // "UNIQUE" + case symbol_kind::S_UPDATE: // "UPDATE" + case symbol_kind::S_USING: // "USING" + case symbol_kind::S_VIRTUAL: // "VIRTUAL" + case symbol_kind::S_WHEN: // "WHEN" + case symbol_kind::S_WHERE: // "WHERE" + case symbol_kind::S_WITHOUT: // "WITHOUT" + case symbol_kind::S_IDENTIFIER: // "identifier" + case symbol_kind::S_NUMERIC: // "numeric" + case symbol_kind::S_STRINGLITERAL: // "string literal" + case symbol_kind::S_QUOTEDLITERAL: // "quoted literal" + case symbol_kind::S_BLOBLITERAL: // "blob literal" + case symbol_kind::S_BINDPARAMETER: // "bind parameter" + case symbol_kind::S_literalvalue: // literalvalue + case symbol_kind::S_id: // id + case symbol_kind::S_allowed_keywords_as_identifier: // allowed_keywords_as_identifier + case symbol_kind::S_tableid: // tableid + case symbol_kind::S_columnid: // columnid + case symbol_kind::S_signednumber: // signednumber + case symbol_kind::S_signednumber_or_numeric: // signednumber_or_numeric + case symbol_kind::S_typename_namelist: // typename_namelist + case symbol_kind::S_type_name: // type_name + case symbol_kind::S_unary_expr: // unary_expr + case symbol_kind::S_binary_expr: // binary_expr + case symbol_kind::S_like_expr: // like_expr + case symbol_kind::S_exprlist_expr: // exprlist_expr + case symbol_kind::S_function_expr: // function_expr + case symbol_kind::S_isnull_expr: // isnull_expr + case symbol_kind::S_between_expr: // between_expr + case symbol_kind::S_in_expr: // in_expr + case symbol_kind::S_whenthenlist_expr: // whenthenlist_expr + case symbol_kind::S_case_expr: // case_expr + case symbol_kind::S_raise_expr: // raise_expr + case symbol_kind::S_expr: // expr + case symbol_kind::S_select_stmt: // select_stmt + case symbol_kind::S_optional_sort_order: // optional_sort_order + case symbol_kind::S_optional_where: // optional_where + case symbol_kind::S_tableid_with_uninteresting_schema: // tableid_with_uninteresting_schema + case symbol_kind::S_optional_exprlist_with_paren: // optional_exprlist_with_paren + case symbol_kind::S_optional_conflictclause: // optional_conflictclause + case symbol_kind::S_optional_typename: // optional_typename + case symbol_kind::S_optional_storage_identifier: // optional_storage_identifier + case symbol_kind::S_optional_constraintname: // optional_constraintname + case symbol_kind::S_fk_clause_part: // fk_clause_part + case symbol_kind::S_fk_clause_part_list: // fk_clause_part_list + case symbol_kind::S_optional_fk_clause: // optional_fk_clause value.template destroy< std::string > (); break; - case 161: // columndef_list + case symbol_kind::S_columndef_list: // columndef_list value.template destroy< std::vector > (); break; @@ -1554,7 +1570,7 @@ switch (yykind) by_kind (kind_type t); /// Record that this symbol is empty. - void clear (); + void clear () YY_NOEXCEPT; /// Steal the symbol kind from \a that. void move (by_kind& that); @@ -1587,29 +1603,24 @@ switch (yykind) #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, location_type l) : super_type(token_type (tok), std::move (l)) - { - YY_ASSERT (tok == token::TOK_EOF || tok == token::TOK_YYerror || tok == token::TOK_YYUNDEF || tok == token::TOK_LPAREN || tok == token::TOK_RPAREN || tok == token::TOK_DOT || tok == token::TOK_COMMA || tok == token::TOK_SEMI || tok == token::TOK_PLUS || tok == token::TOK_MINUS || tok == token::TOK_STAR || tok == token::TOK_SLASH || tok == token::TOK_TILDE || tok == token::TOK_AMPERSAND || tok == token::TOK_PERCENT || tok == token::TOK_BITOR || tok == token::TOK_OROP || tok == token::TOK_EQUAL || tok == token::TOK_EQUAL2 || tok == token::TOK_GREATER || tok == token::TOK_GREATEREQUAL || tok == token::TOK_LOWER || tok == token::TOK_LOWEREQUAL || tok == token::TOK_UNEQUAL || tok == token::TOK_UNEQUAL2 || tok == token::TOK_BITWISELEFT || tok == token::TOK_BITWISERIGHT); - } #else symbol_type (int tok, const location_type& l) : super_type(token_type (tok), l) +#endif { - YY_ASSERT (tok == token::TOK_EOF || tok == token::TOK_YYerror || tok == token::TOK_YYUNDEF || tok == token::TOK_LPAREN || tok == token::TOK_RPAREN || tok == token::TOK_DOT || tok == token::TOK_COMMA || tok == token::TOK_SEMI || tok == token::TOK_PLUS || tok == token::TOK_MINUS || tok == token::TOK_STAR || tok == token::TOK_SLASH || tok == token::TOK_TILDE || tok == token::TOK_AMPERSAND || tok == token::TOK_PERCENT || tok == token::TOK_BITOR || tok == token::TOK_OROP || tok == token::TOK_EQUAL || tok == token::TOK_EQUAL2 || tok == token::TOK_GREATER || tok == token::TOK_GREATEREQUAL || tok == token::TOK_LOWER || tok == token::TOK_LOWEREQUAL || tok == token::TOK_UNEQUAL || tok == token::TOK_UNEQUAL2 || tok == token::TOK_BITWISELEFT || tok == token::TOK_BITWISERIGHT); + YY_ASSERT (tok == token::TOK_EOF + || (token::TOK_YYerror <= tok && tok <= token::TOK_BITWISERIGHT)); } -#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, std::string v, location_type l) : super_type(token_type (tok), std::move (v), std::move (l)) - { - YY_ASSERT (tok == token::TOK_ABORT || tok == token::TOK_ACTION || tok == token::TOK_ALWAYS || tok == token::TOK_AND || tok == token::TOK_AND_BETWEEN || tok == token::TOK_AS || tok == token::TOK_ASC || tok == token::TOK_AUTOINCREMENT || tok == token::TOK_BETWEEN || tok == token::TOK_CASCADE || tok == token::TOK_CASE || tok == token::TOK_CAST || tok == token::TOK_CHECK || tok == token::TOK_COLLATE || tok == token::TOK_CONFLICT || tok == token::TOK_CONSTRAINT || tok == token::TOK_CREATE || tok == token::TOK_CURRENT_DATE || tok == token::TOK_CURRENT_TIME || tok == token::TOK_CURRENT_TIMESTAMP || tok == token::TOK_DEFAULT || tok == token::TOK_DEFERRABLE || tok == token::TOK_DEFERRED || tok == token::TOK_DELETE || tok == token::TOK_DESC || tok == token::TOK_DISTINCT || tok == token::TOK_ELSE || tok == token::TOK_END || tok == token::TOK_ESCAPE || tok == token::TOK_EXISTS || tok == token::TOK_FAIL || tok == token::TOK_FALSE || tok == token::TOK_FILTER || tok == token::TOK_FOLLOWING || tok == token::TOK_FOREIGN || tok == token::TOK_GENERATED || tok == token::TOK_GLOB || tok == token::TOK_IF || tok == token::TOK_IGNORE || tok == token::TOK_IMMEDIATE || tok == token::TOK_IN || tok == token::TOK_INDEX || tok == token::TOK_INITIALLY || tok == token::TOK_INSERT || tok == token::TOK_IS || tok == token::TOK_ISNULL || tok == token::TOK_KEY || tok == token::TOK_LIKE || tok == token::TOK_MATCH || tok == token::TOK_NO || tok == token::TOK_NOT || tok == token::TOK_NOTNULL || tok == token::TOK_NULL || tok == token::TOK_ON || tok == token::TOK_OR || tok == token::TOK_OVER || tok == token::TOK_PARTITION || tok == token::TOK_PRECEDING || tok == token::TOK_PRIMARY || tok == token::TOK_RAISE || tok == token::TOK_RANGE || tok == token::TOK_REFERENCES || tok == token::TOK_REGEXP || tok == token::TOK_REPLACE || tok == token::TOK_RESTRICT || tok == token::TOK_ROLLBACK || tok == token::TOK_ROWID || tok == token::TOK_ROWS || tok == token::TOK_SELECT || tok == token::TOK_SET || tok == token::TOK_STORED || tok == token::TOK_TABLE || tok == token::TOK_TEMP || tok == token::TOK_TEMPORARY || tok == token::TOK_THEN || tok == token::TOK_TRUE || tok == token::TOK_UNBOUNDED || tok == token::TOK_UNIQUE || tok == token::TOK_UPDATE || tok == token::TOK_USING || tok == token::TOK_VIRTUAL || tok == token::TOK_WHEN || tok == token::TOK_WHERE || tok == token::TOK_WITHOUT || tok == token::TOK_IDENTIFIER || tok == token::TOK_NUMERIC || tok == token::TOK_STRINGLITERAL || tok == token::TOK_QUOTEDLITERAL || tok == token::TOK_BLOBLITERAL || tok == token::TOK_BINDPARAMETER); - } #else symbol_type (int tok, const std::string& v, const location_type& l) : super_type(token_type (tok), v, l) +#endif { - YY_ASSERT (tok == token::TOK_ABORT || tok == token::TOK_ACTION || tok == token::TOK_ALWAYS || tok == token::TOK_AND || tok == token::TOK_AND_BETWEEN || tok == token::TOK_AS || tok == token::TOK_ASC || tok == token::TOK_AUTOINCREMENT || tok == token::TOK_BETWEEN || tok == token::TOK_CASCADE || tok == token::TOK_CASE || tok == token::TOK_CAST || tok == token::TOK_CHECK || tok == token::TOK_COLLATE || tok == token::TOK_CONFLICT || tok == token::TOK_CONSTRAINT || tok == token::TOK_CREATE || tok == token::TOK_CURRENT_DATE || tok == token::TOK_CURRENT_TIME || tok == token::TOK_CURRENT_TIMESTAMP || tok == token::TOK_DEFAULT || tok == token::TOK_DEFERRABLE || tok == token::TOK_DEFERRED || tok == token::TOK_DELETE || tok == token::TOK_DESC || tok == token::TOK_DISTINCT || tok == token::TOK_ELSE || tok == token::TOK_END || tok == token::TOK_ESCAPE || tok == token::TOK_EXISTS || tok == token::TOK_FAIL || tok == token::TOK_FALSE || tok == token::TOK_FILTER || tok == token::TOK_FOLLOWING || tok == token::TOK_FOREIGN || tok == token::TOK_GENERATED || tok == token::TOK_GLOB || tok == token::TOK_IF || tok == token::TOK_IGNORE || tok == token::TOK_IMMEDIATE || tok == token::TOK_IN || tok == token::TOK_INDEX || tok == token::TOK_INITIALLY || tok == token::TOK_INSERT || tok == token::TOK_IS || tok == token::TOK_ISNULL || tok == token::TOK_KEY || tok == token::TOK_LIKE || tok == token::TOK_MATCH || tok == token::TOK_NO || tok == token::TOK_NOT || tok == token::TOK_NOTNULL || tok == token::TOK_NULL || tok == token::TOK_ON || tok == token::TOK_OR || tok == token::TOK_OVER || tok == token::TOK_PARTITION || tok == token::TOK_PRECEDING || tok == token::TOK_PRIMARY || tok == token::TOK_RAISE || tok == token::TOK_RANGE || tok == token::TOK_REFERENCES || tok == token::TOK_REGEXP || tok == token::TOK_REPLACE || tok == token::TOK_RESTRICT || tok == token::TOK_ROLLBACK || tok == token::TOK_ROWID || tok == token::TOK_ROWS || tok == token::TOK_SELECT || tok == token::TOK_SET || tok == token::TOK_STORED || tok == token::TOK_TABLE || tok == token::TOK_TEMP || tok == token::TOK_TEMPORARY || tok == token::TOK_THEN || tok == token::TOK_TRUE || tok == token::TOK_UNBOUNDED || tok == token::TOK_UNIQUE || tok == token::TOK_UPDATE || tok == token::TOK_USING || tok == token::TOK_VIRTUAL || tok == token::TOK_WHEN || tok == token::TOK_WHERE || tok == token::TOK_WITHOUT || tok == token::TOK_IDENTIFIER || tok == token::TOK_NUMERIC || tok == token::TOK_STRINGLITERAL || tok == token::TOK_QUOTEDLITERAL || tok == token::TOK_BLOBLITERAL || tok == token::TOK_BINDPARAMETER); + YY_ASSERT ((token::TOK_ABORT <= tok && tok <= token::TOK_BINDPARAMETER)); } -#endif }; /// Build a parser object. @@ -3038,6 +3049,21 @@ switch (yykind) return symbol_type (token::TOK_RESTRICT, v, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_RETURNING (std::string v, location_type l) + { + return symbol_type (token::TOK_RETURNING, std::move (v), std::move (l)); + } +#else + static + symbol_type + make_RETURNING (const std::string& v, const location_type& l) + { + return symbol_type (token::TOK_RETURNING, v, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -3419,9 +3445,9 @@ switch (yykind) { public: context (const parser& yyparser, const symbol_type& yyla); - const symbol_type& lookahead () const { return yyla_; } - symbol_kind_type token () const { return yyla_.kind (); } - const location_type& location () const { return yyla_.location; } + const symbol_type& lookahead () const YY_NOEXCEPT { return yyla_; } + symbol_kind_type token () const YY_NOEXCEPT { return yyla_.kind (); } + const location_type& location () const YY_NOEXCEPT { return yyla_.location; } /// Put in YYARG at most YYARGN of the expected tokens, and return the /// number of tokens stored in YYARG. If YYARG is null, return the @@ -3564,7 +3590,7 @@ switch (yykind) void move (by_state& that); /// The symbol kind (corresponding to \a state). - /// \a S_YYEMPTY when empty. + /// \a symbol_kind::S_YYEMPTY when empty. symbol_kind_type kind () const YY_NOEXCEPT; /// The state number used to denote an empty symbol. @@ -3743,7 +3769,7 @@ switch (yykind) /// Constants. enum { - yylast_ = 3320, ///< Last index in yytable_. + yylast_ = 3424, ///< Last index in yytable_. yynnts_ = 55, ///< Number of nonterminal symbols. yyfinal_ = 13 ///< Termination state number. }; @@ -3802,13 +3828,14 @@ switch (yykind) 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116 + 115, 116, 117 }; - const int user_token_number_max_ = 371; + // Last valid token kind. + const int code_max = 372; if (t <= 0) return symbol_kind::S_YYEOF; - else if (t <= user_token_number_max_) + else if (t <= code_max) return YY_CAST (symbol_kind_type, translate_table[t]); else return symbol_kind::S_YYUNDEF; @@ -3823,178 +3850,179 @@ switch (yykind) { switch (this->kind ()) { - case 160: // columndef + case symbol_kind::S_columndef: // columndef value.copy< ColumndefData > (YY_MOVE (that.value)); break; - case 142: // optional_if_not_exists - case 144: // optional_unique - case 152: // optional_temporary - case 153: // optional_withoutrowid - case 157: // optional_always_generated + case symbol_kind::S_optional_if_not_exists: // optional_if_not_exists + case symbol_kind::S_optional_unique: // optional_unique + case symbol_kind::S_optional_temporary: // optional_temporary + case symbol_kind::S_optional_withoutrowid: // optional_withoutrowid + case symbol_kind::S_optional_always_generated: // optional_always_generated value.copy< bool > (YY_MOVE (that.value)); break; - case 158: // columnconstraint - case 168: // tableconstraint + case symbol_kind::S_columnconstraint: // columnconstraint + case symbol_kind::S_tableconstraint: // tableconstraint value.copy< sqlb::ConstraintPtr > (YY_MOVE (that.value)); break; - case 159: // columnconstraint_list - case 169: // tableconstraint_list - case 170: // optional_tableconstraint_list - value.copy< sqlb::ConstraintSet > (YY_MOVE (that.value)); + case symbol_kind::S_columnconstraint_list: // columnconstraint_list + case symbol_kind::S_tableconstraint_list: // tableconstraint_list + case symbol_kind::S_optional_tableconstraint_list: // optional_tableconstraint_list + value.copy< sqlb::ConstraintVector > (YY_MOVE (that.value)); break; - case 149: // createindex_stmt + case symbol_kind::S_createindex_stmt: // createindex_stmt value.copy< sqlb::IndexPtr > (YY_MOVE (that.value)); break; - case 147: // indexed_column + case symbol_kind::S_indexed_column: // indexed_column value.copy< sqlb::IndexedColumn > (YY_MOVE (that.value)); break; - case 148: // indexed_column_list + case symbol_kind::S_indexed_column_list: // indexed_column_list value.copy< sqlb::IndexedColumnVector > (YY_MOVE (that.value)); break; - case 163: // columnid_list - case 164: // optional_columnid_with_paren_list + case symbol_kind::S_columnid_list: // columnid_list + case symbol_kind::S_optional_columnid_with_paren_list: // optional_columnid_with_paren_list value.copy< sqlb::StringVector > (YY_MOVE (that.value)); break; - case 151: // createvirtualtable_stmt - case 171: // createtable_stmt + case symbol_kind::S_createvirtualtable_stmt: // createvirtualtable_stmt + case symbol_kind::S_createtable_stmt: // createtable_stmt value.copy< sqlb::TablePtr > (YY_MOVE (that.value)); break; - case 27: // "ABORT" - case 28: // "ACTION" - case 29: // "ALWAYS" - case 30: // "AND" - case 31: // "AND BETWEEN" - case 32: // "AS" - case 33: // "ASC" - case 34: // "AUTOINCREMENT" - case 35: // "BETWEEN" - case 36: // "CASCADE" - case 37: // "CASE" - case 38: // "CAST" - case 39: // "CHECK" - case 40: // "COLLATE" - case 41: // "CONFLICT" - case 42: // "CONSTRAINT" - case 43: // "CREATE" - case 44: // "CURRENT_DATE" - case 45: // "CURRENT_TIME" - case 46: // "CURRENT_TIMESTAMP" - case 47: // "DEFAULT" - case 48: // "DEFERRABLE" - case 49: // "DEFERRED" - case 50: // "DELETE" - case 51: // "DESC" - case 52: // "DISTINCT" - case 53: // "ELSE" - case 54: // "END" - case 55: // "ESCAPE" - case 56: // "EXISTS" - case 57: // "FAIL" - case 58: // "FALSE" - case 59: // "FILTER" - case 60: // "FOLLOWING" - case 61: // "FOREIGN" - case 62: // "GENERATED" - case 63: // "GLOB" - case 64: // "IF" - case 65: // "IGNORE" - case 66: // "IMMEDIATE" - case 67: // "IN" - case 68: // "INDEX" - case 69: // "INITIALLY" - case 70: // "INSERT" - case 71: // "IS" - case 72: // "ISNULL" - case 73: // "KEY" - case 74: // "LIKE" - case 75: // "MATCH" - case 76: // "NO" - case 77: // "NOT" - case 78: // "NOTNULL" - case 79: // "NULL" - case 80: // "ON" - case 81: // "OR" - case 82: // "OVER" - case 83: // "PARTITION" - case 84: // "PRECEDING" - case 85: // "PRIMARY" - case 86: // "RAISE" - case 87: // "RANGE" - case 88: // "REFERENCES" - case 89: // "REGEXP" - case 90: // "REPLACE" - case 91: // "RESTRICT" - case 92: // "ROLLBACK" - case 93: // "ROWID" - case 94: // "ROWS" - case 95: // "SELECT" - case 96: // "SET" - case 97: // "STORED" - case 98: // "TABLE" - case 99: // "TEMP" - case 100: // "TEMPORARY" - case 101: // "THEN" - case 102: // "TRUE" - case 103: // "UNBOUNDED" - case 104: // "UNIQUE" - case 105: // "UPDATE" - case 106: // "USING" - case 107: // "VIRTUAL" - case 108: // "WHEN" - case 109: // "WHERE" - case 110: // "WITHOUT" - case 111: // "identifier" - case 112: // "numeric" - case 113: // "string literal" - case 114: // "quoted literal" - case 115: // "blob literal" - case 116: // "bind parameter" - case 120: // literalvalue - case 121: // id - case 122: // allowed_keywords_as_identifier - case 123: // tableid - case 124: // columnid - case 125: // signednumber - case 126: // signednumber_or_numeric - case 127: // typename_namelist - case 128: // type_name - case 129: // unary_expr - case 130: // binary_expr - case 131: // like_expr - case 132: // exprlist_expr - case 133: // function_expr - case 134: // isnull_expr - case 135: // between_expr - case 136: // in_expr - case 137: // whenthenlist_expr - case 138: // case_expr - case 139: // raise_expr - case 140: // expr - case 141: // select_stmt - case 143: // optional_sort_order - case 145: // optional_where - case 146: // tableid_with_uninteresting_schema - case 150: // optional_exprlist_with_paren - case 154: // optional_conflictclause - case 155: // optional_typename - case 156: // optional_storage_identifier - case 162: // optional_constraintname - case 165: // fk_clause_part - case 166: // fk_clause_part_list - case 167: // optional_fk_clause + case symbol_kind::S_ABORT: // "ABORT" + case symbol_kind::S_ACTION: // "ACTION" + case symbol_kind::S_ALWAYS: // "ALWAYS" + case symbol_kind::S_AND: // "AND" + case symbol_kind::S_AND_BETWEEN: // "AND BETWEEN" + case symbol_kind::S_AS: // "AS" + case symbol_kind::S_ASC: // "ASC" + case symbol_kind::S_AUTOINCREMENT: // "AUTOINCREMENT" + case symbol_kind::S_BETWEEN: // "BETWEEN" + case symbol_kind::S_CASCADE: // "CASCADE" + case symbol_kind::S_CASE: // "CASE" + case symbol_kind::S_CAST: // "CAST" + case symbol_kind::S_CHECK: // "CHECK" + case symbol_kind::S_COLLATE: // "COLLATE" + case symbol_kind::S_CONFLICT: // "CONFLICT" + case symbol_kind::S_CONSTRAINT: // "CONSTRAINT" + case symbol_kind::S_CREATE: // "CREATE" + case symbol_kind::S_CURRENT_DATE: // "CURRENT_DATE" + case symbol_kind::S_CURRENT_TIME: // "CURRENT_TIME" + case symbol_kind::S_CURRENT_TIMESTAMP: // "CURRENT_TIMESTAMP" + case symbol_kind::S_DEFAULT: // "DEFAULT" + case symbol_kind::S_DEFERRABLE: // "DEFERRABLE" + case symbol_kind::S_DEFERRED: // "DEFERRED" + case symbol_kind::S_DELETE: // "DELETE" + case symbol_kind::S_DESC: // "DESC" + case symbol_kind::S_DISTINCT: // "DISTINCT" + case symbol_kind::S_ELSE: // "ELSE" + case symbol_kind::S_END: // "END" + case symbol_kind::S_ESCAPE: // "ESCAPE" + case symbol_kind::S_EXISTS: // "EXISTS" + case symbol_kind::S_FAIL: // "FAIL" + case symbol_kind::S_FALSE: // "FALSE" + case symbol_kind::S_FILTER: // "FILTER" + case symbol_kind::S_FOLLOWING: // "FOLLOWING" + case symbol_kind::S_FOREIGN: // "FOREIGN" + case symbol_kind::S_GENERATED: // "GENERATED" + case symbol_kind::S_GLOB: // "GLOB" + case symbol_kind::S_IF: // "IF" + case symbol_kind::S_IGNORE: // "IGNORE" + case symbol_kind::S_IMMEDIATE: // "IMMEDIATE" + case symbol_kind::S_IN: // "IN" + case symbol_kind::S_INDEX: // "INDEX" + case symbol_kind::S_INITIALLY: // "INITIALLY" + case symbol_kind::S_INSERT: // "INSERT" + case symbol_kind::S_IS: // "IS" + case symbol_kind::S_ISNULL: // "ISNULL" + case symbol_kind::S_KEY: // "KEY" + case symbol_kind::S_LIKE: // "LIKE" + case symbol_kind::S_MATCH: // "MATCH" + case symbol_kind::S_NO: // "NO" + case symbol_kind::S_NOT: // "NOT" + case symbol_kind::S_NOTNULL: // "NOTNULL" + case symbol_kind::S_NULL: // "NULL" + case symbol_kind::S_ON: // "ON" + case symbol_kind::S_OR: // "OR" + case symbol_kind::S_OVER: // "OVER" + case symbol_kind::S_PARTITION: // "PARTITION" + case symbol_kind::S_PRECEDING: // "PRECEDING" + case symbol_kind::S_PRIMARY: // "PRIMARY" + case symbol_kind::S_RAISE: // "RAISE" + case symbol_kind::S_RANGE: // "RANGE" + case symbol_kind::S_REFERENCES: // "REFERENCES" + case symbol_kind::S_REGEXP: // "REGEXP" + case symbol_kind::S_REPLACE: // "REPLACE" + case symbol_kind::S_RESTRICT: // "RESTRICT" + case symbol_kind::S_RETURNING: // "RETURNING" + case symbol_kind::S_ROLLBACK: // "ROLLBACK" + case symbol_kind::S_ROWID: // "ROWID" + case symbol_kind::S_ROWS: // "ROWS" + case symbol_kind::S_SELECT: // "SELECT" + case symbol_kind::S_SET: // "SET" + case symbol_kind::S_STORED: // "STORED" + case symbol_kind::S_TABLE: // "TABLE" + case symbol_kind::S_TEMP: // "TEMP" + case symbol_kind::S_TEMPORARY: // "TEMPORARY" + case symbol_kind::S_THEN: // "THEN" + case symbol_kind::S_TRUE: // "TRUE" + case symbol_kind::S_UNBOUNDED: // "UNBOUNDED" + case symbol_kind::S_UNIQUE: // "UNIQUE" + case symbol_kind::S_UPDATE: // "UPDATE" + case symbol_kind::S_USING: // "USING" + case symbol_kind::S_VIRTUAL: // "VIRTUAL" + case symbol_kind::S_WHEN: // "WHEN" + case symbol_kind::S_WHERE: // "WHERE" + case symbol_kind::S_WITHOUT: // "WITHOUT" + case symbol_kind::S_IDENTIFIER: // "identifier" + case symbol_kind::S_NUMERIC: // "numeric" + case symbol_kind::S_STRINGLITERAL: // "string literal" + case symbol_kind::S_QUOTEDLITERAL: // "quoted literal" + case symbol_kind::S_BLOBLITERAL: // "blob literal" + case symbol_kind::S_BINDPARAMETER: // "bind parameter" + case symbol_kind::S_literalvalue: // literalvalue + case symbol_kind::S_id: // id + case symbol_kind::S_allowed_keywords_as_identifier: // allowed_keywords_as_identifier + case symbol_kind::S_tableid: // tableid + case symbol_kind::S_columnid: // columnid + case symbol_kind::S_signednumber: // signednumber + case symbol_kind::S_signednumber_or_numeric: // signednumber_or_numeric + case symbol_kind::S_typename_namelist: // typename_namelist + case symbol_kind::S_type_name: // type_name + case symbol_kind::S_unary_expr: // unary_expr + case symbol_kind::S_binary_expr: // binary_expr + case symbol_kind::S_like_expr: // like_expr + case symbol_kind::S_exprlist_expr: // exprlist_expr + case symbol_kind::S_function_expr: // function_expr + case symbol_kind::S_isnull_expr: // isnull_expr + case symbol_kind::S_between_expr: // between_expr + case symbol_kind::S_in_expr: // in_expr + case symbol_kind::S_whenthenlist_expr: // whenthenlist_expr + case symbol_kind::S_case_expr: // case_expr + case symbol_kind::S_raise_expr: // raise_expr + case symbol_kind::S_expr: // expr + case symbol_kind::S_select_stmt: // select_stmt + case symbol_kind::S_optional_sort_order: // optional_sort_order + case symbol_kind::S_optional_where: // optional_where + case symbol_kind::S_tableid_with_uninteresting_schema: // tableid_with_uninteresting_schema + case symbol_kind::S_optional_exprlist_with_paren: // optional_exprlist_with_paren + case symbol_kind::S_optional_conflictclause: // optional_conflictclause + case symbol_kind::S_optional_typename: // optional_typename + case symbol_kind::S_optional_storage_identifier: // optional_storage_identifier + case symbol_kind::S_optional_constraintname: // optional_constraintname + case symbol_kind::S_fk_clause_part: // fk_clause_part + case symbol_kind::S_fk_clause_part_list: // fk_clause_part_list + case symbol_kind::S_optional_fk_clause: // optional_fk_clause value.copy< std::string > (YY_MOVE (that.value)); break; - case 161: // columndef_list + case symbol_kind::S_columndef_list: // columndef_list value.copy< std::vector > (YY_MOVE (that.value)); break; @@ -4027,178 +4055,179 @@ switch (yykind) super_type::move (s); switch (this->kind ()) { - case 160: // columndef + case symbol_kind::S_columndef: // columndef value.move< ColumndefData > (YY_MOVE (s.value)); break; - case 142: // optional_if_not_exists - case 144: // optional_unique - case 152: // optional_temporary - case 153: // optional_withoutrowid - case 157: // optional_always_generated + case symbol_kind::S_optional_if_not_exists: // optional_if_not_exists + case symbol_kind::S_optional_unique: // optional_unique + case symbol_kind::S_optional_temporary: // optional_temporary + case symbol_kind::S_optional_withoutrowid: // optional_withoutrowid + case symbol_kind::S_optional_always_generated: // optional_always_generated value.move< bool > (YY_MOVE (s.value)); break; - case 158: // columnconstraint - case 168: // tableconstraint + case symbol_kind::S_columnconstraint: // columnconstraint + case symbol_kind::S_tableconstraint: // tableconstraint value.move< sqlb::ConstraintPtr > (YY_MOVE (s.value)); break; - case 159: // columnconstraint_list - case 169: // tableconstraint_list - case 170: // optional_tableconstraint_list - value.move< sqlb::ConstraintSet > (YY_MOVE (s.value)); + case symbol_kind::S_columnconstraint_list: // columnconstraint_list + case symbol_kind::S_tableconstraint_list: // tableconstraint_list + case symbol_kind::S_optional_tableconstraint_list: // optional_tableconstraint_list + value.move< sqlb::ConstraintVector > (YY_MOVE (s.value)); break; - case 149: // createindex_stmt + case symbol_kind::S_createindex_stmt: // createindex_stmt value.move< sqlb::IndexPtr > (YY_MOVE (s.value)); break; - case 147: // indexed_column + case symbol_kind::S_indexed_column: // indexed_column value.move< sqlb::IndexedColumn > (YY_MOVE (s.value)); break; - case 148: // indexed_column_list + case symbol_kind::S_indexed_column_list: // indexed_column_list value.move< sqlb::IndexedColumnVector > (YY_MOVE (s.value)); break; - case 163: // columnid_list - case 164: // optional_columnid_with_paren_list + case symbol_kind::S_columnid_list: // columnid_list + case symbol_kind::S_optional_columnid_with_paren_list: // optional_columnid_with_paren_list value.move< sqlb::StringVector > (YY_MOVE (s.value)); break; - case 151: // createvirtualtable_stmt - case 171: // createtable_stmt + case symbol_kind::S_createvirtualtable_stmt: // createvirtualtable_stmt + case symbol_kind::S_createtable_stmt: // createtable_stmt value.move< sqlb::TablePtr > (YY_MOVE (s.value)); break; - case 27: // "ABORT" - case 28: // "ACTION" - case 29: // "ALWAYS" - case 30: // "AND" - case 31: // "AND BETWEEN" - case 32: // "AS" - case 33: // "ASC" - case 34: // "AUTOINCREMENT" - case 35: // "BETWEEN" - case 36: // "CASCADE" - case 37: // "CASE" - case 38: // "CAST" - case 39: // "CHECK" - case 40: // "COLLATE" - case 41: // "CONFLICT" - case 42: // "CONSTRAINT" - case 43: // "CREATE" - case 44: // "CURRENT_DATE" - case 45: // "CURRENT_TIME" - case 46: // "CURRENT_TIMESTAMP" - case 47: // "DEFAULT" - case 48: // "DEFERRABLE" - case 49: // "DEFERRED" - case 50: // "DELETE" - case 51: // "DESC" - case 52: // "DISTINCT" - case 53: // "ELSE" - case 54: // "END" - case 55: // "ESCAPE" - case 56: // "EXISTS" - case 57: // "FAIL" - case 58: // "FALSE" - case 59: // "FILTER" - case 60: // "FOLLOWING" - case 61: // "FOREIGN" - case 62: // "GENERATED" - case 63: // "GLOB" - case 64: // "IF" - case 65: // "IGNORE" - case 66: // "IMMEDIATE" - case 67: // "IN" - case 68: // "INDEX" - case 69: // "INITIALLY" - case 70: // "INSERT" - case 71: // "IS" - case 72: // "ISNULL" - case 73: // "KEY" - case 74: // "LIKE" - case 75: // "MATCH" - case 76: // "NO" - case 77: // "NOT" - case 78: // "NOTNULL" - case 79: // "NULL" - case 80: // "ON" - case 81: // "OR" - case 82: // "OVER" - case 83: // "PARTITION" - case 84: // "PRECEDING" - case 85: // "PRIMARY" - case 86: // "RAISE" - case 87: // "RANGE" - case 88: // "REFERENCES" - case 89: // "REGEXP" - case 90: // "REPLACE" - case 91: // "RESTRICT" - case 92: // "ROLLBACK" - case 93: // "ROWID" - case 94: // "ROWS" - case 95: // "SELECT" - case 96: // "SET" - case 97: // "STORED" - case 98: // "TABLE" - case 99: // "TEMP" - case 100: // "TEMPORARY" - case 101: // "THEN" - case 102: // "TRUE" - case 103: // "UNBOUNDED" - case 104: // "UNIQUE" - case 105: // "UPDATE" - case 106: // "USING" - case 107: // "VIRTUAL" - case 108: // "WHEN" - case 109: // "WHERE" - case 110: // "WITHOUT" - case 111: // "identifier" - case 112: // "numeric" - case 113: // "string literal" - case 114: // "quoted literal" - case 115: // "blob literal" - case 116: // "bind parameter" - case 120: // literalvalue - case 121: // id - case 122: // allowed_keywords_as_identifier - case 123: // tableid - case 124: // columnid - case 125: // signednumber - case 126: // signednumber_or_numeric - case 127: // typename_namelist - case 128: // type_name - case 129: // unary_expr - case 130: // binary_expr - case 131: // like_expr - case 132: // exprlist_expr - case 133: // function_expr - case 134: // isnull_expr - case 135: // between_expr - case 136: // in_expr - case 137: // whenthenlist_expr - case 138: // case_expr - case 139: // raise_expr - case 140: // expr - case 141: // select_stmt - case 143: // optional_sort_order - case 145: // optional_where - case 146: // tableid_with_uninteresting_schema - case 150: // optional_exprlist_with_paren - case 154: // optional_conflictclause - case 155: // optional_typename - case 156: // optional_storage_identifier - case 162: // optional_constraintname - case 165: // fk_clause_part - case 166: // fk_clause_part_list - case 167: // optional_fk_clause + case symbol_kind::S_ABORT: // "ABORT" + case symbol_kind::S_ACTION: // "ACTION" + case symbol_kind::S_ALWAYS: // "ALWAYS" + case symbol_kind::S_AND: // "AND" + case symbol_kind::S_AND_BETWEEN: // "AND BETWEEN" + case symbol_kind::S_AS: // "AS" + case symbol_kind::S_ASC: // "ASC" + case symbol_kind::S_AUTOINCREMENT: // "AUTOINCREMENT" + case symbol_kind::S_BETWEEN: // "BETWEEN" + case symbol_kind::S_CASCADE: // "CASCADE" + case symbol_kind::S_CASE: // "CASE" + case symbol_kind::S_CAST: // "CAST" + case symbol_kind::S_CHECK: // "CHECK" + case symbol_kind::S_COLLATE: // "COLLATE" + case symbol_kind::S_CONFLICT: // "CONFLICT" + case symbol_kind::S_CONSTRAINT: // "CONSTRAINT" + case symbol_kind::S_CREATE: // "CREATE" + case symbol_kind::S_CURRENT_DATE: // "CURRENT_DATE" + case symbol_kind::S_CURRENT_TIME: // "CURRENT_TIME" + case symbol_kind::S_CURRENT_TIMESTAMP: // "CURRENT_TIMESTAMP" + case symbol_kind::S_DEFAULT: // "DEFAULT" + case symbol_kind::S_DEFERRABLE: // "DEFERRABLE" + case symbol_kind::S_DEFERRED: // "DEFERRED" + case symbol_kind::S_DELETE: // "DELETE" + case symbol_kind::S_DESC: // "DESC" + case symbol_kind::S_DISTINCT: // "DISTINCT" + case symbol_kind::S_ELSE: // "ELSE" + case symbol_kind::S_END: // "END" + case symbol_kind::S_ESCAPE: // "ESCAPE" + case symbol_kind::S_EXISTS: // "EXISTS" + case symbol_kind::S_FAIL: // "FAIL" + case symbol_kind::S_FALSE: // "FALSE" + case symbol_kind::S_FILTER: // "FILTER" + case symbol_kind::S_FOLLOWING: // "FOLLOWING" + case symbol_kind::S_FOREIGN: // "FOREIGN" + case symbol_kind::S_GENERATED: // "GENERATED" + case symbol_kind::S_GLOB: // "GLOB" + case symbol_kind::S_IF: // "IF" + case symbol_kind::S_IGNORE: // "IGNORE" + case symbol_kind::S_IMMEDIATE: // "IMMEDIATE" + case symbol_kind::S_IN: // "IN" + case symbol_kind::S_INDEX: // "INDEX" + case symbol_kind::S_INITIALLY: // "INITIALLY" + case symbol_kind::S_INSERT: // "INSERT" + case symbol_kind::S_IS: // "IS" + case symbol_kind::S_ISNULL: // "ISNULL" + case symbol_kind::S_KEY: // "KEY" + case symbol_kind::S_LIKE: // "LIKE" + case symbol_kind::S_MATCH: // "MATCH" + case symbol_kind::S_NO: // "NO" + case symbol_kind::S_NOT: // "NOT" + case symbol_kind::S_NOTNULL: // "NOTNULL" + case symbol_kind::S_NULL: // "NULL" + case symbol_kind::S_ON: // "ON" + case symbol_kind::S_OR: // "OR" + case symbol_kind::S_OVER: // "OVER" + case symbol_kind::S_PARTITION: // "PARTITION" + case symbol_kind::S_PRECEDING: // "PRECEDING" + case symbol_kind::S_PRIMARY: // "PRIMARY" + case symbol_kind::S_RAISE: // "RAISE" + case symbol_kind::S_RANGE: // "RANGE" + case symbol_kind::S_REFERENCES: // "REFERENCES" + case symbol_kind::S_REGEXP: // "REGEXP" + case symbol_kind::S_REPLACE: // "REPLACE" + case symbol_kind::S_RESTRICT: // "RESTRICT" + case symbol_kind::S_RETURNING: // "RETURNING" + case symbol_kind::S_ROLLBACK: // "ROLLBACK" + case symbol_kind::S_ROWID: // "ROWID" + case symbol_kind::S_ROWS: // "ROWS" + case symbol_kind::S_SELECT: // "SELECT" + case symbol_kind::S_SET: // "SET" + case symbol_kind::S_STORED: // "STORED" + case symbol_kind::S_TABLE: // "TABLE" + case symbol_kind::S_TEMP: // "TEMP" + case symbol_kind::S_TEMPORARY: // "TEMPORARY" + case symbol_kind::S_THEN: // "THEN" + case symbol_kind::S_TRUE: // "TRUE" + case symbol_kind::S_UNBOUNDED: // "UNBOUNDED" + case symbol_kind::S_UNIQUE: // "UNIQUE" + case symbol_kind::S_UPDATE: // "UPDATE" + case symbol_kind::S_USING: // "USING" + case symbol_kind::S_VIRTUAL: // "VIRTUAL" + case symbol_kind::S_WHEN: // "WHEN" + case symbol_kind::S_WHERE: // "WHERE" + case symbol_kind::S_WITHOUT: // "WITHOUT" + case symbol_kind::S_IDENTIFIER: // "identifier" + case symbol_kind::S_NUMERIC: // "numeric" + case symbol_kind::S_STRINGLITERAL: // "string literal" + case symbol_kind::S_QUOTEDLITERAL: // "quoted literal" + case symbol_kind::S_BLOBLITERAL: // "blob literal" + case symbol_kind::S_BINDPARAMETER: // "bind parameter" + case symbol_kind::S_literalvalue: // literalvalue + case symbol_kind::S_id: // id + case symbol_kind::S_allowed_keywords_as_identifier: // allowed_keywords_as_identifier + case symbol_kind::S_tableid: // tableid + case symbol_kind::S_columnid: // columnid + case symbol_kind::S_signednumber: // signednumber + case symbol_kind::S_signednumber_or_numeric: // signednumber_or_numeric + case symbol_kind::S_typename_namelist: // typename_namelist + case symbol_kind::S_type_name: // type_name + case symbol_kind::S_unary_expr: // unary_expr + case symbol_kind::S_binary_expr: // binary_expr + case symbol_kind::S_like_expr: // like_expr + case symbol_kind::S_exprlist_expr: // exprlist_expr + case symbol_kind::S_function_expr: // function_expr + case symbol_kind::S_isnull_expr: // isnull_expr + case symbol_kind::S_between_expr: // between_expr + case symbol_kind::S_in_expr: // in_expr + case symbol_kind::S_whenthenlist_expr: // whenthenlist_expr + case symbol_kind::S_case_expr: // case_expr + case symbol_kind::S_raise_expr: // raise_expr + case symbol_kind::S_expr: // expr + case symbol_kind::S_select_stmt: // select_stmt + case symbol_kind::S_optional_sort_order: // optional_sort_order + case symbol_kind::S_optional_where: // optional_where + case symbol_kind::S_tableid_with_uninteresting_schema: // tableid_with_uninteresting_schema + case symbol_kind::S_optional_exprlist_with_paren: // optional_exprlist_with_paren + case symbol_kind::S_optional_conflictclause: // optional_conflictclause + case symbol_kind::S_optional_typename: // optional_typename + case symbol_kind::S_optional_storage_identifier: // optional_storage_identifier + case symbol_kind::S_optional_constraintname: // optional_constraintname + case symbol_kind::S_fk_clause_part: // fk_clause_part + case symbol_kind::S_fk_clause_part_list: // fk_clause_part_list + case symbol_kind::S_optional_fk_clause: // optional_fk_clause value.move< std::string > (YY_MOVE (s.value)); break; - case 161: // columndef_list + case symbol_kind::S_columndef_list: // columndef_list value.move< std::vector > (YY_MOVE (s.value)); break; @@ -4236,7 +4265,7 @@ switch (yykind) inline void - parser::by_kind::clear () + parser::by_kind::clear () YY_NOEXCEPT { kind_ = symbol_kind::S_YYEMPTY; } @@ -4265,8 +4294,7 @@ switch (yykind) #line 10 "sqlite3_parser.yy" } } // sqlb::parser -#line 4269 "sqlite3_parser.hpp" - +#line 4298 "sqlite3_parser.hpp" diff --git a/src/sql/parser/sqlite3_parser.yy b/src/sql/parser/sqlite3_parser.yy index edaf37ad5..d8f308b1d 100644 --- a/src/sql/parser/sqlite3_parser.yy +++ b/src/sql/parser/sqlite3_parser.yy @@ -18,7 +18,7 @@ typedef void* yyscan_t; // Colum definitions are a tuple of two elements: the Field object and a set of table constraints - using ColumndefData = std::tuple; + using ColumndefData = std::tuple; } // The parsing context @@ -35,20 +35,28 @@ static std::string unquote_text(std::string str, char quote_char) { - if(str.front() != quote_char || str.back() != quote_char) - return str; + if(quote_char != '[') + { + if(str.front() != quote_char || str.back() != quote_char) + return str; - str = str.substr(1, str.size()-2); + str = str.substr(1, str.size()-2); - std::string quote(2, quote_char); + std::string quote(2, quote_char); - size_t pos = 0; - while((pos = str.find(quote, pos)) != std::string::npos) - { - str.erase(pos, 1); - pos += 1; // Don't remove the other quote char too + size_t pos = 0; + while((pos = str.find(quote, pos)) != std::string::npos) + { + str.erase(pos, 1); + pos += 1; // Don't remove the other quote char too + } + return str; + } else { + if(str.front() != '[' || str.back() != ']') + return str; + + return str.substr(1, str.size()-2); } - return str; } } @@ -146,6 +154,7 @@ %token REGEXP "REGEXP" %token REPLACE "REPLACE" %token RESTRICT "RESTRICT" +%token RETURNING "RETURNING" %token ROLLBACK "ROLLBACK" %token ROWID "ROWID" %token ROWS "ROWS" @@ -214,7 +223,7 @@ %type optional_typename %type optional_storage_identifier %type optional_always_generated -%type columnconstraint_list +%type columnconstraint_list %type columnconstraint %type columndef %type > columndef_list @@ -224,8 +233,8 @@ %type fk_clause_part_list %type optional_fk_clause %type tableconstraint -%type tableconstraint_list -%type optional_tableconstraint_list +%type tableconstraint_list +%type optional_tableconstraint_list %type createtable_stmt %% @@ -314,6 +323,7 @@ allowed_keywords_as_identifier: | REGEXP | REPLACE | RESTRICT + | RETURNING | ROLLBACK | ROWID | ROWS @@ -706,13 +716,13 @@ columnconstraint: columnconstraint_list: columnconstraint { $$ = { $1 }; } - | columnconstraint_list columnconstraint { $$ = $1; $$.insert($2); } + | columnconstraint_list columnconstraint { $$ = $1; $$.push_back($2); } ; columndef: columnid optional_typename columnconstraint_list { sqlb::Field f($1, $2); - sqlb::ConstraintSet table_constraints{}; + sqlb::ConstraintVector table_constraints{}; for(const auto& c : $3) { if(!c) @@ -729,7 +739,7 @@ columndef: c->setColumnList({$1}); else c->replaceInColumnList("", $1); - table_constraints.insert(c); + table_constraints.push_back(c); break; } case sqlb::Constraint::NotNullConstraintType: @@ -764,12 +774,14 @@ columndef: } break; } + default: + break; } } $$ = std::make_tuple(f, table_constraints); } - | columnid optional_typename { $$ = std::make_tuple(sqlb::Field($1, $2), sqlb::ConstraintSet{}); } + | columnid optional_typename { $$ = std::make_tuple(sqlb::Field($1, $2), sqlb::ConstraintVector{}); } ; columndef_list: @@ -867,8 +879,8 @@ tableconstraint: tableconstraint_list: tableconstraint { $$ = {$1}; } - | tableconstraint_list "," tableconstraint { $$ = $1; $$.insert($3); } - | tableconstraint_list tableconstraint { $$ = $1; $$.insert($2); } + | tableconstraint_list "," tableconstraint { $$ = $1; $$.push_back($3); } + | tableconstraint_list tableconstraint { $$ = $1; $$.push_back($2); } ; optional_tableconstraint_list: @@ -890,7 +902,7 @@ createtable_stmt: for(const auto& column : $7) { sqlb::Field f; - sqlb::ConstraintSet c; + sqlb::ConstraintVector c; std::tie(f, c) = column; $$->fields.push_back(f); diff --git a/src/sql/sqlitetypes.cpp b/src/sql/sqlitetypes.cpp index 3390eec28..5702efa7b 100644 --- a/src/sql/sqlitetypes.cpp +++ b/src/sql/sqlitetypes.cpp @@ -35,18 +35,6 @@ bool Object::operator==(const Object& rhs) const return true; } -std::string Object::typeToString(Types type) -{ - switch(type) - { - case Types::Table: return "table"; - case Types::Index: return "index"; - case Types::View: return "view"; - case Types::Trigger: return "trigger"; - } - return std::string(); -} - ConstraintPtr Constraint::makeConstraint(ConstraintTypes type) { switch(type) @@ -76,7 +64,7 @@ void Constraint::removeFromColumnList(const std::string& key) bool ForeignKeyClause::isSet() const { - return m_override.size() || m_table.size(); + return m_table.size(); } std::string ForeignKeyClause::toString() const @@ -84,9 +72,6 @@ std::string ForeignKeyClause::toString() const if(!isSet()) return std::string(); - if(m_override.size()) - return m_override; - std::string result = escapeIdentifier(m_table); if(m_columns.size()) @@ -98,11 +83,6 @@ std::string ForeignKeyClause::toString() const return result; } -void ForeignKeyClause::setFromString(const std::string& fk) -{ - m_override = fk; -} - std::string ForeignKeyClause::toSql() const { std::string result; @@ -133,8 +113,7 @@ void UniqueConstraint::setColumnList(const StringVector& list) // Create our own column list without sort orders etc m_columns.clear(); - for(const auto& c : list) - m_columns.push_back(IndexedColumn(c, false)); + std::transform(list.begin(), list.end(), std::back_inserter(m_columns), [](const auto& c) { return IndexedColumn(c, false); }); } void UniqueConstraint::addToColumnList(const std::string& key) @@ -179,8 +158,7 @@ std::string UniqueConstraint::toSql() const if(m_columns.size()) { std::vector u_columns; - for(const auto& c : m_columns) - u_columns.push_back(c.toString("", " ")); + std::transform(m_columns.begin(), m_columns.end(), std::back_inserter(u_columns), [](const auto& c) { return c.toString("", " "); }); result += "(" + joinStringVector(u_columns, ",") + ")"; } @@ -223,8 +201,7 @@ std::string PrimaryKeyConstraint::toSql() const result = "CONSTRAINT " + escapeIdentifier(m_name) + " "; std::vector pk_columns; - for(const auto& c : m_columns) - pk_columns.push_back(c.toString("", " ")); + std::transform(m_columns.begin(), m_columns.end(), std::back_inserter(pk_columns), [](const auto& c) { return c.toString("", " "); }); result += "PRIMARY KEY(" + joinStringVector(pk_columns, ",") + (m_auto_increment ? " AUTOINCREMENT" : "") + ")"; if(!m_conflictAction.empty()) @@ -399,7 +376,29 @@ Table& Table::operator=(const Table& rhs) // Make copies of the fields and the constraints. This is necessary in order to avoid any unwanted changes to the application's main database // schema representation just by modifying a reference to the fields or constraints and thinking it operates on a copy. std::copy(rhs.fields.begin(), rhs.fields.end(), std::back_inserter(fields)); - m_constraints = rhs.m_constraints; + std::transform(rhs.m_constraints.begin(), rhs.m_constraints.end(), std::back_inserter(m_constraints), [](ConstraintPtr e) -> ConstraintPtr { + switch(e->type()) + { + case Constraint::PrimaryKeyConstraintType: + return std::make_shared(*std::dynamic_pointer_cast(e)); + case Constraint::UniqueConstraintType: + return std::make_shared(*std::dynamic_pointer_cast(e)); + case Constraint::ForeignKeyConstraintType: + return std::make_shared(*std::dynamic_pointer_cast(e)); + case Constraint::CheckConstraintType: + return std::make_shared(*std::dynamic_pointer_cast(e)); + case Constraint::GeneratedColumnConstraintType: + return std::make_shared(*std::dynamic_pointer_cast(e)); + case Constraint::NotNullConstraintType: + return std::make_shared(*std::dynamic_pointer_cast(e)); + case Constraint::DefaultConstraintType: + return std::make_shared(*std::dynamic_pointer_cast(e)); + case Constraint::CollateConstraintType: + return std::make_shared(*std::dynamic_pointer_cast(e)); + default: + return nullptr; + } + }); return *this; } @@ -424,20 +423,14 @@ bool Table::operator==(const Table& rhs) const StringVector Table::fieldList() const { StringVector sl; - - for(const Field& f : fields) - sl.push_back(f.toString()); - + std::transform(fields.begin(), fields.end(), std::back_inserter(sl), [](const auto& f) { return f.toString(); }); return sl; } StringVector Table::fieldNames() const { StringVector sl; - - for(const Field& f : fields) - sl.push_back(f.name()); - + std::transform(fields.begin(), fields.end(), std::back_inserter(sl), [](const auto& f) { return f.name(); }); return sl; } @@ -450,14 +443,6 @@ StringVector Table::rowidColumns() const return {"_rowid_"}; } -FieldInfoList Table::fieldInformation() const -{ - FieldInfoList result; - for(const Field& f : fields) - result.emplace_back(f.name(), f.type(), f.toString(" ", " ")); - return result; -} - TablePtr Table::parseSQL(const std::string& sSQL) { parser::ParserDriver drv; @@ -468,7 +453,9 @@ TablePtr Table::parseSQL(const std::string& sSQL) return t; } else { std::cerr << "Sqlite parse error: " << sSQL << std::endl; - return std::make_shared(""); + TablePtr t = std::make_shared
    (""); + t->setOriginalSql(sSQL); + return t; } } @@ -509,7 +496,7 @@ std::string Table::sql(const std::string& schema, bool ifNotExists) const void Table::addConstraint(ConstraintPtr constraint) { - m_constraints.insert(constraint); + m_constraints.push_back(constraint); } void Table::setConstraint(ConstraintPtr constraint) @@ -540,7 +527,7 @@ void Table::removeConstraints(const StringVector& vStrFields, Constraint::Constr for(auto it = m_constraints.begin();it!=m_constraints.end();) { if((*it)->columnList() == vStrFields && (*it)->type() == type) - m_constraints.erase(it++); + it = m_constraints.erase(it); else ++it; } @@ -558,27 +545,25 @@ ConstraintPtr Table::constraint(const StringVector& vStrFields, Constraint::Cons std::vector Table::constraints(const StringVector& vStrFields, Constraint::ConstraintTypes type) const { std::vector clist; - for(const auto& it : m_constraints) - { - if((type == Constraint::NoType || it->type() == type) && (vStrFields.empty() || it->columnList() == vStrFields)) - clist.push_back(it); - } + std::copy_if(m_constraints.begin(), m_constraints.end(), std::back_inserter(clist), [vStrFields, type](const auto& c) { + return (type == Constraint::NoType || c->type() == type) && (vStrFields.empty() || c->columnList() == vStrFields); + }); return clist; } -void Table::setConstraints(const ConstraintSet& constraints) +void Table::setConstraints(const ConstraintVector& constraints) { m_constraints = constraints; } void Table::replaceConstraint(ConstraintPtr from, ConstraintPtr to) { - auto it = m_constraints.find(from); + auto it = std::find(m_constraints.begin(), m_constraints.end(), from); if(it == m_constraints.end()) return; - m_constraints.erase(it); // Erase old constraint - m_constraints.insert(to); // Insert new constraint + m_constraints.erase(it); // Erase old constraint + m_constraints.push_back(to); // Insert new constraint } std::shared_ptr Table::primaryKey() @@ -654,10 +639,7 @@ Index& Index::operator=(const Index& rhs) StringVector Index::columnSqlList() const { StringVector sl; - - for(const IndexedColumn& c : fields) - sl.push_back(c.toString()); - + std::transform(fields.begin(), fields.end(), std::back_inserter(sl), [](const auto& c) { return c.toString(); }); return sl; } @@ -687,14 +669,6 @@ std::string Index::sql(const std::string& schema, bool ifNotExists) const return sql + ";"; } -FieldInfoList Index::fieldInformation() const -{ - FieldInfoList result; - for(const IndexedColumn& c : fields) - result.emplace_back(c.name(), c.order(), c.toString(" ", " ")); - return result; -} - IndexPtr Index::parseSQL(const std::string& sSQL) { parser::ParserDriver drv; @@ -705,10 +679,18 @@ IndexPtr Index::parseSQL(const std::string& sSQL) return i; } else { std::cerr << "Sqlite parse error: " << sSQL << std::endl; - return std::make_shared(""); + IndexPtr i = std::make_shared(""); + i->setOriginalSql(sSQL); + return i; } } +template<> +std::string getBaseTable(IndexPtr object) +{ + return object->table(); +} + ViewPtr View::parseSQL(const std::string& sSQL) @@ -720,24 +702,6 @@ ViewPtr View::parseSQL(const std::string& sSQL) return v; } -StringVector View::fieldNames() const -{ - StringVector sl; - - for(const Field& f : fields) - sl.push_back(f.name()); - - return sl; -} - -FieldInfoList View::fieldInformation() const -{ - FieldInfoList result; - for(const Field& f : fields) - result.emplace_back(f.name(), f.type(), f.toString(" ", " ")); - return result; -} - TriggerPtr Trigger::parseSQL(const std::string& sSQL) { @@ -748,4 +712,10 @@ TriggerPtr Trigger::parseSQL(const std::string& sSQL) return t; } +template<> +std::string getBaseTable(TriggerPtr object) +{ + return object->table(); +} + } //namespace sqlb diff --git a/src/sql/sqlitetypes.h b/src/sql/sqlitetypes.h index c7a7d97e8..536adc2bb 100644 --- a/src/sql/sqlitetypes.h +++ b/src/sql/sqlitetypes.h @@ -27,16 +27,9 @@ bool compare_ci(const T& a, const T& b) { // Note: This function does not have to be (actually it must not be) fully UTF-8 aware because SQLite itself is not either. - if(a.length() != b.length()) - return false; - return std::equal(a.begin(), a.end(), b.begin(), [](unsigned char c1, unsigned char c2) { + return std::equal(a.begin(), a.end(), b.begin(), b.end(), [](unsigned char c1, unsigned char c2) { return std::tolower(c1) == std::tolower(c2); }); - - // TODO Replace the entire code above by the following once we have enabled C++14 support - /*return std::equal(a.begin(), a.end(), b.begin(), b.end(), [](unsigned char c1, unsigned char c2) { - return std::tolower(c1) == std::tolower(c2); - });*/ } template @@ -68,7 +61,6 @@ class Trigger; class Field; class Constraint; class IndexedColumn; -struct FieldInfo; using ObjectPtr = std::shared_ptr; using TablePtr = std::shared_ptr
    ; using IndexPtr = std::shared_ptr; @@ -77,52 +69,25 @@ using TriggerPtr = std::shared_ptr; using ConstraintPtr = std::shared_ptr; using FieldVector = std::vector; using IndexedColumnVector = std::vector; -using ConstraintSet = std::set; -using FieldInfoList = std::vector; - -struct FieldInfo -{ - FieldInfo(const std::string& name_, const std::string& type_, const std::string& sql_) - : name(name_), type(type_), sql(sql_) - {} - - std::string name; - std::string type; - std::string sql; -}; +using ConstraintVector = std::vector; class Object { public: - enum Types - { - Table, - Index, - View, - Trigger - }; - explicit Object(const std::string& name): m_name(name), m_fullyParsed(false) {} virtual ~Object() = default; bool operator==(const Object& rhs) const; - virtual Types type() const = 0; - static std::string typeToString(Types type); - void setName(const std::string& name) { m_name = name; } const std::string& name() const { return m_name; } void setOriginalSql(const std::string& original_sql) { m_originalSql = original_sql; } std::string originalSql() const { return m_originalSql; } - virtual std::string baseTable() const { return std::string(); } - void setFullyParsed(bool fully_parsed) { m_fullyParsed = fully_parsed; } bool fullyParsed() const { return m_fullyParsed; } - virtual FieldInfoList fieldInformation() const { return FieldInfoList(); } - /** * @brief Returns the CREATE statement for this object * @param schema The schema name of the object @@ -193,9 +158,8 @@ class ForeignKeyClause : public Constraint bool isSet() const; std::string toString() const; - void setFromString(const std::string& fk); - void setTable(const std::string& table) { m_override.clear(); m_table = table; } + void setTable(const std::string& table) { m_table = table; } const std::string& table() const { return m_table; } void setColumns(const StringVector& columns) { m_columns = columns; } @@ -212,8 +176,6 @@ class ForeignKeyClause : public Constraint std::string m_table; StringVector m_columns; std::string m_constraint; - - std::string m_override; }; class UniqueConstraint : public Constraint @@ -447,7 +409,7 @@ class Table : public Object bool operator==(const Table& rhs) const; - Types type() const override { return Object::Table; } + virtual bool isView() const { return false; } FieldVector fields; using field_type = Field; @@ -469,16 +431,14 @@ class Table : public Object const std::string& virtualUsing() const { return m_virtual; } bool isVirtual() const { return !m_virtual.empty(); } - FieldInfoList fieldInformation() const override; - void addConstraint(ConstraintPtr constraint); void setConstraint(ConstraintPtr constraint); void removeConstraint(ConstraintPtr constraint); void removeConstraints(const StringVector& vStrFields = StringVector(), Constraint::ConstraintTypes type = Constraint::NoType); ConstraintPtr constraint(const StringVector& vStrFields = StringVector(), Constraint::ConstraintTypes type = Constraint::NoType) const; //! Only returns the first constraint, if any std::vector constraints(const StringVector& vStrFields = StringVector(), Constraint::ConstraintTypes type = Constraint::NoType) const; - ConstraintSet allConstraints() const { return m_constraints; } - void setConstraints(const ConstraintSet& constraints); + ConstraintVector allConstraints() const { return m_constraints; } + void setConstraints(const ConstraintVector& constraints); void replaceConstraint(ConstraintPtr from, ConstraintPtr to); std::shared_ptr primaryKey(); void removeKeyFromAllConstraints(const std::string& key); @@ -495,7 +455,7 @@ class Table : public Object private: bool m_withoutRowid; - ConstraintSet m_constraints; + ConstraintVector m_constraints; std::string m_virtual; }; @@ -537,14 +497,10 @@ class Index : public Object explicit Index(const std::string& name): Object(name), m_unique(false) {} Index& operator=(const Index& rhs); - Types type() const override { return Object::Index; } - IndexedColumnVector fields; using field_type = IndexedColumn; using field_iterator = IndexedColumnVector::iterator; - std::string baseTable() const override { return m_table; } - void setUnique(bool unique) { m_unique = unique; } bool unique() const { return m_unique; } @@ -567,8 +523,6 @@ class Index : public Object */ static IndexPtr parseSQL(const std::string& sSQL); - FieldInfoList fieldInformation() const override; - private: StringVector columnSqlList() const; @@ -577,23 +531,17 @@ class Index : public Object std::string m_whereExpr; }; -class View : public Object +class View : public Table { public: - explicit View(const std::string& name): Object(name) {} + explicit View(const std::string& name): Table(name) {} - Types type() const override { return Object::View; } - - FieldVector fields; + virtual bool isView() const override { return true; } std::string sql(const std::string& /*schema*/ = "main", bool /*ifNotExists*/ = false) const override { /* TODO */ return m_originalSql; } static ViewPtr parseSQL(const std::string& sSQL); - - StringVector fieldNames() const; - - FieldInfoList fieldInformation() const override; }; class Trigger : public Object @@ -601,15 +549,11 @@ class Trigger : public Object public: explicit Trigger(const std::string& name): Object(name) {} - Types type() const override { return Object::Trigger; } - std::string sql(const std::string& /*schema*/ = "main", bool /*ifNotExists*/ = false) const override { /* TODO */ return m_originalSql; } static TriggerPtr parseSQL(const std::string& sSQL); - std::string baseTable() const override { return m_table; } - void setTable(const std::string& table) { m_table = table; } std::string table() const { return m_table; } @@ -617,6 +561,22 @@ class Trigger : public Object std::string m_table; }; +/** + * @brief Return the name of the base table of the given object. For indices and triggers that is the table which the object is related to. + */ + +template +std::string getBaseTable(std::shared_ptr /*object*/) +{ + return std::string{}; +} + +template<> +std::string getBaseTable(IndexPtr object); + +template<> +std::string getBaseTable(TriggerPtr object); + /** * @brief findField Finds a field in the database object and returns an iterator to it. * @param object @@ -678,6 +638,25 @@ bool removeField(T& object, const std::string& name) return removeField(&object, name); } +/** + * @brief getFieldNumber returns the number of the field with the given name in an object. This is supposed to be a temporary helper function only. + * @param object + * @param name + * @return number of the field + * + * TODO Remove this function. Whereever it is used we make the assumption that the queried columns are exactly equal to the columns of the table or view. + * For more complex queries this is not true and in fact it already is a dubious assumption because we also select the rowid column. + */ +inline size_t getFieldNumber(TablePtr object, const std::string& name) +{ + for(size_t i=0;ifields.size();i++) + { + if(object->fields[i].name() == name) + return i; + } + return 0; +} + } //namespace sqlb #endif diff --git a/src/sqlitedb.cpp b/src/sqlitedb.cpp index d0fce26ad..c9fb20a25 100644 --- a/src/sqlitedb.cpp +++ b/src/sqlitedb.cpp @@ -5,6 +5,7 @@ #include "CipherSettings.h" #include "DotenvFormat.h" #include "Settings.h" +#include "Data.h" #include #include @@ -16,17 +17,15 @@ #include #include #include -#include #include #include #include #include #include +#include #include -using json = nlohmann::json; - QStringList DBBrowserDB::Datatypes = {"INTEGER", "TEXT", "BLOB", "REAL", "NUMERIC"}; // Helper template to allow turning member functions into a C-style function pointer @@ -51,7 +50,13 @@ QString escapeString(const QString& literal) { return QString::fromStdString(escapeString(literal.toStdString())); } -} +QString escapeByteArray(const QByteArray& literal) +{ + if(isTextOnly(literal)) + return sqlb::escapeString(literal); + else + return QString("X'%1'").arg(QString(literal.toHex())); +}} // collation callbacks int collCompare(void* /*pArg*/, int sizeA, const void* sA, int sizeB, const void* sB) @@ -79,15 +84,14 @@ static int sqlite_compare_utf16ci( void* /*arg*/,int size1, const void *str1, in static void sqlite_make_single_value(sqlite3_context* ctx, int num_arguments, sqlite3_value* arguments[]) { - json array; + QByteArray output; for(int i=0;i(sqlite3_value_text(arguments[i]))); + output += QByteArray::number(sqlite3_value_bytes(arguments[i])) + ":" + reinterpret_cast(sqlite3_value_text(arguments[i])); - std::string output = array.dump(); - char* output_str = new char[output.size()+1]; - std::strcpy(output_str, output.c_str()); + char* output_str = new char[static_cast(output.size()) + 1]; + std::strcpy(output_str, output); - sqlite3_result_text(ctx, output_str, static_cast(output.length()), [](void* ptr) { + sqlite3_result_text(ctx, output_str, output.size(), [](void* ptr) { char* cptr = static_cast(ptr); delete cptr; }); @@ -98,12 +102,15 @@ DBBrowserDB::DBBrowserDB() : db_used(false), isEncrypted(false), isReadOnly(false), - dontCheckForStructureUpdates(false) + disableStructureUpdateChecks(false) { // Register error log callback. This needs to be done before SQLite is first used Callback::func = std::bind(&DBBrowserDB::errorLogCallback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3); void (*log_callback)(void*, int, const char*) = static_cast(Callback::callback); sqlite3_config(SQLITE_CONFIG_LOG, log_callback, nullptr); + + // Enable URI filenames + sqlite3_config(SQLITE_CONFIG_URI, 1); } void DBBrowserDB::collationNeeded(void* /*pData*/, sqlite3* /*db*/, int eTextRep, const char* sCollationName) @@ -179,7 +186,7 @@ bool DBBrowserDB::open(const QString& db, bool readOnly) if (isOpen()) close(); isEncrypted = false; - dontCheckForStructureUpdates = false; + disableStructureUpdateChecks = false; // Get encryption settings for database file CipherSettings* cipherSettings = nullptr; @@ -274,7 +281,7 @@ bool DBBrowserDB::open(const QString& db, bool readOnly) /** detaches a previously attached database identified with its alias-name **/ -bool DBBrowserDB::detach(const QString& attached_as) +bool DBBrowserDB::detach(const std::string& attached_as) { if(!_db) { @@ -283,8 +290,8 @@ bool DBBrowserDB::detach(const QString& attached_as) waitForDbRelease(); - // dettach database - if(!executeSQL("DETACH " + sqlb::escapeIdentifier(attached_as.toStdString()), false)) + // detach database + if(!executeSQL("DETACH " + sqlb::escapeIdentifier(attached_as) + ";", false)) { QMessageBox::warning(nullptr, qApp->applicationName(), lastErrorMessage); return false; @@ -751,6 +758,62 @@ bool DBBrowserDB::close() return true; } +bool DBBrowserDB::saveAs(const std::string& filename) { + int rc; + sqlite3_backup *pBackup; + sqlite3 *pTo; + + if(!_db) + return false; + + waitForDbRelease(); + + // Open the database file identified by filename. Exit early if this fails + // for any reason. + rc = sqlite3_open(filename.c_str(), &pTo); + if(rc!=SQLITE_OK) { + qWarning() << tr("Cannot open destination file: '%1'").arg(filename.c_str()); + return false; + } else { + // Set up the backup procedure to copy from the "main" database of + // connection _db to the main database of connection pTo. + // If something goes wrong, pBackup will be set to nullptr and an error + // code and message left in connection pTo. + // + // If the backup object is successfully created, call backup_step() + // to copy data from _db to pTo. Then call backup_finish() + // to release resources associated with the pBackup object. If an + // error occurred, then an error code and message will be left in + // connection pTo. If no error occurred, then the error code belonging + // to pTo is set to SQLITE_OK. + // + pBackup = sqlite3_backup_init(pTo, "main", _db, "main"); + if(pBackup == nullptr) { + qWarning() << tr("Cannot backup to file: '%1'. Message: %2").arg(filename.c_str()).arg(sqlite3_errmsg(pTo)); + sqlite3_close(pTo); + return false; + } else { + sqlite3_backup_step(pBackup, -1); + sqlite3_backup_finish(pBackup); + } + rc = sqlite3_errcode(pTo); + } + + if(rc == SQLITE_OK) { + // Close current database and set backup as current + sqlite3_close(_db); + _db = pTo; + curDBFilename = QString::fromStdString(filename); + + return true; + } else { + qWarning() << tr("Cannot backup to file: '%1'. Message: %2").arg(filename.c_str()).arg(sqlite3_errmsg(pTo)); + // Close failed database connection. + sqlite3_close(pTo); + return false; + } +} + DBBrowserDB::db_pointer_type DBBrowserDB::get(const QString& user, bool force_wait) { if(!_db) @@ -804,6 +867,7 @@ bool DBBrowserDB::dump(const QString& filePath, const std::vector& tablesToDump, bool insertColNames, bool insertNewSyntx, + bool keepOriginal, bool exportSchema, bool exportData, bool keepOldSchema) const @@ -819,16 +883,15 @@ bool DBBrowserDB::dump(const QString& filePath, // Count the total number of all records in all tables for the progress dialog size_t numRecordsTotal = 0; objectMap objMap = schemata.at("main"); // We only always export the main database, not the attached databases - std::vector tables; - auto all_tables = objMap.equal_range("table"); - for(auto it=all_tables.first;it!=all_tables.second;++it) + std::vector tables; + for(const auto& it : objMap.tables) { // Never export the sqlite_stat1 and the sqlite_sequence tables if they exist. Also only export any tables which are selected for export. - if(it->second->name() != "sqlite_stat1" && it->second->name() != "sqlite_sequence" && contains(tablesToDump, it->second->name())) + if(!it.second->isView() && it.first != "sqlite_stat1" && it.first != "sqlite_sequence" && contains(tablesToDump, it.first)) { // Get the number of records in this table and remember to export it - tables.push_back(it->second); - numRecordsTotal += querySingleValueFromDb("SELECT COUNT(*) FROM " + sqlb::ObjectIdentifier("main", it->second->name()).toString()).toUInt(); + tables.push_back(it.second); + numRecordsTotal += querySingleValueFromDb("SELECT COUNT(*) FROM " + sqlb::ObjectIdentifier("main", it.first).toString()).toUInt(); } } @@ -854,11 +917,18 @@ bool DBBrowserDB::dump(const QString& filePath, if(!keepOldSchema) stream << QString("DROP TABLE IF EXISTS %1;\n").arg(QString::fromStdString(sqlb::escapeIdentifier(it->name()))); - if(it->fullyParsed()) - stream << QString::fromStdString(it->sql("main", true)) << "\n"; - else - stream << QString::fromStdString(it->originalSql()) << ";\n"; + if(it->fullyParsed() && !keepOriginal) + stream << QString::fromStdString(it->sql("main", keepOldSchema)) << "\n"; + else { + QString statement = QString::fromStdString(it->originalSql()); + if(keepOldSchema) { + // The statement is guaranteed by SQLite to start with "CREATE TABLE" + const int createTableLength = 12; + statement.replace(0, createTableLength, "CREATE TABLE IF NOT EXISTS"); + } + stream << statement << ";\n"; } + } } // Now export the data as well @@ -867,7 +937,7 @@ bool DBBrowserDB::dump(const QString& filePath, for(const auto& it : tables) { // get columns - sqlb::StringVector cols = std::dynamic_pointer_cast(it)->fieldNames(); + sqlb::StringVector cols = it->fieldNames(); std::string sQuery = "SELECT * FROM " + sqlb::escapeIdentifier(it->name()); sqlite3_stmt *stmt; @@ -904,30 +974,25 @@ bool DBBrowserDB::dump(const QString& filePath, reinterpret_cast(sqlite3_column_blob(stmt, i)), fieldsize); - if(bcontent.left(2048).contains('\0')) // binary check + switch(fieldtype) { + case SQLITE_BLOB: stream << QString("X'%1'").arg(QString(bcontent.toHex())); - } - else - { - switch(fieldtype) - { - case SQLITE_TEXT: - case SQLITE_BLOB: - stream << sqlb::escapeString(bcontent); break; - case SQLITE_NULL: - stream << "NULL"; + case SQLITE_TEXT: + stream << sqlb::escapeByteArray(bcontent); break; - case SQLITE_FLOAT: - if(bcontent.indexOf("Inf") != -1) - stream << "'" << bcontent << "'"; - else - stream << bcontent; + case SQLITE_NULL: + stream << "NULL"; break; - default: + case SQLITE_FLOAT: + if(bcontent.indexOf("Inf") != -1) + stream << "'" << bcontent << "'"; + else stream << bcontent; - } + break; + default: + stream << bcontent; } if(i != columns - 1) stream << ','; @@ -956,33 +1021,37 @@ bool DBBrowserDB::dump(const QString& filePath, // Finally export all objects other than tables if(exportSchema) { - for(const auto& obj : objMap) - { - const auto& it = obj.second; - - // Make sure it's not a table again - if(it->type() == sqlb::Object::Types::Table) - continue; + auto writeSchema = [&stream, &tablesToDump, keepOldSchema, keepOriginal](const QString& type, auto objects) { + for(const auto& obj : objects) + { + const auto& it = obj.second; - // If this object is based on a table (e.g. is an index for that table) it depends on the existence of this table. - // So if we didn't export the base table this depends on, don't export this object either. - if(!it->baseTable().empty() && !contains(tablesToDump, it->baseTable())) - continue; + // If this object is based on a table (e.g. is an index for that table) it depends on the existence of this table. + // So if we didn't export the base table this depends on, don't export this object either. + if(!sqlb::getBaseTable(it).empty() && !contains(tablesToDump, sqlb::getBaseTable(it))) + continue; - // Write the SQL string used to create this object to the output file - if(!it->originalSql().empty()) - { - if(!keepOldSchema) - stream << QString("DROP %1 IF EXISTS %2;\n").arg( - QString::fromStdString(sqlb::Object::typeToString(it->type())).toUpper(), - QString::fromStdString(sqlb::escapeIdentifier(it->name()))); + // Write the SQL string used to create this object to the output file + if(!it->originalSql().empty()) + { + if(!keepOldSchema) + stream << QString("DROP %1 IF EXISTS %2;\n").arg( + type.toUpper(), + QString::fromStdString(sqlb::escapeIdentifier(it->name()))); - if(it->fullyParsed()) - stream << QString::fromStdString(it->sql("main", true)) << "\n"; - else - stream << QString::fromStdString(it->originalSql()) << ";\n"; + if(it->fullyParsed() && !keepOriginal) + stream << QString::fromStdString(it->sql("main", keepOldSchema)) << "\n"; + else + stream << QString::fromStdString(it->originalSql()) << ";\n"; + } } - } + }; + + std::map views; + std::copy_if(objMap.tables.begin(), objMap.tables.end(), std::inserter(views, views.end()), [](const auto& t) { return t.second->isView(); }); + writeSchema("view", views); + writeSchema("index", objMap.indices); + writeSchema("trigger", objMap.triggers); } // Done @@ -1028,7 +1097,7 @@ bool DBBrowserDB::executeSQL(const std::string& statement, bool dirtyDB, bool lo if (SQLITE_OK == sqlite3_exec(_db, statement.c_str(), callback ? callbackWrapper : nullptr, &callback, &errmsg)) { // Update DB structure after executing an SQL statement. But try to avoid doing unnecessary updates. - if(!dontCheckForStructureUpdates && (starts_with_ci(statement, "ALTER") || + if(!disableStructureUpdateChecks && (starts_with_ci(statement, "ALTER") || starts_with_ci(statement, "CREATE") || starts_with_ci(statement, "DROP") || starts_with_ci(statement, "ROLLBACK"))) @@ -1128,7 +1197,7 @@ bool DBBrowserDB::executeMultiSQL(QByteArray query, bool dirty, bool log) } // Check whether the DB structure is changed by this statement - if(!dontCheckForStructureUpdates && !structure_updated) + if(!disableStructureUpdateChecks && !structure_updated) { // Check if it's a modifying statement if(next_statement.compare(0, 5, "ALTER") == 0 || @@ -1239,7 +1308,7 @@ bool DBBrowserDB::getRow(const sqlb::ObjectIdentifier& table, const QString& row std::string query = "SELECT * FROM " + table.toString() + " WHERE "; // For a single rowid column we can use a simple WHERE condition, for multiple rowid columns we have to use sqlb_make_single_value to decode the composed rowid values. - sqlb::StringVector pks = getObjectByName(table)->rowidColumns(); + sqlb::StringVector pks = getTableByName(table)->rowidColumns(); if(pks.size() == 1) query += sqlb::escapeIdentifier(pks.front()) + "='" + rowid.toStdString() + "'"; else @@ -1347,7 +1416,7 @@ QString DBBrowserDB::addRecord(const sqlb::ObjectIdentifier& tablename) if(!_db) return QString(); - sqlb::TablePtr table = getObjectByName(tablename); + sqlb::TablePtr table = getTableByName(tablename); if(!table) return QString(); @@ -1377,7 +1446,7 @@ QString DBBrowserDB::addRecord(const sqlb::ObjectIdentifier& tablename) } } -bool DBBrowserDB::deleteRecords(const sqlb::ObjectIdentifier& table, const std::vector& rowids, const sqlb::StringVector& pseudo_pk) +bool DBBrowserDB::deleteRecords(const sqlb::ObjectIdentifier& table, const std::vector& rowids, const sqlb::StringVector& pseudo_pk) { if (!isOpen()) return false; @@ -1391,8 +1460,7 @@ bool DBBrowserDB::deleteRecords(const sqlb::ObjectIdentifier& table, const std:: // Quote all values in advance std::vector quoted_rowids; - for(QString rowid : rowids) - quoted_rowids.push_back(sqlb::escapeString(rowid.toStdString())); + std::transform(rowids.begin(), rowids.end(), std::back_inserter(quoted_rowids), [](const auto& rowid) { return sqlb::escapeByteArray(rowid).toStdString(); }); // For a single rowid column we can use a SELECT ... IN(...) statement which is faster. // For multiple rowid columns we have to use sqlb_make_single_value to decode the composed rowid values. @@ -1420,7 +1488,7 @@ bool DBBrowserDB::deleteRecords(const sqlb::ObjectIdentifier& table, const std:: } bool DBBrowserDB::updateRecord(const sqlb::ObjectIdentifier& table, const std::string& column, - const QString& rowid, const QByteArray& value, int force_type, const sqlb::StringVector& pseudo_pk) + const QByteArray& rowid, const QByteArray& value, int force_type, const sqlb::StringVector& pseudo_pk) { waitForDbRelease(); if (!isOpen()) return false; @@ -1437,7 +1505,7 @@ bool DBBrowserDB::updateRecord(const sqlb::ObjectIdentifier& table, const std::s // For a single rowid column we can use a simple WHERE condition, for multiple rowid columns we have to use sqlb_make_single_value to decode the composed rowid values. if(pks.size() == 1) - sql += sqlb::escapeIdentifier(pks.front()) + "=" + sqlb::escapeString(rowid.toStdString()); + sql += sqlb::escapeIdentifier(pks.front()) + "=" + sqlb::escapeByteArray(rowid).toStdString(); else sql += "sqlb_make_single_value(" + sqlb::joinStringVector(sqlb::escapeIdentifier(pks), ",") + ")=" + sqlb::escapeString(rowid.toStdString()); @@ -1491,7 +1559,7 @@ sqlb::StringVector DBBrowserDB::primaryKeyForEditing(const sqlb::ObjectIdentifie if(pseudo_pk.empty()) { - sqlb::TablePtr tbl = getObjectByName(table); + sqlb::TablePtr tbl = getTableByName(table); if(tbl) return tbl->rowidColumns(); } else { @@ -1534,14 +1602,14 @@ bool DBBrowserDB::alterTable(const sqlb::ObjectIdentifier& tablename, const sqlb newSchemaName = tablename.schema(); // When renaming the table in the current schema, check if it doesn't exist already in there - if(tablename.name() != new_table.name() && getObjectByName(sqlb::ObjectIdentifier(newSchemaName, new_table.name())) != nullptr) + if(tablename.name() != new_table.name() && getTableByName(sqlb::ObjectIdentifier(newSchemaName, new_table.name())) != nullptr) { lastErrorMessage = tr("A table with the name '%1' already exists in schema '%2'.").arg(QString::fromStdString(new_table.name()), QString::fromStdString(newSchemaName)); return false; } } else { // We're moving the table to a different schema. So check first if it doesn't already exist in the new schema. - if(newSchemaName != tablename.schema() && getObjectByName(sqlb::ObjectIdentifier(newSchemaName, new_table.name())) != nullptr) + if(newSchemaName != tablename.schema() && getTableByName(sqlb::ObjectIdentifier(newSchemaName, new_table.name())) != nullptr) { lastErrorMessage = tr("A table with the name '%1' already exists in schema '%2'.").arg(QString::fromStdString(new_table.name()), QString::fromStdString(newSchemaName)); return false; @@ -1549,7 +1617,7 @@ bool DBBrowserDB::alterTable(const sqlb::ObjectIdentifier& tablename, const sqlb } // Get old table schema - sqlb::TablePtr old_table_ptr = getObjectByName(tablename); + sqlb::TablePtr old_table_ptr = getTableByName(tablename); if(old_table_ptr == nullptr) { lastErrorMessage = tr("No table with name '%1' exists in schema '%2'.").arg(QString::fromStdString(tablename.name()), QString::fromStdString(tablename.schema())); @@ -1678,7 +1746,7 @@ bool DBBrowserDB::alterTable(const sqlb::ObjectIdentifier& tablename, const sqlb if(changed_something) { updateSchema(); - old_table = *getObjectByName(sqlb::ObjectIdentifier(tablename.schema(), new_table.name())); + old_table = *getTableByName(sqlb::ObjectIdentifier(tablename.schema(), new_table.name())); } // Check if there's still more work to be done or if we are finished now @@ -1746,53 +1814,58 @@ bool DBBrowserDB::alterTable(const sqlb::ObjectIdentifier& tablename, const sqlb // Save all indices, triggers and views associated with this table because SQLite deletes them when we drop the table in the next step std::vector otherObjectsSql; - for(const auto& schema : schemata[tablename.schema()]) - { - const auto& it = schema.second; - - // If this object references the table and it's not the table itself save it's SQL string - if(it->baseTable() == old_table.name() && it->type() != sqlb::Object::Types::Table) + auto saveRelatedObjects = [old_table, track_columns, &otherObjectsSql, newSchemaName](const auto& objects) { + for(const auto& obj : objects) { - // If this is an index, update the fields first. This highly increases the chance that the SQL statement won't throw an - // error later on when we try to recreate it. - if(it->type() == sqlb::Object::Types::Index) - { - sqlb::IndexPtr idx = std::dynamic_pointer_cast(it); + const auto& it = obj.second; - // Loop through all changes to the table schema. For indices only the column names are relevant, so it suffices to look at the - // list of tracked columns - for(const auto& from_it : track_columns) + // If this object references the table save its SQL string + if(sqlb::getBaseTable(it) == old_table.name()) + { + // If this is an index, update the fields first. This highly increases the chance that the SQL statement won't throw an + // error later on when we try to recreate it. + if(std::is_same::value) { - const auto& from = from_it.first; - const auto& to = from_it.second; + sqlb::IndexPtr idx = std::dynamic_pointer_cast(it); - // Are we updating the field name or are we removing the field entirely? - if(!to.isNull()) + // Loop through all changes to the table schema. For indices only the column names are relevant, so it suffices to look at the + // list of tracked columns + for(const auto& from_it : track_columns) { - // We're updating the field name. So search for it in the index and replace it whereever it is found - for(size_t i=0;ifields.size();i++) + const auto& from = from_it.first; + const auto& to = from_it.second; + + // Are we updating the field name or are we removing the field entirely? + if(!to.isNull()) { - if(idx->fields[i].name() == from.toStdString()) - idx->fields[i].setName(to.toStdString()); + // We're updating the field name. So search for it in the index and replace it wherever it is found + for(size_t i=0;ifields.size();i++) + { + if(idx->fields[i].name() == from.toStdString()) + idx->fields[i].setName(to.toStdString()); + } + } else { + // We're removing a field. So remove it from any indices, too. + while(sqlb::removeField(idx, from.toStdString())) + ; } - } else { - // We're removing a field. So remove it from any indices, too. - while(sqlb::removeField(idx, from.toStdString())) - ; } - } - // Only try to add the index later if it has any columns remaining. Also use the new schema name here, too, to basically move - // any index that references the table to the same new schema as the table. - if(idx->fields.size()) - otherObjectsSql.push_back(idx->sql(newSchemaName)); - } else { - // If it's a view or a trigger we don't have any chance to corrections yet. Just store the statement as is and - // hope for the best. - otherObjectsSql.push_back(it->originalSql() + ";"); + // Only try to add the index later if it has any columns remaining. Also use the new schema name here, too, to basically move + // any index that references the table to the same new schema as the table. + if(idx->fields.size()) + otherObjectsSql.push_back(idx->sql(newSchemaName)); + } else { + // If it's a view or a trigger we don't have any chance to corrections yet. Just store the statement as is and + // hope for the best. + otherObjectsSql.push_back(it->originalSql() + ";"); + } } } - } + }; + saveRelatedObjects(schemata[tablename.schema()].tables); // We can safely pass the tables along with the views here since they never have a base table set + saveRelatedObjects(schemata[tablename.schema()].indices); + saveRelatedObjects(schemata[tablename.schema()].triggers); // We need to disable foreign keys here. The reason is that in the next step the entire table will be dropped and there might be foreign keys // in other tables that reference this table. These foreign keys would then cause the drop command in the next step to fail. However, we can't @@ -1907,7 +1980,7 @@ void DBBrowserDB::updateSchema() const std::string schema_name = db_values.at(1).toStdString(); // Always add the schema to the map. This makes sure it's even then added when there are no objects in the database - schemata[schema_name] = objectMap(); + objectMap& object_map = schemata[schema_name]; // Get a list of all the tables for the current database schema. We need to do this differently for normal databases and the temporary schema // because SQLite doesn't understand the "temp.sqlite_master" notation. @@ -1917,7 +1990,7 @@ void DBBrowserDB::updateSchema() else statement = "SELECT type,name,sql,tbl_name FROM " + sqlb::escapeIdentifier(schema_name) + ".sqlite_master;"; - if(!executeSQL(statement, false, true, [this, schema_name](int, std::vector values, std::vector) -> bool { + if(!executeSQL(statement, false, true, [this, schema_name, &object_map](int, std::vector values, std::vector) -> bool { const std::string val_type = values.at(0).toStdString(); const std::string val_name = values.at(1).toStdString(); std::string val_sql = values.at(2).toStdString(); @@ -1927,51 +2000,45 @@ void DBBrowserDB::updateSchema() { val_sql.erase(std::remove(val_sql.begin(), val_sql.end(), '\r'), val_sql.end()); - sqlb::ObjectPtr object; - if(val_type == "table") - object = sqlb::Table::parseSQL(val_sql); - else if(val_type == "index") - object = sqlb::Index::parseSQL(val_sql); - else if(val_type == "trigger") - object = sqlb::Trigger::parseSQL(val_sql); - else if(val_type == "view") - object = sqlb::View::parseSQL(val_sql); - else - return false; - - // If parsing wasn't successful set the object name and SQL manually, so that at least the name is going to be correct - if(!object->fullyParsed()) + if(val_type == "table" || val_type == "view") { - object->setName(val_name); - object->setOriginalSql(val_sql); - } + sqlb::TablePtr table; + if(val_type == "table") + table = sqlb::Table::parseSQL(val_sql); + else + table = sqlb::View::parseSQL(val_sql); - // For virtual tables, views, and tables we could not parse at all, - // query the column list using the SQLite pragma to at least get - // some information on them when our parser does not. - if((!object->fullyParsed() && object->fieldInformation().empty()) || - (object->type() == sqlb::Object::Types::Table && std::dynamic_pointer_cast(object)->isVirtual()) || - object->type() == sqlb::Object::Types::View) - { - const auto columns = queryColumnInformation(schema_name, val_name); + if(!table->fullyParsed()) + table->setName(val_name); - if(object->type() == sqlb::Object::Types::Table) + // For virtual tables, views, and tables we could not parse at all, + // query the column list using the SQLite pragma to at least get + // some information on them when our parser does not. + if((!table->fullyParsed() && table->fields.empty()) || table->isVirtual()) { - sqlb::TablePtr tab = std::dynamic_pointer_cast(object); - for(const auto& column : columns) - tab->fields.emplace_back(column.first, column.second); - } else { - sqlb::ViewPtr view = std::dynamic_pointer_cast(object); + const auto columns = queryColumnInformation(schema_name, val_name); + for(const auto& column : columns) - view->fields.emplace_back(column.first, column.second); + table->fields.emplace_back(column.first, column.second); } - } else if(object->type() == sqlb::Object::Types::Trigger) { + + object_map.tables.insert({val_name, table}); + } else if(val_type == "index") { + sqlb::IndexPtr index = sqlb::Index::parseSQL(val_sql); + if(!index->fullyParsed()) + index->setName(val_name); + + object_map.indices.insert({val_name, index}); + } else if(val_type == "trigger") { + sqlb::TriggerPtr trigger = sqlb::Trigger::parseSQL(val_sql); + trigger->setName(val_name); + trigger->setOriginalSql(val_sql); + // For triggers set the name of the table the trigger operates on here because we don't have a parser for trigger statements yet. - sqlb::TriggerPtr trg = std::dynamic_pointer_cast(object); - trg->setTable(val_tblname); - } + trigger->setTable(val_tblname); - schemata[schema_name].insert({val_type, object}); + object_map.triggers.insert({val_name, trigger}); + } } return false; @@ -2142,7 +2209,7 @@ std::string DBBrowserDB::generateTemporaryTableName(const std::string& schema) c while(true) { std::string table_name = "sqlb_temp_table_" + std::to_string(++counter); - if(!getObjectByName(sqlb::ObjectIdentifier(schema, table_name))) + if(!getTableByName(sqlb::ObjectIdentifier(schema, table_name))) return table_name; } } diff --git a/src/sqlitedb.h b/src/sqlitedb.h index 182961eb2..fd5a69f20 100644 --- a/src/sqlitedb.h +++ b/src/sqlitedb.h @@ -25,7 +25,19 @@ enum LogMessageType kLogMsg_ErrorLog }; -using objectMap = std::multimap; // Maps from object type (table, index, view, trigger) to a pointer to the object representation +struct objectMap +{ + // These map from object name to object pointer + std::map tables; // This stores tables AND views + std::map indices; + std::map triggers; + + bool empty() const + { + return tables.empty() && indices.empty() && triggers.empty(); + } +}; + using schemaMap = std::map; // Maps from the schema name (main, temp, attached schemas) to the object map for that schema int collCompare(void* pArg, int sizeA, const void* sA, int sizeB, const void* sB); @@ -34,6 +46,7 @@ namespace sqlb { QString escapeIdentifier(const QString& id); QString escapeString(const QString& literal); +QString escapeByteArray(const QByteArray& literal); } /// represents a single SQLite database. except when noted otherwise, @@ -77,9 +90,10 @@ class DBBrowserDB : public QObject \param attached_as the alias-name as witch a additional database file has been attached to the connection **/ - bool detach(const QString& attached_as); + bool detach(const std::string& attached_as); bool create ( const QString & db); bool close(); + bool saveAs(const std::string& filename); // This returns the SQLite version as well as the SQLCipher if DB4S is compiled with encryption support static void getSqliteVersion(QString& sqlite, QString& sqlcipher); @@ -115,7 +129,8 @@ class DBBrowserDB : public QObject bool releaseAllSavepoints(); bool revertAll(); - bool dump(const QString& filename, const std::vector& tablesToDump, bool insertColNames, bool insertNew, bool exportSchema, bool exportData, bool keepOldSchema) const; + bool dump(const QString& filename, const std::vector& tablesToDump, + bool insertColNames, bool insertNew, bool keepOriginal, bool exportSchema, bool exportData, bool keepOldSchema) const; enum ChoiceOnUse { @@ -151,7 +166,7 @@ class DBBrowserDB : public QObject bool getRow(const sqlb::ObjectIdentifier& table, const QString& rowid, std::vector& rowdata) const; /** - * @brief Interrupts the currenty running statement as soon as possible. + * @brief Interrupts the currently running statement as soon as possible. */ void interruptQuery(); @@ -180,8 +195,8 @@ class DBBrowserDB : public QObject public: QString addRecord(const sqlb::ObjectIdentifier& tablename); - bool deleteRecords(const sqlb::ObjectIdentifier& table, const std::vector& rowids, const sqlb::StringVector& pseudo_pk = {}); - bool updateRecord(const sqlb::ObjectIdentifier& table, const std::string& column, const QString& rowid, const QByteArray& value, int force_type = 0, const sqlb::StringVector& pseudo_pk = {}); + bool deleteRecords(const sqlb::ObjectIdentifier& table, const std::vector& rowids, const sqlb::StringVector& pseudo_pk = {}); + bool updateRecord(const sqlb::ObjectIdentifier& table, const std::string& column, const QByteArray& rowid, const QByteArray& value, int force_type = 0, const sqlb::StringVector& pseudo_pk = {}); bool createTable(const sqlb::ObjectIdentifier& name, const sqlb::FieldVector& structure); bool renameTable(const std::string& schema, const std::string& from_table, const std::string& to_table); @@ -208,15 +223,28 @@ class DBBrowserDB : public QObject */ bool alterTable(const sqlb::ObjectIdentifier& tablename, const sqlb::Table& new_table, AlterTableTrackColumns track_columns, std::string newSchemaName = std::string()); - template - const std::shared_ptr getObjectByName(const sqlb::ObjectIdentifier& name) const + const sqlb::TablePtr getTableByName(const sqlb::ObjectIdentifier& name) const { - for(auto& it : schemata.at(name.schema())) - { - if(it.second->name() == name.name()) - return std::dynamic_pointer_cast(it.second); - } - return std::shared_ptr(); + const auto& schema = schemata.at(name.schema()); + if(schema.tables.count(name.name())) + return schema.tables.at(name.name()); + return sqlb::TablePtr{}; + } + + const sqlb::IndexPtr getIndexByName(const sqlb::ObjectIdentifier& name) const + { + const auto& schema = schemata.at(name.schema()); + if(schema.indices.count(name.name())) + return schema.indices.at(name.name()); + return sqlb::IndexPtr{}; + } + + const sqlb::TriggerPtr getTriggerByName(const sqlb::ObjectIdentifier& name) const + { + const auto& schema = schemata.at(name.schema()); + if(schema.triggers.count(name.name())) + return schema.triggers.at(name.name()); + return sqlb::TriggerPtr{}; } bool isOpen() const; @@ -283,13 +311,13 @@ class DBBrowserDB : public QObject bool tryEncryptionSettings(const QString& filename, bool* encrypted, CipherSettings*& cipherSettings) const; - bool dontCheckForStructureUpdates; + bool disableStructureUpdateChecks; class NoStructureUpdateChecks { public: - explicit NoStructureUpdateChecks(DBBrowserDB& db) : m_db(db) { m_db.dontCheckForStructureUpdates = true; } - ~NoStructureUpdateChecks() { m_db.dontCheckForStructureUpdates = false; } + explicit NoStructureUpdateChecks(DBBrowserDB& db) : m_db(db) { m_db.disableStructureUpdateChecks = true; } + ~NoStructureUpdateChecks() { m_db.disableStructureUpdateChecks = false; } private: DBBrowserDB& m_db; diff --git a/src/sqlitetablemodel.cpp b/src/sqlitetablemodel.cpp index 22ffa4e80..055e9c42f 100644 --- a/src/sqlitetablemodel.cpp +++ b/src/sqlitetablemodel.cpp @@ -4,6 +4,7 @@ #include "Settings.h" #include "Data.h" #include "CondFormat.h" +#include "RowLoader.h" #include #include @@ -14,11 +15,9 @@ #include #include #include -#include - -#include "RowLoader.h" +#include -using json = nlohmann::json; +#include SqliteTableModel::SqliteTableModel(DBBrowserDB& db, QObject* parent, const QString& encoding, bool force_wait) : QAbstractTableModel(parent) @@ -66,7 +65,6 @@ void SqliteTableModel::handleFinishedFetch (int life_id, unsigned int fetched_ro Q_ASSERT(fetched_row_end >= fetched_row_begin); auto old_row_count = m_currentRowCount; - auto new_row_count = std::max(old_row_count, fetched_row_begin); new_row_count = std::max(new_row_count, fetched_row_end); Q_ASSERT(new_row_count >= old_row_count); @@ -105,8 +103,8 @@ void SqliteTableModel::handleRowCountComplete (int life_id, int num_rows) void SqliteTableModel::reset() { beginResetModel(); - clearCache(); + clearCache(); m_sQuery.clear(); m_query.clear(); m_table_of_query.reset(); @@ -125,66 +123,46 @@ void SqliteTableModel::setQuery(const sqlb::Query& query) // Save the query m_query = query; - m_table_of_query = m_db.getObjectByName(query.table()); - - // The first column is the rowid column and therefore is always of type integer - m_vDataTypes.emplace_back(SQLITE_INTEGER); - // Get the data types of all other columns as well as the column names - if(m_table_of_query && m_table_of_query->fields.size()) // It is a table and parsing was OK + // Set the row id columns + m_table_of_query = m_db.getTableByName(query.table()); + if(!m_table_of_query->isView()) { - sqlb::StringVector rowids = m_table_of_query->rowidColumns(); - m_query.setRowIdColumns(rowids); - m_headers.push_back(sqlb::joinStringVector(rowids, ",")); - - // Store field names and affinity data types - for(const sqlb::Field& fld : m_table_of_query->fields) - { - m_headers.push_back(fld.name()); - m_vDataTypes.push_back(fld.affinity()); - } + // It is a table + m_query.setRowIdColumns(m_table_of_query->rowidColumns()); } else { - // If for one reason or another (either it's a view or we couldn't parse the table statement) we couldn't get the field - // information we retrieve it from SQLite using an extra query. - // NOTE: It would be nice to eventually get rid of this piece here. As soon as the grammar parser is good enough... - - std::string sColumnQuery = "SELECT * FROM " + query.table().toString() + ";"; + // It is a view if(m_query.rowIdColumns().empty()) m_query.setRowIdColumn("_rowid_"); - m_headers.emplace_back("_rowid_"); - auto columns = getColumns(nullptr, sColumnQuery, m_vDataTypes); - m_headers.insert(m_headers.end(), columns.begin(), columns.end()); + } + m_vDataTypes.emplace_back(SQLITE_INTEGER); // TODO This is not necessarily true for tables without ROWID or with multiple PKs + m_headers.push_back(sqlb::joinStringVector(m_query.rowIdColumns(), ",")); + + // Store field names and affinity data types + for(const auto& fld : m_table_of_query->fields) + { + m_headers.push_back(fld.name()); + m_vDataTypes.push_back(fld.affinity()); } // Tell the query object about the column names - m_query.setColumNames(m_headers); + m_query.setColumnNames(m_headers); // Apply new query and update view - buildQuery(); + updateAndRunQuery(); } -void SqliteTableModel::setQuery(const QString& sQuery, const QString& sCountQuery, bool dontClearHeaders) +void SqliteTableModel::setQuery(const QString& sQuery) { - // clear - if(!dontClearHeaders) - reset(); - else - clearCache(); - - if(!m_db.isOpen()) - return; + // Reset + reset(); m_sQuery = sQuery.trimmed(); removeCommentsFromQuery(m_sQuery); - worker->setQuery(m_sQuery, sCountQuery); - worker->triggerRowCountDetermination(m_lifeCounter); + getColumnNames(sQuery.toStdString()); - if(!dontClearHeaders) - { - auto columns = getColumns(worker->getDb(), sQuery.toStdString(), m_vDataTypes); - m_headers.insert(m_headers.end(), columns.begin(), columns.end()); - } + worker->setQuery(m_sQuery, QString()); // now fetch the first entries triggerCacheLoad(static_cast(m_chunkSize / 2) - 1); @@ -234,22 +212,22 @@ QVariant SqliteTableModel::headerData(int section, Qt::Orientation orientation, { // if we have a VIRTUAL table the model will not be valid, with no header data if(static_cast(section) < m_headers.size()) { - const QString plainHeader = QString::fromStdString(m_headers.at(static_cast(section))); + const std::string plainHeader = m_headers.at(static_cast(section)); // In the edit role, return a plain column name, but in the display role, add the sort indicator. if (role == Qt::EditRole) - return plainHeader; + return QString::fromStdString(plainHeader); else { QString sortIndicator; for(size_t i = 0; i < m_query.orderBy().size(); i++) { - const sqlb::SortedColumn sortedColumn = m_query.orderBy()[i]; + const sqlb::OrderBy sortedColumn = m_query.orderBy()[i]; // Append sort indicator with direction and ordinal number in superscript style - if (sortedColumn.column == static_cast(section)) { - sortIndicator = sortedColumn.direction == sqlb::Ascending ? " ▾" : " ▴"; + if (sortedColumn.expr == plainHeader) { + sortIndicator = sortedColumn.direction == sqlb::OrderBy::Ascending ? " ▾" : " ▴"; sortIndicator.append(toSuperScript(i+1)); break; } } - return plainHeader + sortIndicator; + return QString::fromStdString(plainHeader) + sortIndicator; } } return QString::number(section + 1); @@ -533,14 +511,15 @@ bool SqliteTableModel::setTypedData(const QModelIndex& index, bool isBlob, const { cached_row[0] = newValue; } else { - json array; assert(m_headers.size() == cached_row.size()); + QByteArray output; for(size_t i=0;i(std::distance(m_headers.begin(), it))]); + auto v = cached_row[static_cast(std::distance(m_headers.begin(), it))]; + output += QByteArray::number(v.size()) + ":" + v; } - cached_row[0] = QByteArray::fromStdString(array.dump()); + cached_row[0] = output; } const QModelIndex& rowidIndex = index.sibling(index.row(), 0); lock.unlock(); @@ -583,12 +562,12 @@ Qt::ItemFlags SqliteTableModel::flags(const QModelIndex& index) const void SqliteTableModel::sort(int column, Qt::SortOrder order) { // Construct a sort order list from this item and forward it to the function to sort by lists - std::vector list; - list.emplace_back(column, order == Qt::AscendingOrder ? sqlb::Ascending : sqlb::Descending); + std::vector list; + list.emplace_back(m_headers.at(static_cast(column)), order == Qt::AscendingOrder ? sqlb::OrderBy::Ascending : sqlb::OrderBy::Descending); sort(list); } -void SqliteTableModel::sort(const std::vector& columns) +void SqliteTableModel::sort(const std::vector& columns) { // Don't do anything when the sort order hasn't changed if(m_query.orderBy() == columns) @@ -599,7 +578,7 @@ void SqliteTableModel::sort(const std::vector& columns) // Set the new query (but only if a table has already been set if(!m_query.table().isEmpty()) - buildQuery(); + updateAndRunQuery(); } SqliteTableModel::Row SqliteTableModel::makeDefaultCacheEntry () const @@ -672,7 +651,7 @@ bool SqliteTableModel::removeRows(int row, int count, const QModelIndex& parent) return false; } - std::vector rowids; + std::vector rowids; for(int i=count-1;i>=0;i--) { if(m_cache.count(static_cast(row+i))) { @@ -721,100 +700,39 @@ QModelIndex SqliteTableModel::dittoRecord(int old_row) return index(new_row, static_cast(firstEditedColumn)); } -void SqliteTableModel::buildQuery() -{ - setQuery(QString::fromStdString(m_query.buildQuery(true)), QString::fromStdString(m_query.buildCountQuery()), true); -} - -void SqliteTableModel::removeCommentsFromQuery(QString& query) +void SqliteTableModel::updateAndRunQuery() { - int oldSize = query.size(); - - // first remove block comments - { - QRegExp rxSQL("^((?:(?:[^'/]|/(?![*]))*|'[^']*')*)(/[*](?:[^*]|[*](?!/))*[*]/)(.*)$"); // set up regex to find block comment - QString result; - - while(query.size() != 0) - { - int pos = rxSQL.indexIn(query); - if(pos > -1) - { - result += rxSQL.cap(1) + " "; - query = rxSQL.cap(3); - } else { - result += query; - query.clear(); - } - } - query = result; - } - - // deal with end-of-line comments - { - /* The regular expression for removing end of line comments works like this: - * ^((?:(?:[^'-]|-(?!-))*|(?:'[^']*'))*)(--.*)$ - * ^ $ # anchor beginning and end of string so we use it all - * ( )( ) # two separate capture groups for code and comment - * --.* # comment starts with -- and consumes everything afterwards - * (?: | )* # code is none or many strings alternating with non-strings - * (?:'[^']*') # a string is a quote, followed by none or more non-quotes, followed by a quote - * (?:[^'-]|-(?!-))* # non-string is a sequence of characters which aren't quotes or hyphens, - */ - - QRegExp rxSQL("^((?:(?:[^'-]|-(?!-))*|(?:'[^']*'))*)(--[^\\r\\n]*)([\\r\\n]*)(.*)$"); // set up regex to find end-of-line comment - QString result; - - while(query.size() != 0) - { - int pos = rxSQL.indexIn(query); - if(pos > -1) - { - result += rxSQL.cap(1) + rxSQL.cap(3); - query = rxSQL.cap(4); - } else { - result += query; - query.clear(); - } - } + clearCache(); - query = result.trimmed(); - } + // Update the query + m_sQuery = QString::fromStdString(m_query.buildQuery(true)); + QString sCountQuery = QString::fromStdString(m_query.buildCountQuery()); + worker->setQuery(m_sQuery, sCountQuery); - if (oldSize != query.size()) { - // Remove multiple line breaks that might have been created by deleting comments till the end of the line but not including the line break - query.replace(QRegExp("\\n+"), "\n"); + // now fetch the first entries + triggerCacheLoad(static_cast(m_chunkSize / 2) - 1); - // Also remove any remaining whitespace at the end of each line - query.replace(QRegExp("[ \t]+\n"), "\n"); - } + emit layoutChanged(); } -std::vector SqliteTableModel::getColumns(std::shared_ptr pDb, const std::string& sQuery, std::vector& fieldsTypes) const +void SqliteTableModel::getColumnNames(const std::string& sQuery) { - if(!pDb) - pDb = m_db.get(tr("retrieving list of columns")); + auto pDb = m_db.get(tr("retrieving list of columns")); sqlite3_stmt* stmt; - std::vector listColumns; if(sqlite3_prepare_v2(pDb.get(), sQuery.c_str(), static_cast(sQuery.size()), &stmt, nullptr) == SQLITE_OK) { - if(sqlite3_step(stmt) == SQLITE_ROW) + int columns = sqlite3_column_count(stmt); + for(int i = 0; i < columns; ++i) { - int columns = sqlite3_data_count(stmt); - for(int i = 0; i < columns; ++i) - { - listColumns.push_back(sqlite3_column_name(stmt, i)); - fieldsTypes.push_back(sqlite3_column_type(stmt, i)); - } + m_headers.push_back(sqlite3_column_name(stmt, i)); + m_vDataTypes.push_back(sqlite3_column_type(stmt, i)); } } sqlite3_finalize(stmt); - - return listColumns; } -void addCondFormatToMap(std::map>& mCondFormats, size_t column, const CondFormat& condFormat) +static void addCondFormatToMap(std::map>& mCondFormats, size_t column, const CondFormat& condFormat) { // If the condition is already present in the vector, update that entry and respect the order, since two entries with the same // condition do not make sense. @@ -849,18 +767,18 @@ void SqliteTableModel::setCondFormats(const bool isRowIdFormat, size_t column, c emit layoutChanged(); } -void SqliteTableModel::updateFilter(size_t column, const QString& value) +void SqliteTableModel::updateFilter(const std::string& column, const QString& value) { std::string whereClause = CondFormat::filterToSqlCondition(value, m_encoding); // If the value was set to an empty string remove any filter for this column. Otherwise insert a new filter rule or replace the old one if there is already one - if(whereClause.empty()) + if(whereClause.empty()) m_query.where().erase(column); else m_query.where()[column] = whereClause; // Build the new query - buildQuery(); + updateAndRunQuery(); } void SqliteTableModel::updateGlobalFilter(const std::vector& values) @@ -871,7 +789,7 @@ void SqliteTableModel::updateGlobalFilter(const std::vector& values) m_query.setGlobalWhere(filters); // Build the new query - buildQuery(); + updateAndRunQuery(); } void SqliteTableModel::clearCache() @@ -890,6 +808,7 @@ void SqliteTableModel::clearCache() } m_cache.clear(); + m_currentRowCount = 0; m_rowCountAvailable = RowCount::Unknown; } @@ -949,6 +868,9 @@ bool SqliteTableModel::dropMimeData(const QMimeData* data, Qt::DropAction, int r void SqliteTableModel::setPseudoPk(std::vector pseudoPk) { + if(!m_table_of_query->isView()) + return; + if(pseudoPk.empty()) pseudoPk.emplace_back("_rowid_"); @@ -960,7 +882,7 @@ void SqliteTableModel::setPseudoPk(std::vector pseudoPk) if(m_headers.size()) m_headers[0] = sqlb::joinStringVector(pseudoPk, ","); - buildQuery(); + updateAndRunQuery(); } bool SqliteTableModel::hasPseudoPk() const @@ -974,7 +896,7 @@ bool SqliteTableModel::isEditable(const QModelIndex& index) const return false; if(!m_db.isOpen()) return false; - if(!m_table_of_query && !m_query.hasCustomRowIdColumn()) + if((!m_table_of_query || m_table_of_query->isView()) && !m_query.hasCustomRowIdColumn()) return false; // Extra check when the index parameter is set and pointing to a generated column in a table @@ -1023,6 +945,14 @@ bool SqliteTableModel::completeCache () const // cancel button if we allow cancellation here. This isn't QProgressDialog progress(tr("Fetching data..."), tr("Cancel"), 0, rowCount()); + + QPushButton* cancelButton = new QPushButton(tr("Cancel")); + // This is to prevent distracted cancellation of the fetching and avoid the + // Snap-To Windows optional feature. + cancelButton->setDefault(false); + cancelButton->setAutoDefault(false); + progress.setCancelButton(cancelButton); + progress.setWindowModality(Qt::ApplicationModal); progress.show(); diff --git a/src/sqlitetablemodel.h b/src/sqlitetablemodel.h index 4ecbd7d94..e994dadf7 100644 --- a/src/sqlitetablemodel.h +++ b/src/sqlitetablemodel.h @@ -80,7 +80,7 @@ class SqliteTableModel : public QAbstractTableModel QModelIndex dittoRecord(int old_row); /// configure for browsing results of specified query - void setQuery(const QString& sQuery, const QString& sCountQuery = QString(), bool dontClearHeaders = false); + void setQuery(const QString& sQuery); std::string query() const { return m_sQuery.toStdString(); } std::string customQuery(bool withRowid) const { return m_query.buildQuery(withRowid); } @@ -89,7 +89,7 @@ class SqliteTableModel : public QAbstractTableModel void setQuery(const sqlb::Query& query); void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override; - void sort(const std::vector& columns); + void sort(const std::vector& columns); sqlb::ObjectIdentifier currentTableName() const { return m_query.table(); } Qt::ItemFlags flags(const QModelIndex& index) const override; @@ -116,9 +116,6 @@ class SqliteTableModel : public QAbstractTableModel // can be edited. This makes a difference for generated columns which are in (editable) tables but cannot be modified anyway. bool isEditable(const QModelIndex& index = QModelIndex()) const; - // Helper function for removing all comments from a SQL query - static void removeCommentsFromQuery(QString& query); - // Conditional formats are of two kinds: regular conditional formats (including condition-free formats applying to any value in the // column) and formats applying to a particular row-id and which have always precedence over the first kind and whose filter apply // to the row-id column. @@ -143,7 +140,7 @@ class SqliteTableModel : public QAbstractTableModel void reloadSettings(); public slots: - void updateFilter(size_t column, const QString& value); + void updateFilter(const std::string& column, const QString& value); void updateGlobalFilter(const std::vector& values); signals: @@ -165,10 +162,9 @@ public slots: void handleFinishedFetch(int life_id, unsigned int fetched_row_begin, unsigned int fetched_row_end); void handleRowCountComplete(int life_id, int num_rows); - void buildQuery(); + void updateAndRunQuery(); - /// \param pDb connection to query; if null, obtains it from 'm_db'. - std::vector getColumns(std::shared_ptr pDb, const std::string& sQuery, std::vector& fieldsTypes) const; + void getColumnNames(const std::string& sQuery); QByteArray encode(const QByteArray& str) const; QByteArray decode(const QByteArray& str) const; diff --git a/src/sqltextedit.cpp b/src/sqltextedit.cpp index 4f3dedfe0..55abb104c 100644 --- a/src/sqltextedit.cpp +++ b/src/sqltextedit.cpp @@ -38,6 +38,10 @@ SqlTextEdit::SqlTextEdit(QWidget* parent) : command = standardCommands()->boundTo(Qt::ControlModifier+Qt::Key_T); command->setKey(Qt::ControlModifier+Qt::ShiftModifier+Qt::Key_Up); + // Change command binding for Ctrl+Shift+T so it doesn't interfere with "Open SQL file" + command = standardCommands()->boundTo(Qt::ControlModifier+Qt::ShiftModifier+Qt::Key_T); + command->setKey(Qt::ControlModifier+Qt::ShiftModifier+Qt::Key_Insert); + QShortcut* shortcutToggleComment = new QShortcut(QKeySequence(tr("Ctrl+/")), this, nullptr, nullptr, Qt::WidgetShortcut); connect(shortcutToggleComment, &QShortcut::activated, this, &SqlTextEdit::toggleBlockComment); diff --git a/src/src.pro b/src/src.pro deleted file mode 100644 index 4b879c67a..000000000 --- a/src/src.pro +++ /dev/null @@ -1,309 +0,0 @@ -TEMPLATE = app - -QT += core gui network widgets printsupport concurrent xml - -TARGET = sqlitebrowser - -CONFIG += debug_and_release -CONFIG += qt -CONFIG += warn_on - -QMAKE_CXXFLAGS += -std=c++11 - -# create a unittest option -CONFIG(unittest) { - QT += testlib - - HEADERS += tests/testsqlobjects.h tests/TestImport.h tests/TestRegex.h tests/TestRowCache.h - SOURCES += tests/testsqlobjects.cpp tests/TestImport.cpp tests/TestRegex.cpp tests/TestRowCache.cpp -} else { - SOURCES += main.cpp -} - -HEADERS += \ - ImageViewer.h \ - RemoteCommitsModel.h \ - RemoteLocalFilesModel.h \ - RemoteNetwork.h \ - TableBrowserDock.h \ - dbstructureqitemviewfacade.h \ - sqlitedb.h \ - MainWindow.h \ - EditIndexDialog.h \ - AboutDialog.h \ - EditTableDialog.h \ - AddRecordDialog.h \ - Settings.h \ - PreferencesDialog.h \ - EditDialog.h \ - ExportDataDialog.h \ - ImportCsvDialog.h \ - sqltextedit.h \ - sql/sqlitetypes.h \ - csvparser.h \ - ExtendedTableWidget.h \ - sqlitetablemodel.h \ - RowCache.h \ - RowLoader.h \ - FilterTableHeader.h \ - version.h \ - SqlExecutionArea.h \ - VacuumDialog.h \ - DbStructureModel.h \ - Application.h \ - sqlite.h \ - CipherDialog.h \ - ExportSqlDialog.h \ - SqlUiLexer.h \ - FileDialog.h \ - ColumnDisplayFormatDialog.h \ - FilterLineEdit.h \ - RemoteDatabase.h \ - ForeignKeyEditorDelegate.h \ - PlotDock.h \ - RemoteDock.h \ - RemoteModel.h \ - RemotePushDialog.h \ - docktextedit.h \ - FindReplaceDialog.h \ - ExtendedScintilla.h \ - FileExtensionManager.h \ - CondFormatManager.h \ - Data.h \ - CipherSettings.h \ - DotenvFormat.h \ - Palette.h \ - CondFormat.h \ - sql/Query.h \ - RunSql.h \ - sql/ObjectIdentifier.h \ - ProxyDialog.h \ - IconCache.h \ - SelectItemsPopup.h \ - TableBrowser.h \ - sql/parser/ParserDriver.h \ - sql/parser/sqlite3_lexer.h \ - sql/parser/sqlite3_location.h \ - sql/parser/sqlite3_parser.hpp - -SOURCES += \ - ImageViewer.cpp \ - RemoteCommitsModel.cpp \ - RemoteLocalFilesModel.cpp \ - RemoteNetwork.cpp \ - TableBrowserDock.cpp \ - dbstructureqitemviewfacade.cpp \ - sqlitedb.cpp \ - MainWindow.cpp \ - EditIndexDialog.cpp \ - EditTableDialog.cpp \ - AddRecordDialog.cpp \ - Settings.cpp \ - PreferencesDialog.cpp \ - AboutDialog.cpp \ - EditDialog.cpp \ - ExportDataDialog.cpp \ - ImportCsvDialog.cpp \ - sqltextedit.cpp \ - sql/sqlitetypes.cpp \ - csvparser.cpp \ - ExtendedTableWidget.cpp \ - sqlitetablemodel.cpp \ - RowLoader.cpp \ - FilterTableHeader.cpp \ - SqlExecutionArea.cpp \ - VacuumDialog.cpp \ - DbStructureModel.cpp \ - Application.cpp \ - CipherDialog.cpp \ - ExportSqlDialog.cpp \ - SqlUiLexer.cpp \ - FileDialog.cpp \ - ColumnDisplayFormatDialog.cpp \ - FilterLineEdit.cpp \ - RemoteDatabase.cpp \ - ForeignKeyEditorDelegate.cpp \ - PlotDock.cpp \ - RemoteDock.cpp \ - RemoteModel.cpp \ - RemotePushDialog.cpp \ - docktextedit.cpp \ - FindReplaceDialog.cpp \ - ExtendedScintilla.cpp \ - FileExtensionManager.cpp \ - CondFormatManager.cpp \ - Data.cpp \ - CipherSettings.cpp \ - DotenvFormat.cpp \ - Palette.cpp \ - CondFormat.cpp \ - sql/Query.cpp \ - RunSql.cpp \ - sql/ObjectIdentifier.cpp \ - ProxyDialog.cpp \ - IconCache.cpp \ - SelectItemsPopup.cpp \ - TableBrowser.cpp \ - sql/parser/ParserDriver.cpp \ - sql/parser/sqlite3_lexer.cpp \ - sql/parser/sqlite3_parser.cpp - -RESOURCES += icons/icons.qrc \ - translations/flags/flags.qrc \ - translations/translations.qrc \ - certs/CaCerts.qrc \ - qdarkstyle/style.qrc - -FORMS += \ - ImageViewer.ui \ - MainWindow.ui \ - EditIndexDialog.ui \ - AboutDialog.ui \ - EditTableDialog.ui \ - AddRecordDialog.ui \ - PreferencesDialog.ui \ - EditDialog.ui \ - ExportDataDialog.ui \ - ImportCsvDialog.ui \ - SqlExecutionArea.ui \ - VacuumDialog.ui \ - CipherDialog.ui \ - ExportSqlDialog.ui \ - ColumnDisplayFormatDialog.ui \ - PlotDock.ui \ - RemoteDock.ui \ - RemotePushDialog.ui \ - FindReplaceDialog.ui \ - FileExtensionManager.ui \ - CondFormatManager.ui \ - ProxyDialog.ui \ - SelectItemsPopup.ui \ - TableBrowser.ui - -TRANSLATIONS += \ - translations/sqlb_ar_SA.ts \ - translations/sqlb_cs.ts \ - translations/sqlb_zh.ts \ - translations/sqlb_zh_TW.ts \ - translations/sqlb_de.ts \ - translations/sqlb_es_ES.ts \ - translations/sqlb_fr.ts \ - translations/sqlb_ru.ts \ - translations/sqlb_pl.ts \ - translations/sqlb_pt_BR.ts \ - translations/sqlb_en_GB.ts \ - translations/sqlb_ko_KR.ts \ - translations/sqlb_tr.ts \ - translations/sqlb_uk_UA.ts \ - translations/sqlb_it.ts \ - translations/sqlb_ja.ts - -# SQLite / SQLCipher switch pieces -CONFIG(sqlcipher) { - QMAKE_CXXFLAGS += -DENABLE_SQLCIPHER - LIBS += -lsqlcipher - - # Add the paths for Homebrew installed SQLCipher - macx { - INCLUDEPATH += /usr/local/opt/sqlcipher/include - LIBS += -L/usr/local/opt/sqlcipher/lib - } -} else { - LIBS += -lsqlite3 - - # Add the paths for Homebrew installed SQLite - macx { - INCLUDEPATH += /usr/local/opt/sqlite/include - LIBS += -L/usr/local/opt/sqlite/lib - } -} - -LIBPATH_QHEXEDIT=$$OUT_PWD/../libs/qhexedit -LIBPATH_QCUSTOMPLOT=$$OUT_PWD/../libs/qcustomplot-source -LIBPATH_QSCINTILLA=$$OUT_PWD/../libs/qscintilla/Qt4Qt5 -LIBPATH_JSON=$$OUT_PWD/../libs/json -unix { - LIBS += -ldl -} -os2 { - RC_FILE = os2app.rc -} -win32 { - TARGET = "DB Browser for SQLite" - RC_FILE = winapp.rc - INCLUDEPATH += $$PWD - CONFIG(debug,debug|release) { - LIBPATH_QHEXEDIT = $$LIBPATH_QHEXEDIT/debug - LIBPATH_QCUSTOMPLOT = $$LIBPATH_QCUSTOMPLOT/debug - LIBPATH_QSCINTILLA = $$LIBPATH_QSCINTILLA/debug - LIBPATH_JSON = $$LIBPATH_JSON/debug - } - CONFIG(release,debug|release) { - LIBPATH_QHEXEDIT = $$LIBPATH_QHEXEDIT/release - LIBPATH_QCUSTOMPLOT = $$LIBPATH_QCUSTOMPLOT/release - LIBPATH_QSCINTILLA = $$LIBPATH_QSCINTILLA/release - LIBPATH_JSON = $$LIBPATH_JSON/release - } - QMAKE_CXXFLAGS += -DCHECKNEWVERSION - - # Added SQLite installation path variables, matching our setup guide - LIBS += -L$$PWD/../../../dev/SQLite/ -lsqlite3 - INCLUDEPATH += $$PWD/../../../dev/SQLite - DEPENDPATH += $$PWD/../../../dev/SQLite -} -macx { - TARGET = "DB Browser for SQLite" - RC_FILE = macapp.icns - QT += macextras opengl - INCLUDEPATH += /usr/local/include - LIBS += -L/usr/local/lib -framework Carbon - QMAKE_INFO_PLIST = app.plist - QMAKE_CXXFLAGS += -DCHECKNEWVERSION -} - -CONFIG(all_warnings) { - QMAKE_CXXFLAGS += -Wall -Wextra -Wshadow -Wnon-virtual-dtor -Wold-style-cast -Wcast-align -Wunused -Woverloaded-virtual -Wpedantic -Wconversion -Wsign-conversion - QMAKE_CXXFLAGS += -Wnull-dereference -Wdouble-promotion -Wformat=2 -Wduplicated-cond -Wduplicated-branches -Wlogical-op -Wuseless-cast -} - -UI_DIR = .ui -INCLUDEPATH += $$PWD/../libs/qhexedit/src $$PWD/../libs/qcustomplot-source $$PWD/../libs/qscintilla/Qt4Qt5 $$PWD/../libs/json $$PWD/.. -LIBS += -L$$LIBPATH_QHEXEDIT -L$$LIBPATH_QCUSTOMPLOT -L$$LIBPATH_QSCINTILLA -lqhexedit -lqcustomplot -lqscintilla2 -DEPENDPATH += $$PWD/../libs/qhexedit $$PWD/../libs/qcustomplot-source $$PWD/../libs/qscintilla/Qt4Qt5 $$PWD/../libs/json - -unix { - # Below, the user can specify where all generated file can be placed - # through a set of variables, being them: - # - # PREFIX -> the root directory where the files will be placed - # BINDIR -> where executables accessible by the user resides - # DATADIR -> where data files and resources should be placed - # - # The values of each variable changes between supported platforms and are describe as follow - - # Default configuration for package sqlitebrowser. - # The default prefix is /usr/local - !defined(PREFIX, var): PREFIX = /usr/local - !defined(BINDIR, var): BINDIR = $$PREFIX/bin - !defined(DATADIR, var): DATADIR = $$PREFIX/share - - # The executable - target.path = $$BINDIR - INSTALLS += target - - # Icon - icon.path = $$DATADIR/icons/hicolor/256x256/apps/ - icon.files = icons/sqlitebrowser.png - INSTALLS += icon - - # Desktop metadata - desktop.path = $$DATADIR/applications/ - desktop.files = ../distri/sqlitebrowser.desktop - INSTALLS += desktop - appdata.path = $$DATADIR/metainfo/ - appdata.files = ../distri/sqlitebrowser.desktop.appdata.xml - INSTALLS += appdata -} - -# Rules for creating/updating {ts|qm}-files -include(i18n.pri) diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index ccf87c646..c2ca8fec5 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -1,25 +1,14 @@ include_directories("${CMAKE_CURRENT_BINARY_DIR}" ..) -if(NOT WIN32) - set(LPTHREAD pthread) -endif() +find_package(Qt5 REQUIRED COMPONENTS Test Widgets) # test-sqlobjects set(TESTSQLOBJECTS_SRC - ../sqlitedb.cpp - ../sqlitetablemodel.cpp - ../RowLoader.cpp ../sql/sqlitetypes.cpp ../sql/Query.cpp ../sql/ObjectIdentifier.cpp - ../csvparser.cpp - ../Settings.cpp testsqlobjects.cpp - ../Data.cpp - ../CipherSettings.cpp - ../DotenvFormat.cpp - ../CondFormat.cpp ../sql/parser/ParserDriver.cpp ../sql/parser/sqlite3_lexer.cpp ../sql/parser/sqlite3_parser.cpp @@ -29,40 +18,15 @@ set(TESTSQLOBJECTS_HDR ../sql/sqlitetypes.h ../sql/Query.h ../sql/ObjectIdentifier.h - ../Data.h ../sql/parser/ParserDriver.h ../sql/parser/sqlite3_lexer.h ../sql/parser/sqlite3_location.h ../sql/parser/sqlite3_parser.hpp -) - -set(TESTSQLOBJECTS_MOC_HDR - ../sqlitedb.h - ../sqlitetablemodel.h - ../Settings.h testsqlobjects.h - ../CipherSettings.h - ../DotenvFormat.h - ../CondFormat.h ) -if(sqlcipher) - list(APPEND TESTSQLOBJECTS_SRC ../CipherDialog.cpp) - list(APPEND TESTSQLOBJECTS_FORMS ../CipherDialog.ui) - list(APPEND TESTSQLOBJECTS_MOC_HDR ../CipherDialog.h) -endif() - -QT5_WRAP_UI(TESTSQLOBJECTS_FORM_HDR ${TESTSQLOBJECTS_FORMS}) - -add_executable(test-sqlobjects ${TESTSQLOBJECTS_MOC} ${TESTSQLOBJECTS_HDR} ${TESTSQLOBJECTS_SRC} ${TESTSQLOBJECTS_FORM_HDR}) - -find_package(Qt5 REQUIRED COMPONENTS Test Widgets Gui) -target_link_libraries(test-sqlobjects Qt5::Test Qt5::Widgets Qt5::Gui) - -set(QT_LIBRARIES "") - -target_link_libraries(test-sqlobjects ${QT_LIBRARIES} ${LIBSQLITE}) -target_link_libraries(test-sqlobjects ${LPTHREAD}) +add_executable(test-sqlobjects ${TESTSQLOBJECTS_HDR} ${TESTSQLOBJECTS_SRC}) +target_link_libraries(test-sqlobjects Qt5::Test) add_test(test-sqlobjects test-sqlobjects) # test-import @@ -76,70 +40,24 @@ set(TESTIMPORT_MOC_HDR TestImport.h ) -add_executable(test-import ${TESTIMPORT_MOC} ${TESTIMPORT_SRC}) - -find_package(Qt5 REQUIRED COMPONENTS Core) -target_link_libraries(test-import Qt5::Test Qt5::Core) - -set(QT_LIBRARIES "") - -target_link_libraries(test-import ${QT_LIBRARIES}) +add_executable(test-import ${TESTIMPORT_MOC_HDR} ${TESTIMPORT_SRC}) +target_link_libraries(test-import Qt5::Test) add_test(test-import test-import) # test regex set(TESTREGEX_SRC - ../sqlitedb.cpp - ../sqlitetablemodel.cpp - ../RowLoader.cpp - ../sql/sqlitetypes.cpp - ../sql/Query.cpp - ../sql/ObjectIdentifier.cpp - ../Settings.cpp TestRegex.cpp ../Data.cpp - ../CipherSettings.cpp - ../DotenvFormat.cpp - ../CondFormat.cpp - ../sql/parser/ParserDriver.cpp - ../sql/parser/sqlite3_lexer.cpp - ../sql/parser/sqlite3_parser.cpp ) set(TESTREGEX_HDR - ../sql/sqlitetypes.h - ../sql/Query.h - ../sql/ObjectIdentifier.h ../Data.h - ../sql/parser/ParserDriver.h - ../sql/parser/sqlite3_lexer.h - ../sql/parser/sqlite3_location.h - ../sql/parser/sqlite3_parser.hpp -) - -set(TESTREGEX_MOC_HDR - ../sqlitedb.h - ../sqlitetablemodel.h - ../Settings.h TestRegex.h - ../CipherSettings.h - ../DotenvFormat.h - ../CondFormat.h ) -if(sqlcipher) - list(APPEND TESTREGEX_SRC ../CipherDialog.cpp) - list(APPEND TESTREGEX_MOC_HDR ../CipherDialog.h) -endif() - -add_executable(test-regex ${TESTREGEX_MOC} ${TESTREGEX_HDR} ${TESTREGEX_SRC}) - -target_link_libraries(test-regex Qt5::Test Qt5::Core Qt5::Gui Qt5::Widgets) - -set(QT_LIBRARIES "") - -target_link_libraries(test-regex ${QT_LIBRARIES} ${LIBSQLITE}) -target_link_libraries(test-regex ${LPTHREAD}) +add_executable(test-regex ${TESTREGEX_HDR} ${TESTREGEX_SRC}) +target_link_libraries(test-regex Qt5::Test Qt5::Widgets) add_test(test-regex test-regex) # test cache @@ -148,15 +66,10 @@ set(TESTCACHE_SRC TestRowCache.cpp ) -set(TESTCACHE_MOC_HDR +set(TESTCACHE_HDR TestRowCache.h ) -add_executable(test-cache ${TESTCACHE_MOC} ${TESTCACHE_SRC}) - -target_link_libraries(test-cache Qt5::Test Qt5::Core) - -set(QT_LIBRARIES "") - -target_link_libraries(test-cache ${QT_LIBRARIES}) +add_executable(test-cache ${TESTCACHE_HDR} ${TESTCACHE_SRC}) +target_link_libraries(test-cache Qt5::Test) add_test(test-cache test-cache) diff --git a/src/tests/TestRegex.cpp b/src/tests/TestRegex.cpp index c720f4840..f7ef22a40 100644 --- a/src/tests/TestRegex.cpp +++ b/src/tests/TestRegex.cpp @@ -1,5 +1,5 @@ #include "TestRegex.h" -#include "../sqlitetablemodel.h" +#include "../Data.h" #include @@ -76,6 +76,6 @@ void TestRegex::sqlQueryComments() QFETCH(QString, dirtyQuery); QFETCH(QString, clearQuery); - SqliteTableModel::removeCommentsFromQuery(dirtyQuery); + removeCommentsFromQuery(dirtyQuery); QCOMPARE(dirtyQuery, clearQuery); } diff --git a/src/tests/testsqlobjects.cpp b/src/tests/testsqlobjects.cpp index c8b1cb47a..e9d57f363 100644 --- a/src/tests/testsqlobjects.cpp +++ b/src/tests/testsqlobjects.cpp @@ -545,6 +545,17 @@ void TestTable::complexExpression() QCOMPARE(std::dynamic_pointer_cast(c.at(0))->expression(), "(\"a\" = 'S' AND \"b\" IS NOT NULL) OR (\"a\" IN ('A', 'P'))"); } +void TestTable::parseIdentifierWithDollar() +{ + std::string sql = "CREATE TABLE te$st(te$st$ INTEGER);"; + + Table tab(*Table::parseSQL(sql)); + QCOMPARE(tab.name(), "te$st"); + + QCOMPARE(tab.fields.at(0).name(), "te$st$"); + QCOMPARE(tab.fields.at(0).type(), "INTEGER"); +} + void TestTable::parseTest() { QFETCH(std::string, sql); diff --git a/src/tests/testsqlobjects.h b/src/tests/testsqlobjects.h index ed6a12fed..86c159cc4 100644 --- a/src/tests/testsqlobjects.h +++ b/src/tests/testsqlobjects.h @@ -39,6 +39,7 @@ private slots: void extraParentheses(); void moduloOperator(); void complexExpression(); + void parseIdentifierWithDollar(); void parseTest(); void parseTest_data(); diff --git a/src/tools/create_windows_icon.sh b/src/tools/create_windows_icon.sh index 4075e5d15..c46df6f8e 100755 --- a/src/tools/create_windows_icon.sh +++ b/src/tools/create_windows_icon.sh @@ -6,7 +6,7 @@ FILES=() # array accumulating names of converted images # commands to give to convert for each iteration MAGICK_CMDS="+antialias -units PixelsPerInch -alpha set -background transparent" SRC_FILE="../../images/logo.svg" # conversion source -ICO_FILE="../iconwin.ico" # ouput icon file +ICO_FILE="../iconwin.ico" # output icon file for imgsize in 16 32 64 128 do RESIZE="${imgsize}x${imgsize}" diff --git a/src/translations/flags/flags.qrc b/src/translations/flags/flags.qrc index fb963395b..406ecb21f 100644 --- a/src/translations/flags/flags.qrc +++ b/src/translations/flags/flags.qrc @@ -18,5 +18,7 @@ eg.png pl.png jp.png + nl.png + sv.png diff --git a/src/translations/flags/nl.png b/src/translations/flags/nl.png new file mode 100644 index 000000000..99814aa9c Binary files /dev/null and b/src/translations/flags/nl.png differ diff --git a/src/translations/flags/sv.png b/src/translations/flags/sv.png new file mode 100644 index 000000000..f58768e1d Binary files /dev/null and b/src/translations/flags/sv.png differ diff --git a/src/translations/sqlb_ar_SA.ts b/src/translations/sqlb_ar_SA.ts index 17d105ea8..c9d239b53 100644 --- a/src/translations/sqlb_ar_SA.ts +++ b/src/translations/sqlb_ar_SA.ts @@ -20,31 +20,6 @@ <p>«متصفّح قواعد بيانات SQLite» أداة رسوميّة مفتوحة المصدر ومجانية، تُستخدم لإنشاء ملفّات قواعد بيانات SQLite وتصميمها وتحريرها.</p><p>الأداة مرخّصة برخصتين، الإصدارة الثانية من رخصة موزيلا العمومية، والإصدارة الثالثة وما بعدها من رخصة غنو العمومية. يمكنك تعديل الأداة أو إعادة توزيعها بشروط تلك الرخص.</p><p>طالع <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> و<a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> للتفاصيل.</p><p>من فضلك زُر موقع الوِب هذا لمعلومات أكثر عن البرمجية: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">تستخدم هذه البرمجية عُدّة أدوات كيوت المرخّصة تحت GPL/LGPL وذلك من </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>طالع </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> لشروط الترخيص والمعلومات.</span></p><p><span style=" font-size:small;">تستخدم البرمجية أيضًا طقم أيقونات الحرير/Silk للمؤلّف Mark James المرخّصة برخصة المشاع الإبداعي - النسبة ٢٫٥ و٣٫٠.<br/>طالع </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> للتفاصيل.</span></p> </html> - - - SQLCipher Version %1 (based on SQLite %2) - إصدارة SQLCipher:‏ %L1 (مبنيّة على SQLite %L2) - - - - Version - الإصدارة - - - - Built for %1, running on %2 - مبنيّة للمعماريّة %L1، وتعمل على المعماريّة %L2 - - - - Qt Version - إصدارة كيوت: - - - - SQLite Version - إصدارة SQLite: ‏ - AddRecordDialog @@ -146,92 +121,152 @@ Application - - Usage: %1 [options] [db] + + Possible command line arguments: + معطيات سطر الأوامر الممكنة: + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value + يطلب الخياران ‎-o/--option و ‎-O/--save-option معطًى بهذا النحو: group/setting=value + + + + The user settings file location is replaced with the argument value instead of the environment variable value. + + + + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + + + + + Usage: %1 [options] [<database>|<project>] - ‎الاستعمال:‎ %L1 [options] [db] + ‎الاستعمال:‎ %L1 [options] [<database>|<project>] - - Possible command line arguments: - معطيات سطر الأوامر الممكنة: + + -h, --help Show command line options + -h, --help اعرض خيارات سطر الأوامر - - -h, --help Show command line options - -h, --help اعرض خيارات سطر الأوامر + + -q, --quit Exit application after running scripts + -q, --quit أنهِ التطبيق بعد تشغيل السكربتات - - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [ملف]‎ ‫نفّذ ملف SQL المذكور بعد فتح قاعدة البيانات + + -s, --sql <file> Execute this SQL file after opening the DB + -s, --sql <file> ‫نفّذ ملف SQL المذكور بعد فتح قاعدة البيانات - - -t, --table [table] Browse this table after opening the DB - -t, --table [جدول]‎ تصفّح الجدول المذكور بعد فتح قاعدة البيانات + + -t, --table <table> Browse this table after opening the DB + -t, --table <table> تصفّح الجدول المذكور بعد فتح قاعدة البيانات - - -o, --option [group/setting=value] Run application with this setting temporarily set to value - -o, --option [المجموعة/الإعداد=القيمة] شغّل التطبيق بضبط هذا الإعداد على هذه القيمة مؤقّتًا + + -R, --read-only Open database in read-only mode + -R, --read-only افتح قاعدة البيانات بوضع القراءة فقط - - -O, --save-option [group/setting=value] Run application saving this value for this setting - -O, --save-option [المجموعة/الإعداد=القيمة] شغّل التطبيق واحفظ هذه القيمة إعدادًا + + -S, --settings <settings_file> + - - This is DB Browser for SQLite version %1. - هذا «متصفّح قواعد بيانات SQLite»، الإصدارة %L1. + + Run application based on this settings file + - - The -o/--option and -O/--save-option options require an argument in the form group/setting=value - يطلب الخياران ‎-o/--option و ‎-O/--save-option معطًى بهذا النحو: group/setting=value + + -o, --option <group>/<setting>=<value> + -o, --option <group>/<setting>=<value> + + + + Run application with this setting temporarily set to value + ‎ ‫شغّل التطبيق بضبط هذا الإعداد setting مؤقتًا على القيمة value - - -q, --quit Exit application after running scripts - -q, --quit أنهِ التطبيق بعد تشغيل السكربتات + + -O, --save-option <group>/<setting>=<value> + -O, --save-option <group>/<setting>=<value> - - -R, --read-only Open database in read-only mode - -R, --read-only افتح قاعدة البيانات بوضع القراءة فقط + + Run application saving this value for this setting + ‎ ‫شغّل التطبيق بحفظ هذه القيمة value لهذا الإعداد setting - - -v, --version Display the current version - -v, --version اعرض الإصدارة الحالية + + -v, --version Display the current version + -v, --version اعرض الإصدارة الحالية - - [file] Open this SQLite database - ‎ [ملف]‎ ‫افتح قاعدة بيانات SQLite المذكورة + + <database> Open this SQLite database + <database> ‫افتح قاعدة بيانات SQLite المذكورة - + + <project> Open this project file (*.sqbpro) + <project> ‫افتح ملف المشروع المذكور (‎*.sqbpro) + + + The -s/--sql option requires an argument يتطلّب الخيار ‎-s/--sql معطًى - + The file %1 does not exist الملف %L1 غير موجود - + The -t/--table option requires an argument يتطلّب الخيار ‎-t/--table معطًى - + + The -S/--settings option requires an argument. The option is ignored. + + + + Invalid option/non-existant file: %1 خيار غير صالح/ملف غير موجود: %L1 + + + SQLite Version + إصدارة SQLite: ‏ + + + + SQLCipher Version %1 (based on SQLite %2) + إصدارة SQLCipher:‏ %L1 (مبنيّة على SQLite %L2) + + + + DB Browser for SQLite Version %1. + «متصفّح قواعد بيانات SQLite» الإصدارة %L1. + + + + Built for %1, running on %2 + مبنيّة للمعماريّة %L1، وتعمل على المعماريّة %L2 + + + + Qt Version %1 + إصدارة كيوت: %L1 + CipherDialog @@ -378,31 +413,41 @@ If any of the other settings were altered for this database file you need to pro + .NET DateTime.Ticks to date + ‏DateTime.Ticks من ‎.NET إلى تاريح + + + Julian day to date يوم جولياني إلى تاريخ - + Unix epoch to local time عَصر لينكس إلى الوقت المحلي - + Date as dd/mm/yyyy التاريخ بتنسيق dd/mm/yyyy - + Lower case حالة الأحرف صغيرة - + + Binary GUID to text + + + + Custom display format must contain a function call applied to %1 على تنسيق العرض المخصّص أن يحتوي على نداء دالة مطبّق على %L1 - + Error in custom display format. Message from database engine: %1 @@ -410,7 +455,7 @@ If any of the other settings were altered for this database file you need to pro %L1 - + Custom display format must return only one column but it returned %1. على تنسيق العرض المخصّص إعادة عمود واحد فقط، لكنّه أعاد %L1. @@ -425,22 +470,22 @@ If any of the other settings were altered for this database file you need to pro عدد تقريبي - + Unix epoch to date عَصر لينكس إلى تاريخ - + Upper case حالة الأحرف كبيرة - + Windows DATE to date ”تاريخ وندوز/Windows DATE“ إلى تاريخ - + Custom مخصّص @@ -567,160 +612,155 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - + Please specify the database name under which you want to access the attached database من فضلك اختر اسم قاعدة البيانات الذي تريد استعماله للوصول إلى قاعدة البيانات المرفقة - + Invalid file format تنسيق الملف غير صالح - + Do you want to save the changes made to the database file %1? أتريد حفظ التعديلات المُجراة على ملف قاعدة البيانات %L1؟ - + Exporting database to SQL file... يصدّر قاعدة البيانات إلى ملف SQL... - - + + Cancel ألغِ - + Executing SQL... ينفّذ SQL... - + Action cancelled. أُلغي الإجراء. - - This database has already been attached. Its schema name is '%1'. - أُرفقت قاعدة البيانات هذه بالفعل. اسم المخطّط هو ”%L1“. - - - + Do you really want to close this temporary database? All data will be lost. أمتأكّد من إغلاق قاعدة البيانات المؤقّتة هذه؟ ستفقد كلّ البيانات. - + Database didn't close correctly, probably still busy لم تُغلق قاعدة البيانات كما ينبغي، ربّما هي مشغولة - + The database is currently busy: قاعدة البيانات مشغولة حاليًا: - + Do you want to abort that other operation? أتريد إجهاض العملية الأخرى؟ - - + + No database file opened لم يُفتح ملف قاعدة بيانات - - + + Error in statement #%1: %2. Aborting execution%3. خطأ في الإفادة رقم %L1:‏ %L2. سأُجهض التنفيذ%L3. - - + + and rolling back وأُرجع ما كان موجودًا. - + didn't receive any output from %1 لم أستلم أيّ ناتج من %L1 - + could not execute command: %1 تعذّر تنفيذ الأمر: %L1 - + Cannot delete this object تعذّر حذف هذا الكائن - + Cannot set data on this object تعذّر ضبط البيانات على هذا الكائن - - + + A table with the name '%1' already exists in schema '%2'. هناك جدول بنفس الاسم ”%L1“ بالفعل في المخطّط ”%L2“. - + No table with name '%1' exists in schema '%2'. ما من جدول له الاسم ”%L1“ في المخطّط ”%L2“. - - + + Cannot find column %1. تعذّر العثور على العمود %L1 - + Creating savepoint failed. DB says: %1 فشل إنشاء نقطة الحفظ. تقول قاعدة البيانات: %L1 - + Renaming the column failed. DB says: %1 فشل تغيير اسم العمود. تقول قاعدة البيانات: %L1 - - + + Releasing savepoint failed. DB says: %1 فشلت استعداة نقطة الحفظ. تقول قاعدة البيانات: %L1 - + Creating new table failed. DB says: %1 فشل إنشاء جدول جديد. تقول قاعدة البيانات: %L1 - + Copying data to new table failed. DB says: %1 فشل نسخ البيانات إلى جدول جديد. تقول قاعدة البيانات: %L1 - + Deleting old table failed. DB says: %1 فشل حذف الجدول القديم. تقول قاعدة البيانات: %L1 - + Error renaming table '%1' to '%2'. Message from database engine: %3 @@ -729,12 +769,12 @@ Message from database engine: %L3 - + could not get list of db objects: %1 تعذّر جلب قائمة كائنات قواعد البيانات: %L1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -743,27 +783,27 @@ Message from database engine: - + could not get list of databases: %1 تعذّر جلب قائمة قواعد البيانات: %L1 - + Error loading extension: %1 خطأ أثناء تحميل الامتداد: %L1 - + could not get column information تعذّر جلب معلومات العمود - + Error setting pragma %1 to %2: %3 تعذّر ضبط pragma %L1 إلى %L2:‏ %L3 - + File not found. تعذّر العثور على الملف. @@ -796,12 +836,12 @@ Message from database engine: قاعدة البيانات - + Browsables ما يمكنك تصفّحه - + All الكلّ @@ -811,22 +851,22 @@ Message from database engine: مؤقّتة - + Tables (%1) الجداول (%L1) - + Indices (%1) الفهارس (%L1) - + Views (%1) المناظير (%L1) - + Triggers (%1) المحفّزات (%L1) @@ -839,64 +879,64 @@ Message from database engine: تحرير خليّة قاعدة البيانات - + Mode: الوضع: - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. هذه قائمة بالأوضاع المتوفّرة في محرّر الخلايا. اختر وضعًا لعرض أو تحرير البيانات في الخليّة الحالية. - + Text نصوص - + RTL Text نصوص من اليمين إلى اليسار - + Binary بيانات ثنائيّة - - + + Image صور - + JSON JSON - + XML XML - - + + Automatically adjust the editor mode to the loaded data type اضبط وضع المحرّر آليًا على نوع البيانات المحمّل - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. يُفعّل/يُعطّل هذا الزر التبديل التلقائي لوضع المحرّر. متى حدّدت خليّة جديدة أو استوردت بيانات جديدة ويُفعّل التبديل الآلي سترى بأنّ الوضع سيُضبط على نوع البيانات المكتشف. يمكنك بعدها تغيير وضع المحرّر يدويًا. لو أردت أن يكون التبديل يدويًا عند الانتقال بين الخلايا، فعطّل هذا الزر. - + Auto-switch التبديل الآلي - + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. @@ -905,149 +945,142 @@ Errors are indicated with a red squiggle underline. تُعرض الأخطاء على شكل خطّ أحمر مسطّر مموّج. - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. يُستعمل محرّر «كيوت» هذا للغات المكتوبة من اليمين إلى اليسار (مثل العربيّة) إذ لا يدعمها محرّر النصوص المبدئي. لو كتبت حروف لغة تُكتب من اليمين إلى اليسار، فستكتشف البرمجيّة ذلك وتحدّد وضع الخليّة هذا تلقائيًا. - + Open preview dialog for printing the data currently stored in the cell افتح مربّع حوار معاينة طباعة البيانات المخزّنة في الخليّة حاليًا - + Auto-format: pretty print on loading, compact on saving. التنسيق الآلي: طباعة جميلة (pretty print) عند التحميل، رصّ عند الحفظ. - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. إن فعّلت الخيار فستُنسّق ميزة التنسيق الآلي البياناتَ متى تحمّلت، فتكسر النصوص إلى أسطر وتُزيحها لزيادة مقروؤيتها. وعند حفظ البيانات ترصّ ميزة التنسيق الآلي البياناتَ بإزالة نهايات الأسطر والمسافات غير اللازمة. - + Word Wrap لفّ الأسطر - + Wrap lines on word boundaries لُفّ الأسطر عند حدود الكلمات - - + + Open in default application or browser افتح في التطبيق المبدئي أو المتصفّح - + Open in application افتح في التطبيق - + The value is interpreted as a file or URL and opened in the default application or web browser. تُحلّل البرمجيّة القيمة على أنّها ملف أو مسار وتفتحه في التطبيق المبدئي أو في متصفّح الوب. - + Save file reference... احفظ إشارة إلى الملف... - + Save reference to file احفظ إشارة إلى الملف... - - + + Open in external application افتح في تطبيق خارجي - + Autoformat التنسيق الآلي - + &Export... &صدّر... - - + + &Import... ا&ستورِد... - - + + Import from file استورِد من ملف - - + + Opens a file dialog used to import any kind of data to this database cell. يفتح مربّع حوار ملفات يُستعمل لاستيراد أيّ نوع من البيانات في خليّة قاعدة البيانات هذه. - + Export to file صدّر إلى ملف - + Opens a file dialog used to export the contents of this database cell to a file. يفتح مربّع حوار ملفات يُستعمل لتصدير محتويات خليّة قاعدة البيانات هذه إلى ملف. - - + Print... اطبع... - - Open preview dialog for printing displayed image - يفتح مربّع حوار المعاينة لطباعة الصورة المعروضة - - - - + Ctrl+P - + Ctrl+P - + Open preview dialog for printing displayed text يفتح مربّع حوار المعاينة لطباعة النص المعروض - + Copy Hex and ASCII انسخ Hex وآسكي - + Copy selected hexadecimal and ASCII columns to the clipboard انسخ الأعمدة الستّ‌عشرية وآسكي المحدّدة إلى الحافظة - + Ctrl+Shift+C - + Ctrl+Shift+C - + Erases the contents of the cell يمسح محتويات هذه الخليّة - + Set as &NULL ا&ضبط على NULL @@ -1057,53 +1090,53 @@ Errors are indicated with a red squiggle underline. تعرض هذه المنطقة معلومات عن البيانات الموجودة في خليّة قاعدة البيانات هذه - + Type of data currently in cell نوع البيانات في الخليّة حاليًا - + Size of data currently in table حجم البيانات في الخليّة حاليًا - + Apply data to cell طبّق البيانات على الخليّة - + This button saves the changes performed in the cell editor to the database cell. يحفظ هذا الزر التغييرات المُجراة داخل محرّر الخلايا في خليّة قاعدة البيانات. - + Apply طبّق - + Choose a filename to export data اختر اسمًا للملف لتصدير البيانات - + Type of data currently in cell: %1 Image نوع البيانات في الخليّة حاليًا: صورة %L1 - + %1x%2 pixel(s) ‏%L1×‏%L2 بكسل - + Type of data currently in cell: NULL نوع البيانات في الخليّة حاليًا: NULL - - + + %n byte(s) لا بايتات @@ -1115,75 +1148,70 @@ Errors are indicated with a red squiggle underline. - - + + Type of data currently in cell: Text / Numeric نوع البيانات في الخليّة حاليًا: نصوص/عدد - - + + Image data can't be viewed in this mode. لا يمكن عرض بيانات الصور في هذا الوضع. - - + + Try switching to Image or Binary mode. جرّب الانتقال إلى وضع ”صور“ أو ”بيانات ثنائيّة“. - - + + Binary data can't be viewed in this mode. لا يمكن عرض البيانات الثنائيّة في هذا الوضع. - - + + Try switching to Binary mode. جربّ الانتقال إلى وضع ”بيانات ثنائيّة“. - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. - حُفظت البيانات في ملف مؤقّت وفُتح في التطبيق المبدئي. يمكنك الآن تحرير الملف وتطبيق البيانات الجديدة المحفوظة فيه متى أردت في محرّر الخليّة، أو حتّى إلغاء تلك التغييرات. - - - - + + Image files (%1) ملفات الصور (%L1) - + Binary files (*.bin) الملفات الثنائيّة (*.bin) - + Choose a file to import اختر ملفًا لاستيراده - + %1 Image صورة %L1 - + Invalid data for this mode بيانات غير صالحة في هذا الوضع - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? تحتوي الخليّة بيانات %L1 غير صالحة. السبب: %L2. أمتأكّد من تطبيقها على الخليّة؟ - - - + + + %n character(s) لا محارف @@ -1195,15 +1223,25 @@ Errors are indicated with a red squiggle underline. - + Type of data currently in cell: Valid JSON نوع البيانات في الخليّة حاليًا: JSON صالحة - + Type of data currently in cell: Binary نوع البيانات في الخليّة حاليًا: بيانات ثنائيّة + + + Couldn't save file: %1. + تعذّر حفظ الملف: %L1. + + + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + + EditIndexDialog @@ -1350,203 +1388,208 @@ Errors are indicated with a red squiggle underline. انقل للأسفل - - + + Name الاسم - - + + Type النوع - + NN NN - + Not null ليس NULL - + PK PK - - Primary key - مفتاح أساسي Primary key + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + - + AI AI - + Autoincrement زيادة آليّة Auto Increment - + U U - - - + + + Unique فريد Unique - + Default المبدئي - + Default value القيمة المبدئية - - - + + + Check الفحص - + Check constraint قيد الفحص Check constraint - + Collation قواعد مقارنة المحارف - - - + + + Foreign Key مفتاح أجنبي - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + Constraints القيود - + Add constraint أضِف قيدًا - + Remove constraint أزِل القيد - + Columns الأعمدة - + SQL SQL - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> <span style=" font-weight:600; color:#ff0000;">تحذير: </span>ثمّة خطب بتعريف هذا الجدول تعذّر على المحلّل فهمه تمامًا. يمكن أن يؤدّي تعديل وحفظ هذا الجدول إلى بعض المشاكل. - - + + Primary Key مفتاح أساسي - + Add a primary key constraint أضِف قيد فرض مفتاح أساسي - + Add a foreign key constraint أضِف قيد فرض مفتاح أجنبي - + Add a unique constraint أضِف قيد فرض ”فريد“ - + Add a check constraint أضِف قيد فرض ”فحص“ - + Error creating table. Message from database engine: %1 خطأ أثناء إنشاء الجدول. الرسالة من محرّك قواعد البيانات: %L1 - + There already is a field with that name. Please rename it first or choose a different name for this field. هناك حقل بهذا الاسم بالفعل. من فضلك غيّر اسمه أو اختر اسمًا مختلفًا لهذا الحقل. - - + + There can only be one primary key for each table. Please modify the existing primary key instead. لكلّ جدول مفتاح أساسي واحد فقط. من فضلك عدّل المفتاح الموجود بدل هذا الأمر. - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. هذا العمود مذكور في مفتاح أجنبي في الجدول %L1 ولا يمكن تغيير اسمه. - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. ثمّة صفّ واحد على الأقل ضُبط هذا الحقل فيه على NULL. لهذا السبب يستحيل ضبط هذه الراية. من فضلك غيّر بيانات الجدول أوّلًا. - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. ثمّة صفّ واحد على الأقل ضُبط هذا الحقل فيه على قيمة ليست بنوع ”عدد صحيح“. لهذا السبب يستحيل ضبط راية الزيادة الآليّة. من فضلك غيّر بيانات الجدول أوّلًا. - + Column '%1' has duplicate data. في العمود ”%L1“ بيانات متكرّرة. - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. يمنع هذا تفعيل راية ”فريد“. من فضلك أزِل البيانات المتكرّرة كي تقدر على تفعيل هذه الراية. - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. أمتأكّد من حذف الحقل ”%L1“؟ ستفقد كل البيانات المخزّنة فيه حاليًا. - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled @@ -1769,33 +1812,33 @@ All data currently stored in this field will be lost. ExtendedScintilla - + Ctrl+H - + Ctrl+H Ctrl+F - + Ctrl+F - + Ctrl+P - + Ctrl+P - + Find... ابحث... - + Find and Replace... ابحث واستبدل... - + Print... اطبع... @@ -1803,124 +1846,129 @@ All data currently stored in this field will be lost. ExtendedTableWidget - + Use as Exact Filter استعملها كمرشّح كما هي - + Containing تحتوي على - + Not containing لا تحتوي على - + Not equal to لا تساوي - + Greater than أكبر من - + Less than أصغر من - + Greater or equal أكبر من أو تساوي - + Less or equal أصغر من أو تساوي - + Between this and... بين هذه و... - + Regular expression تعبير نمطي - + Edit Conditional Formats... حرّر التنسيقات الشرطيّة... - + Set to NULL اضبطها على NULL - + + Cut + + + + Copy انسخ - + Copy with Headers انسخ مع الترويسات - + Copy as SQL انسخ كَ‍ SQL - + Paste ألصِق - + Print... اطبع... - + Use in Filter Expression استعملها في تعبير الترشيح - + Alt+Del - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Shift+C - + Ctrl+Alt+C - + Ctrl+Alt+C - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? محتوى الحافظة أكبر من المدى المحدّد. أتريد إدراجه رغم ذلك؟ - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. <p>لم تُحمّل كلّ البيانات. <b>أتريد تحميل كلّ البيانات قبل تحديد كلّ الصفوف؟</b><p><p>لو اخترت <b>لا</b> فلن تُحمّل أيّة بيانات أخرى ولن يُجرى هذا التحديد.<br/>لو اخترت <b>نعم</b> فعليك الانتظار وقتًا حتّى تُحمّل البيانات، ولكن التحديد هنا سيحدث</p>تحذير: قد يطلب تحميل كلّ البيانات ذاكرة كثيرة لو كانت الجداول ضخمة. - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. تعذّر ضبط التحديد على NULL. على العمود %L1 قيد ”ليس NULL“. @@ -2246,6 +2294,39 @@ x~y Range: values between x and y بنود المفاتيح الأجنبية (ON UPDATE، أو ON DELETE، إلخ.) + + ImageViewer + + + Image Viewer + + + + + Reset the scaling to match the original size of the image. + + + + + Set the scaling to match the size of the viewport. + + + + + Print... + اطبع... + + + + Open preview dialog for printing displayed image + يفتح مربّع حوار المعاينة لطباعة الصورة المعروضة + + + + Ctrl+P + Ctrl+P + + ImportCsvDialog @@ -2280,7 +2361,7 @@ x~y Range: values between x and y - + Tab جدولات @@ -2453,12 +2534,17 @@ x~y Range: values between x and y يستورد CSV - + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + + + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. أخذ استيراد الملف ”%L1“ ‏%L2 م‌ث. منها %L3 م‌ث على دالة الصفّ. - + Inserting row failed: %1 فشل إدراج الصفّ: %L1 @@ -2486,52 +2572,52 @@ You can drag SQL statements from an object row and drop them into other applicat يمكنك سحب إفادات SQL من صفّ في الكائن وإسقاطها في التطبيقات الأخرى أو إلى سيرورة أخرى من ”متصفّح قواعد بيانات SQLite“. - + Un/comment block of SQL code اجعل/لا تجعل كتلة كود SQL تعليقًا - + Un/comment block اجعل/لا تجعل الكتلة تعليقًا - + Comment or uncomment current line or selected block of code حوّل السطر الحالي (أو كتلة الكود المحدّدة) إلى تعليق، أو ألغِ التحويل - + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. اجعل الأسطر المحدّدة (أو الحالي فقط لو لم يكن هناك تحديد) تعليقًا، أو ألغِ ذلك. يتغيّر تحويل كتلة الكود كاملةً حسب أوّل سطر فيها. - + Ctrl+/ - + Ctrl+/ - + Stop SQL execution أوقِف تنفيذ SQL - + Stop execution أوقِف التنفيذ - + Stop the currently running SQL script أوقِف تنفيذ سكربت SQL الذي يعمل حاليًا - + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. تحذير: لا يمكن قراءة pragma هذه، ولهذا استُنتجت هذه القيمة. قد تؤدّي كتابة pragma على تعويض إفادة LIKE مُعاد تعريفها وفّرها امتداد SQLite. - + toolBar1 شريط الأدوات1 @@ -2543,29 +2629,29 @@ You can drag SQL statements from an object row and drop them into other applicat تصفّح البيانات - + Export one or more table(s) to a JSON file صدّر جدولًا أو أكثر إلى ملف JSON - - + + Edit Pragmas This has to be equal to the tab title in all the main tabs حرّر Pragmas - + Edit Database &Cell تحرير &خليّة قاعدة البيانات - + DB Sche&ma م&خطّط قاعدة البيانات - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. @@ -2575,919 +2661,943 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed يمكنك سحب إفادات SQL من عمود ”المخطّط“ وإسقاطها في محرّر SQL أو في أيّ تطبيق آخر. - + &Remote الب&عيد - - + + Execute SQL This has to be equal to the tab title in all the main tabs نفّذ SQL - - + + Execute current line نفّذ السطر الحالي - + This button executes the SQL statement present in the current editor line يُنفّذ هذا الزر إفادة SQL الظاهرة في سطر المحرّر الحالي - + Shift+F5 - + Shift+F5 - + Open an existing database file in read only mode افتح ملف قاعدة بيانات موجود في وضع القراءة فقط - + Opens the SQLCipher FAQ in a browser window يفتح الأسئلة الشائعة عن SQLCipher في نافذة المتصفّح - + &File مل&ف - + &Import ا&ستورِد - + &Export &صدّر - + + Recent Files + + + + &Edit ت&حرير - + &View من&ظور - + &Help م&ساعدة - + &Tools أ&دوات - + DB Toolbar شريط قاعدة البيانات - + SQL &Log س&جلّ SQL - + Show S&QL submitted by اعرض SQL الذي ن&فّذه - + User المستخدم - + Application التطبيق - + Error Log سجلّ الأخطاء - + This button clears the contents of the SQL logs يمسح هذا الزر محتويات سجلّات SQL - + &Clear ا&مسح - + This panel lets you examine a log of all SQL commands issued by the application or by yourself تتيح لك هذه اللوحة فحص كلّ أوامر SQL التي نفّذها التطبيق أو المستخدم - + &Plot الر&سم البياني - + &New Database... قاعدة بيانات &جديدة... - - + + Create a new database file أنشِئ ملف قاعدة بيانات جديد - + This option is used to create a new database file. يُستخدم هذا الخيار لإنشاء ملف قاعدة بيانات جديد. - + Ctrl+N - + Ctrl+N - - + + &Open Database... ا&فتح قاعدة بيانات... - - - - - + + + + + Open an existing database file افتح ملف قاعدة بيانات موجود - - - + + + This option is used to open an existing database file. يُستخدم هذا الخيار لفتح ملف قاعدة بيانات موجود. - + Ctrl+O - + Ctrl+O - + &Close Database أ&غلِق قاعدة البيانات - + This button closes the connection to the currently open database file يُغلق هذا الزر الاتصال بملف قاعدة البيانات المفتوح حاليًا - - + + Ctrl+W - + Ctrl+W - + &Revert Changes أرجِ&ع التعديلات - - + + Revert database to last saved state أرجِع قاعدة البيانات إلى آخر حالة محفوظة - + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. يُستعمل هذا الخيار لإرجاع ملف قاعدة البيانات إلى آخر حالة محفوظة له. ستفقد كلّ التعديلات عليه منذ آخر عملية حفظ أجريتها. - + &Write Changes ا&كتب التعديلات - - + + Write changes to the database file اكتب التعديلات في ملف قاعدة البيانات - + This option is used to save changes to the database file. يُستعمل هذا الخيار لكتابة التعديلات في ملف قاعدة البيانات. - + Ctrl+S - + Ctrl+S - + Compact &Database... رُصّ &قاعدة البيانات - + Compact the database file, removing space wasted by deleted records رُصّ ملف قاعدة البيانات، مُزيلًا المساحة الضائعة بسبب حذف السجلّات - - + + Compact the database file, removing space wasted by deleted records. رُصّ ملف قاعدة البيانات، مُزيلًا المساحة الضائعة بسبب حذف السجلّات. - + E&xit ا&خرج - + Ctrl+Q - + Ctrl+Q - + &Database from SQL file... &قاعدة بيانات من ملف SQL... - + Import data from an .sql dump text file into a new or existing database. استورِد بيانات من ملف ‎.sql نصي مفرّغ إلى قاعدة بيانات جديدة أو موجودة. - + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. يتيح لك هذا الخيار استيراد البيانات من ملف ‎.sql نصي مفرّغ إلى قاعدة بيانات جديدة أو موجودة. يمكن إنشاء ملفات SQL المفرّغة في أغلب محرّكات قواعد البيانات، بما فيها MySQL وPostgreSQL. - + &Table from CSV file... ج&دولًا من ملف CSV... - + Open a wizard that lets you import data from a comma separated text file into a database table. افتح مرشدًا يساعدك في استيراد البيانات من ملف نصي مقسوم بفواصل إلى جدول قاعدة البيانات. - + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. افتح مرشدًا يساعدك في استيراد البيانات من ملف نصي مقسوم بفواصل إلى جدول قاعدة البيانات. يمكن إنشاء ملفات CSV في أغلب تطبيقات قواعد البيانات والجداول الممتدّة. - + &Database to SQL file... &قاعدة بيانات إلى ملف SQL... - + Export a database to a .sql dump text file. صدّر قاعدة بيانات إلى ملف ‎.sql نصي مفرّغ. - + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. يتيح لك هذا الخيار تصدير قاعدة بيانات إلى ملف ‎.sql نصي مفرّغ. يمكن لملفات SQL المفرّغة احتواء كلّ البيانات الضرورية لإعادة إنشاء قاعدة البيانات في أغلب محرّكات قواعد البيانات، فما فيها MySQL وPostgreSQL. - + &Table(s) as CSV file... الج&داول كملف CSV... - + Export a database table as a comma separated text file. صدّر جدول قاعدة بيانات كملف نصي مقسوم بفواصل. - + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. صدّر جدول قاعدة بيانات كملف نصي مقسوم بفواصل، جاهز ليُستورد إلى تطبيقات قواعد البيانات أو الجداول الممتدّة الأخرى. - + &Create Table... أ&نشِئ جدولًا... - + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database افتح مرشد إنشاء الجدول، حيث تستطيع تحديد اسم وحقول للجدول الجديد في قاعدة البيانات - + &Delete Table... ا&حذف الجدول... - - + + Delete Table احذف الجدول - + Open the Delete Table wizard, where you can select a database table to be dropped. افتح مرشد حذف الجدول، حيث يمكنك تحديد جدول قاعدة البيانات الذي سيُحذف. - + &Modify Table... &عدّل الجدول... - + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. افتح مرشد تعديل الجدول، حيث يمكنك تغيير اسم أحد الجداول الموجودة. يمكنك أيضًا إضافة حقول أو حذفها إلى ومن الجدول، كما وتعديل أسماء الحقول وأنواعها. - + Create &Index... أنشِئ &فهرسًا... - + Open the Create Index wizard, where it is possible to define a new index on an existing database table. افتح جدول إنشاء الفهارس، حيث يمكنك تحديد فهرس جديد في جدول قاعدة بيانات موجود. - + &Preferences... التف&ضيلات... - - + + Open the preferences window. افتح نافذة التفضيلات. - + &DB Toolbar شريط &قاعدة البيانات - + Shows or hides the Database toolbar. يعرض أو يُخفي شريط قاعدة البيانات.. - + + New &tab + + + + Ctrl+T - + Ctrl+T + + + + Open SQL file(s) + افتح ملفات SQL + + + + This button opens files containing SQL statements and loads them in new editor tabs + يفتح هذا الزر ملفات تحتوي إفادات SQL ويحمّلها في ألسنة محرّر جديدة - + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file - + يتيح لك هذا الزر حفظ كلّ الإعدادات المرتبطة بقاعدة البيانات المفتوحة في ملف مشروع «متصفّح قواعد بيانات SQLite» - + This button lets you open a DB Browser for SQLite project file - + يتيح لك هذا الزر فتح ملف مشروع «متصفّح قواعد بيانات SQLite» - + Browse Table تصفّح الجدول - + W&hat's This? ما ه&ذا؟ - + Ctrl+F4 - + Ctrl+F4 - + Shift+F1 - + Shift+F1 - + Execute all/selected SQL نفّذ كلّ إفادات SQL أو المحدّدة فقط - + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. يُنفّذ هذا الزر إفادات SQL المحدّدة حاليًا. إن لم تحدّد شيئًا فستُنفّذ كلّ إفادات SQL. - + &Load Extension... &حمّل امتدادًا... - + Execute line نفّذ السطر - + &Wiki الوي&كي - + F1 - + Bug &Report... أبلِغ عن علّ&ة... - + Feature Re&quest... ا&طلب ميزة... - + Web&site موقع الو&ب - + &Donate on Patreon... تبرّع &عبر باتريون... - This button lets you save all the settings associated to the open DB to a DB4S project file - يتيح لك هذا الزر حفظ كلّ الإعدادات المرتبطة بقاعدة البيانات المفتوحة في ملف مشروع DB4S - - - + Open &Project... افتح م&شروعًا... - This button lets you open a DB4S project file - يتيح لك هذا الزر فتح ملف مشروع DB4S - - - + &Attach Database... أر&فِق قاعدة بيانات... - - + + Add another database file to the current database connection أضِف ملف قاعدة بيانات آخر إلى اتصال قاعدة البيانات الحالي - + This button lets you add another database file to the current database connection يتيح لك هذا الزر إضافة ملف قاعدة بيانات آخر إلى اتصال قاعدة البيانات الحالي - + &Set Encryption... ا&ضبط التعمية... - + SQLCipher &FAQ أ&سئلة شائعة عن SQLCipher - + Table(&s) to JSON... الج&دول/الجداول إلى JSON... - + Open Data&base Read Only... افتح قاع&دة بيانات للقراءة فقط... - + Ctrl+Shift+O - + Ctrl+Shift+O - + Save results احفظ النتائج - + Save the results view احفظ منظور النتائج - + This button lets you save the results of the last executed query يتيح لك هذا الزر حفظ نتائج آخر استعلام نُفّذ - - + + Find text in SQL editor ابحث عن النصوص في محرّر SQL - + Find ابحث - + This button opens the search bar of the editor يفتح هذا الزر شريط البحث للمحرّر - + Ctrl+F - + Ctrl+F - - + + Find or replace text in SQL editor ابحث أو استبدل النصوص في محرّر SQL - + Find or replace ابحث أو استبدل - + This button opens the find/replace dialog for the current editor tab يفتح هذا الزر مربّع حوار البحث والاستبدال للسان المحرّر الحالي - + Ctrl+H - + Ctrl+H - + Export to &CSV &صدّر بنسق CSV - + Save as &view احفظ كمن&ظور - + Save as view احفظ كمنظور - + Shows or hides the Project toolbar. اعرض أو أخفِ شريط أدوات المشروع. - + Extra DB Toolbar شريط أدوات قواعد البيانات الإضافي - + New In-&Memory Database قاعدة بيانات جديدة في ال&ذاكرة - + Drag && Drop Qualified Names اسحب وأسقِط الأسماء المؤهّلة - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor استخدم الأسماء المؤهّلة (مثل ‎"Table"."Field"‎) عند سحب الكائنات وإسقاطها في المحرّر. - + Drag && Drop Enquoted Names اسحب وأسقِط الأسماء مقتبسةً - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor استخدم المُعرّفات مهرّبة (مثلًا "Table1") عند سحب الكائنات وإسقاطها في المحرّر - + &Integrity Check فحص ال&سلامة - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. يُشغّل integrity_check pragma على قاعدة البيانات المفتوحة ويُعيد النتائج في لسان ”نفّذ SQL“. يُجري pragma فحص سلامة على قاعدة البيانات كاملةً. - + &Foreign-Key Check فحص الم&فتاح الأجنبي - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab يُشغّل foreign_key_check pragma على قاعدة البيانات المفتوحة ويُعيد النتائج في لسان ”نفّذ SQL“ - + &Quick Integrity Check فحص سلام&ة سريع - + Run a quick integrity check over the open DB يُشغّل فحص سلامة سريع على قاعدة البيانات المفتوحة - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. يُشغّل quick_check pragma على قاعدة البيانات المفتوحة ويُعيد النتائج في لسان ”نفّذ SQL“. يُجري هذا الأمر أغلب ما تُجريه PRAGMA integrity_check إلّا أنّه أسرع. - + &Optimize ح&سّن - + Attempt to optimize the database حاوِل تحسين قاعدة البيانات - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. يُشغّل optimize pragma على قاعدة البيانات المفتوحة. قد تؤدّي pragma إلى إجراء بعض التحسينات لها أن تُحسّن من أداء الاستعلامات مستقبلًا. - - + + Print اطبع - + Print text from current SQL editor tab اطبع النص من لسان محرّر SQL الحالي - + Open a dialog for printing the text in the current SQL editor tab افتح مربّع حوار طباعة النص في لسان محرّر SQL الحالي - + Print the structure of the opened database اطبع بنية قاعدة البيانات المفتوحة - + Open a dialog for printing the structure of the opened database افتح مربّع حوار طباعة بنية قاعدة البيانات المفتوحة - + &Save Project As... احف&ظ المشروع كَ‍... - - - + + + Save the project in a file selected in a dialog احفظ المشروع في ملف تحدّده من مربّع حوار - + Save A&ll احفظ ال&كلّ - - - + + + Save DB file, project file and opened SQL files احفظ ملف قاعدة البيانات وملف المشروع وملفات SQL المفتوحة - + Ctrl+Shift+S - + Ctrl+Shift+S - - &Recently opened - المفتوحة حدي&ثًا + + Close Pro&ject + + + + + Close project and database files and return to the initial state + + + + + Ctrl+Shift+F4 + + + + + + Detach Database + + + + + + Detach database file attached to the current database connection + - - Open &tab - افتح ل&سانًا + + &Recently opened + المفتوحة حدي&ثًا - - + + Project Toolbar شريط أدوات المشروع - + Extra DB toolbar شريط أدوات قواعد البيانات الإضافي - - - + + + Close the current database file أغلِق ملف قاعدة البيانات الحالي - + &About &عن - + This button opens a new tab for the SQL editor يفتح هذا الزر لسانًا جديدًا لمحرّر SQL - + &Execute SQL ن&فّذ SQL - - Open SQL file - افتح ملف SQL - - - - This button opens a file containing SQL statements and loads it in a new editor tab - يفتح هذا الزر ملفًا يحتوي إفادات SQL ويحمّله في لسان محرّر جديد - - - - - + + + Save SQL file احفظ ملف SQL - + Ctrl+E - + Ctrl+E - + Export as CSV file صدّر كملف بنسق CSV - + Export table as comma separated values file صدّر الجدول كملف نصي مقسوم بفواصل - + Sa&ve Project احف&ظ المشروع - - + + Save the current session to a file احفظ الجلسة الحالية في ملف - - + + Load a working session from a file حمّل جلسة عمل من ملف - - + + Save SQL file as احفظ ملف SQL كَ‍ - + This button saves the content of the current SQL editor tab to a file يحفظ هذا الزر محتويات لسان محرّر SQL الحالي في ملف - + &Browse Table ت&صفّح الجدول - + Copy Create statement انسخ إفادة الإنشاء - + Copy the CREATE statement of the item to the clipboard انسخ إفادة CREATE للعنصر إلى الحافظة - + Ctrl+Return - + Ctrl+Return - + Ctrl+L - + Ctrl+L - - + + Ctrl+P - + Ctrl+P - + Ctrl+D - + Ctrl+D - + Ctrl+I - + Ctrl+I - + Encrypted معمّاة - + Database is encrypted using SQLCipher قاعدة البيانات معمّاة بامتداد SQLCipher - + Read only للقراءة فقط - + Database file is read only. Editing the database is disabled. ملف قاعدة البيانات للقراءة فقط. تحرير قاعدة البيانات معطّل. - + Database encoding ترميز قاعدة البيانات - - + + Choose a database file اختر ملف قاعدة بيانات - - - + + + Choose a filename to save under اختر اسمًا للملف لحفظه به - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 @@ -3496,310 +3606,365 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed %L1 - + Are you sure you want to undo all changes made to the database file '%1' since the last save? أمتأكّد من التراجع عن كلّ التعديلات التي أجريتها على ملف قاعدة البيانات ”%L1“ منذ آخر حفظ؟ - + Choose a file to import اختر ملفًا لاستيراده - + Text files(*.sql *.txt);;All files(*) الملفات النصية(*.sql *.txt);;كلّ الملفات(*) - + Do you want to create a new database file to hold the imported data? If you answer no we will attempt to import the data in the SQL file to the current database. أتريد إنشاء ملف قاعدة بيانات جديد ليحتفظ بالبيانات المستوردة؟ إن كانت إجابتك ”لا“ فسنحاول استيراد البيانات من ملف SQL إلى قاعدة البيانات الحالية. - - Close current SQL tab - أغلِق لسان SQL الحالي - - - + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? ما زلت تنفّذ إفادات SQL. بإغلاق قاعدة البيانات الآن تكون أوقفت التنفيذ وقد يترك ذلك قاعدة البيانات في حال غير مستقرّة. أمتأكّد من إغلاق قاعدة البيانات؟ - + Do you want to save the changes made to the project file '%1'? أتريد حفظ التعديلات التي أجريتها في ملف المشروع ”%L1“؟ - + File %1 already exists. Please choose a different name. الملف %L1 موجود بالفعل. من فضلك اختر اسمًا آخر. - + Error importing data: %1 خطأ أثناء استيراد البيانات: %L1 - + Import completed. اكتمل الاستيراد. - + Delete View احذف المنظور - + Modify View عدّل المنظور - + Delete Trigger احذف المحفّز - + Modify Trigger عدّل المحفّز - + Delete Index احذف الفهرس - + Modify Index عدّل الفهرس - + Modify Table عدّل الجدول - + Do you want to save the changes made to SQL tabs in a new project file? أتريد حفظ التعديلات التي أجريتها على ألسنة SQL في ملف مشروع جديد؟ - + Do you want to save the changes made to the SQL file %1? أتريد حفظ التعديلات التي أجريتها على ملف SQL بالاسم ”%L1“؟ - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? - ما زلت تنفّذ إفادات SQL في هذا اللسان. بإغلاق قاعدة البيانات الآن تكون أوقفت التنفيذ وقد يترك ذلك قاعدة البيانات في حال غير مستقرّة. أمتأكّد من إغلاق هذا اللسان؟ - - - + Could not find resource file: %1 تعذّر العثور على ملف الموارد: %L1 - + Choose a project file to open اختر ملف مشروع لفتحه - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - يستعمل ملف المشروع هذا نسق ملفات قديم إذ أُنشأ باستعمال «متصفّح قواعد بيانات SQLite» بإصدارة ٣٫١٠ أو أقل. تحميل نسق الملفات هذا مدعوم بشكل كلي حتّى الآن، ولكنّنا ننصح بتحويل كلّ ملفات المشاريع لديك لتستعمل النسق الجديد لأن دعم النسق القديمة قد ينتهي في المستقبل. يمكنك تحويل ملفاتك بفتحها وإعادة حفظها فحسب. - - - + Could not open project file for writing. Reason: %1 تعذّر فتح ملف المشروع للكتابة. السبب: %L1 - + Setting PRAGMA values will commit your current transaction. Are you sure? سيؤّدي ضبط قيم PRAGMA إلى إيداع المعاملة الحالية. أمتأكّد؟ - + + Ctrl+Tab + + + + + Ctrl+Shift+Tab + + + + + Ctrl+PgUp + + + + + Clear List + + + + + Window Layout + تخطيط النافذة + + + Reset Window Layout صفّر تخطيط النافذة - + Alt+0 - + Alt+0 + + + + Simplify Window Layout + بسّط تخطيط النافذة + + + + Shift+Alt+0 + Shift+Alt+0 + + + + Dock Windows at Bottom + ارصف النوافذ بالأسفل + + + + Dock Windows at Left Side + ارصف النوافذ على اليسار + + + + Dock Windows at Top + ارصف النوافذ بالأعلى - + The database is currenctly busy. قاعدة البيانات مشغولة حاليًا. - + Click here to interrupt the currently running query. انقر هنا لمقاطعة الاستعلام الذي يعمل حاليًا. - + Could not open database file. Reason: %1 تعذّر فتح ملف قاعدة البيانات. السبب: %L1 - + In-Memory database قاعدة بيانات في الذاكرة - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. أمتأكّد من حذف الجدول ”%L1“؟ ستفقد كلّ البيانات المرتبطة بالجدول. - + Are you sure you want to delete the view '%1'? أمتأكّد من حذف المنظور ”%L1“؟ - + Are you sure you want to delete the trigger '%1'? أمتأكّد من حذف المحفّز ”%L1“؟ - + Are you sure you want to delete the index '%1'? أمتأكّد من حذف الفهرس ”%L1“؟ - + Error: could not delete the table. خطأ: تعذّر حذف الجدول. - + Error: could not delete the view. خطأ: تعذّر حذف المنظور. - + Error: could not delete the trigger. خطأ: تعذّر حذف المحفّز. - + Error: could not delete the index. خطأ: تعذّر حذف الفهرس. - + Message from database engine: %1 الرسالة من محرّك قواعد البيانات: %L1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? تحرير الجدول يطلب حفظ كلّ التغييرات المرجأة الآن. أمتأكّد من حفظ قاعدة البيانات؟ - + Error checking foreign keys after table modification. The changes will be reverted. خطأ أثناء فحص المفاتيح الأجنبية بعد تعديل الجدول. ستُرجَع التغييرات. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. لم يمرّ الجدول فحص المفتاح الأجنبي.<br/>عليك تشغيل ”أدوات -> فحص المفتاح الأجنبي“ وإصلاح المشاكل المذكورة. - + + Edit View %1 + حرّر المنظور %L1 + + + + Edit Trigger %1 + حرّر المحفّز %L1 + + + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. أنت تنفّذ حقًا إفادات SQL. أتريد إيقافها لتنفيذ الإفادات الحالية بدلها؟ وقد يترك ذلك قاعدة البيانات في حال غير مستقرّة. - + -- EXECUTING SELECTION IN '%1' -- -- ينفّذ التحديد في ”%L1“ -- - + -- EXECUTING LINE IN '%1' -- -- ينفّذ السطر في ”%L1“ -- - + -- EXECUTING ALL IN '%1' -- -- ينفّذ الكلّ في ”%L1“ -- - - + + At line %1: عند السطر %L1: - + Result: %1 النتيجة: %L1 - + Result: %2 النتيجة: %L2 - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? سيؤّدي ضبط قيم PRAGMA أو التنظيف إلى إيداع المعاملة الحالية. أمتأكّد؟ - + + Opened '%1' in read-only mode from recent file list + فُتح ”%L1“ بوضع القراءة فقط من قائمة الملفات المفتوحة حديثًا + + + + Opened '%1' from recent file list + فُتح ”%L1“ من قائمة الملفات المفتوحة حديثًا + + + &%1 %2%3 ‏&%L1 ‏‎%L2‎‏%L3 - + (read only) (للقراءة فقط) - + Open Database or Project افتح قاعدة بيانات أو مشروع - + Attach Database... أرفِق قاعدة بيانات... - + Import CSV file(s)... استورِد ملفات CSV... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. اختر الإجراء الذي تريد تطبيقه على الملفات التي أفلتّها. <br/>لاحظ أنّ خيار ”استورِد“ هو الوحيد الذي سيُعالج الملفات المتعدّدة. @@ -3811,113 +3976,133 @@ Are you sure? - + Do you want to save the changes made to SQL tabs in the project file '%1'? أتريد حفظ التعديلات التي أجريتها على ألسنة SQL في ملف المشروع ”%L1“؟ - + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + + + + Project saved to file '%1' حُفظ المشروع في الملف ”%L1“ - + + Yes. Don't ask again + + + + + This action will open a new SQL tab with the following statements for you to edit and run: + يفتح هذا الإجراء لسان SQL جديد يحتوي الإفادات الآتية لتحرّرها وتنفّذها: + + + Busy (%1) مشغولة (%L1) - + Rename Tab غيّر اسم اللسان - + Duplicate Tab كرّر اللسان - + Close Tab أغلِق اللسان - + Opening '%1'... يفتح ”%L1“... - + There was an error opening '%1'... خطأ أثناء فتح ”%L1“... - + Value is not a valid URL or filename: %1 القيمة ليست عنوانًا ولا اسم ملف صالح: %L1 - + %1 rows returned in %2ms أُعيد من الصفوف %L1 خلال %L2 م‌ث - + Choose text files اختر ملفات نصية - + Import completed. Some foreign key constraints are violated. Please fix them before saving. اكتمل الاستيراد. انتُهكت بعض قيود المفتاح الأجنبي. من فضلك أصلِحها قبل الحفظ. - + Select SQL file to open اختر ملف SQL لفتحه - + Select file name اختر اسم الملف - + Select extension file اختر ملف الامتداد - + Extension successfully loaded. نجح تحميل الامتداد. - + Error loading extension: %1 خطأ أثناء تحميل الامتداد: %L1 - - + + Don't show again لا تعرض ثانيةً - + New version available. تتوفّر إصدارة جديدة. - + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. تتوفّر إصدارة جديدة من «متصفّح قواعد بيانات SQLite» ‏(%L1٫‏%L2٫‏%L3).<br/><br/>من فضلك نزّلها من <a href='%4'>%L4</a>. - + Collation needed! Proceed? قواعد مقارنة المحارف مطلوبة! أنتابع؟ - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -3926,57 +4111,57 @@ Create a backup! خُذ نسخة احتياطيّة! - + creating collation يُنشئ قواعد مقارنة المحارف - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. ضع اسمًا جديدًا للسان SQL. استخدم محرف ”&&“ ليُتاح استخدام المحرف الذي يليه كاختصار لوحة مفاتيح. - + Please specify the view name من فضلك اختر اسم المنظور - + There is already an object with that name. Please choose a different name. هناك كائن بنفس الاسم. من فضلك اختر اسمًا آخر. - + View successfully created. نجح إنشاء المنظور. - + Error creating view: %1 خطأ أثناء إنشاء المنظور: %L1 - + This action will open a new SQL tab for running: سيفتح هذا الإجراء لسان SQL جديد لتشغيل: - + Press Help for opening the corresponding SQLite reference page. انقر ”مساعدة“ لفتح صفحة SQLite المرجعية المناسبة. - + DB Browser for SQLite project file (*.sqbpro) ملف مشروع «متصفّح قواعد بيانات SQLite» ‏(*.sqbpro) - + Execution finished with errors. اكتمل التنفيذ وحدثت أخطاء. - + Execution finished without errors. اكتمل التنفيذ دون أخطاء. @@ -3991,7 +4176,7 @@ Create a backup! Alt+Del - + Alt+Del @@ -4002,41 +4187,37 @@ Create a backup! رسم بياني - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> تعرض هذه اللوحة قائمة الأعمدة للمجدول الذي تتصفّحه حاليًا أو للاستعلام الذي نُفّذ حديثًا. يمكنك تحديد الأعمدة التي تريد استخدامها كمحاور س أو ص للوحة الرسم البياني أدناه. يعرض الجدول نوع المحور المكتشف والذي سيؤثّر على الرسم البياني الناتج. يمكنك تحديد الأعمدة العددية فقط لمحور ص، عكس محور س حيث يمكنك تحديد:<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">تاريخ/وقت</span>: السلاسل النصية التي لها التنسيق ”yyyy-MM-dd hh:mm:ss“ أو ”yyyy-MM-ddThh:mm:ss“</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">تاريخ</span>: السلاسل النصية التي لها التنسيق ”yyyy-MM-dd“</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">وقت</span>: السلاسل النصّية التي لها التنسيق ”hh:mm:ss“</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">لصيقة</span>: السلاسل النصية التي لها تنسيقات أخرى. تحديد هذا العمود كمحور x سيُنتج رسم بياني بأشرطة حيث قيم الأعمدة ستكون لصيقات للأشرطة</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">عدد</span>: قيم عددية صحيحة أو حقيقية</li></ul>بنقر خلايا ص مزدوجًا يمكنك تغيير اللون المستخدم لذلك الرسم. - + Columns الأعمدة - + X س - Y - ص - - - + Y1 - + ص1 - + Y2 - + ص2 - + Axis Type نوع المحور - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -4053,136 +4234,136 @@ Select the axes or axes labels to drag and zoom only in that orientation. - + Line type: نوع الخطوط: - - + + None بلا - + Line خط - + StepLeft عتبة يسرى - + StepRight عتبة يمنى - + StepCenter عتبة وسطى - + Impulse نبض - + Point shape: شكل النقط: - + Cross علامة ضرب - + Plus علامة جمع - + Circle دائرة - + Disc قرص - + Square مربّع - + Diamond معيّن - + Star نجمة - + Triangle مثلّث - + TriangleInverted مثلّث مقلوب - + CrossSquare علامة ضرب في مربّع - + PlusSquare علامة جمع في مربّع - + CrossCircle علامة ضرب في دائرة - + PlusCircle علامة جمع في دائرة - + Peace رمز السلام - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> <p>احفظ الرسم البياني الحالي...</p><p>نسق الملف يحدّده الامتداد (png وjpg وpdf وbmp)</p> - + Save current plot... احفظ الرسم البياني الحالي... - - + + Load all data and redraw plot حمّل كلّ البيانات وأعِد رسم الرسم البياني - - - + + + Row # رقم الصف @@ -4207,65 +4388,65 @@ Select the axes or axes labels to drag and zoom only in that orientation.أشرطة مرصوصة - + Date/Time تاريخ/وقت - + Date تاريخ - + Time وقت - - + + Numeric عدد - + Label لصيقة - + Invalid غير صالح - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. حمّل كلّ البيانات وأعِد رسم الرسم البياني. تحذير: لم تُجلب كلّ البيانات من الجدول بسبب استعمال آليّة جلب جزئية. - + Choose an axis color اختر لونًا للمحور - + Choose a filename to save under اختر اسمًا للملف لحفظه - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;كلّ الملفات(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. توجد منحنيات في هذا الرسم البياني ولا يمكن تطبيق نمط الخطوط المحدّد إلّا على الرسوم البيانية المفروزة حسب س. إمّا أن تفرز الجدول أو الاستعلام حسب س لإزالة المنحنيات أو تحديد أحد الأنماط التي تدعمها المنحنيات: ”بلا“ أو ”خط“. - + Loading all remaining data for this table took %1ms. أخذ تحميل كلّ البيانات الباقية لهذا الجدول %L1 م‎ث. @@ -4299,8 +4480,8 @@ Warning: not all data has been fetched from the table yet due to the partial fet - - + + ... ... @@ -4322,12 +4503,14 @@ Warning: not all data has been fetched from the table yet due to the partial fet - - - - - - + + + + + + + + enabled مفعّلة @@ -4337,232 +4520,227 @@ Warning: not all data has been fetched from the table yet due to the partial fet اعرض خيارات البعيد - + &Database &قاعدة البيانات - + Database &encoding &ترميز قاعدة البيانات - + Open databases with foreign keys enabled. افتح قواعد البيانات والمفاتيح الأجنبية مفعّلة. - + &Foreign keys الم&فاتيح الأجنبية - + Remove line breaks in schema &view أزِل كاسرات الأسطر في من&ظور المخطّط - + Prefetch block si&ze &حجم الكتلة لجلبها مسبقًا - - Advanced - متقدّم - - - + SQ&L to execute after opening database إ&فادة SQL لتُنفّذ بعد فتح قاعدة البيانات - + Default field type نوع الحقول المبدئي - + Data &Browser مت&صفّح البيانات - + Font الخط - + &Font ال&خط - + Content المحتوى - + Symbol limit in cell أقصى عدد من الرموز في كلّ خليّة - + NULL NULL - + Regular العادية - + Binary البيانات الثنائيّة - + Background الخلفية - + Filters المرشّحات - + Threshold for completion and calculation on selection عتبة إكمال النصوص والحساب - + Show images in cell اعرض الصور في الخلايا - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. فعّل هذا الخيار لعرض معاينة كائنات BLOB التي فيها بيانات صور داخل الخلايا. ولكن يمكن أن يؤثّر هذا على أداء متصفّح البيانات. - + Escape character محرف الهروب - + Delay time (&ms) وقت التأخير (&م‌ث) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. اضبط وقت انتظار قبل تطبيق قيمة المرشّح الجديدة. يمكن ضبطه إلى القيمة صِفر لتعطيل الانتظار. - + &SQL م&حرّر SQL - + Settings name الاسم في الإعدادات - + Context السياق - + Colour اللون - + Bold ثخين - + Italic مائل - + Underline مسطّر - + Keyword الكلمات المفتاحية - + Function الدوال - + Table الجداول - + Comment التعليقات - + Identifier المعرّفات - + String السلاسل النصية - + Current line السطر الحالي - + SQL &editor font size حجم الخط في م&حرّر SQL - + Tab size حجم التبويبات - + SQL editor &font &خط محرّر SQL - + Error indicators مؤشّرات الأخطاء - + Hori&zontal tiling التراتب أف&قيًا - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. إن فعّلته فسترى محرّر أكواد SQL ومنظور جدول النتائج جنبًا إلى جنب بدلًا من أن يكونان فوق بعض. - + Code co&mpletion إ&كمال الكود @@ -4672,17 +4850,48 @@ Warning: not all data has been fetched from the table yet due to the partial fet نمط البرمجيّة - + + This sets the font size for all UI elements which do not have their own font size option. + يضبط هذا حجم خط كلّ عناصر الواجهة التي لا تحدّد لنفسها حجم خط. + + + + Font size + حجم الخط + + + + Max Recent Files + + + + + Prompt to save SQL tabs +in new project file + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. إن فعّلته فستُزال كاسِرات الأسطر في عمود ”المخطّط“ في لسان ”بنية قاعدة البيانات“ كما والرصيف والخرج المطبوع. - + + Database structure font size + حجم خط بنية قاعدة البيانات + + + Font si&ze &حجم الخط - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. @@ -4693,294 +4902,378 @@ Can be set to 0 for disabling the functionalities. يمكنك ضبطه على صِفر لتعطيل الميزة. - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. هذا أقصى عدد من الصفوف في كلّ جدول لتفعيل إكمال القيمة حسب البيانات الحالية في العمود. يمكن ضبطه على صفر لتعطيل الإكمال. - + Field display عرض الحقول - + Displayed &text ال&نص المعروض - - - + - - + + + + Click to set this color انقر لضبط هذا اللون - + Text color لون النص - + Background color لون الخلفية - + Preview only (N/A) معاينة فقط (غير متوفّر) - + Foreground الأمامية - + + selected_bg + + + + + Selection background + + + + + selected_fg + + + + + Selection foreground + + + + + highlight + + + + + Highlight + + + + SQL &results font size حجم خط ن&تائج SQL - + &Wrap lines لُ&فّ الأسطر - + Never أبدًا - + At word boundaries عند حدود الكلمات - + At character boundaries عند حدود المحارف - + At whitespace boundaries عند حدود المسافات - + &Quotes for identifiers &علامات التنصيص للمُعرّفات - + Choose the quoting mechanism used by the application for identifiers in SQL code. اختر آليّة التنصيص التي سيستخدمها التطبيق للمُعرّفات في كود SQL. - + "Double quotes" - Standard SQL (recommended) "علامات تنصيص مزدوجة" - SQL القياسية (مستحسن) - + `Grave accents` - Traditional MySQL quotes `نبر الإطالة` - علامات اقتباس MySQL التقليدية - + [Square brackets] - Traditional MS SQL Server quotes [أقواس مربّعة] - علامات تنصيص خادوم SQL لِمايكروسوفت التقليدي - + Keywords in &UPPER CASE الكلمات المفتاحية &كبيرة الحالة - + When set, the SQL keywords are completed in UPPER CASE letters. إن فعّلته فسيجري إكمال كلمات SQL المفتاحيّة بالأحرف وحالتها كبيرة. - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background إن فعّلته فستُبرز الأسطر في كود SQL التي تسبّبت بأخطاء أثناء آخر تنفيذ وسيُشير إطار النتائج إلى الخطأ في الخلفية - + + Close button on tabs + أزرار إغلاق على الألسنة + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + إن فعّلته فستعرض ألسنة محرّر SQL زرّ إغلاق. وبغضّ النظر عن هذا الخيار، يمكنك استعمال قائمة السياق أو اختصار لوحة المفاتيح لإغلاق تلك الألسنة. + + + &Extensions الامت&دادات - + Select extensions to load for every database: حدّد الامتدادات لتُحمّل لكلّ قاعدة بيانات: - + Add extension أضِف امتدادًا - + Remove extension أزِل الامتداد - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> مع أنّ معامل REGEX مدعوم، إلّا أنّ SQLITE ليس فيها أية خوارزمية تعابير نمطية مُنجزة،<br/>بل تنادي التطبيق الجاري. ينفّذ «متصفّح قواعد بيانات SQLite» هذه الخوارزمية لك<br/>لتستعمل REGEXP دون عناء. مع ذلك، يختلف تنفيذ هذه الميزة ولربّما تحتاج استعمال<br/>واحدة أخرى، لذا فأنت حرّ في تعطيل طريقة التطبيق في التنفيذ وتحميل أيّ من تلك باستعمال<br/>إحدى الامتدادات. إعادة تشغيل التطبيق مطلوبة. - + Disable Regular Expression extension عطّل ملحقة العبارات النمطية - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> توفّر SQLite دالة SQL لتحميل الامتدادات من ملف مكتبة مشتركة. فعّل هذا إن أردت استعمال دالة <span style=" font-style:italic;">load_extension()‎</span> من كود SQL.</p><p>لأسباب أمنية، تحميل الامتداد معطّل مبدئيًا ويجب تفعيله بهذا الإعداد. يمكنك دائمًا تحميل الامتدادات عبر الواجهة الرسومية، حتى لو كان هذا الخيار معطّلًا. - + Allow loading extensions from SQL code اسمح بتحميل الامتدادات من كود SQL - + Remote البعيد - + CA certificates شهادات سلطة الشهادات - + Proxy الوسيط - + Configure اضبط - - + + Export Settings + + + + + Import Settings + + + + + Subject CN اش موضوع التعمية - + Common Name الاسم الشائع - + Subject O المنظّمة موضوع التعمية - + Organization المنظّمة - - + + Valid from صالحة من - - + + Valid to صالحة حتى - - + + Serial number الرقم التسلسلي - + Your certificates شهاداتك - + File الملف - + Subject Common Name الاسم الشائع لموضوع التعمية - + Issuer CN اش المُصدِر - + Issuer Common Name الاسم الشائع للمُصدِر - + Clone databases into استنسخ قواعد البيانات إلى - - + + Choose a directory اختر دليلًا - + + The language will change after you restart the application. ستتغيّر اللغة بعد إعادة تشغيل التطبيق. - + Select extension file اختر ملف الامتداد - + Extensions(*.so *.dylib *.dll);;All files(*) الامتدادات(*.so *.dylib *.dll);;كلّ الملفات(*) - + Import certificate file استورِد ملف شهادة - + No certificates found in this file. لم تُعثر على شهادات في هذا الملف. - + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! أمتأكّد من إزالة هذه الشهادة؟ ستُحذف كلّ بيانات الشهادة من إعدادات التطبيق! - + Are you sure you want to clear all the saved settings? All your preferences will be lost and default values will be used. أمتأكّد من مسح كلّ الإعدادات المحفوظة؟ ستفقد كلّ التفضيلات لديك وستُستعمل القيم المبدئية. + + + Save Settings File + + + + + + Initialization File (*.ini) + + + + + The settings file has been saved in location : + + + + + + Open Settings File + + + + + The settings file was loaded properly. + + + + + The selected settings file is not a normal settings file. +Please check again. + + ProxyDialog @@ -5075,7 +5368,7 @@ All your preferences will be lost and default values will be used. كلّ الملفات (*) - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) ملفات قواعد بيانات SQLite ‏(*.db *.sqlite *.sqlite3 *.db3) @@ -5175,92 +5468,60 @@ All your preferences will be lost and default values will be used. الامتدادات (*.so *.dylib *.dll) - Name - الاسم - - - Commit - الإيداع - - - Last modified - آخر تعديل - - - Size - الحجم + + Initialization File (*.ini) + - RemoteDatabase - - - Error when connecting to %1. -%2 - خطأ أثناء الاتصال بِ‍ %L1. -%L2 - + RemoteCommitsModel - - Error opening remote file at %1. -%2 - خطأ أثناء فتح الملف البعيد في %L1. -%L2 - - - - Error: Invalid client certificate specified. - خطأ: حُدّدت شهادة عميل غير صالحة. + + Commit ID + معرّف الإيداع - - Please enter the passphrase for this client certificate in order to authenticate. - من فضلك أدخِل عبارة السر لشهادة العميل لإجراء الاستيثاق. - - - - Cancel - ألغِ + + Message + الرسالة - - Uploading remote database to -%1 - يرفع قاعدة البيانات البعيدة إلى -%L1 + + Date + التاريخ - - Downloading remote database from -%1 - ينزّل قاعدة البيانات البعيدة من -%L1 + + Author + المؤلّف - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - لم تُحدّث أيّة قاعدة بيانات منذ آخر عمليّة جلب/checkout. أتريد تحديث قاعدة البيانات المحليّة إلى أحدث إصدارة؟ لاحظ بأنّ هذا سيُهمل أيّ تغيير أجريته محليًا! إن لم ترد فقد هذه التغييرات التي أجريتها محليًا، فانقر ”لا“ لفتح النسخة المحليّة. + + Size + الحجم - - - Error: The network is not accessible. - خطأ: تعذّر الوصول إلى الشبكة. + + Authored and committed by %1 + ألّفه وأودعه: %L1 - - Error: Cannot open the file for sending. - خطأ: تعذّر فتح الملف لإرساله. + + Authored by %1, committed by %2 + ألّفه %L1، وأودعه %L2 + + + RemoteDatabase - + Error opening local databases list. %1 خطأ أثناء فتح قائمة قواعد البيانات المحليّة. %L1 - + Error creating local databases list. %1 خطأ أثناء إنشاء قائمة قواعد البيانات المحليّة. @@ -5275,108 +5536,404 @@ All your preferences will be lost and default values will be used. البعيد - + Identity الهويّة - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. - اتّصل بالخادوم البعيد مستخدمًا الهويّة المحدّدة حاليًا. يُأخذ الخادوم الصحيح من الهوّية هو الآخر. + + Push currently opened database to server + ادفع قاعدة البيانات المفتوحة حاليًا إلى الخادوم - - Go - انتقل + + Upload + - - Push currently opened database to server - ادفع قاعدة البيانات المفتوحة حاليًا إلى الخادوم + + DBHub.io + DBHub.io - + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - + <html dir="rtl"> +<p>يمكنك في هذه اللوحة إضافة قواعد البيانات البعيدة من موقع dbhub.io إلى «متصفّح قواعد بيانات SQLite». تحتاج أولًا إلى هويّة:</p> +<ol> +<li>لِج إلى موقع dbhub.io (استعمل معلومات ولوج غِت‌هَب أو غيرها، كما ترغب)</li> +<li>انقر الزر ”لتوليد شهادة العميل“ (وهذه هي الهويّة). هكذا تحصل على ملف شهادة تحفظه على القرص المحلي لديك.</li> +<li>انتقل إلى لسان ”البعيد“ في تفضيلات «متصفّح قواعد بيانات SQLite». انقر الزر لإضافة شهادة جديدة إلى التطبيق واختر ملف الشهادة الذي نزّلته للتو.</li> +</ol> +<p>سترى الآن في لوحة ”البعيد“ هويّتك ويمكنك إضافة قواعد البيانات لتصير بعيدة.</p> +</html> - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB4S. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to create a DB4S certificate (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB4S Preferences. Click the button to add a new certificate to DB4S and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - يمكنك في هذه اللوحة إضافة قواعد البيانات البعيدة من موقع الوِب dbhub.io إلى DB4S. تحتاج أولًا هويّة:<ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">لِج إلى الموقع dbhub.io (استعمل بياناتك على غِت‌هَب أو أيّ بيانات تريد)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">انقر على الزر لإنشاء شهادة DB4S (وهذه ستكون الهويّة). بهذا ستسلتم ملف شهادة (احفظه في قرص محليّ).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">انتقل إلى لسان ”البعيد“ في تفضيلات DB4S. انقر الزر لإضافة شهادة جديدة إلى DB4S واختر ملف الشهادة الذي نزّلته لتوّك.</li></ol>ستعرض لوحة ”البعيد“ الآن الهويّة وستقدر على إضافة قواعد البيانات البعيدة. + + Local + المحلي - - <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> - تستعمل حاليًا هويّة مضمّنة في البرمجيّة وللقراءة فقط. لو أردت رفع قاعدة البيانات فعليك ضبط حسابك على DBHub.io واستعماله.<br/>أليس لديك واحد بعد؟ <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">أنشِئه الآن</span></a> واستورِد الشهادة <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">هنا</span></a> لتُشارك قواعد بياناتك.<br/>زُر <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">الموقع</span></a> للمساعدة والتفاصيل. + + Current Database + قاعدة البيانات الحالية - - Back - عُد + + Clone + استنسخ - - Public - عامّة + + User + المستخدم - - - RemoteModel - - Name - الاسم + + Database + قاعدة البيانات - - Commit - الإيداع + + Branch + الفرع - - Last modified - آخر تعديل + + Commits + الإيداعات - - Size - الحجم + + Commits for + إيداعات الفرع - - - RemotePushDialog - - Push database - دفع قاعدة البيانات + + Delete Database + احذف قاعدة البيانات - - Database na&me to push to - ا&سم قاعدة البيانات الذي سيُدفع إليها + + Delete the local clone of this database + احذف النسخة المحلية من قاعدة البيانات هذه - - Commit message - رسالة الإيداع + + Open in Web Browser + افتح في متصفّح الوِب - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - + + Open the web page for the current database in your browser + افتح صفحة الوِب لقاعدة البيانات الحالية في المتصفّح لديك - - Database licence - رخصة قاعدة البيانات + + Clone from Link + استنسخ من رابط - - Public - عامّة + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + استعمل هذا لتنزيل قاعدة بيانات بعيدة للتعديل عليها محليًا باستعمال المسار الموجود في صفحة الوِب لقاعدة البيانات تلك. + + + + Refresh + أنعِش + + + + Reload all data and update the views + أعِد تحميل كلّ البيانات وحدّث المناظير + + + + F5 + F5 + + + + Clone Database + استنسخ قاعدة بيانات + + + + Open Database + افتح قاعدة بيانات + + + + Open the local copy of this database + افتح النسخة المحلية من قاعدة البيانات هذه + + + + Check out Commit + اسحب الإيداع (Check out) + + + + Download and open this specific commit + نزّل هذا الإيداع بعينه وافتحه + + + + Check out Latest Commit + اسحب الإيداع الأخير (Check out) + + + + Check out the latest commit of the current branch + اسحب الإيداع الأخير (Check out) في الفرع الحالي + + + + Save Revision to File + احفظ المراجعة في ملف + + + + Saves the selected revision of the database to another file + يحفظ المراجعة المحدّدة لقاعدة البيانات في ملف آخر + + + + Upload Database + ارفع قاعدة البيانات + + + + Upload this database as a new commit + يرفع قاعدة البيانات هذه كإيداع جديد + + + + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> + تستعمل حاليًا هويّة مضمّنة في البرمجيّة وللقراءة فقط. لو أردت رفع قاعدة البيانات فعليك ضبط حسابك على DBHub.io واستعماله.<br/>أليس لديك واحد بعد؟ <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">أنشِئه الآن</span></a> واستورِد الشهادة <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">هنا</span></a> لتُشارك قواعد بياناتك.<br/>زُر <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">الموقع</span></a> للمساعدة والتفاصيل. + + + + Back + عُد + + + + Select an identity to connect + اختر هويّة للاتصال + + + + Public + عامّة + + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + بهذا تُنزّل قاعدة بيانات من خادوم بعيد للتعديل عليها محليًا. +من فضلك أدخِل المسار الذي ستستنسخ القاعدة منه. +يمكنك توليده بنقر ”استنسخ قاعدة البيانات في DB4S“ +في صفحة الوِب لقاعدة البيانات التي تريد. + + + + Invalid URL: The host name does not match the host name of the current identity. + مسار غير صالح: لا يتطابق اسم المضيف مع اسم مضيف الهويّة الحالية. + + + + Invalid URL: No branch name specified. + مسار غير صالح: لم تحدّد اسم الفرع. + + + + Invalid URL: No commit ID specified. + مسار غير صالح: لم تحدّد معرّف الإيداع. + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + عدّلت النسخة المحلية من قاعدة البيانات. بجلب الإيداع فأنت تُلغي هذه التعديلات المحلية. +أمتأكّد من المواصلة؟ + + + + The database has unsaved changes. Are you sure you want to push it before saving? + في قاعدة البيانات تعديلات غير محفوظة. أمتأكّد من دفع القاعدة قبل حفظ التعديلات؟ + + + + The database you are trying to delete is currently opened. Please close it before deleting. + قاعدة البيانات التي تحاول حذفها مفتوحة حاليًا. من فضلك أغلِقها قبل حذفها. + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + بهذا تحذف النسخة المحلية من قاعدة البيانات هذه مع كلّ التعديلات التي لم تودعها بعد. أمتأكّد من حذف قاعدة البيانات هذه؟ + + + + RemoteLocalFilesModel + + + Name + الاسم + + + + Branch + الفرع + + + + Last modified + آخر تعديل + + + + Size + الحجم + + + + Commit + الإيداع + + + + File + الملف + + + + RemoteModel + + + Name + الاسم + + + + Commit + الإيداع + + + + Last modified + آخر تعديل + + + + Size + الحجم + + + + Size: + الحجم: + + + + Last Modified: + آخر تعديل: + + + + Licence: + الرخصة: + + + + Default Branch: + الفرع المبدئي: + + + + RemoteNetwork + + + Choose a location to save the file + اختر مكانًا لحفظ الملف فيه + + + + Error opening remote file at %1. +%2 + خطأ أثناء فتح الملف البعيد في %L1. +%L2 + + + + Error: Invalid client certificate specified. + خطأ: حُدّدت شهادة عميل غير صالحة. + + + + Please enter the passphrase for this client certificate in order to authenticate. + من فضلك أدخِل عبارة السر لشهادة العميل لإجراء الاستيثاق. + + + + Cancel + ألغِ + + + + Uploading remote database to +%1 + يرفع قاعدة البيانات البعيدة إلى +%L1 + + + + Downloading remote database from +%1 + ينزّل قاعدة البيانات البعيدة من +%L1 + + + + + Error: The network is not accessible. + خطأ: تعذّر الوصول إلى الشبكة. + + + + Error: Cannot open the file for sending. + خطأ: تعذّر فتح الملف لإرساله. + + + + RemotePushDialog + + + Push database + دفع قاعدة البيانات + + + + Database na&me to push to + ا&سم قاعدة البيانات الذي سيُدفع إليها + + + + Commit message + رسالة الإيداع + + + + Database licence + رخصة قاعدة البيانات + + + + Public + عامّة @@ -5389,17 +5946,22 @@ p, li { white-space: pre-wrap; } أجبِر الدفع - + + Username + اسم المستخدم + + + Database will be public. Everyone has read access to it. ستكون قاعدة البيانات عامّة. يملك الجميع تصريح القراءة منها. - + Database will be private. Only you have access to it. ستكون قاعدة البيانات خاصّة. أنت من لديك حقّ الوصول إليها لا غير. - + Use with care. This can cause remote commits to be deleted. استعمله بحذر. يمكن أن يتسبّب هذا بحذف الإيداعات البعيدة. @@ -5407,22 +5969,22 @@ p, li { white-space: pre-wrap; } RunSql - + Execution aborted by user أجهض المستخدم التنفيذ - + , %1 rows affected ، عدد الصفوف المتأثّرة هو %L1 - + query executed successfully. Took %1ms%2 نُفّذ الاستعلام بنجاح: أخذ %L1 م‌ث%L2 - + executing query ينفّذ الاستعلام @@ -5460,7 +6022,7 @@ p, li { white-space: pre-wrap; } Shift+F3 - + Shift+F3 @@ -5544,23 +6106,23 @@ p, li { white-space: pre-wrap; } يعرض هذا الحقل نتائج ورموز حالة آخر الإفادات المنفّذة. - + Couldn't read file: %1. تعذّرت قراءة الملف: %L1. - - + + Couldn't save file: %1. تعذّر حفظ الملف: %L1. - + Your changes will be lost when reloading it! ستفقد تغييراتك لو فعلت! - + The file "%1" was modified by another program. Do you want to reload it?%2 عدّل برنامج آخر الملفّ ”%L1“. أتريد إعادة تحميله؟%L2 @@ -5570,7 +6132,12 @@ p, li { white-space: pre-wrap; } Ctrl+/ - + Ctrl+/ + + + + Ctrl+PgDown + @@ -5617,280 +6184,285 @@ p, li { white-space: pre-wrap; } + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. ‎() ‫تُعيد الدالة last_insert_rowid()‎ معرّف الصف/ROWID لآخر عملية إدراج صفّ من اتصال قاعدة البيانات والتي نفّذت الدالة. - + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. (X) ‫باعتبار X سلسلة نصية، تُعيد الدالة length(X) عدد المحارف (وليس البايتات) داخل X والموجودة قبل أوّل محرف NUL فيها. - + (X,Y) The like() function is used to implement the "Y LIKE X" expression. (X,Y) تُستعمل الدالة‫ like()‎ لتنفيذ التعبير ”Y LIKE X“. - + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. (X,Y,Z) تُستعمل الدالة‫ like()‎ لتنفيذ التعبير ”Y LIKE X ESCAPE Z“. - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. (X) ‫تُحمّل الدالة load_extension(X) امتدادات SQLite من ملف مكتبة مشتركة اسمه X. عليك السماح باستعمال هذه الدالة من التفضيلات. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. (X,Y) ‫تُحمّل الدالة load_extension(X) امتدادات SQLite من ملف مكتبة مشتركة اسمه X باستخدام نقطة الإدخال Y. عليك السماح باستعمال هذه الدالة من التفضيلات. - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. (X) ‫تُعيد الدالة lower(X) نسخة من السلسلة النصية X حيث محارف آسكي كلّها محوّلة إلى حالة الأحرف الصغيرة. - + (X) ltrim(X) removes spaces from the left side of X. (X) ‫تُزيل ltrim(X) المسافات من الجانب الأيسر للسلسلة النصية X. - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. (X,Y) ‫تُعيد الدالة ltrim(X,Y) سلسلة نصية بإزالة كلّ المحارف التي قد تظهر في Y من الجانب الأيسر للسلسلة X. - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. (X,Y,...) ‫تُعيد الدالة متعدّدة المعطيات max()‎ المعطى الذي له أكبر قيمة، أو NULL إن كان أحد المعطيات هو NULL. - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. (X,Y,...) ‫تُعيد الدالة متعدّدة المعطيات min()‎ المعطى الذي له أصغر قيمة. - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. (X,Y) ‫تُعيد الدالة nullif(X,Y) أوّل معطًى إن كانت المعطيات مختلفة، وتُعيد NULL إن كانت المعطيات متطابقة. - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. (FORMAT,...) ‫تعمل دالة SQL هذه printf(FORMAT,...) تمامًا مثل دالة لغة سي sqlite3_mprintf()‎ ودالة printf()‎ من مكتبة سي القياسية. - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. (X) ‫تُعيد الدالة quote(X) نص SQL حرفيّ تكون قيمة معامله مناسبة لتوضع في عبارة SQL. - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. ‎() ‫تُعيد الدالة random()‎ عددًا صحيحًا عشوائيًا زائفًا بين -٩٢٢٣٣٧٢٠٣٦٨٥٤٧٧٥٨٠٨ و +٩٢٢٣٣٧٢٠٣٦٨٥٤٧٧٥٨٠٧. - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. (N) ‫تُعيد الدالة randomblob(N) كائن BLOB بحجم N بايت يحتوي على بايتات عشوائية زائفة. - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. (X,Y,Z) ‫تُعيد الدالة replace(X,Y,Z) سلسلة نصية باستبدال كلّ ظهور للسلسة النصية Y في السلسلة النصية X بالسلسلة النصية Z. - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. (X) تُعيد الدالة‫ round(X) قيمة X عشرية عائمة مُقرّبة إلى خانات الصِفر يمين الفاصلة العشرية. - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. (X,Y) تُعيد الدالة‫ round(X,Y) قيمة X عشرية عائمة مُقرّبة إلى خانات Y يمين الفاصلة العشرية. - + (X) rtrim(X) removes spaces from the right side of X. (X) ‫تُزيل rtrim(X) المسافات من الجانب الأيمن للسلسلة النصية X. - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. (X,Y) ‫تُعيد الدالة rtrim(X,Y) سلسلة نصية بإزالة كلّ المحارف التي قد تظهر في Y من الجانب الأيمن للسلسلة X. - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. (X) ‫تُعيد الدالة soundex(X) سلسلة نصية بترميز Soundex من السلسلة النصية X. - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. (X,Y) ‫تُعيد substr(X,Y) كلّ المحارف حتّى نهاية السلسلة النصية X بدايةً من المحرف رقم Y. - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. (X,Y,Z) ‫تُعيد الدالة substr(X,Y,Z) سلسلة نصية جزئية من السلسلة الدخل X والتي تبدأ بالمحرف رقم Y وبطول Z من المحارف. - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. ‎() ‫تُعيد الدالة total_changes()‎ عدد الصفوف المتأثّرة بإفادة INSERT أو UPDATE أو DELETE مذ فُتح اتصال قاعدة البيانات الحالية. - + (X) trim(X) removes spaces from both ends of X. (X) ‫تُزيل trim(X) المسافات من جانبي للسلسلة النصية X. - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. (X,Y) ‫تُعيد الدالة trim(X,Y) سلسلة نصية بإزالة كلّ المحارف التي قد تظهر في Y من كِلا جانبي X. - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. (X) ‫تُعيد الدالة typeof(X) سلسلة نصية توضّح نوع بيانات التعبير X. - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. (X) ‫تُعيد دالة unicode(X) النقطة الرمزية اليونيكودية العددية لأوّل محرف من السلسلة النصية X. - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. (X) ‫تُعيد الدالة upper(X) نسخة من السلسلة النصية الدخل X حيث محارف آسكي بحالة الأحرف الكبيرة محوّلة كلّها إلى حالة الأحرف الكبيرة. - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. (N) ‫تُعيد الدالة zeroblob(N) كائن BLOB يحتوي N بايت بالمحتوى 0x00. - + (timestring,modifier,modifier,...) (timestring,modifier,modifier,...) - + (format,timestring,modifier,modifier,...) (format,timestring,modifier,modifier,...) - + (X) The avg() function returns the average value of all non-NULL X within a group. (X) تُعيد الدالة‫ avg()‎ القيمة المتوسّطة لكلّ X لا تساوي NULL داخل مجموعة ما. - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. (X) ‫تُعيد الدالة count(X) عدد المرات التي لا يكون فيها X يساوي NULL في مجموعة ما. - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. (X) ‫تُعيد الدالة group_concat()‎ سلسلة نصية تجمع كلّ قيم X التي لا تساوي NULL. - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. (X,Y) ‫تُعيد الدالة group_concat()‎ سلسلة نصية تجمع كلّ قيم X التي لا تساوي NULL. إن كان المعطى Y موجودًا، فسيُستخدم كفاصل بين سيرورات X. - + (X) The max() aggregate function returns the maximum value of all values in the group. (X) ‫تُعيد الدالة الجامعة max()‎ أكبر قيمة لكلّ القيم في المجموعة. - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. (X) ‫تُعيد الدالة الجامعة min()‎ أدنى قيمة لا تساوي NULL لكلّ القيم في المجموعة. - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. (X) ‫تُعيد الدالتان الجامعتان sum()‎ و total()‎ مجموع كل القيم التي لا تساوي NULL في المجموعة. - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. ‎() ‫رقم الصفّ داخل القسم الحالي. تُرقّم الصفوف بدءًا من ١ بالترتيب الذي حدّده بند ORDER BY في تعريف النافذة، أو بترتيب اعتباطي إن لم يكن كذلك.‏ - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. ‎() ‫ناتج row_number()‎ لأوّل فرد في كلّ مجموعة - رتبة الصفّ الحالي مع الفراغات. إن لم يكن هناك بند ORDER BY، فستُعتبر كلّ الصفوف أفراد وستُعيد هذه الدالة ١ دومًا. - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. ‎() ‫رقم مجموعة الأفراد للصفّ الحالي داخل القسم - رتبة الصفّ الحالي مع الفراغات. تُرقّم الأقسام بدءًا من 1 الترتيب الذي حدّده بند ORDER BY في تعريف النافذة. إن لم يوجد بند ORDER BY، فستُعتبر كلّ الصفوف أفراد وستُعيد هذه الدالة ١ دومًا. - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. ‎() ب‫غضّ النظر عن الاسم، تُعيد هذه الدالة دومًا قيمة بين ٠٫٠ و١٫٠ مساويةً لِ‍ (الرتبة - ١)/(صفوف القسم - ١)، حيث ”الرتبة“ هي القيمة التي تُعيدها دالة النافذة المضمّنة rank()‎ و”صفوف القسم“ هو إجمال عدد الصفوف في القسم. إن احتوى القسم صفًا واحدًا فحسب، فستُعيد هذه الدالة ٠٫٠. - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. ‎() التوزيع التصاعدي. يُحسب بالمعادلة رقم الصف/صفوف القسم، حيث ”رقم الصف“ هي القيمة التي أرجعتها‫ row_number()‎ لآخر فرد في المجموعة، و”صفوف القسم“ هي عدد الصفوف في القسم. - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. (N) ‫يُتعامل مع المعطى N على أنّه عدد صحيح. تقسم هذه الدالة القسم إلى N مجموعة إلى حد الإمكان من المساواة، وتُسند عددًا صحيحًا بين 1 وN لكل مجموعة، بالترتيب الذي حدّده بند ORDER BY، أو بترتيب اعتباطي إن كان عكس ذلك. إن كان ضروريا، فستحدث المجموعات الأكبر أولا. تُعيد هذه الدالة قيمة العدد الصحيح المُسنحدة إلى المجموعة التي هي جزء من الصف الحالي. - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. (expr) ‫تُعيد ناتج تقدير التعبير expr على الصفّ السابق في القسم. أو NULL إن لم يكن هناك صفّ سابق (لأنّ الصف الحالي هو الأوّل). - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. (expr,offset) ‫لو وُجد وسيط الإزاحة offset فيجب أن يكون عددًا صحيحًا غير سالب. في هذه الحالة تكون القيمة المُعادة هي ناتج تقدير العبارة expr للصفوف المُزاحة حسب الإزاحة قبل الصفّ الحالي في القسم. لو كانت الإزاحة صِفرًا فسيُقدّر التعبير حسب الصف الحالي. لو لم تكن هناك صفوف بالإزاحة تلك قبل الصفّ الحالي، فسيُعاد NULL. - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. (expr,offset,default) ‫وإن وُجدت قيمة default فستُعاد بدل NULL لو لم يوجد الصفّ الذي حدّدته الإزاحة تلك. - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. (expr) ‫تُعيد ناتج تقدير التعبير حسب الصفّ التالي في القسم. أو NLL لو لم يكن هناك واحد (إذ الصفّ الحالي هو آخر صفّ). - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. (expr,offset) ‫لو وُجد وسيط الإزاحة offset فيجب أن يكون عددًا صحيحًا غير سالب. في هذه الحالة تكون القيمة المُعادة هي ناتج تقدير العبارة expr للصفوف المُزاحة حسب الإزاحة بعد الصفّ الحالي في القسم. لو كانت الإزاحة صِفرًا فسيُقدّر التعبير حسب الصف الحالي. لو لم تكن هناك صفوف بالإزاحة تلك بعد الصفّ الحالي، فسيُعاد NULL. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. (expr) ‫تحسب دالة النوافذ (window) المضمّنة هذه إطار النافذة لكلّ صف كما تحسبها دوال الجامعة. تُعيد الدالة قيمة التعبير expr محسوبًا حسب الصف الأوّل في إطار النافذة لكلّ صف. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. (expr) ‫تحسب دالة النوافذ (window) المضمّنة هذه إطار النافذة لكلّ صف كما تحسبها دوال الجامعة. تُعيد الدالة قيمة التعبير expr محسوبًا حسب الصف الأخير في إطار النافذة لكلّ صف. - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. (expr, N) ‫تحسب دالة النوافذ (window) المضمّنة هذه إطار النافذة لكلّ صف كما تحسبها دوال الجامعة. تُعيد الدالة قيمة التعبير expr محسوبًا حسب الصف رقم N في إطار النافذة. تُرقّم الصفوف في إطارات النوافذ بدءًا بالعدد ١ حسب الترتيب الذي حدّده بند ORDER BY لو وُجد، أو بترتيب اعتباطي لو لم يوجد. ولو لم يكن هناك صف برقم N في القسم فسيُعاد NULL. @@ -5898,41 +6470,42 @@ Use of this function must be authorized from Preferences. SqliteTableModel - + reading rows يقرأ الصفوف - + loading... يحمّل... - + References %1(%2) Hold %3Shift and click to jump there التفضيلات %L1‏(%L2) اضغط %L3Shift وانقر للانتقال إلى هناك - + Error changing data: %1 خطأ أثناء تغيير البيانات: %L1 - + retrieving list of columns يجلب قائمة الأعمدة - + Fetching data... يجلب البيانات... - + + Cancel ألغِ @@ -5999,7 +6572,7 @@ Hold %3Shift and click to jump there Shift+F3 - + Shift+F3 @@ -6074,7 +6647,7 @@ Hold %3Shift and click to jump there - + Replace استبدل @@ -6089,498 +6662,496 @@ Hold %3Shift and click to jump there استبدل الكلّ - + <html><head/><body><p>Scroll to the beginning</p></body></html> مرّر إلى البداية - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> ينقلك هذا الزر إلى بداية منظور الجدول أعلاه. - + |< |< - + Scroll one page upwards مرّر صفحة واحدة للأمام - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> ينقلك هذا الزر صفحة واحدة من السجلّات لأعلى في منظور الجدول أعلاه. - + < < - + 0 - 0 of 0 ٠ - ٠ من أصل ٠ - + Scroll one page downwards مرّر صفحة واحدة للأسفل - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> ينقلك هذا الزر صفحة واحدة من السجلّات لأسفل في منظور الجدول أعلاه. - + > > - + Scroll to the end مرّر إلى النهاية - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - ينقلك هذا الزر إلى نهاية منظور الجدول أعلاه. - - - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> - + ينقلك هذا الزر إلى نهاية منظور الجدول أعلاه. - + >| >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> انقر هنا للانتقال إلى السجلّ المحدّد - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> يُستعمل هذا الزر في التنقّل إلى رقم السطر المحدّد في منطقة ”انتقل إلى“. - + Go to: انتقل إلى: - + Enter record number to browse أدخِل رقم السجلّ لتصفّحه - + Type a record number in this area and click the Go to: button to display the record in the database view اكتب رقم السجلّ في هذا المربّع وانقر زر ”انتقل إلى:“ لعرض السجلّ في منظور قاعدة البيانات - + 1 ١ - + Show rowid column اعرض عمود معرّف الصفوف - + Toggle the visibility of the rowid column بدّل ظهور عمود معرّف الصفوف/rowid - + Unlock view editing اسمح بتحرير المنظور - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. يتيح هذا تحرير المنظور الحالي. مع ذلك ستحتاج إلى المحفّزات المناسبة لإجراء التحرير. - + Edit display format حرّر تنسيق العرض - + Edit the display format of the data in this column حرّر تنسيق عرض البيانات في هذا العمود - - + + New Record سجلّ جديد - - + + Insert a new record in the current table أدرِج سجلًا جديدًا في الجدول الحالي - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> يُنشئ هذا الزر سجلًا جديدًا في قاعدة البيانات. أبقِ زر الفأرة مضغوطًا لفتح قائمة منبثقة فيها عدّة خيارات:<ul><li><span style=" font-weight:600;">سجلّ جديد</span>: لإدراج سجلّ جديد يحمل القيم المبدئية في قاعدة البيانات.</li><li><span style=" font-weight:600;">أدرِج قيم...</span>: لفتح مربّع حوار لإدخال القيم قبل إدراجها في جدول البيانات. يتيح هذا إدخال القيم حسب القيود المختلفة. يُفتح مربّع الحوار هذا أيضًا إن فشل الخيار <span style=" font-weight:600;">سجلّ جديد</span> بسبب هذه القيود.</li></ul> - - + + Delete Record احذف السجلّ - + Delete the current record احذف السجلّ الحالي - - + + This button deletes the record or records currently selected in the table يحذف هذا الزر السجلّ أو السجلّات المحدّدة حاليًا في الجدول - - + + Insert new record using default values in browsed table أدرِج سجلًا جديدًا مستخدمًا القيم المبدئية في الجدول الذي تتصفّحه - + Insert Values... أدرِج قيم... - - + + Open a dialog for inserting values in a new record افتح مربّع حوار لإدراج القيم في سجلّ جديد - + Export to &CSV &صدّر بنسق CSV - - + + Export the filtered data to CSV صدّر البيانات المرشّحة إلى CSV - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. يُصدّر هذا الزر بيانات الجدول الذي تتصفّحه كما هي معروضة حاليًا (بعد المرشّحات وتنسيقات العرض وعمود الفرز) كملف CSV. - + Save as &view احفظ كمن&ظور - - + + Save the current filter, sort column and display formats as a view احفظ المرشّح الحالي وعمود الفرز وتنسيقات العرض كمنظور - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. يحفظ هذا الزر الإعداد الحالي للجدول الذي تتصفّحه (المرشّحات وتنسيقات العرض وعمود الفرز) في منظور SQL يمكنك تصفّحه لاحقًا أو استخدامه في إفادات SQL. - + Save Table As... احفظ الجدول كَ‍... - - + + Save the table as currently displayed احفظ الجدول كما هو معروض حاليًا - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> توفّر القائمة المنبثقة هذه الخيارات الآتية والتي تنطبق على الجدول الذي تتصفّحه والمرشّح حاليًا:<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">صدّر بنسق CSV: يُصدّر هذا الخيار البيانات في الجدول الذي تتصفّحه كما هي معروضة حاليًا (بعد المرشّحات وتنسيقات العرض وعمود الفرز) إلى ملف بنسق CSV.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">احفظ كمنظور: يحفظ هذا الخيار الإعداد الحالي للجدول الذي تتصفّحه (المرشّحات وتنسيقات العرض وعمود الفرز) في منظور SQL يمكنك تصفّحه لاحقًا أو استعماله في إفادات SQL.</li></ul> - + Hide column(s) أخفِ العمود/الأعمدة - + Hide selected column(s) أخفِ العمود/الأعمدة المحدّدة - + Show all columns اعرض كلّ الأعمدة - + Show all columns that were hidden اعرض كلّ الأعمدة التي أُخفيت - - + + Set encoding اضبط الترميز - + Change the encoding of the text in the table cells غيّر ترميز النصوص في خلايا الجدول - + Set encoding for all tables اضبط ترميز كلّ الجداول - + Change the default encoding assumed for all tables in the database غيّر الترميز المبدئي المفترض في كلّ جداول قاعدة البيانات - + Clear Filters امسح المرشّحات - + Clear all filters امسح كلّ المرشّحات - - + + This button clears all the filters set in the header input fields for the currently browsed table. يمسح هذا الزر كلّ المرشّحات المضبوطة في حقول الدخل في الترويسة للجدول الذي تتصفّحه حاليًا. - + Clear Sorting امسح الفرز - + Reset the order of rows to the default صفّر ترتيب الصفوف إلى المبدئيات - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. يمسح هذا الزر تريتب الأعمدة المحدّد للجدول الذي تتصفّحه حاليًا ويُعيده إلى التريب المبدئي. - + Print اطبع - + Print currently browsed table data اطبع بيانات الجدول الذي تتصفّحه حاليًا - + Print currently browsed table data. Print selection if more than one cell is selected. اطبع بيانات الجدول الذي تتصفّحه حاليًا. اطبع التحديد إن كانت هناك أكثر من خليّة واحدة محدّدة. - + Ctrl+P - + Ctrl+P - + Refresh أنعِش - + Refresh the data in the selected table أنعِش البيانات في الجدول المحدّد - + This button refreshes the data in the currently selected table. يُنعش هذا الزر البيانات في الجدول المحدّد حاليًا. - + F5 - + Find in cells ابحث في الخلايا - + Open the find tool bar which allows you to search for values in the table view below. افتح شريط أدوات البحث لتبحث عن القيم التي تريد في منظور الجدول أسفله. - Ctrl+F - + + Freeze columns + + + + + Make all columns from the first column up to this column not move when scrolling horizontally + - - + + Bold ثخين - + Ctrl+B - + Ctrl+B - - + + Italic مائل - - + + Underline مسطّر - + Ctrl+U - + Ctrl+U - - + + Align Right حاذِ يمينًا - - + + Align Left حاذِ يسارًا - - + + Center Horizontally الوسط الأفقي - - + + Justify ضبط - - + + Edit Conditional Formats... حرّر التنسيقات الشرطيّة... - + Edit conditional formats for the current column حرّر تنسيقات العمود الحالي الشرطيّة - + Clear Format امسح التنسيق - + Clear All Formats امسح كلّ التنسيقات - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns امسح كلّ تنسيق الخلايا في الخلايا المحدّدة وكلّ التنسيقات الشرطيّة في الأعمدة المحدّدة - - + + Font Color لون النص - - + + Background Color لون الخلفية - + Toggle Format Toolbar اعرض/أخفِ شريط أدوات التنسيق - + Show/hide format toolbar اعرض/أخفِ شريط التنسيق - - + + This button shows or hides the formatting toolbar of the Data Browser يعرض هذا الزر (أو يُخفي) شريط التنسيق لمتصفّح البيانات - + Select column اختر عمودًا - + Ctrl+Space - + Ctrl+Space - + Replace text in cells استبدل النصوص في الخلايا - - Ctrl+H - - - Filter in all columns - رشّح كلّ الأعمدة + Filter in any column + رشّح أيّ عمود - + Ctrl+R - + Ctrl+R - + %n row(s) لا صفوف @@ -6592,117 +7163,140 @@ Hold %3Shift and click to jump there - + , %n column(s) - ولا أعمدة - وعمود واحد - وعمودين اثنين - و%Ln أعمدة - و%Ln عمودًا - و%Ln عمود + ولا أعمدة + وعمود واحد + وعمودين اثنين + و%Ln أعمدة + و%Ln عمودًا + و%Ln عمود - + . Sum: %1; Average: %2; Min: %3; Max: %4 . المجموع: %L1، المتوسّط: %L2، الأدنى: %L3، الأقصى: %L4 - + Conditional formats for "%1" تنسيقات ”%L1“ الشرطيّة - + determining row count... يحدّد عدد الصفوف... - + %1 - %2 of >= %3 ‏%L1 - ‏%L2 من أصل >= ‏%L3 - + %1 - %2 of %3 ‏%L1 - ‏%L2 من أصل %L3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. من فضلك أدخِل مفتاحًا أساسيًا زائفًا (pseudo) لتفعيل التحرير في هذا المنظور. يجب أن يكون المفتاح اسمًا لأحد الأعمدة الفريدة في المنظور. - + Delete Records احذف السجلّات - + Duplicate records كرّر السجلّات - + Duplicate record كرّر السجلّ - + Ctrl+" - + Ctrl+" - + Adjust rows to contents اضبط الصفوف إلى محتواها - + Error deleting record: %1 خطأ أثناء حذف السجلّ: %L1 - + Please select a record first من فضلك اختر سجلًا أوّلًا - + There is no filter set for this table. View will not be created. لا مرشّح مضبوط لهذا الجدول. لن يُنشأ المنظور. - + Please choose a new encoding for all tables. من فضلك اختر ترميزًا جديدًا لكلّ الجداول. - + Please choose a new encoding for this table. من فضلك اختر ترميزًا جديدًا لهذا الجدول. - + %1 Leave the field empty for using the database encoding. %L1 اترك الحقل فارغًا لاستعمال ترميز قاعدة البيانات. - + This encoding is either not valid or not supported. إمّا أنّ هذا الترميز غير صالح أو أنّه غير مدعوم. - + %1 replacement(s) made. عدد الاستبدالات المُجراة: %L1 + + TableBrowserDock + + + New Data Browser + + + + + Rename Data Browser + + + + + Close Data Browser + + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + VacuumDialog diff --git a/src/translations/sqlb_cs.ts b/src/translations/sqlb_cs.ts index 41cd706b7..01f74ab6a 100644 --- a/src/translations/sqlb_cs.ts +++ b/src/translations/sqlb_cs.ts @@ -18,39 +18,6 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - - <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> for details.</p><p>For more information on this program please visit our website at: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - <html><head/><body><p>DB Browser pro SQLite je open source, freeware a vizualizační nástroj užívaný k tvorbě, návrhu a úpravě SQLite souborů databáze.</p><p>Je multilicencován pod Mozilla Public License Version 2, jakož i GNU General Public License Version 3 nebo pozdější. Můžete jej upravovat nebo redistribuovat podle podmínek těchto licencí.</p><p>Viz <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> a <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> pro více informací.</p><p>Pro získání více informací o tomto programu prosím navštivte naše webové stránky na: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">Tento software užívá GPL/LGPL Qt Toolkit od </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Viz </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> pro licenční podmínky a informace.</span></p><p><span style=" font-size:small;">Také využívá Silk icon set od Marka Jamese licencovaný pod licencí Creative Commons Attribution 2.5 a 3.0.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> pro více informací.</span></p></body></html> - - - - SQLCipher Version %1 (based on SQLite %2) - - - - - Version - Verze - - - - Built for %1, running on %2 - - - - - Qt Version - verze Qt - - - SQLCipher Version - verze SQLCipher - - - - SQLite Version - verze SQLite - AddRecordDialog @@ -145,92 +112,151 @@ Application - - Usage: %1 [options] [db] + + Possible command line arguments: + Možné parametry pro příkazový řádek: + + + + The user settings file location is replaced with the argument value instead of the environment variable value. + + + + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + + + + + Usage: %1 [options] [<database>|<project>] - Použití: %1 [volby] [db] - + - - Possible command line arguments: - Možné parametry pro příkazový řádek: + + -h, --help Show command line options + + + + + -q, --quit Exit application after running scripts + + + + + -s, --sql <file> Execute this SQL file after opening the DB + - - -h, --help Show command line options - -h, --help Zobrazit volby příkazové řádky + + -t, --table <table> Browse this table after opening the DB + + + + + -R, --read-only Open database in read-only mode + - - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [file] Vykonat tento SQL soubor po otevření DB + + -S, --settings <settings_file> + - - -t, --table [table] Browse this table after opening the DB - -t, --table [table] Prohlížet tuto tabulku po otevření DB + + Run application based on this settings file + - - This is DB Browser for SQLite version %1. + + -o, --option <group>/<setting>=<value> - - -q, --quit Exit application after running scripts - -q, --quit Po vykonání skriptů ukončit aplikaci + + Run application with this setting temporarily set to value + - - -R, --read-only Open database in read-only mode + + -O, --save-option <group>/<setting>=<value> - - -o, --option [group/setting=value] Run application with this setting temporarily set to value + + Run application saving this value for this setting - - -O, --save-option [group/setting=value] Run application saving this value for this setting + + -v, --version Display the current version - - -v, --version Display the current version - -v, --version Zobrazit aktuální verzi + + <database> Open this SQLite database + - - [file] Open this SQLite database - [file] Otevřít tuto SQLite databázi + + <project> Open this project file (*.sqbpro) + - + The -s/--sql option requires an argument Volba -s/--sql vyžaduje parametry - + The file %1 does not exist Soubor %1 neexistuje - + The -t/--table option requires an argument Volba -t/--table vyžaduje parametry - + + The -S/--settings option requires an argument. The option is ignored. + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value - + Invalid option/non-existant file: %1 Neplatná volba/neexistující soubor: %1 + + + SQLite Version + verze SQLite + + + + SQLCipher Version %1 (based on SQLite %2) + + + + + DB Browser for SQLite Version %1. + + + + + Built for %1, running on %2 + + + + + Qt Version %1 + + CipherDialog @@ -304,10 +330,6 @@ Raw key - - Page &size - Velikost strany - Please set a key to encrypt the database. @@ -377,38 +399,48 @@ If any of the other settings were altered for this database file you need to pro + .NET DateTime.Ticks to date + + + + Julian day to date Juliánský den na datum - + Unix epoch to local time - + Date as dd/mm/yyyy Datum jako dd/mm/yyyy - + Lower case Malá písmena - + + Binary GUID to text + + + + Custom display format must contain a function call applied to %1 - + Error in custom display format. Message from database engine: %1 - + Custom display format must return only one column but it returned %1. @@ -423,22 +455,22 @@ If any of the other settings were altered for this database file you need to pro Zaokrouhlit číslo - + Unix epoch to date Unix epoch na datum - + Upper case Velká písmena - + Windows DATE to date Windows DATE na datum - + Custom Vlastní @@ -450,14 +482,6 @@ If any of the other settings were altered for this database file you need to pro Conditional Format Manager - - &Up - Nahoru - - - &Down - Dolů - This dialog allows creating and editing conditional formats. Each cell style will be selected by the first accomplished condition for that cell data. Conditional formats can be moved up and down, where those at higher rows take precedence over those at lower. Syntax for conditions is the same as for filters and an empty condition applies to all values. @@ -573,258 +597,191 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - + Please specify the database name under which you want to access the attached database Prosím specifikujte jméno databáze, pod kterým chcete přistupovat k připojené databázi - + Invalid file format Neplatný formát souboru - + Do you want to save the changes made to the database file %1? Chcete uložit změny provedené do databázového souboru %1? - + Exporting database to SQL file... Exportuji databázi do souboru SQL... - - + + Cancel Zrušit - + Executing SQL... Provádím SQL... - + Action cancelled. Akce zrušena. - Error in statement #%1: %2. -Aborting execution. - Chyba v příkazu #%1: %2. -Ruším provedení. - - - renameColumn: cannot find table %1. - renameColumn: nemohu nalézt tabulku %1. - - - - This database has already been attached. Its schema name is '%1'. - - - - + Do you really want to close this temporary database? All data will be lost. - + Database didn't close correctly, probably still busy - + The database is currently busy: Databáze je právě zaneprázdněná: - + Do you want to abort that other operation? - - + + No database file opened - - + + Error in statement #%1: %2. Aborting execution%3. - - + + and rolling back - + didn't receive any output from %1 - + could not execute command: %1 - + Cannot delete this object Nemohu smazat tento objekt - + Cannot set data on this object - - + + A table with the name '%1' already exists in schema '%2'. - + No table with name '%1' exists in schema '%2'. - - + + Cannot find column %1. - + Creating savepoint failed. DB says: %1 - + Renaming the column failed. DB says: %1 - - + + Releasing savepoint failed. DB says: %1 - + Creating new table failed. DB says: %1 - + Copying data to new table failed. DB says: %1 - + Deleting old table failed. DB says: %1 - + Error renaming table '%1' to '%2'. Message from database engine: %3 - + could not get list of db objects: %1 - renameColumn: cannot find column %1. - renameColumn: nemohu nalézt sloupec %1. - - - renameColumn: creating savepoint failed. DB says: %1 - renameColumn: vytváření bodu obnovy selhalo. DB říká: %1 - - - renameColumn: creating new table failed. DB says: %1 - renameColumn: vytváření nové tabulky selhalo. DB říká: %1 - - - renameColumn: copying data to new table failed. DB says: -%1 - renameColumn: kopírování dat do nové tabulky selhalo. DB říká: -%1 - - - renameColumn: deleting old table failed. DB says: %1 - renameColumn: smazání staré tabulky selhalo. DB říká: %1 - - - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: - renameColumn: releasing savepoint failed. DB says: %1 - renameColumn: uvolňování bodu obnovy selhalo. DB říká: %1 - - - Error renaming table '%1' to '%2'.Message from database engine: -%3 - Chyba při přejmenování tabulky '%1' to '%2'.Zpráva z databáze: -%3 - - - ... <string can not be logged, contains binary data> ... - ... <string nemůže být zaznamenán, obsahuje binární data> ... - - - + could not get list of databases: %1 - + Error loading extension: %1 Chyba při načítání přípony: %1 - + could not get column information - unknown object type %1 - neznámý typ objektu %1 - - - could not get list of db objects: %1, %2 - nemohu získat seznam objektů db: %1, %2 - - - could not get types - nemohu získat typy - - - could not execute pragma command: %1, %2 - nemohu provést příkaz pragma: %1, %2 - - - + Error setting pragma %1 to %2: %3 Chyba při nastavování pragma %1 na %2: %3 - + File not found. Soubor nebyl nalezen. @@ -851,22 +808,18 @@ Message from database engine: Schema Schéma - - Browsables (%1) - Možné prohlížet (%1) - Database Databáze - + Browsables - + All Všechny @@ -876,22 +829,22 @@ Message from database engine: Dočasný - + Tables (%1) Tabulky (%1) - + Indices (%1) Indexy (%1) - + Views (%1) Pohledy (%1) - + Triggers (%1) Triggery (%1) @@ -904,219 +857,191 @@ Message from database engine: Upravit buňku databáze - + Mode: Mód: - - + + Image Obrázek - Import text - Importovat text - - - Opens a file dialog used to import text to this database cell. - Otevře dialog pro následný import textu do této databázové buňky. - - - &Import - &Import - - - Export text - Exportovat text - - - Opens a file dialog used to export the contents of this database cell to a text file. - Otevře dialog pro následný export obsahu databázové buňky do textového souboru. - - - &Export - &Export - - - Set this cell to NULL - Nastavit buňku na hodnotu NULL - - - + Set as &NULL Nastavit na &NULL - + Apply data to cell - + This button saves the changes performed in the cell editor to the database cell. - + Apply Provést - + Text Text - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. - + RTL Text - + Binary Binární - + JSON - + XML XML - - + + Automatically adjust the editor mode to the loaded data type - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. - + Auto-switch - + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. - + Open preview dialog for printing the data currently stored in the cell - + Auto-format: pretty print on loading, compact on saving. - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. - + Word Wrap - + Wrap lines on word boundaries - - + + Open in default application or browser - + Open in application - + The value is interpreted as a file or URL and opened in the default application or web browser. - + Save file reference... - + Save reference to file - - + + Open in external application - + Autoformat - + &Export... - - + + &Import... - - + + Import from file Importovat ze souboru - - + + Opens a file dialog used to import any kind of data to this database cell. - + Export to file Exportovat do souboru - + Opens a file dialog used to export the contents of this database cell to a file. - + Erases the contents of the cell Vymazat obsah buňky @@ -1126,182 +1051,140 @@ Errors are indicated with a red squiggle underline. Tato oblast zobrazuje informace o aktuálních datech v této databázové buňce - + Type of data currently in cell Současný typ dat v buňce - + Size of data currently in table Současná velikost dat v tabulce - - + Print... Tisk... - - Open preview dialog for printing displayed image - - - - - + Ctrl+P - + Open preview dialog for printing displayed text - + Copy Hex and ASCII - + Copy selected hexadecimal and ASCII columns to the clipboard - + Ctrl+Shift+C - Choose a file - Vybrat soubor - - - Text files(*.txt);;Image files(%1);;All files(*) - Textové soubory(*.txt);;Soubory s obrázky(%1);;Všechny soubory(*) - - - + Choose a filename to export data Vyberte název souboru pro export dat - Text files(*.txt);;All files(*) - Textové soubory(*.txt);;Všechny soubory(*) - - - Image data can't be viewed with the text editor - Obrazová data nelze zobrazit pomocí textového editoru - - - Binary data can't be viewed with the text editor - Binární data nemohou být prohlížena v textovém editoru - - - + Type of data currently in cell: %1 Image Aktuální typ dat v buňce: %1 Obrázek - + %1x%2 pixel(s) %1x%2 pixel/ů - + Type of data currently in cell: NULL Aktuální typ dat v buňce: NULL - - + + Type of data currently in cell: Text / Numeric Aktuální typ dat v buňce: Text / Číselný - - + + Image data can't be viewed in this mode. - - + + Try switching to Image or Binary mode. - - + + Binary data can't be viewed in this mode. - - + + Try switching to Binary mode. Zkuste přepnout do binárního režimu. - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. + + Couldn't save file: %1. - Text files (*.txt) - Textové soubory (*.txt) - - - JSON files (*.json) - Soubory JSON (*.json) - - - XML files (*.xml) - Soubory XML (*.xml) + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + - - + + Image files (%1) Soubory obrázků (%1) - + Binary files (*.bin) Binární soubory (*.bin) - All files (*) - Všechny soubory (*) - - - + Choose a file to import Vyberte soubor pro import - + %1 Image %1 Obrázek - SVG files (*.svg) - Soubory SVG (*.svg) - - - + Invalid data for this mode Neplatná data pro tento režim - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? - - - + + + %n character(s) %n znak @@ -1310,18 +1193,18 @@ Errors are indicated with a red squiggle underline. - + Type of data currently in cell: Valid JSON - + Type of data currently in cell: Binary Aktuální typ dat v buňce: Binární - - + + %n byte(s) %n byte @@ -1332,23 +1215,11 @@ Errors are indicated with a red squiggle underline. EditIndexDialog - - Create New Index - Vytvořit Nový Index - &Name Název - - &Columns - Sloupce - - - Column - Sloupec - Order @@ -1435,10 +1306,6 @@ Errors are indicated with a red squiggle underline. Advanced Pokročilé - - Database schema - Schéma databáze - Make this a 'WITHOUT rowid' table. Setting this flag requires a field of type INTEGER with the primary key flag set and the auto increment flag unset. @@ -1459,22 +1326,6 @@ Errors are indicated with a red squiggle underline. Fields Pole - - Add field - Přidat pole - - - Remove field - Odstranit pole - - - Move field up - Posunout pole nahoru - - - Move field down - Posunout pole dolů - Add @@ -1506,232 +1357,211 @@ Errors are indicated with a red squiggle underline. - - + + Name Název - - + + Type Typ - + NN NN - + Not null Není null - + PK PK - - Primary key - Primární klíč + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + - + AI AI - + Autoincrement Autoincrement - + U U - - - + + + Unique Unikátní - + Default Výchozí - + Default value Výchozí hodnota - - - + + + Check Zkontrolovat - + Check constraint Zkontrolovat omezení - + Collation - - - + + + Foreign Key Cizí klíč - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + Constraints - + Add constraint - + Remove constraint - + Columns Sloupce - + SQL - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> - - + + Primary Key - + Add a primary key constraint - + Add a foreign key constraint - + Add a unique constraint - + Add a check constraint - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result it in problems.</p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Upozornění: </span>Není něco v pořádku s definicí tabulky, jelikož ji náš parser plně neporozumněl. Úprava a uložení tabulky může vést k problémům.</p></body></html> - - - - + + There can only be one primary key for each table. Please modify the existing primary key instead. - + Error creating table. Message from database engine: %1 Chyba při vytváření tabulky. Zpráva z databáze: %1 - + There already is a field with that name. Please rename it first or choose a different name for this field. Pole s tímto názvem již existuje. Nejdříve jej přejmenujte, nebo vyberte pro toto pole jiný název, prosím. - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. Tento sloupec je použit jako cizí klíč v tabulce %1 a jeho název nemůže být změněn. - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. Existuje alespoň jeden řádek, který je nastaven na NULL. Z tohoto důvodu je nemožné nastavit tento flag. Nejprve změňte data v tabulce, prosím. - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. Existuje alespoň jeden řádek, který neobsahuje hodnotu typu integer. Z tohoto důvodu je nemožné nastavit AI flag. Nejprve změňte data v tabulce, prosím. - + Column '%1' has duplicate data. - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. - Column '%1' has no unique data. - - Sloupec '%1' neobsahuje unikátní data. - - - - This makes it impossible to set this flag. Please change the table data first. - Není možné nastavit tento flag. Nejdříve změňte data v tabulce, prosím. - - - Modifying this column failed. Error returned from database: -%1 - Úprava sloupce selhala. Chyba z databáze: -%1 - - - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled - - Setting the rowid column for the table failed. Error message: -%1 - V tabulce selhalo nastavování rowid sloupce. Chybová zpráva: -%1 - ExportDataDialog @@ -1829,10 +1659,6 @@ All data currently stored in this field will be lost. Choose a filename to export data Vyberte název souboru pro export dat - - Text files(*.csv *.txt) - Textové soubory(*.csv *.txt) - Export data as JSON @@ -1848,10 +1674,6 @@ All data currently stored in this field will be lost. exporting JSON exportování JSONu - - Text files(*.json *.js *.txt) - Textové soubory(*.json *.js *.txt) - Please select at least 1 table. @@ -1930,10 +1752,6 @@ All data currently stored in this field will be lost. Export schema only Exportovat pouze schéma - - Please select at least 1 table. - Vyberte alespoň jednu tabulku, prosím. - Please select at least one table. @@ -1944,10 +1762,6 @@ All data currently stored in this field will be lost. Choose a filename to export Vyberte název souboru pro export - - Text files(*.sql *.txt) - Textové soubory(*.sql *.txt) - Export completed. @@ -1963,7 +1777,7 @@ All data currently stored in this field will be lost. ExtendedScintilla - + Ctrl+H @@ -1974,22 +1788,22 @@ All data currently stored in this field will be lost. - + Ctrl+P - + Find... - + Find and Replace... Najít a nahradit... - + Print... Tisk... @@ -1997,140 +1811,132 @@ All data currently stored in this field will be lost. ExtendedTableWidget - The content of clipboard is bigger than the range selected. -Do you want to insert it anyway? - Obsah schránky je větší, než je rozsah výběru. -Chcete jej přesto vložit? - - - + Use as Exact Filter - + Containing - + Not containing - + Not equal to - + Greater than Větší než - + Less than Menší než - + Greater or equal Větší nebo rovno - + Less or equal Menší nebo rovno - + Between this and... Mezi tímto a... - + Regular expression - + Edit Conditional Formats... - + Set to NULL Nastavit na NULL - + + Cut + + + + Copy Kopírovat - + Copy with Headers Kopírovat s hlavičkami - + Copy as SQL Kopírovat jako SQL - + Paste Vložit - + Print... Tisk... - + Use in Filter Expression - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. - - FileDialog - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - Databázové soubory SQLite (*.db *.sqlite *.sqlite3 *.db3);;Všechny soubory (*) - - FileExtensionManager @@ -2440,6 +2246,39 @@ x~y Range: values between x and y + + ImageViewer + + + Image Viewer + + + + + Reset the scaling to match the original size of the image. + + + + + Set the scaling to match the size of the viewport. + + + + + Print... + Tisk... + + + + Open preview dialog for printing displayed image + + + + + Ctrl+P + + + ImportCsvDialog @@ -2447,10 +2286,6 @@ x~y Range: values between x and y Import CSV file Importovat soubor CSV - - &Table name - &Název tabulky - Table na&me @@ -2478,7 +2313,7 @@ x~y Range: values between x and y - + Tab Karta @@ -2625,26 +2460,6 @@ x~y Range: values between x and y Select All Vybrat vše - - Inserting data... - Vkládám data... - - - Cancel - Zrušit - - - There is already a table of that name and an import into an existing table is only possible if the number of columns match. - Tabulka s tímto názvem již existuje. Import do existující tabulky je možný jen v případě stejného počtu sloupců. - - - There is already a table of that name. Do you want to import the data into it? - Tabulka s tímto názvem již existuje. Chcete data importovat do ní? - - - Import completed - Import dokončen - There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. @@ -2671,16 +2486,17 @@ x~y Range: values between x and y importování CSV - - Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. - Missing field for record %1 - Chybí pole pro záznam %1 + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. + - + Inserting row failed: %1 Vkládání řádku selhalo: %1 @@ -2693,1044 +2509,697 @@ x~y Range: values between x and y DB Browser pro SQLite - + toolBar1 toolBar1 - Select a table to browse data - Vyberte tabulku pro prohlížení dat + + Opens the SQLCipher FAQ in a browser window + Otevře SQLCipher FAQ v okně prohlížeče - Use this list to select a table to be displayed in the database view - Pro zobrazení v databázovém pohledu použijte pro výběr tabulky tento seznam + + Export one or more table(s) to a JSON file + Export jedné nebo více tabulek do souboru JSON - Refresh the data in the selected table. - Obnovit data ve vybrané tabulce. + + &File + &Soubor - This button refreshes the data in the currently selected table. - Toto tlačítko obnoví data v aktuálně vybrané tabulce. + + &Import + &Import - SQLCipher &FAQ... - SQLCipher FAQ... + + &Export + &Export - - Opens the SQLCipher FAQ in a browser window - Otevře SQLCipher FAQ v okně prohlížeče + + Open an existing database file in read only mode + - Table(s) to JSON... - Tabulka/y do JSONu... + + &Edit + Upravit - - Export one or more table(s) to a JSON file - Export jedné nebo více tabulek do souboru JSON + + &View + Pohled - Open from Remote - Otevřít ze vzdálena + + &Help + Pomoc - Save to Remote - Uložit do vzdálena + + DB Toolbar + Panel nástrojů DB - Refresh - Obnovit + + Edit Database &Cell + Upravit databázovou buňku - F5 - + + DB Sche&ma + DB Schéma - Clear all filters - Vymazat všechny filtry + + + Execute SQL + This has to be equal to the tab title in all the main tabs + Proveďte SQL - &Table: - &Tabulka: + + + Execute current line + Provést aktuální řádek - Insert a new record in the current table - Vložit nový záznam do současné tabulky + + This button executes the SQL statement present in the current editor line + - This button creates a new, empty record in the database - Toto tlačítko vytvoří nový, prázdný záznam v databázi + + Shift+F5 + - New Record - Nový záznam + + Sa&ve Project + Ulo&žit Projekt - Delete the current record - Smazat aktuální záznam + + User + Uživatel - This button deletes the record currently selected in the database - Toto tlačítko smaže právě vybraný záznam v databázi + + + Database Structure + This has to be equal to the tab title in all the main tabs + Databázová Struktura - Delete Record - Smazat záznam + + + Browse Data + This has to be equal to the tab title in all the main tabs + Prohlížet data - This is the database view. You can double-click any record to edit its contents in the cell editor window. - Toto je pohled databáze. Můžete udělat double-click na jakýkoliv záznam pro jeho editaci obsahu v editoru buněk + + + Edit Pragmas + This has to be equal to the tab title in all the main tabs + Editovat Pragma - <html><head/><body><p>Scroll to the beginning</p></body></html> - <html><head/><body><p>Posune na úplný začátek</p></body></html> + + Application + Aplikace - <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - <html><head/><body><p>Kliknutím na toto tlačítko se přesunete na začátek pohledu tabulky výše.</p></body></html> + + &Clear + &Vyčistit - |< - |< + + &New Database... + Nová databáze... - Scroll 100 records upwards - Posunout o 100 záznamů nahoru + + + Create a new database file + Vytvořit nový databázový soubor - <html><head/><body><p>Clicking this button navigates 100 records upwards in the table view above.</p></body></html> - <html><head/><body><p>Kliknutím na toto tlačítko se přesunete o 100 záznamů nahoru v pohledu tabulky výše.</p></body></html> + + This option is used to create a new database file. + Tato volba slouží k vytvoření nového souboru databáze. - < - < + + Ctrl+N + - 0 - 0 of 0 - 0 - 0 z 0 + + + &Open Database... + Otevřít databázi... - <html><head/><body><p>Scroll 100 records downwards</p></body></html> - <html><head/><body><p>Posunout o 100 záznamů dolů</p></body></html> + + + + + + Open an existing database file + Otevřít existující soubor databáze - <html><head/><body><p>Clicking this button navigates 100 records downwards in the table view above.</p></body></html> - <html><head/><body><p>Kliknutím na toto tlačítko se přesunete o 100 záznamů dolů v pohledu tabulky nahoře</p></body></html> + + + + This option is used to open an existing database file. + Tato volba slouží k otevření existujícího souboru databáze. - > - > + + Ctrl+O + - Scroll to the end - Posunout na konec + + &Close Database + &Zavřít databázi - >| - >| + + This button closes the connection to the currently open database file + - <html><head/><body><p>Click here to jump to the specified record</p></body></html> - <html><head/><body><p>Kliknutím zde přeskočíte na určený záznam</p></body></html> + + + Ctrl+W + - <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - <html><head/><body><p>Toto tlačítko je určeno k navigaci k záznamu, jehož číslo je nastaveno v poli Jít na.</p></body></html> + + + Revert database to last saved state + Vrátit databázi do posledního uloženého stavu - Go to: - Jít na: + + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. + - Enter record number to browse - Vložte číslo záznamu pro jeho procházení + + + Write changes to the database file + Zapsat změny do souboru databáze - Type a record number in this area and click the Go to: button to display the record in the database view - Napiště číslo záznamu do tohoto pole a klikněte na Jít na: tlačítko k zobrazení záznamu v pohledu databáze + + This option is used to save changes to the database file. + Tato volba slouží k uložení provedených změn do souboru databáze. - 1 - 1 + + Ctrl+S + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> + + Compact &Database... + - None - Žádná + + Compact the database file, removing space wasted by deleted records + - Full - Plná + + + Compact the database file, removing space wasted by deleted records. + - Incremental - Inkrementální + + E&xit + Exit - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatické Indexy</span></a></p></body></html> + + Ctrl+Q + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Foreign Keys</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Cizí klíče</span></a></p></body></html> + + Import data from an .sql dump text file into a new or existing database. + Importovat data z textového souboru .sql do nové nebo již existující databáze. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Plný FSYNC</span></a></p></body></html> + + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignorovat Kontrolu Omezení</span></a></p></body></html> + + Open a wizard that lets you import data from a comma separated text file into a database table. + Otevře průzkumníka, kde můžete importovat data z textového souboru, kde jsou data oddělena čárkami, do databázové tabulky. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Žurnálování</span></a></p></body></html> + + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. + - Delete - Smazat + + Export a database to a .sql dump text file. + Exportovat databázi do textového souboru .sql - Truncate - Osekat + + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. + - Persist - Zachovat + + Export a database table as a comma separated text file. + Exportovat databázovou tabulku jako textový soubor oddělený čárkami. - Memory - Paměť + + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. + - WAL - WAL + + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database + - Off - Vypnout + + + Delete Table + Smazat Tabulku - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Maximální velikost žurnálu</span></a></p></body></html> + + Open the Delete Table wizard, where you can select a database table to be dropped. + - Normal - Normální + + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. + - Exclusive - Exkluzivní + + Open the Create Index wizard, where it is possible to define a new index on an existing database table. + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronní</span></a></p></body></html> + + &Preferences... + &Možnosti... - Default - Výchozí + + + Open the preferences window. + Otevřít okno s možnostmi. - File - Soubor + + &DB Toolbar + Panel nástrojů DB - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">Verze Uživatele</span></a></p></body></html> + + Shows or hides the Database toolbar. + Zobrazí nebo skryje lištu Databáze. - - &File - &Soubor + + Shift+F1 + - - &Import - &Import + + New &tab + - - &Export - &Export + + Open SQL file(s) + - - Open an existing database file in read only mode + + This button opens files containing SQL statements and loads them in new editor tabs - Remote - Vzdálený + + Execute line + - - &Edit - Upravit + + &Wiki + Wiki - - &View - Pohled + + F1 + - - &Help - Pomoc + + Bug &Report... + Nahlásit chybu... - - DB Toolbar - Panel nástrojů DB + + Feature Re&quest... + Požadavek na funkci... - - Edit Database &Cell - Upravit databázovou buňku + + Web&site + Webová stránka - - DB Sche&ma - DB Schéma - - - - - Execute SQL - This has to be equal to the tab title in all the main tabs - Proveďte SQL - - - &Load extension - Načíst rozšíření - - - - - Execute current line - Provést aktuální řádek + + &Donate on Patreon... + Přispět na Patreon... - - This button executes the SQL statement present in the current editor line + + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file - - Shift+F5 - - - - - Sa&ve Project - Ulo&žit Projekt - - - Open &Project - Otevřít projekt - - - &Set Encryption - Nastavit šifrování - - - Edit display format - Upravit formát zobrazení - - - Edit the display format of the data in this column - Upravit formát zobrazení dat v tomto sloupci - - - Show rowid column - Zobrazit rowid sloupce - - - Toggle the visibility of the rowid column - Přepnout viditelnost rowid sloupců - - - Set encoding - Nastavit kódování - - - Change the encoding of the text in the table cells - Změnit kódování textu v buňkách tabulky - - - Set encoding for all tables - Nastavit kódování pro všechny tabulky - - - - User - Uživatel - - - - - Database Structure - This has to be equal to the tab title in all the main tabs - Databázová Struktura - - - - - Browse Data - This has to be equal to the tab title in all the main tabs - Prohlížet data - - - - - Edit Pragmas - This has to be equal to the tab title in all the main tabs - Editovat Pragma - - - - Application - Aplikace - - - - &Clear - &Vyčistit - - - Columns - Sloupce - - - X - X - - - Y - Y - - - _ - _ - - - Line type: - Typ řádku: - - - Line - Řádek - - - StepLeft - KrokVlevo - - - StepRight - KrokVpravo - - - StepCenter - KrokDoprostřed - - - Impulse - Impuls - - - Cross - Kříž - - - Plus - Plus - - - Circle - Kruh - - - Disc - Disk - - - Square - Čtverec - - - Diamond - Diamand - - - Star - Hvězda - - - Triangle - Trojúhelník - - - TriangleInverted - ObrácenýTrojúhelník - - - PlusSquare - PlusČtverec - - - - &New Database... - Nová databáze... - - - - - Create a new database file - Vytvořit nový databázový soubor - - - - This option is used to create a new database file. - Tato volba slouží k vytvoření nového souboru databáze. - - - - Ctrl+N - - - - - - &Open Database... - Otevřít databázi... - - - - - - - - Open an existing database file - Otevřít existující soubor databáze - - - - - - This option is used to open an existing database file. - Tato volba slouží k otevření existujícího souboru databáze. - - - - Ctrl+O - - - - - &Close Database - &Zavřít databázi - - - - This button closes the connection to the currently open database file + + This button lets you open a DB Browser for SQLite project file - - - Ctrl+W - - - - - - Revert database to last saved state - Vrátit databázi do posledního uloženého stavu - - - - This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. - - - - - - Write changes to the database file - Zapsat změny do souboru databáze - - - - This option is used to save changes to the database file. - Tato volba slouží k uložení provedených změn do souboru databáze. - - - - Ctrl+S - - - - - Compact &Database... + + Browse Table - - Compact the database file, removing space wasted by deleted records - - - - - - Compact the database file, removing space wasted by deleted records. - - - - - E&xit - Exit - - - - Ctrl+Q - - - - - Import data from an .sql dump text file into a new or existing database. - Importovat data z textového souboru .sql do nové nebo již existující databáze. - - - - This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. - - - - - Open a wizard that lets you import data from a comma separated text file into a database table. - Otevře průzkumníka, kde můžete importovat data z textového souboru, kde jsou data oddělena čárkami, do databázové tabulky. - - - - Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. - - - - - Export a database to a .sql dump text file. - Exportovat databázi do textového souboru .sql - - - - This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. - - - - - Export a database table as a comma separated text file. - Exportovat databázovou tabulku jako textový soubor oddělený čárkami. - - - - Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. - - - - - Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database - - - - - - Delete Table - Smazat Tabulku - - - - Open the Delete Table wizard, where you can select a database table to be dropped. - - - - - Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. - - - - - Open the Create Index wizard, where it is possible to define a new index on an existing database table. - - - - - &Preferences... - &Možnosti... - - - - - Open the preferences window. - Otevřít okno s možnostmi. - - - - &DB Toolbar - Panel nástrojů DB - - - - Shows or hides the Database toolbar. - Zobrazí nebo skryje lištu Databáze. - - - - Shift+F1 - - - - - Execute line + + Close Pro&ject - - &Wiki - Wiki - - - - F1 - - - - - Bug &Report... - Nahlásit chybu... - - - - Feature Re&quest... - Požadavek na funkci... - - - - Web&site - Webová stránka - - - - &Donate on Patreon... - Přispět na Patreon... - - - - This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file + + Close project and database files and return to the initial state - - This button lets you open a DB Browser for SQLite project file + + Ctrl+Shift+F4 - - Browse Table + + + Detach Database - Sa&ve Project... - Uložit projekt... + + + Detach database file attached to the current database connection + - + &Attach Database... Přiložit databázi... - - + + Add another database file to the current database connection - + This button lets you add another database file to the current database connection - + &Set Encryption... Nastavit šifrování... - + SQLCipher &FAQ SQLCipher FAQ - + Table(&s) to JSON... Tabulka(ky) do JSONu... - + Open Data&base Read Only... - + Ctrl+Shift+O - + Save results Uložit výsledky - + Save the results view - + This button lets you save the results of the last executed query - - + + Find text in SQL editor Najít text v SQL editoru - + Find - + This button opens the search bar of the editor - + Ctrl+F - - + + Find or replace text in SQL editor Najít a nahradit text v SQL editoru - + Find or replace - + This button opens the find/replace dialog for the current editor tab - + Ctrl+H - + Export to &CSV Export do CSV - + Save as &view Uložit jako pohled - + Save as view Uložit jako pohled - Hide column(s) - Skrýt sloupec(ce) - - - Hide selected column(s) - Skrýt vybraný sloupec(ce) - - - Show all columns - Zobrazit všechny sloupce - - - + Shows or hides the Project toolbar. Zobrazit nebo skrýt lištu projektu - + Extra DB Toolbar Extra DB Toolbar - Insert Values... - Vložit hodnoty... - - - + New In-&Memory Database - + Drag && Drop Qualified Names - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor - + Drag && Drop Enquoted Names - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - + &Integrity Check - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. - + &Foreign-Key Check - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - + &Quick Integrity Check - + Run a quick integrity check over the open DB - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. - + &Optimize - + Attempt to optimize the database - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. - - + + Print Tisk - + Print text from current SQL editor tab - + Open a dialog for printing the text in the current SQL editor tab - + Print the structure of the opened database - + Open a dialog for printing the structure of the opened database - + &Save Project As... - - - + + + Save the project in a file selected in a dialog - + Save A&ll - - - + + + Save DB file, project file and opened SQL files - + Ctrl+Shift+S - &About... - O... - - - + &Recently opened &Nedávno otevřené - - Open &tab - Otevřít kartu - - - + Ctrl+T @@ -3742,95 +3211,92 @@ You can drag SQL statements from an object row and drop them into other applicat - + Un/comment block of SQL code - + Un/comment block - + Comment or uncomment current line or selected block of code - + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. - + Ctrl+/ - + Stop SQL execution - + Stop execution - + Stop the currently running SQL script - ... - ... - - - Print currently browsed table data - Tisk právě prohlížených dat tabulky + + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. + - - Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. + + Recent Files - + &Tools Nástroje - + SQL &Log SQL &Log - + Show S&QL submitted by - + Error Log - + This button clears the contents of the SQL logs - + This panel lets you examine a log of all SQL commands issued by the application or by yourself - + &Plot - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. @@ -3838,389 +3304,291 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + &Remote Vzdálené - - + + Project Toolbar - + Extra DB toolbar Extra DB toolbar - - - + + + Close the current database file - + Ctrl+F4 - + &Revert Changes Vrátit Změny - + &Write Changes Zapsat Změny - + &Database from SQL file... Databáze z SQL souboru... - + &Table from CSV file... Tabulka ze souboru CSV... - + &Database to SQL file... Databáze do souboru SQL... - + &Table(s) as CSV file... Tabulka/ky jako soubor CSV... - + &Create Table... Vytvořit Tabulku... - + &Delete Table... Smazat Tabulku... - + &Modify Table... Upravit Tabulku... - + Create &Index... Vytvořit Index... - + W&hat's This? Co je toto? - + &About O - + This button opens a new tab for the SQL editor - + &Execute SQL &Provést příkaz SQL - + Execute all/selected SQL Provést všechny/vybrané SQL - + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. - - Open SQL file - Otevřít SQL soubor - - - - This button opens a file containing SQL statements and loads it in a new editor tab - - - - - - + + + Save SQL file Uložit SQL soubor - + &Load Extension... Načíst rozšíření... - + Ctrl+E - + Export as CSV file Exportovat jako soubor CSV - + Export table as comma separated values file Exportovat tabulku do souboru jako hodnoty oddělené čárkami - &Wiki... - &Wiki... - - - Bug &report... - Nahlášení &chyby... - - - Web&site... - Webová&stránka... - - - - + + Save the current session to a file Uložit aktuální session do souboru - + Open &Project... Otevřít projekt... - - + + Load a working session from a file - &Attach Database - &Přiložit databázi - - - - + + Save SQL file as Uložit soubor SQL jako - + This button saves the content of the current SQL editor tab to a file - + &Browse Table &Prohlížet Tabulku - + Copy Create statement Kopírovat příkaz Create - + Copy the CREATE statement of the item to the clipboard Zkopírovat do schránky příkaz CREATE - + Ctrl+Return - + Ctrl+L - - + + Ctrl+P - - Ctrl+D - - - - - Ctrl+I - - - - - Encrypted - Šifrováno - - - - Read only - Pouze pro čtení - - - - Database file is read only. Editing the database is disabled. - Soubor databáze je určen pouze pro čtení. Úprava databáze je zakázána. - - - - Database encoding - Kódování databáze - - - - Database is encrypted using SQLCipher - Databáze je šifrována přes SQLCipher - - - - - Choose a database file - Vyberte soubor databáze - - - Invalid file format. - Nesprávný formát souboru. - - - - - - Choose a filename to save under - Vyberte název souboru pro uložení - - - Error adding record: - - Chyba při přidávání záznamu: - - - - Error deleting record: -%1 - Chyba při mazání záznamu: -%1 - - - Please select a record first - Prosím vyberte záznam jako první - - - %1 - %2 of %3 - %1 - %2 z %3 - - - There is no database opened. Please open or create a new database file. - Žádná databáze není otevřena. Otevřete nebo vytvořte nový soubor databáze, prosím. - - - Are you sure you want to delete the %1 '%2'? -All data associated with the %1 will be lost. - Jste si jisti, že chcete smazat %1 '%2'? -Všechna přidružená data se %1 budou ztracena. - - - Error: could not delete the %1. Message from database engine: -%2 - Chyba: nemohu smazat %1. Zpráva z databáze: -%2 + + Ctrl+D + - There is no database opened. - Žádná databáze není otevřena. + + Ctrl+I + - Error executing query: %1 - Chyba při vykonávání příkazu: %1 + + Encrypted + Šifrováno - %1 rows returned in %2ms from: %3 - %1 řádků vráceno za %2ms z: %3 + + Read only + Pouze pro čtení - , %1 rows affected - , %1 řádků bylo ovlivněno + + Database file is read only. Editing the database is disabled. + Soubor databáze je určen pouze pro čtení. Úprava databáze je zakázána. - Query executed successfully: %1 (took %2ms%3) - Příkaz byl proveden úspěšně: %1 (za dobu %2ms%3) + + Database encoding + Kódování databáze - Choose a text file - Vyberte textový soubor + + Database is encrypted using SQLCipher + Databáze je šifrována přes SQLCipher - Text files(*.csv *.txt);;All files(*) - Textové soubory(*.csv *.txt);;Všechny soubory(*) + + + Choose a database file + Vyberte soubor databáze - Import completed - Import dokončen + + + + Choose a filename to save under + Vyberte název souboru pro uložení - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 - + Are you sure you want to undo all changes made to the database file '%1' since the last save? Jste si jisti, že chcete vrátit zpět všechny provedené změny v databázi '%1' od posledního uložení? - + Choose a file to import Vyberte soubor pro import - + &%1 %2%3 &%1 %2%3 - + (read only) - + Open Database or Project - + Attach Database... - + Import CSV file(s)... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. @@ -4229,492 +3597,505 @@ Všechna přidružená data se %1 budou ztracena. - + Do you want to save the changes made to SQL tabs in the project file '%1'? - + Text files(*.sql *.txt);;All files(*) Textové soubory(*.sql *.txt);;Všechny soubory(*) - + Do you want to create a new database file to hold the imported data? If you answer no we will attempt to import the data in the SQL file to the current database. - - Close current SQL tab - - - - + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? - + Do you want to save the changes made to the project file '%1'? - + File %1 already exists. Please choose a different name. Soubor %1 již existuje. Vyberte jiný název, prosím. - + Error importing data: %1 Chyba při importu dat: %1 - + Import completed. Import dokončen. - + Delete View Smazat Pohled - + Modify View - + Delete Trigger Smazat Spoušť - + Modify Trigger - + Delete Index Smazat Index - + Modify Index Změnit Index - + Modify Table Změnit tabulku - &%1 %2 - &%1 %2 - - - + Do you want to save the changes made to SQL tabs in a new project file? - + Do you want to save the changes made to the SQL file %1? - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? - - - - + Could not find resource file: %1 - + Choose a project file to open Vybrat soubor projektu k otevření - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - - - - + Could not open project file for writing. Reason: %1 - Ctrl+" - - - - + Busy (%1) - + Setting PRAGMA values will commit your current transaction. Are you sure? - + + Ctrl+Tab + + + + + Ctrl+Shift+Tab + + + + + Ctrl+PgUp + + + + + Clear List + + + + + Window Layout + + + + Reset Window Layout - + Alt+0 - + + Simplify Window Layout + + + + + Shift+Alt+0 + + + + + Dock Windows at Bottom + + + + + Dock Windows at Left Side + + + + + Dock Windows at Top + + + + The database is currenctly busy. - + Click here to interrupt the currently running query. - + Could not open database file. Reason: %1 - + In-Memory database - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. - + Are you sure you want to delete the view '%1'? - + Are you sure you want to delete the trigger '%1'? - + Are you sure you want to delete the index '%1'? - + Error: could not delete the table. - + Error: could not delete the view. - + Error: could not delete the trigger. - + Error: could not delete the index. - + Message from database engine: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? - + + Edit View %1 + + + + + Edit Trigger %1 + + + + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. - + -- EXECUTING SELECTION IN '%1' -- - + -- EXECUTING LINE IN '%1' -- - + -- EXECUTING ALL IN '%1' -- - - + + At line %1: - + Result: %1 - + Result: %2 - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? - + + Opened '%1' in read-only mode from recent file list + + + + + Opened '%1' from recent file list + + + + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + + + + + Yes. Don't ask again + + + + + This action will open a new SQL tab with the following statements for you to edit and run: + + + + Rename Tab - + Duplicate Tab - + Close Tab - + Opening '%1'... - + There was an error opening '%1'... - + Value is not a valid URL or filename: %1 - + %1 rows returned in %2ms - + Choose text files Vybrat textové soubory - + Import completed. Some foreign key constraints are violated. Please fix them before saving. - + Select SQL file to open Vyberte soubor SQL k otevření - + Select file name Vyberte název souboru - + Select extension file Vyberte soubor s rozšířením - Extensions(*.so *.dll);;All files(*) - Přípony(*.so *.dll);;Všechny soubory(*) - - - + Extension successfully loaded. Rozšíření bylo úspěšně načteno. - + Error loading extension: %1 Chyba při načítání přípony: %1 - - + + Don't show again Znovu nezobrazovat - + New version available. Dostupná nová verze. - + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. Nová verze DB Browseru pro SQLite je nyní dostupná (%1.%2.%3).<br/><br/>Stáhněte ji prosím na <a href='%4'>%4</a>. - + Project saved to file '%1' - + Collation needed! Proceed? Je potřeba provést collation! Potvrdit? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! - + creating collation - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. - + Please specify the view name Specifikujte název pohledu, prosím - + There is already an object with that name. Please choose a different name. Objekt s tímto názvem již existuje. Vyberte jiný název, prosím. - + View successfully created. Pohled byl úspěšně vytvořen. - + Error creating view: %1 Chyba při vytváření pohledu: %1 - + This action will open a new SQL tab for running: - + Press Help for opening the corresponding SQLite reference page. - Row # - Řádek # - - - Choose a axis color - Vyberte barvu osy - - - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Všechny Soubory(*) - - - Please enter the URL of the database file to open. - Zadejte URL k databázového souboru pro jeho otevření, prosím. - - - Please enter the URL of the database file to save. - Zadejte URL k databázového souboru pro jeho uložení, prosím. - - - Choose a file to open - Vyberte soubor k otevření - - - + DB Browser for SQLite project file (*.sqbpro) DB Browser pro SQLite project file (*.sqbpro) - Please choose a new encoding for this table. - Vyberte nové kódování pro tuto tabulku, prosím. - - - Please choose a new encoding for all tables. - Vyberte nové kódování pro všechny tabulky, prosím. - - - + Error checking foreign keys after table modification. The changes will be reverted. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. - + Execution finished with errors. - + Execution finished without errors. - - %1 -Leave the field empty for using the database encoding. - %1 -Pro použití kódování databáze ponechte pole prázdné. - - - This encoding is either not valid or not supported. - Toto kódování není buď platné, nebo podporováno. - - - Fetching all data... - Načítám všechna data... - - - Cancel - Zrušit - NullLineEdit @@ -4737,45 +4118,37 @@ Pro použití kódování databáze ponechte pole prázdné. - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> - + Columns Sloupce - + X X - Y - Y - - - _ - _ - - - + Y1 - + Y2 - + Axis Type - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -4786,143 +4159,139 @@ Select the axes or axes labels to drag and zoom only in that orientation. - + Line type: Typ řádku: - - + + None Žádná - + Line Řádek - + StepLeft KrokVlevo - + StepRight KrokVpravo - + StepCenter KrokDoprostřed - + Impulse Impuls - + Point shape: - + Cross Kříž - + Plus Plus - + Circle Kruh - + Disc Disk - + Square Čtverec - + Diamond Diamand - + Star Hvězda - + Triangle Trojúhelník - + TriangleInverted ObrácenýTrojúhelník - + CrossSquare - + PlusSquare PlusČtverec - + CrossCircle - + PlusCircle - + Peace - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - + Save current plot... - - + + Load all data and redraw plot - - - + + + Row # Řádek # - - Choose a axis color - Vyberte barvu osy - Copy @@ -4944,75 +4313,67 @@ Select the axes or axes labels to drag and zoom only in that orientation. - + Date/Time Datum/čas - + Date Datum - + Time Čas - - + + Numeric - + Label Štítek - + Invalid - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. - + Choose an axis color Vyberte barvu osy - + Choose a filename to save under Vyberte název souboru pro uložení - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Všechny Soubory(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. - + Loading all remaining data for this table took %1ms. - - Fetching all data... - Načítám všechna data... - - - Cancel - Zrušit - PreferencesDialog @@ -5043,8 +4404,8 @@ Warning: not all data has been fetched from the table yet due to the partial fet - - + + ... ... @@ -5066,12 +4427,14 @@ Warning: not all data has been fetched from the table yet due to the partial fet - - - - - - + + + + + + + + enabled povoleno @@ -5081,264 +4444,227 @@ Warning: not all data has been fetched from the table yet due to the partial fet Zobrazit vzdálené možnosti - + &Database &Databáze - + Database &encoding Kódování &databáze - + Open databases with foreign keys enabled. Otevře databázi s povolenými cizími klíči. - + &Foreign keys &Cizí klíče - + SQ&L to execute after opening database SQ&L k vykonání po otevření databáze - + Data &Browser Prohlížeč Dat - NULL fields - pole s NULL - - - &Text - Text - - - + Remove line breaks in schema &view - + Prefetch block si&ze - - Advanced - Pokročilé - - - + Default field type Výchozí typ pole - + Font Font - + &Font &Font - Font si&ze: - Velikost fontu - - - + Content Obsah - + Symbol limit in cell Maximální počet znaků v buňce - Field colors - Barvy pole - - - + NULL NULL - + Regular Regulární - Text - Text - - - + Binary Binární - + Background Pozadí - + Filters Filtry - + Threshold for completion and calculation on selection - + Show images in cell - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. - + Escape character - + Delay time (&ms) Zpoždění (&ms) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. - + &SQL &SQL - + Settings name Název možností - + Context Kontext - + Colour Barva - + Bold Tučný - + Italic Kurzíva - + Underline Podtržený - + Keyword Klíčové slovo - function - funkce - - - + Function Funkce - + Table Tabulka - + Comment Komentář - + Identifier Identifikátor - + String String - currentline - aktuální řádek - - - + Current line Aktuální řádek - + SQL &editor font size velikost fontu SQL &editoru - SQL &log font size - Velikost fontu SQL &logu - - - + Tab size - + SQL editor &font &font SQL editoru - + Error indicators - + Hori&zontal tiling - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. - + Code co&mpletion @@ -5448,17 +4774,48 @@ Warning: not all data has been fetched from the table yet due to the partial fet - + + This sets the font size for all UI elements which do not have their own font size option. + + + + + Font size + + + + + Max Recent Files + + + + + Prompt to save SQL tabs +in new project file + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. - + + Database structure font size + + + + Font si&ze Velikost písma - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. @@ -5466,294 +4823,374 @@ Can be set to 0 for disabling the functionalities. - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. - + Field display - + Displayed &text - - - + - - + + + + Click to set this color - + Text color Barva textu - + Background color Barva pozadí - + Preview only (N/A) - + Foreground Popředí - + + selected_bg + + + + + Selection background + + + + + selected_fg + + + + + Selection foreground + + + + + highlight + + + + + Highlight + + + + SQL &results font size - + &Wrap lines - + Never Nikdy - + At word boundaries - + At character boundaries - + At whitespace boundaries - + &Quotes for identifiers - + Choose the quoting mechanism used by the application for identifiers in SQL code. - + "Double quotes" - Standard SQL (recommended) - + `Grave accents` - Traditional MySQL quotes - + [Square brackets] - Traditional MS SQL Server quotes - + Keywords in &UPPER CASE - + When set, the SQL keywords are completed in UPPER CASE letters. - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background - + + Close button on tabs + + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + + + + &Extensions &Rozšíření - + Select extensions to load for every database: Vyberte rozšíření k načtení pro každou databázi: - + Add extension Přidat rozšíření - + Remove extension Odebrat rozšíření - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> - + Disable Regular Expression extension Zakázat rozšíření pro regulární výrazy - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> - + Allow loading extensions from SQL code - + Remote Vzdálený - + CA certificates certifikáty CA - + Proxy - + Configure - - + + Export Settings + + + + + Import Settings + + + + + Subject CN předmět CN - + Common Name - + Subject O předmět O - + Organization Organizace - - + + Valid from Platné od - - + + Valid to Platné do - - + + Serial number Sériové číslo - + Your certificates Vaše certifikáty - + File Soubor - + Subject Common Name - + Issuer CN - + Issuer Common Name - + Clone databases into - - + + Choose a directory Vyberte složku - + + The language will change after you restart the application. Jazyk bude změněn po restartu aplikace. - + Select extension file Vybrat soubor rozšíření - Extensions(*.so *.dll);;All files(*) - Přípony(*.so *.dll);;Všechny soubory(*) + + Extensions(*.so *.dylib *.dll);;All files(*) + + + + + Import certificate file + Importovat soubor certifikátu + + + + No certificates found in this file. + V tomto souboru nebyly nalezeny žádné certifikáty. + + + + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! + Opravdu chcete smazat tento certifikát? Všechny data certifikátu budou smazány z nastavení aplikace! + + + + Are you sure you want to clear all the saved settings? +All your preferences will be lost and default values will be used. + + + + + Save Settings File + - - Extensions(*.so *.dylib *.dll);;All files(*) + + + Initialization File (*.ini) - - Import certificate file - Importovat soubor certifikátu + + The settings file has been saved in location : + + - - No certificates found in this file. - V tomto souboru nebyly nalezeny žádné certifikáty. + + Open Settings File + - - Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! - Opravdu chcete smazat tento certifikát? Všechny data certifikátu budou smazány z nastavení aplikace! + + The settings file was loaded properly. + - - Are you sure you want to clear all the saved settings? -All your preferences will be lost and default values will be used. + + The selected settings file is not a normal settings file. +Please check again. @@ -5839,30 +5276,18 @@ All your preferences will be lost and default values will be used. Importing CSV file... - - Decoding CSV file... - Dekóduji soubor CSV... - Cancel Zrušit - - Collation needed! Proceed? - Je potřeba provést collation! Potvrdit? - - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - Databázové soubory SQLite (*.db *.sqlite *.sqlite3 *.db3);;Všechny soubory (*) - All files (*) Všechny soubory (*) - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) @@ -5962,182 +5387,429 @@ All your preferences will be lost and default values will be used. - Name - Název + + Initialization File (*.ini) + + + + RemoteCommitsModel - Last modified - Poslední změněné + + Commit ID + + + + + Message + + + + + Date + Datum + + + + Author + + Size - Velikost + Velikost + + + + Authored and committed by %1 + + + + + Authored by %1, committed by %2 + RemoteDatabase - Error opening remote database file from %1. -%2 - Chyba při otevírání vzdálené databáze ze souboru %1. -%2 + + Error opening local databases list. +%1 + - - Error when connecting to %1. -%2 - Chyba při připojování k %1. -%2 + + Error creating local databases list. +%1 + + + + RemoteDock - - Error opening remote file at %1. -%2 + + Remote + Vzdálený + + + + Identity - - Error: Invalid client certificate specified. + + Push currently opened database to server - - Please enter the passphrase for this client certificate in order to authenticate. + + Upload - - Cancel - Zrušit + + DBHub.io + - - Uploading remote database to -%1 - Nahrávám vzdálenou databázi do -%1. {1?} + + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> + - - Downloading remote database from -%1 - Stahuji vzdálenou databázi z -%1. {1?} + + Local + - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. + + Current Database - Uploading remote database to -%1. - Nahrávám vzdálenou databázi do -%1. + + Clone + - Downloading remote database from -%1. - Stahuji vzdálenou databázi z -%1. + + User + Uživatel - - - Error: The network is not accessible. - Chyba: síť není dostupná. + + Database + Databáze - - Error: Cannot open the file for sending. - Chyba: Nemohu otevřít soubor k odeslání. + + Branch + Větev - - Error opening local databases list. -%1 + + Commits - - Error creating local databases list. -%1 + + Commits for - - - RemoteDock - - Remote - Vzdálený + + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> + - - Identity + + Back - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. + + Delete Database - - Go + + Delete the local clone of this database - - Push currently opened database to server + + Open in Web Browser - - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> + + Open the web page for the current database in your browser - - <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> + + Clone from Link - - Back + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + + + + + Refresh + Obnovit + + + + Reload all data and update the views + + + + + F5 + + + + + Clone Database + + + + + Open Database + + + + + Open the local copy of this database + + + + + Check out Commit + + + + + Download and open this specific commit + + + + + Check out Latest Commit + + + + + Check out the latest commit of the current branch + + + + + Save Revision to File + + + + + Saves the selected revision of the database to another file + + + + + Upload Database + + + + + Upload this database as a new commit - + + Select an identity to connect + + + + Public Veřejný + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + + + + + Invalid URL: The host name does not match the host name of the current identity. + + + + + Invalid URL: No branch name specified. + + + + + Invalid URL: No commit ID specified. + + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + + + + + The database has unsaved changes. Are you sure you want to push it before saving? + + + + + The database you are trying to delete is currently opened. Please close it before deleting. + + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + + + + + RemoteLocalFilesModel + + + Name + Název + + + + Branch + Větev + + + + Last modified + Poslední změněné + + + + Size + Velikost + + + + Commit + + + + + File + Soubor + RemoteModel - + Name Název - - Last modified - Poslední změněné + + Last modified + Poslední změněné + + + + Size + Velikost + + + + Commit + + + + + Size: + + + + + Last Modified: + + + + + Licence: + + + + + Default Branch: + + + + + RemoteNetwork + + + Choose a location to save the file + + + + + Error opening remote file at %1. +%2 + + + + + Error: Invalid client certificate specified. + + + + + Please enter the passphrase for this client certificate in order to authenticate. + + + + + Cancel + Zrušit + + + + Uploading remote database to +%1 + Nahrávám vzdálenou databázi do +%1. {1?} - - Size - Velikost + + Downloading remote database from +%1 + Stahuji vzdálenou databázi z +%1. {1?} - - Commit - + + + Error: The network is not accessible. + Chyba: síť není dostupná. - bytes - bytů + + Error: Cannot open the file for sending. + Chyba: Nemohu otevřít soubor k odeslání. @@ -6157,15 +5829,6 @@ All your preferences will be lost and default values will be used. Commit message - - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - - Database licence @@ -6187,44 +5850,45 @@ p, li { white-space: pre-wrap; } - + + Username + + + + Database will be public. Everyone has read access to it. - + Database will be private. Only you have access to it. - + Use with care. This can cause remote commits to be deleted. - - Unspecified - Nespecifikovaný - RunSql - + Execution aborted by user - + , %1 rows affected , %1 řádků bylo ovlivněno - + query executed successfully. Took %1ms%2 - + executing query @@ -6346,51 +6010,23 @@ p, li { white-space: pre-wrap; } - Export to &CSV - Export do CSV - - - Save as &view - Uložit jako pohled - - - Save as view - Uložit jako pohled - - - Please specify the view name - Specifikujte název pohledu, prosím - - - There is already an object with that name. Please choose a different name. - Objekt s tímto názvem již existuje. Vyberte jiný název, prosím. - - - View successfully created. - Pohled byl úspěšně vytvořen. - - - Error creating view: %1 - Chyba při vytváření pohledu: %1 - - - + Couldn't read file: %1. - - + + Couldn't save file: %1. - + Your changes will be lost when reloading it! - + The file "%1" was modified by another program. Do you want to reload it?%2 @@ -6402,6 +6038,11 @@ p, li { white-space: pre-wrap; } Ctrl+/ + + + Ctrl+PgDown + + SqlUiLexer @@ -6447,278 +6088,283 @@ p, li { white-space: pre-wrap; } + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. - + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. - + (X,Y) The like() function is used to implement the "Y LIKE X" expression. - + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. - + (X) ltrim(X) removes spaces from the left side of X. (X) ltrim(X) odstraní mezery z levé strany X. - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. (X,Y,...) Funkce s více parametry min() vrací parametr s minimální hodnotou. - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. (X,Y) Funkce nullif(X,Y) vrací první parametr, pokud jsou parametry odlišné. NULL vrací, pokud jsou parametry stejné. - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. () Funkce random() vrací pseudo-náhodný integer v rozmezí -9223372036854775808 a +9223372036854775807. - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. - + (X) rtrim(X) removes spaces from the right side of X. - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. - + (X) trim(X) removes spaces from both ends of X. (X) trim(X) odstraní mezery z obou stran X. - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. - + (timestring,modifier,modifier,...) - + (format,timestring,modifier,modifier,...) - + (X) The avg() function returns the average value of all non-NULL X within a group. - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. - + (X) The max() aggregate function returns the maximum value of all values in the group. (X) Agregační funkce max() vrací maximální hodnotu ze všech hodnot ve skupině. - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. (X) Agregační funkce min() vrací minimální hodnotu ze všech hodnot ve skupině, která není NULL. - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. (X) Agregační funkce sum() a total() vrací součet všech hodnot ve skupině, které nejsou NULL. - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. @@ -6726,40 +6372,41 @@ Use of this function must be authorized from Preferences. SqliteTableModel - + reading rows čtení sloupců - + loading... načítání... - + References %1(%2) Hold %3Shift and click to jump there - + Error changing data: %1 Chyba při změně dat: %1 - + retrieving list of columns - + Fetching data... Načítám data... - + + Cancel Zrušit @@ -6895,7 +6542,7 @@ Hold %3Shift and click to jump there - + Replace @@ -6910,494 +6557,496 @@ Hold %3Shift and click to jump there - + <html><head/><body><p>Scroll to the beginning</p></body></html> <html><head/><body><p>Posune na úplný začátek</p></body></html> - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> <html><head/><body><p>Kliknutím na toto tlačítko se přesunete na začátek pohledu tabulky výše.</p></body></html> - + |< |< - + Scroll one page upwards - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - + < < - + 0 - 0 of 0 0 - 0 z 0 - + Scroll one page downwards - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - + > > - + Scroll to the end Posunout na konec - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> - + >| >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> <html><head/><body><p>Kliknutím zde přeskočíte na určený záznam</p></body></html> - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> <html><head/><body><p>Toto tlačítko je určeno k navigaci k záznamu, jehož číslo je nastaveno v poli Jít na.</p></body></html> - + Go to: Jít na: - + Enter record number to browse Vložte číslo záznamu pro jeho procházení - + Type a record number in this area and click the Go to: button to display the record in the database view Napiště číslo záznamu do tohoto pole a klikněte na Jít na: tlačítko k zobrazení záznamu v pohledu databáze - + 1 1 - + Show rowid column Zobrazit rowid sloupce - + Toggle the visibility of the rowid column Přepnout viditelnost rowid sloupců - + Unlock view editing - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. - + Edit display format Upravit formát zobrazení - + Edit the display format of the data in this column Upravit formát zobrazení dat v tomto sloupci - - + + New Record Nový záznam - - + + Insert a new record in the current table Vložit nový záznam do současné tabulky - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - - + + Delete Record Smazat záznam - + Delete the current record Smazat aktuální záznam - - + + This button deletes the record or records currently selected in the table - - + + Insert new record using default values in browsed table - + Insert Values... Vložit hodnoty... - - + + Open a dialog for inserting values in a new record - + Export to &CSV Export do CSV - - + + Export the filtered data to CSV - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - + Save as &view Uložit jako pohled - - + + Save the current filter, sort column and display formats as a view - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - + Save Table As... - - + + Save the table as currently displayed - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - + Hide column(s) Skrýt sloupec(ce) - + Hide selected column(s) Skrýt vybraný sloupec(ce) - + Show all columns Zobrazit všechny sloupce - + Show all columns that were hidden - - + + Set encoding Nastavit kódování - + Change the encoding of the text in the table cells Změnit kódování textu v buňkách tabulky - + Set encoding for all tables Nastavit kódování pro všechny tabulky - + Change the default encoding assumed for all tables in the database - + Clear Filters - + Clear all filters Vymazat všechny filtry - - + + This button clears all the filters set in the header input fields for the currently browsed table. - + Clear Sorting - + Reset the order of rows to the default - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. - + Print Tisk - + Print currently browsed table data Tisk právě prohlížených dat tabulky - + Print currently browsed table data. Print selection if more than one cell is selected. - + Ctrl+P - + Refresh Obnovit - + Refresh the data in the selected table - + This button refreshes the data in the currently selected table. Toto tlačítko obnoví data v aktuálně vybrané tabulce. - + F5 - + Find in cells - + Open the find tool bar which allows you to search for values in the table view below. - Ctrl+F - + + Freeze columns + + + + + Make all columns from the first column up to this column not move when scrolling horizontally + - - + + Bold Tučný - + Ctrl+B - - + + Italic Kurzíva - - + + Underline Podtržený - + Ctrl+U - - + + Align Right - - + + Align Left - - + + Center Horizontally - - + + Justify - - + + Edit Conditional Formats... - + Edit conditional formats for the current column - + Clear Format - + Clear All Formats - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns - - + + Font Color - - + + Background Color - + Toggle Format Toolbar - + Show/hide format toolbar - - + + This button shows or hides the formatting toolbar of the Data Browser - + Select column - + Ctrl+Space - + Replace text in cells - - Ctrl+H - - - Filter in all columns + Filter in any column - + Ctrl+R - + %n row(s) @@ -7406,7 +7055,7 @@ Hold %3Shift and click to jump there - + , %n column(s) @@ -7415,105 +7064,128 @@ Hold %3Shift and click to jump there - + . Sum: %1; Average: %2; Min: %3; Max: %4 - + Conditional formats for "%1" - + determining row count... - + %1 - %2 of >= %3 - + %1 - %2 of %3 %1 - %2 z %3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - + Delete Records - + Duplicate records - + Duplicate record - + Ctrl+" - + Adjust rows to contents - + Error deleting record: %1 Chyba při mazání záznamu: %1 - + Please select a record first Prosím vyberte záznam jako první - + There is no filter set for this table. View will not be created. - + Please choose a new encoding for all tables. Vyberte nové kódování pro všechny tabulky, prosím. - + Please choose a new encoding for this table. Vyberte nové kódování pro tuto tabulku, prosím. - + %1 Leave the field empty for using the database encoding. %1 Pro použití kódování databáze ponechte pole prázdné. - + This encoding is either not valid or not supported. Toto kódování není buď platné, nebo podporováno. - + %1 replacement(s) made. + + TableBrowserDock + + + New Data Browser + + + + + Rename Data Browser + + + + + Close Data Browser + + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + VacuumDialog diff --git a/src/translations/sqlb_de.ts b/src/translations/sqlb_de.ts index 2a87ec5fe..811f7cf8e 100644 --- a/src/translations/sqlb_de.ts +++ b/src/translations/sqlb_de.ts @@ -18,55 +18,6 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> <html><head/><body><p>DB-Browser für SQLite ist ein grafisches, freies Open-Source-Tool zum Erstellen, Entwerfen und Bearbeiten von SQLite-Datenbankdateien.</p><p>Es steht unter zwei Lizenzen zur Verfügung: der Mozilla Public License Version 2 und der GNU General Public License Version 3 oder aktueller. Sie können das Programm unter den Bedingungen dieser Lizenzen verändern und weiterverteilen.</p><p>Siehe <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> und <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> für Details.</p><p>Für mehr Informationen über dieses Programm besuchen Sie bitte unsere Website: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">Diese Software verwendet das GPL/LGPL QT Toolkit von </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Siehe </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> für Lizenzbedingungen und -informationen.</span></p><p><span style=" font-size:small;">Sie verwendet ebenso das Silk-Iconset von Mark James, welches unter einer Creative Commons Attribution 2.5 und 3.0 Lizenz verfügbar ist.<br/>Siehe </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> für Details.</span></p></body></html> - - <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> for details.</p><p>For more information on this program please visit our website at: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - <html><head/><body><p>DB-Browser für SQLite ist ein grafisches, freies Open Source Tool zum Erstellen, Bearbeiten und Ändern von SQLite-Datenbankdateien.</p><p>Es steht unter zwei Lizenzen, der Mozilla Public License Version 2 und der GNU General Public License Version 3 oder aktueller. Sie können das Programm unter den Bedingungen dieser Lizenzen ändern und weitergeben.</p><p>Siehe <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> und <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> für Details.</p><p>Für mehr Informationen über dieses Programm besuchen Sie unsere Website unter: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">Diese Anwendung verwendet das GPL/LGPL Qt Toolkit von </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Siehe </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> für Lizenzinformationenund weitere Informationen.</span></p><p><span style=" font-size:small;">Sie verwendet außerdem das Silk Iconset von Mark James, das unter einer Creative Commons Attribution 2.5 und 3.0 Lizenz steht.<br/>Siehe </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> für Details.</span></p></body></html> - - - Qt Version - Qt-Version - - - SQLite Version - SQLite-Version - - - <html><head/><body><p>SQLite Database Browser is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> for details.</p><p>For more information on this program please visit our website at: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - <html><head/><body><p>SQLite Database Browser ist ein grafisches, freies Open Source Tool zum Erstellen, Bearbeiten und Ändern von SQLite-Datenbankdateien.</p><p>Es steht unter zwei Lizenzen, der Mozilla Public License Version 2 und der GNU General Public License Version 3 oder aktueller. Sie können das Programm unter den Bedingungen dieser Lizenzen ändern und weitergeben.</p><p>Siehe <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> und <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> für Details.</p><p>Für mehr Informationen über dieses Programm besuchen Sie unsere Website unter: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">Diese Anwendung verwendet das GPL/LGPL Qt Toolkit von </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Siehe </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> für Lizenzinformationenund weitere Informationen.</span></p><p><span style=" font-size:small;">Sie verwendet außerdem das Silk iconset von Mark James, das unter einer Creative Commons Attribution 2.5 und 3.0 Lizenz steht.<br/>Siehe </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> für Details.</span></p></body></html> - - - (based on SQLite %1) - (basierend auf SQLite %1) - - - - SQLCipher Version %1 (based on SQLite %2) - SQLCipher Version %1 (basierend auf SQLite %2) - - - - Version - Version - - - - Built for %1, running on %2 - Erstellt für %1, laufend unter %2 - - - - Qt Version - Qt-Version - - - SQLCipher Version - SQLCipher-Version - - - - SQLite Version - SQLite-Version - AddRecordDialog @@ -162,107 +113,154 @@ Are you sure you want to restore all the entered values to their defaults? - Sind Sie sicher, dass Sie alle eingegebenen Werte auf deren Standardwerte zurücksetzen möchten? + Sind Sie sicher, dass Sie alle eingegebenen Werte auf ihre Standardwerte zurücksetzen möchten? Application - - Usage: %1 [options] [db] + + Possible command line arguments: + Mögliche Kommandozeilen-Argumente: + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value + Die Optionen -o/--option und -O/--save-option benötigen ein Argument der Form Gruppe/Einstellung=Wert + + + + The user settings file location is replaced with the argument value instead of the environment variable value. + + + + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + + + + + Usage: %1 [options] [<database>|<project>] - Verwendung: %1 [Optionen] [db] - + - - Possible command line arguments: - Mögliche Kommandozeilen-Argumente: + + -h, --help Show command line options + - - -h, --help Show command line options - -h, --help Kommandozeilen-Optionen anzeigen + + -q, --quit Exit application after running scripts + - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [Datei] Führe diese SQL-Datei nach dem Öffnen der DB aus + + -s, --sql <file> Execute this SQL file after opening the DB + - - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [Datei] Führe nach dem Öffnen der Datenbank diese SQL-Datei aus + + -t, --table <table> Browse this table after opening the DB + - - -t, --table [table] Browse this table after opening the DB - -t, --table [Tabelle] Navigiere nach dem Öffnen der Datenbank durch diese Tabelle + + -R, --read-only Open database in read-only mode + - - -q, --quit Exit application after running scripts - -q, --quit Beende die Anwendung nach Ausführung der Skripte + + -S, --settings <settings_file> + - - -R, --read-only Open database in read-only mode - -R, --read-only: Datenbank im rein lesenden Modus öffnen + + Run application based on this settings file + - - -o, --option [group/setting=value] Run application with this setting temporarily set to value - -o, --option [Gruppe/Einstellung=Wert] Anwendung mit dem temporär gesetzten Wert für diese Einstellung ausführen + + -o, --option <group>/<setting>=<value> + - - -O, --save-option [group/setting=value] Run application saving this value for this setting - -O, --save-option [Gruppe/Einstellung=Wert] Anwendung starten und den Wert für die entsprechende Einstellung speichern + + Run application with this setting temporarily set to value + - - -v, --version Display the current version - -v, --version Die aktuelle Version anzeigen + + -O, --save-option <group>/<setting>=<value> + - - [file] Open this SQLite database - [Datei] Diese SQLite-Datenbank öffnen + + Run application saving this value for this setting + - - This is DB Browser for SQLite version %1. - Dies ist DB-Browser für SQLite Version %1. + + -v, --version Display the current version + - - The -o/--option and -O/--save-option options require an argument in the form group/setting=value - Die Optionen -o/--option und -O/--save-option benötigen ein Argument der Form Gruppe/Einstellung=Wert + + <database> Open this SQLite database + - This is DB Browser for SQLite version %1%2. - Dies ist DB Browser für SQLite Version %1%2. + + <project> Open this project file (*.sqbpro) + - + The -s/--sql option requires an argument Die -s/--sql Option benötigt ein Argument - + The file %1 does not exist Die Datei %1 existiert nicht - + The -t/--table option requires an argument Die -t/--table Option benötigt ein Argument - The -o/--option option requires an argument in the form group/setting=value - Die Option -o/--option benötigt ein Argument in der Form Gruppe/Einstellung=Wert + + The -S/--settings option requires an argument. The option is ignored. + + + + + SQLite Version + SQLite-Version + + + + SQLCipher Version %1 (based on SQLite %2) + SQLCipher Version %1 (basierend auf SQLite %2) + + + + DB Browser for SQLite Version %1. + + + + + Built for %1, running on %2 + Erstellt für %1, laufend unter %2 + + + + Qt Version %1 + - + Invalid option/non-existant file: %1 Ungültige Option/nicht existente Datei: %1 @@ -339,10 +337,6 @@ Raw key Originalschlüssel - - Page &size - &Seitengröße - Please set a key to encrypt the database. @@ -416,31 +410,41 @@ Falls weitere Einstellungen für diese Datenbank-Datei vorgenommen worden sind, + .NET DateTime.Ticks to date + + + + Julian day to date Julianischer Tag zu Datum - + Unix epoch to local time Unix-Epoche zu lokaler Zeit - + Date as dd/mm/yyyy Datum als dd/mm/yyyy - + Lower case Kleinschreibung - + + Binary GUID to text + + + + Custom display format must contain a function call applied to %1 Benutzerdefinierte Darstellungsformate benötigen einen Funktionsaufruf, der auf %1 angewendet wird - + Error in custom display format. Message from database engine: %1 @@ -449,7 +453,7 @@ Falls weitere Einstellungen für diese Datenbank-Datei vorgenommen worden sind, %1 - + Custom display format must return only one column but it returned %1. Das benutzerdefinierte Anzeigeformat darf nur eine Spalte zurückgeben, es wurde aber %1 zurückgegeben. @@ -464,22 +468,22 @@ Falls weitere Einstellungen für diese Datenbank-Datei vorgenommen worden sind, Gerundeter Wert - + Unix epoch to date Unix-Epoche zu Datum - + Upper case Großschreibung - + Windows DATE to date Windows DATUM zu Datum - + Custom Benutzerdefiniert @@ -491,14 +495,6 @@ Falls weitere Einstellungen für diese Datenbank-Datei vorgenommen worden sind, Conditional Format Manager Verwaltung für bedingte Formatierung - - &Up - H&och - - - &Down - &Runter - This dialog allows creating and editing conditional formats. Each cell style will be selected by the first accomplished condition for that cell data. Conditional formats can be moved up and down, where those at higher rows take precedence over those at lower. Syntax for conditions is the same as for filters and an empty condition applies to all values. @@ -614,170 +610,155 @@ Falls weitere Einstellungen für diese Datenbank-Datei vorgenommen worden sind, DBBrowserDB - + Please specify the database name under which you want to access the attached database Geben Sie bitte einen Datenbanknamen an, mit dem Sie auf die anhängte Datenbank zugreifen möchten - + Invalid file format Ungültiges Dateiformat - + Do you want to save the changes made to the database file %1? Sollen die getätigten Änderungen an der Datenbank-Datei %1 gespeichert werden? - + Exporting database to SQL file... Datenbank in SQL-Datei exportieren... - - + + Cancel Abbrechen - + Executing SQL... SQL ausführen... - + Action cancelled. Vorgang abgebrochen. - Error in statement #%1: %2. -Aborting execution. - Fehler im Statement #%1: %2. -Ausführung wird abgebrochen. - - - renameColumn: cannot find table %1. - Spalte umbenennen: Tabelle %1 nicht gefunden. - - - - This database has already been attached. Its schema name is '%1'. - Diese Datenbank wurde bereits angehängt. Ihr Schemaname ist '%1'. - - - + Do you really want to close this temporary database? All data will be lost. Möchten Sie diese temporäre Datenbank wirklich schließen? Alle Daten gehen damit verloren. - + Database didn't close correctly, probably still busy Datenbank wurde nicht richtig geschlossen, vermutlich noch in Bearbeitung - + The database is currently busy: Die Datenbank ist zur Zeit beschäfigt: - + Do you want to abort that other operation? Möchten Sie die andere Operation abbrechen? - - + + No database file opened Keine Datenbankdatei geöffnet - - + + Error in statement #%1: %2. Aborting execution%3. Fehler im Statement #%1: %2. Ausführung wird abgebrochen %3. - - + + and rolling back und der Zustand zurückgesetzt - + didn't receive any output from %1 keine Ausgabe von %1 erhalten - + could not execute command: %1 Befehl konnte nicht ausgeführt werden: %1 - + Cannot delete this object Dieses Objekt kann nicht gelöscht werden - + Cannot set data on this object Daten können für dieses Objekt nicht gesetzt werden - - + + A table with the name '%1' already exists in schema '%2'. Es existiert eine Tabelle mit dem Namen '%1' im Schema '%2'. - + No table with name '%1' exists in schema '%2'. Im Schema '%2' existiert keine Tabelle mit dem Namen '%1'. - - + + Cannot find column %1. Spalte %1 kann nicht gefunden werden. - + Creating savepoint failed. DB says: %1 Erstellung des Sicherungspunktes fehlgeschlagen. DB meldet: %1 - + Renaming the column failed. DB says: %1 Umbenennung der Spalte fehlgeschlagen. DB meldet: %1 - - + + Releasing savepoint failed. DB says: %1 Entsperren des Sicherungspunktes fehlgeschlagen. DB meldet: %1 - + Creating new table failed. DB says: %1 Erstellen der neuen Tabelle ist fehlgeschlagen. DB meldet: %1 - + Copying data to new table failed. DB says: %1 Kopieren der Daten zur neuen Tabelle ist fehlgeschlagen. DB meldet: %1 - + Deleting old table failed. DB says: %1 Löschen der alten Tabelle ist fehlgeschlagen. DB meldet: %1 - + Error renaming table '%1' to '%2'. Message from database engine: %3 @@ -786,34 +767,12 @@ Meldung von Datenbank: %3 - + could not get list of db objects: %1 Liste der DB-Objekte konnte nicht abgefragt werden: %1 - renameColumn: cannot find column %1. - Spalte umbennen: Spalte %1 nicht gefunden. - - - renameColumn: creating savepoint failed. DB says: %1 - Spalte umbenennen: Anlegen von Speicherpunkt fehlgeschlagen. DB meldet: %1 - - - renameColumn: creating new table failed. DB says: %1 - Spalte umbenennen: Erstellen neuer Tabelle fehlgeschlagen. DB meldet: %1 - - - renameColumn: copying data to new table failed. DB says: -%1 - Spalte umbenennen: Kopieren der Daten in neue Tabelle fehlgeschlagen. DB meldet: -%1 - - - renameColumn: deleting old table failed. DB says: %1 - Spalte umbenennen: Löschen der alten Tabelle fehlgeschlagen. DB meldet: %1 - - - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -822,61 +781,27 @@ Meldung von Datenbank: - renameColumn: releasing savepoint failed. DB says: %1 - Spalte umbenennen: Freigeben des Speicherpunktes fehlgeschlagen. DB meldet: %1 - - - Error renaming table '%1' to '%2'.Message from database engine: -%3 - Fehler beim Umbenennen der Tabelle '%1' zu '%2'. Meldung von Datenbank: -%3 - - - ... <string can not be logged, contains binary data> ... - ... <String kann nicht geloggt werden, enthält binäre Daten> ... - - - + could not get list of databases: %1 konnte keine Datenbankliste abrufen: %1 - + Error loading extension: %1 Fehler beim Laden der Erweiterung: %1 - + could not get column information Spalteninformationen konnten nicht errmittelt werden - unknown object type %1 - unbekannter Objekttyp %1 - - - could not get list of db objects: %1, %2 - Liste mit DB-Ojekten konnte nicht bezogen werden: %1, %2 - - - could not get types - Typen konnten nicht bezogen werden - - - didn't receive any output from pragma %1 - keine Ausgabe erhalten von Pragma %1 - - - could not execute pragma command: %1, %2 - Pragma-Kommando konnte nicht ausgeführt werden: %1, %2 - - - + Error setting pragma %1 to %2: %3 Fehler beim Setzen des Pragmas %1 auf %2: %3 - + File not found. Datei nicht gefunden. @@ -903,22 +828,18 @@ Meldung von Datenbank: Schema Schema - - Browsables (%1) - Durchsuchbar (%1) - Database Datenbank - + Browsables Durchsuchbar - + All Alle @@ -928,22 +849,22 @@ Meldung von Datenbank: Temporär - + Tables (%1) Tabellen (%1) - + Indices (%1) Indizes (%1) - + Views (%1) Ansichten (%1) - + Triggers (%1) Trigger (%1) @@ -956,54 +877,54 @@ Meldung von Datenbank: Datenbank-Zelle bearbeiten - + Mode: Modus: - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. Dies ist die Liste der unterstützten Modi des Zelleneditors. Wählen Sie einen Modus für die Anzeige oder Bearbeitung der Daten der aktuellen Zelle aus. - + RTL Text RTL-Text - + Image Bild - + JSON JSON - + XML XML - - + + Automatically adjust the editor mode to the loaded data type Den Editormodus automatisch dem geladenen Datentyp anpassen - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. Dieser Button aktiviert oder deaktiviert den automatischen Wechsel des Editormodus. Wenn eine neue Zelle ausgewählt wird oder neue Daten importiert werden und der automatische Wechsel aktiviert ist, passt sich der Modus dem erkannten Datentyp an. Sie können den Editormodus danach manuell ändern. Falls Sie dies bei der Bewegung durch die Zellen im manuell eingestellten Modus behalten möchten, deaktivieren Sie den Button. - + Auto-switch Auto-Wechsel - + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. @@ -1012,262 +933,190 @@ Errors are indicated with a red squiggle underline. Fehler werden mittels eine roten Wellenlinie angezeigt. - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. Dieser Qt-Editor wird für rechts-nach-links-Eingaben verwendet, welche vom Standard-Texteditor nicht unterstützt werden. Das Vorhandensein von rechts-nach-links-Zeichen wird erkannt und dieser Editormodus wird automatisch ausgewählt. - + Open preview dialog for printing the data currently stored in the cell Vorschau-Dialog öffnen, um die aktuell in der Zelle gespeicherten Daten auszugeben - + Auto-format: pretty print on loading, compact on saving. Auto-Format: Druckoptimierung (Pretty Print) beim Laden, kompakt beim Speichern. - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. Falls aktiviert, formatiert die Auto-Format-Funktion die Daten beim Laden, bricht den Text in Zeilen und rückt ihn ein für maximale Lesbarkeit. Beim Speichern der Daten verdichtet die Auto-Format-Funktion die Daten durch das Entfernen der Zeilenumbrüche und unnötigen Leerzeichen. - + Word Wrap Wortumbrüche - + Wrap lines on word boundaries Zeilen an Wortgrenzen umbrechen - - + + Open in default application or browser Mit der Standardanwendung oder dem Browser öffnen - + Open in application Mit Anwendung öffnen - + The value is interpreted as a file or URL and opened in the default application or web browser. Der Wert wird als Datei oder URL interpretiert und mit der Standardanwendung oder dem Web-Browser geöffnet. - + Save file reference... Dateireferenz speichern... - + Save reference to file Referenz in Datei speichern - - + + Open in external application Mit externer Anwendung öffnen - + Autoformat Auto-Format - + &Export... &Exportieren... - - + + &Import... &Importieren... - - + + Import from file Aus Datei importieren - - + + Opens a file dialog used to import any kind of data to this database cell. Öffnet einen Dateidialog, um jegliche Art von Daten in diese Datenbankzelle zu importieren. - + Export to file In Datei exportieren - + Opens a file dialog used to export the contents of this database cell to a file. Öffnet einen Dateidialog, um den Inhalt dieser Datenbankzelle in eine Datei zu exportieren. - + Print... Drucken... - Open preview dialog for printing displayed image - Vorschaudialog zum Drucken des angezeigten Bildes öffnen - - - + Ctrl+P - + Open preview dialog for printing displayed text Vorschaudialog zum Drucken des angezeigten Textes öffnen - + Copy Hex and ASCII Hex und ASCII kopieren - + Copy selected hexadecimal and ASCII columns to the clipboard Ausgewählte hexadezimale und ASCII-Spalten in die Zwischenablage kopieren - + Ctrl+Shift+C - Import text - Text importieren - - - Opens a file dialog used to import text to this database cell. - Öffnet einen Dateiauswahldialog, um Text in diese Datenbank-Zelle zu importieren. - - - &Import - &Importieren - - - Export text - Text exportieren - - - Opens a file dialog used to export the contents of this database cell to a text file. - Öffnet einen Dateiauswahldialog, um den Inhalt dieser Datenbank-Zelle in eine Textdatei zu exportieren. - - - &Export - &Exportieren - - - Set this cell to NULL - Diese Zelle auf NULL setzen - - - + Set as &NULL Auf &NULL setzen - This editor mode lets you edit JSON or XML data with syntax highlighting, automatic formatting and validation before saving. - -Errors are indicated with a red squiggle underline. - Dieser Editormodus erlaubt Ihnen das Bearbeiten von JSON- oder XML-Daten mit Syntaxhervorhebung, automatischer Formatierung und Validierung vor dem Speichern. - -Fehler werden durch eine rote Wellenlinie gekennzeichnet. - - - + Apply data to cell Daten auf Zelle anwenden - + This button saves the changes performed in the cell editor to the database cell. Dieser Button speichert die im Zelleneditor für die Datenbankzelle durchgeführten Änderungen. - + Apply Übernehmen - + Text Text - + Binary Binär - Clear cell data - Zelldaten löschen - - - + Erases the contents of the cell Löscht den Inhalt der Zelle - - &Clear - &Leeren - - - <html><head/><body><p><span style=" font-weight:600; color:#c00000;">Warning: Editing binary content in text mode may result in corrupted data!</span></p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#c00000;">Warnung: Das Bearbeiten von Binärdaten im Textmodus produziert eventuell ungültige Daten!</span></p></body></html> - This area displays information about the data present in this database cell Dieser Bereich stellt Informationen über die Daten in dieser Datenbank-Zelle dar - + Type of data currently in cell Art der Daten in dieser Zelle - + Size of data currently in table Größe der Daten in dieser Tabelle - - Choose a file - Datei auswählen - - - Text files(*.txt);;Image files(%1);;All files(*) - Text-Dateien(*.txt);;Bild-Dateien(%1);;Alle Dateien(*) - Choose a filename to export data Dateinamen für den Datenexport wählen - - Text files(*.txt);;All files(*) - Text-Dateien(*.txt);;Alle Dateien(*) - - - Image data can't be viewed with the text editor - Bilddaten können nicht mit dem Texteditor angezeigt werden - - - Binary data can't be viewed with the text editor - Binärdaten können nicht mit dem Texteditor angezeigt werden - Type of data currently in cell: %1 Image @@ -1314,21 +1163,14 @@ Fehler werden durch eine rote Wellenlinie gekennzeichnet. Versuchen Sie, in den Binär-Modus zu wechseln. - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. - Die Daten wurden in einer temporären Datei gespeichert und jene wurde mit der Standardanwendung geöffnet. Die Datei kann nun bearbeitet werden. Am Ende der Bearbeitungen können die gespeicherten neuen Daten auf den Zelleneditor angewandt oder die Änderungen verworfen werden. - - - Text files (*.txt) - Textdateien (*.txt) - - - JSON files (*.json) - JSON-Dateien (*.json) + + Couldn't save file: %1. + Datei konnte nicht gespeichert werden: %1. - XML files (*.xml) - XML-Dateien (*.xml) + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + @@ -1341,10 +1183,6 @@ Fehler werden durch eine rote Wellenlinie gekennzeichnet. Binary files (*.bin) Binärdateien (*.bin) - - All files (*) - Alle Dateien (*) - Choose a file to import @@ -1355,14 +1193,6 @@ Fehler werden durch eine rote Wellenlinie gekennzeichnet. %1 Image %1 Bild - - SVG files (*.svg) - SVG-Dateien (*.svg) - - - Hex dump files (*.txt) - Hex-Dump-Dateien (*.txt) - Invalid data for this mode @@ -1388,14 +1218,6 @@ Fehler werden durch eine rote Wellenlinie gekennzeichnet. Type of data currently in cell: Valid JSON Aktueller Datentyp in dieser Zelle: Gültiges JSON - - Type of data currently in cell: Image - Art der Daten in dieser Zelle: Bild - - - %1x%2 pixel - %1x%2 Pixel - Type of data currently in cell: Binary @@ -1413,28 +1235,11 @@ Fehler werden durch eine rote Wellenlinie gekennzeichnet. EditIndexDialog - - Create New Index - Neuen Index erstellen - &Name &Name - - &Columns - character after ampersand changed - &Spalten - - - Column - Spalte - - - Use in Index - Im Index verwenden - Order @@ -1521,10 +1326,6 @@ Fehler werden durch eine rote Wellenlinie gekennzeichnet. Advanced Erweitert - - Database schema - Datenbankschema - Make this a 'WITHOUT rowid' table. Setting this flag requires a field of type INTEGER with the primary key flag set and the auto increment flag unset. @@ -1535,35 +1336,11 @@ Fehler werden durch eine rote Wellenlinie gekennzeichnet. Without Rowid Ohne Rowid - - Set this to create a temporary table that is deleted when closing the database. - Dies erzeugt eine temporäre Tabelle, welche beim Schließen der Datenbank gelöscht wird. - - - Temporary table - Temporäre Tabelle - Fields Felder - - Add field - Feld hinzufügen - - - Remove field - Feld entfernen - - - Move field up - Ein Feld nach oben - - - Move field down - Ein Feld nach unten - Database sche&ma @@ -1600,225 +1377,208 @@ Fehler werden durch eine rote Wellenlinie gekennzeichnet. Zum Ende - - + + Name Name - - + + Type Typ - + NN NN - + Not null Nicht Null - + PK PK - - Primary key - Primärschlüssel + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + - + AI AI - + Autoincrement Autoinkrement - + U - - - + + + Unique Eindeutig - + Default Voreinstellung - + Default value Voreingestellter Wert - - - + + + Check Prüfen - + Check constraint Beschränkung prüfen - + Collation Kollation - - - + + + Foreign Key Fremdschlüssel - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + Constraints Constraints - + Add constraint Constraint hinzufügen - + Remove constraint Constraint entfernen - + Columns Spalten - + SQL SQL - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> <html><head/><body><p><span style="font-weight:600; color:#ff0000;">Warnung: </span>Diese Tabellendefinitionenthält Elemente, die unser Parser nicht vollständig versteht. Das Ändern und Speichern der Tabelle kann zu Problemen führen.</p></body></html> - - + + Primary Key Primärschlüssel - + Add a primary key constraint Ein Constraint für den Primärschlüssel hinzufügen - + Add a foreign key constraint Ein Constraint für den Fremdschlüssel hinzufügen - + Add a unique constraint Ein Unique-Constraint hinzufügen - + Add a check constraint Ein Prüfungs-Constraint hinzufügen - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result it in problems.</p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warnung: </span>Die Definition dieser Tabelle enthält Elemente, die unser Parser nicht vollständig versteht. Ändern und Speichern dieser Tabelle könnte zu Problemen führen.</p></body></html> - - - + Error creating table. Message from database engine: %1 Fehler beim Erstellen der Tabelle. Meldung der Datenbank: %1 - + There already is a field with that name. Please rename it first or choose a different name for this field. Es existiert bereits ein Feld mit diesem Namen. Bitte benennen Sie es zunächst um oder wählen Sie einen anderen Namen für dieses Feld. - This column is referenced in a foreign key in table %1, column %2 and thus its name cannot be changed. - Diese Spalte wird über einen Fremdschlüssel in Tabelle %1, Spalte %2 referenziert, sodass deren Name nicht geändert werden kann. - - - - + + There can only be one primary key for each table. Please modify the existing primary key instead. Es kann nur einen Primärschlüssel für jede Tabelle geben. Bitte stattdessen den existierenden Primärschlüssel bearbeiten. - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. Diese Spalte wird in einem Fremdschlüssel in Tabelle %1 referenziert und kann aus diesem Grund nicht geändert werden. - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. Mindestens eine Reihe enthält ein Feld mit dem Wert NULL. Dies verhindert das Setzen dieser Markierung. Bitte zunächst die Tabellendaten ändern. - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. Mindestens eine Reihe enthält ein Feld mit einem nicht ganzzahligen Wert. Dies verhindert das Setzen der AI-Markierung. Bitte zunächst die Tabellendaten ändern. - + Column '%1' has duplicate data. Spalte '%1' hat doppelte Daten. - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. Dies macht das Aktivieren des 'Unique'-Flags unmöglich. Bitte die doppelten Daten entfernen, damit das 'Unique'-Flag dann aktiviert werden kann. - Column '%1' has no unique data. - - Spalte '%1' hat keine eindeutigen Daten. - - - This makes it impossible to set this flag. Please change the table data first. - Dies verhindert das Setzen dieses Flags. Bitte zunächst die Tabellendaten ändern. - - - Modifying this column failed. Error returned from database: -%1 - Ändern dieser Spalte fehlgeschlagen: Die Datenbank meldet diesen Fehler: %1 - - - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. Soll das Feld '%1' wirklich gelöscht werden? Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled @@ -1826,22 +1586,6 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. - Primärschlüssel-Flag gesetzt - Autoinkrement deaktiviert - - Setting the rowid column for the table failed. Error message: -%1 - Setzen der Zeilenid-Spalte dieser Tabelle fehlgeschlagen. Fehlermeldung: %1 - - - Changing the table schema failed. Error message: -%1 - Die Änderung des Tabellenschemas ist fehlgeschlagen. Fehlermeldung: -%1 - - - Setting the temporary flag for the table failed. Error message: -%1 - Setzen des Temporär-Flags dieser Tabelle fehlgeschlagen. Fehlermeldung: %1 - ExportDataDialog @@ -1850,22 +1594,6 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. Export data as CSV Daten als CSV exportieren - - &Table - &Tabelle - - - &Table(s) - &Tabelle(n) - - - &Column names in first line - &Spaltennamen in erster Zeile - - - Field &separator - Feld-&Separator - Tab&le(s) @@ -1955,10 +1683,6 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. Choose a filename to export data Dateinamen für den Datenexport wählen - - Text files(*.csv *.txt) - Text-Dateien(*.csv *.txt) - Export data as JSON @@ -1974,10 +1698,6 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. exporting JSON exportiere JSON - - Text files(*.json *.js *.txt) - Text-Dateien(*.json *.js *.txt) - Please select at least 1 table. @@ -1993,10 +1713,6 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. Export completed. Export abgeschlossen. - - Could not open output file. - Ausgabedatei konnte nicht geöffnet werden. - ExportSqlDialog @@ -2060,10 +1776,6 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. Overwrite old schema (DROP TABLE, then CREATE TABLE) Altes Schema überschreiben (DROP TABLE, dann CREATE TABLE) - - Please select at least 1 table. - Bitte mindestens eine Tabelle auswählen. - Please select at least one table. @@ -2074,10 +1786,6 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. Choose a filename to export Dateinamen zum Export auswählen - - Text files(*.sql *.txt) - Textdateien(*.sql *.txt) - Export completed. @@ -2093,7 +1801,7 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. ExtendedScintilla - + Ctrl+H @@ -2104,22 +1812,22 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. - + Ctrl+P - + Find... Suchen... - + Find and Replace... Suchen und ersetzen... - + Print... Drucken... @@ -2127,140 +1835,132 @@ Alle aktuell in diesem Feld gespeicherten Daten gehen verloren. ExtendedTableWidget - The content of clipboard is bigger than the range selected. -Do you want to insert it anyway? - Der Inhalt der Zwischenablage ist größer als der ausgewählte Bereich. -Möchten Sie ihn dennoch einfügen? - - - + Use as Exact Filter Als exakten Filter verwenden - + Containing Enthält - + Not containing Enthält nicht - + Not equal to Ungleich zu - + Greater than Größer als - + Less than Kleiner als - + Greater or equal Größer oder gleich - + Less or equal Kleiner oder gleich - + Between this and... Zwischen diesem und... - + Regular expression Regulärer Ausdruck - + Edit Conditional Formats... Bedingte Formatierungen bearbeiten... - + Set to NULL Auf NULL setzen - + + Cut + + + + Copy Kopieren - + Copy with Headers Mit Headern kopieren - + Copy as SQL Als SQL kopieren - + Paste Einfügen - + Print... Drucken... - + Use in Filter Expression In Filterausdruck verwenden - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? Der Inhalt der Zwischenablage ist größer als der ausgewählte Bereich. Soll er dennoch eingefügt werden? - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. <p>Es wurden nicht alle Daten geladen. <b>Sollen vor dem Auswählen aller Zeilen alle Daten geladen werden?</b><p><p>Das Antworten von <b>Nein</b> wird keine weiteren Daten laden und die Auswahl nicht durchführen.</br>Das Antworten von <b>Ja</b> benötigt möglicherweise einige Zeit, während die Daten geladen werden, aber die Auswahl wird vollständig sein.</p>Warnung: Das Laden aller Daten benötigt bei großen Tabellen möglicherweise eine große Menge an Speicher. - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. Auswahl kann nicht auf NULL gesetzt. Die Spalte %1 hat ein NOT NULL Constraint. - - FileDialog - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - SQLite Datenbankdateien (*.db *.sqlite *.sqlite3 *.db3);;Alle Dateien (*) - - FileExtensionManager @@ -2312,30 +2012,6 @@ Do you want to insert it anyway? Filter Filtern - - These input fields allow you to perform quick filters in the currently selected table. -By default, the rows containing the input text are filtered out. -The following operators are also supported: -% Wildcard -> Greater than -< Less than ->= Equal to or greater -<= Equal to or less -= Equal to: exact match -<> Unequal: exact inverse match -x~y Range: values between x and y - Diese Eingabefelder erlauben Ihnen das Anwenden von schnellen Filtern in der aktuell ausgewählten Tabelle. -Standardmäßig werden Zeilen, die den Eingabetext beinhalten, herausgefiltert. -Zudem werden die folgenden Operatoren unterstützt: -% Wildcard -> Größer als -< Kleiner als ->= Größer oder gleich -<= Kleiner oder gleich -= Gleich: exakte Übereinstimmung -<> Ungleich:exakte inverse Übereinstimmung -x~y Bereich: Werte zwischen x und y - These input fields allow you to perform quick filters in the currently selected table. @@ -2454,13 +2130,6 @@ x~y Bereich: Werte zwischen x und y Regulärer Ausdruck... - - FilterTableHeader - - Filter - Filtern - - FindReplaceDialog @@ -2611,10 +2280,6 @@ x~y Bereich: Werte zwischen x und y Foreign key clauses (ON UPDATE, ON DELETE etc.) Fremdschlüssel-Klauseln (ON UPDATE, ON DELETE etc.) - - (foreign key clauses(ON UPDATE, ON DELETE etc.) - (Fremdschlüssel-Klauseln(ON UPDATE, ON DELETE etc.)) - ImageViewer @@ -2656,10 +2321,6 @@ x~y Bereich: Werte zwischen x und y Import CSV file CSV-Datei importieren - - &Table name - &Tabellenname - Table na&me @@ -2687,7 +2348,7 @@ x~y Bereich: Werte zwischen x und y - + Tab Tab @@ -2834,26 +2495,6 @@ x~y Bereich: Werte zwischen x und y Select All Alle auswählen - - Inserting data... - Füge Daten ein... - - - Cancel - Abbrechen - - - There is already a table of that name and an import into an existing table is only possible if the number of columns match. - Es gibt bereits eine Tabelle mit diesem Namen. Ein Import in eine existierende Tabelle ist nur bei übereinstimmender Spaltenanzahl möglich. - - - There is already a table of that name. Do you want to import the data into it? - Es gibt bereits eine Tabelle mit diesem Namen. Sollen die Daten in diese importiert werden? - - - Import completed - Import vollständig - There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. @@ -2880,16 +2521,17 @@ x~y Bereich: Werte zwischen x und y importierte CSV - - Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. - Import der Datei '%1' benötigte %2ms. Davon wurden %3ms in der Zeilenfunktion verbracht. + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + - Missing field for record %1 - Fehlendes Feld für Record %1 + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. + Import der Datei '%1' benötigte %2ms. Davon wurden %3ms in der Zeilenfunktion verbracht. - + Inserting row failed: %1 Einfügen der Zeile fehlgeschlagen: %1 @@ -2897,128 +2539,20 @@ x~y Bereich: Werte zwischen x und y MainWindow - SQLiteBrowser - SQLiteBrowser - - - Database &Structure - Datenbank&struktur - - - + toolBar1 Toolbar1 - &Browse Data - &Daten durchsuchen - - - Table: - Tabelle: - - - Select a table to browse data - Anzuzeigende Tabelle auswählen - - - Use this list to select a table to be displayed in the database view - Mit dieser Liste können Sie die in der Tabllenansicht anzuzeigende Tabelle auswählen - - - Refresh the data in the selected table. - Aktualisiert die angezeigten Tabellendaten. - - - This button refreshes the data in the currently selected table. - Dieser Button aktualisiert die Daten der aktuellen Tabellenansicht. - - - Scroll one page upwards - Eine Seite nach oben scrollen - - - <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - <html><head/><body><p>Ein Klick auf diesen Button navigiert in den Einträgen der Tabellenansicht oben eine Seite nach oben.</p></body></html> - - - Scroll one page downwards - Eine Seite nach unten scrollen - - - <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - <html><head/><body><p>Ein Klick auf diesen Button navigiert in den Einträgen der Tabellenansicht oben eine Seite nach unten.</p></body></html> - - - SQLCipher &FAQ... - SQLCipher &FAQ... - - - + Opens the SQLCipher FAQ in a browser window Öffnt die SQLCiper FAQ in einem Browserfenster - Table(s) to JSON... - Tabelle(n) zu JSON... - - - + Export one or more table(s) to a JSON file Exportiert eine oder mehrere Tabelle(n) in eine JSON-Datei - - Save to Remote - Entfernt speichern - - - Refresh - Aktualisieren - - - Insert a new record in the current table - Fügt eine neue Zeile zur aktuellen Tabelle hinzu - - - This button creates a new, empty record in the database - Dieser Button erzeugt eine neue, leere Zeile in der Tabelle - - - New Record - Neue Zeile - - - Delete the current record - Aktuelle Zeile löschen - - - This button deletes the record currently selected in the database - Dieser Button löscht die aktuell in der Tabellenansicht ausgewählte Zeile - - - Delete Record - Zeile löschen - - - This is the database view. You can double-click any record to edit its contents in the cell editor window. - Dies ist die Tabellenansicht. Mit einem Doppelklick auf eine Zeile können Sie ihren Inhalt in einem Editorfenster bearbeiten. - - - < - < - - - 0 - 0 of 0 - 0 - 0 von 0 - - - > - > - - - Scroll 100 records upwards - 100 Zeilen nach oben scrollen - DB Browser for SQLite @@ -3034,766 +2568,469 @@ Sie können SQL-Statements aus einer Objektzeile fassen und in anderen Anwendung - &Table: - &Tabelle: - - - Refresh the data in the selected table - Die Daten in der ausgewählten Tabelle aktualisieren - - - + Un/comment block of SQL code Kommentieren/Unkommentieren eines Block von SQL-Code - + Un/comment block Block kommentieren/unkommentieren - + Comment or uncomment current line or selected block of code Aktuelle Zeilen oder ausgewählten Codeblock kommentieren oder unkommentieren - + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. Aktuelle Zeilen oder aktuelle Zeile kommentieren oder unkommentieren, wenn es keine Auswahl gibt. Der gesamte Block wird entsprechend der ersten Zeile invertiert. - + Ctrl+/ - + Stop SQL execution SQL-Ausführung abbrechen - + Stop execution Ausführung abbrechen - + Stop the currently running SQL script Das aktuelle laufende SQL-Skript stoppen - Clear all filters - Alle Filter löschen + + Error Log + Fehlerlog - This button clears all the filters set in the header input fields for the currently browsed table. - Dieser Button löscht alle gesetzten Filter in den Header-Eingabefeldern der aktuell angezeigten Tabelle. + + Ctrl+F4 + - Save the table as currently displayed - Tabelle wie aktuell angezeigt speichern + + Compact &Database... + &Datenbank komprimieren... - <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - <html><head/><body><p>Dieses Popup-Menü bietet die folgenden Optionen zur Anwendung auf die aktuell ausgewählte und gefilterte Tabelle:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">CSV exportieren: diese Option exportiert die Daten der ausgewählten Tabelle wie aktuell angezeigt (gefiltert, Anzeigeformat und Spaltenreihenfolge) in eine CSV-Datei.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Als Ansicht speichern: diese Option speichert die aktuelle Einstellung der ausgewählten Tabelle (Filter, Anzeigeformat und Spaltenreihenfolge) als eine SQL-View, die Sie später durchsuchen oder in SQL-Statements verwenden können.</li></ul></body></html> + + Execute all/selected SQL + Komplettes/ausgewähltes SQL ausführen - ... - ... + + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. + Dieser Button führt das aktuell ausgewählte SQL-Statement aus. Falls kein Text ausgewählt ist, werden alle SQL-Statements ausgeführt. - Print currently browsed table data - Aktuell angezeigte Tabellendaten drucken + + &Load Extension... + Erweiterung &laden... - Print currently browsed table data. Print selection if more than one cell is selected. - Die aktuell angezeigten Tabellendaten drucken. Druckauswahl, falls mehr als eine Zelle ausgewählt ist. + + Execute line + Zeile ausführen - <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - <html><head/><body><p>Dieser Button erstellt eine neue Zeile in der Datenbank. Halten sie die Maustaste gedrückt, um ein Popup-Menü mit verschiedenen Optionen zu öffnen:</p><ul><li><span style=" font-weight:600;">Neuer Eintrag</span>: eine neue Zeile mit Standardwerten in die Datenbank einfügen.</li><li><span style=" font-weight:600;">Werte einfügen...</span>: einen Dialog zur Eingabe von Werten öffnen, bevor diese in die Datenbank eingefügt werden. Dies erlaubt die Eingabe von Werten, die den Constraints Genüge tun. Dieser Dialog wird auch geöffnet, falls die <span style=" font-weight:600;">Neuer Eintrag</span>-Option aufgrund dieser Constraints fehlschlägt.</li></ul></body></html> + + &Wiki + &Wiki - This button deletes the record or records currently selected in the table - Dieser Button löscht die Zeile oder Zeilen, die aktuell in der Tabelle ausgewählt sind + + F1 + - This is the database table view. You can do the following actions: - - Start writing for editing inline the value. - - Double-click any record to edit its contents in the cell editor window. - - Alt+Del for deleting the cell content to NULL. - - Ctrl+" for duplicating the current record. - - Ctrl+' for copying the value from the cell above. - - Standard selection and copy/paste operations. - Dies ist die Datenbanktabellen-Ansicht. Sie können die folgenden Aktionen durchführen: - - Mit Schreiben beginnen, um die Werte inline zu bearbeiten. - - Doppelt auf einen Eintrag klicken, um dessen Inhalte im Zelleneditor-Fenster zu bearbeiten. - - Alt+Entf zum Löschen des Zellinhaltes zu NULL. - - Strg+" zur Duplizierung des aktuellen Eintrags. - - Ctrl+' zum Kopieren des Wertes der darüberliegenden Zelle. - - Standardmäßige Auswahl- und Kopieren/Einfügen-Operationen. - - - <html><head/><body><p>Scroll to the beginning</p></body></html> - <html><head/><body><p>Zum Anfang scrollen</p></body></html> - - - <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - <html><head/><body><p>Ein Klick auf diesen Button navigiert zum Anfang der oben angezeigten Tabelle.</p></body></html> - - - |< - |< - - - - Error Log - Fehlerlog - - - - Ctrl+F4 - - - - - Compact &Database... - &Datenbank komprimieren... - - - - Execute all/selected SQL - Komplettes/ausgewähltes SQL ausführen - - - - This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. - Dieser Button führt das aktuell ausgewählte SQL-Statement aus. Falls kein Text ausgewählt ist, werden alle SQL-Statements ausgeführt. - - - This button opens a file containing SQL statements and loads it in a new editor tab - Dieser Button öffnet eine Datei mit SQL-Statements und lädt diese in einen neuen Editortab - - - - &Load Extension... - Erweiterung &laden... - - - - Execute line - Zeile ausführen - - - - &Wiki - &Wiki - - - - F1 - - - - + Bug &Report... Fehle&rmeldung... - + Feature Re&quest... Funktions&anfrage... - + Web&site Web&seite - + &Donate on Patreon... Über &Patreon spenden... - Sa&ve Project... - Projekt &speichern... - - - This button lets you save all the settings associated to the open DB to a DB4S project file - Dieser Button erlaubt Ihnen das Speichern aller mit der geöffneten DB verbundenen Einstellungen in einer DB4S-Projektdatei - - - + Open &Project... &Projekt öffnen... - This button lets you open a DB4S project file - Dieser Button erlaubt Ihnen das Öffnen einer DB4S-Projektdatei - - - + &Attach Database... Datenbank &anhängen... - - + + Add another database file to the current database connection Eine andere Datenbankdatei zur aktuellen Datenbankverbindung hinzufügen - + This button lets you add another database file to the current database connection Dieser Button erlaubt Ihnen das Hinzufügen einer anderen Datenbankdatei zur aktuellen Datenbankverbindung - + &Set Encryption... Verschlüsselung &setzen... - + SQLCipher &FAQ SQLCiper &FAQ - + Table(&s) to JSON... Tabelle(&n) zu JSON... - + Open Data&base Read Only... Daten&bank im Lesemodus öffnen... - + Ctrl+Shift+O - + Save results Ergebnisse speichern - + Save the results view Ergebnisansicht speichern - + This button lets you save the results of the last executed query Dieser Button erlaubt Ihnen das Speichern der Ergebnisse der zuletzt ausgeführten Query - - + + Find text in SQL editor Text im SQL-Editor finden - + Find Suchen - + This button opens the search bar of the editor Dieser Button öffnet die Suchleiste des Editors - + Ctrl+F - - + + Find or replace text in SQL editor Text im SQL-Editor suchen oder ersetzen - + Find or replace Suchen oder ersetzen - + This button opens the find/replace dialog for the current editor tab Dieser Button öffnet den Suchen-/Ersetzen-Dialog für den aktuellen Editortab - + Ctrl+H - + Export to &CSV Nach &CSV exportieren - + Save as &view Als &View speichern - + Save as view Als View speichern - + Browse Table Tabelle durchsuchen - Hide column(s) - Spalte(n) verbergen - - - Hide selected column(s) - Ausgewählte Spalte(n) verbergen - - - Show all columns - Alle Spalten anzeigen - - - Show all columns that were hidden - Alle versteckten Spalten anzeigen - - - + Shows or hides the Project toolbar. Zeigt oder versteckt die Projekt-Werkzeugleiste. - + Extra DB Toolbar Extra-DB-Werkzeugleiste - Export the filtered data to CSV - Die gefilterten Daten als CSV exportieren - - - This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - Dieser Button exportiert die Daten der ausgewählten Tabelle wie aktuell angezeigt (gefiltert, Anzeigeformate und Spaltenreihenfolge) als CSV-Datei. - - - Save the current filter, sort column and display formats as a view - Den aktuellen Filter, die Spaltenreihenfolge und Anzeigeformate als View speichern - - - This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - Dieser Button speichert die aktuellen Einstellungen der ausgewählten Tabelle (Filter, Anzeigeformate und Spaltenreihenfolge) als SQL-View, welche Sie später durchsuchen oder in SQL-Statements verwenden können. - - - Insert Values... - Werte einfügen... - - - Open a dialog for inserting values in a new record - Einen Dialog zum Einfügen von Werten in eine neue Zeile öffnen - - - Insert new record using default values in browsed table - Eine neue Zeile mit den Standardwerten in den ausgewählte Tabelle einfügen - - - + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file Dieser Button erlaubt Ihnen das Speichern aller mit der geöffneten DB verbundenen Einstellungen in einer DB-Browser für SQLite-Projektdatei - + This button lets you open a DB Browser for SQLite project file Dieser Button erlaubt Ihnen das Öffnen einer DB-Browser für SQLite-Projektdatei - + New In-&Memory Database Neue In-&Memory-Datenbank - + Drag && Drop Qualified Names Drag && Drop qualifizierter Namen - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor Qualifizierte Namen (z.B. "Tabelle."Feld") verwenden, wenn die Objekte gefasst und im Editor abgelegt werden - + Drag && Drop Enquoted Names Drag && Drop zitierter Namen - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor Geschützte Identifier (z.B. "Tabelle1") verwenden, wenn die Objekte gefasst und im Editor abgelegt werden - + &Integrity Check &Integritätsprüfung - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. Führt das integrity_check-Pragma auf der geöffneten Datenbank aus und gibt die Ergebnisse im SQL-Tab zurück. Dieses Pragma führt eine Integritätsprüfung der gesamten Datenbank durch. - + &Foreign-Key Check &Fremdschlüssel-Prüfung - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab Führt das foreign_key_check-Pragma auf der geöffneten Datenbank aus und gibt die Ergebnisse im SQL-Tab zurück - + &Quick Integrity Check &Schnelle Integritätsprüfung - + Run a quick integrity check over the open DB Führt eine schnelle Integritätsprüfung der geöffneten DB aus - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. Führt das quick_check-Pragma auf der geöffneten Datenbank aus und gibt die Ergebnisse im SQL-Tab zurück. Dieser Befehl führt einen Großteil der Prüfung des integrity_check-Pragmas aus, ist aber deutlich schneller. - + &Optimize &Optimieren - + Attempt to optimize the database Versuchen, die Datenbank zu optimieren - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. Führt das optimize-Pragma auf der geöffneten Datenbank aus. Dieses Pragma führt möglicherweise Optimierungen durch, die die Performanz zukünftiger Queries verbessern. - - + + Print Drucken - + Print text from current SQL editor tab Den Text aus dem aktuellen SQL-Editortab drucken - + Open a dialog for printing the text in the current SQL editor tab Einen Dialog zum Drucken des Textes im aktuellen SQL-Editortab öffnen - + Print the structure of the opened database Die Struktur der geöffneten Datenbank drucken - + Open a dialog for printing the structure of the opened database Einen Dialog zum Drucken der Struktur der geöffneten Datenbank öffnen - + &Save Project As... Projekt &speichern als... - - - + + + Save the project in a file selected in a dialog Das Projekt in einer in einem Dialog ausgewählten Datei speichern - + Save A&ll &Alle speichern - - - + + + Save DB file, project file and opened SQL files DB-Datei, Projektdatei und geöffnete SQL-Dateien speichern - + Ctrl+Shift+S - <html><head/><body><p>Clicking this button navigates 100 records upwards in the table view above.</p></body></html> - <html><head/><body><p>Ein Klick auf diesen Button navigiert 100 Einträge höher in der oben angezeigten Tabelle.</p></body></html> - - - <html><head/><body><p>Scroll 100 records downwards</p></body></html> - <html><head/><body><p>100 Zeilen nach unten scrollen</p></body></html> - - - <html><head/><body><p>Clicking this button navigates 100 records downwards in the table view above.</p></body></html> - <html><head/><body><p>Ein Klick auf diesen Button navigiert 100 Einträge nach unten in der oben angezeigten Tabelle.</p></body></html> - - - Scroll to the end - Zum Ende scrollen - - - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>Ein Klick auf diesen Button navigiert zum Ende der oben angezeigten Tabelle.</p></body></html> - - - >| - >| - - - <html><head/><body><p>Click here to jump to the specified record</p></body></html> - <html><body><p>Klicken Sie hier, um zu einer bestimmten Zeile zu springen</p></body></html> - - - <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - <html><body><p>Dieser Button kann zum Navigieren zu einer im "Springe zu"-Bereich festgelegten Zeile verwendet werden.</p></body></html> - - - Go to: - Springe zu: - - - Enter record number to browse - Zeilennummer zum Suchen auswählen - - - Type a record number in this area and click the Go to: button to display the record in the database view - Geben Sie eine Zeilennummer in diesem Bereich ein und klicken Sie auf den "Springe zu:"-Button, um die Zeile in der Datenbankansicht anzuzeigen - - - 1 - 1 - - - Edit &Pragmas - &Pragmas bearbeiten - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline, color:#0000ff;">Automatisches Vakuum</span></a></p></body></html> - - - None - Nichts - - - Full - Vollständig - - - Incremental - Inkrementell - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatischer Index</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Vollständiger FSYNC Speicherpunkt</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Foreign Keys</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_key"><span style=" text-decoration: underline; color:#0000ff;">Fremdschlüssel</span></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Vollständiger FSYNC</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Beschränkungsprüfung ignorieren</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Modus</span></a></p></body></html> - - - Delete - Löschen - - - Truncate - Kürzen - - - Persist - Behalten - - - Memory - Speicher - - - WAL - WAL - - - Off - Aus - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> - <html><head/><body><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Größenbegrenzung</span></a></p></body><html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Locking Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Sperrmodus</span></a><p></body></html> - - - Normal - Normal - - - Exclusive - Exklusiv - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text decoration: underline; color:#0000ff;">Maximale Seitenanzahl</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Seitengröße</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Rekursive Trigger</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Sicheres Löschen</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronisierung</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Zwischenspeicherung</span></a></p></body></html> - - - Default - Voreinstellung + + Close Pro&ject + - File - Datei + + Close project and database files and return to the initial state + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">Schemaversion</span></a></p></body></html> + + Ctrl+Shift+F4 + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL Auto Checkpoint</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">Automatischer WAL Speicherpunkt</span></a></p></body></html> + + + Detach Database + - &Open Database Read Only... - Datenbank schreibgeschützt &öffnen... + + + Detach database file attached to the current database connection + - + Open an existing database file in read only mode Eine existierende Datenbank schreibgeschützt öffnen - Unlock view editing - Ansicht zur Bearbeitung entsperren - - - This unlocks the current view for editing. However, you will need appropriate triggers for editing. - Dies entsperrt die aktuelle Ansicht zur Bearbeitung. Allerdings werden zur Bearbeitung passende Trigger benötigt. - - - E&xecute SQL - S&QL ausführen - - - + &File &Datei - + &Import &Import - + &Export &Export - Remote - Entfernt - - - + &Edit &Bearbeiten - + &View &Ansicht - + &Help &Hilfe - + Edit Database &Cell Datenbank&zelle bearbeiten - + This button clears the contents of the SQL logs Dieser Button löscht den Inhalt der SQL-Logs - + This panel lets you examine a log of all SQL commands issued by the application or by yourself Dieses Panel erlaubt Ihnen das Betrachten eines Logs aller SQL-Kommandos, die von der Anwendung oder von Ihnen selbst ausgegangen sind - + DB Sche&ma - DB Sche&ma + DB-Sche&ma - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. @@ -3804,526 +3041,299 @@ Sie können SQL-Statements aus der Schemaspalte nehmen und in den SQL-Editor ode - + &Remote Entfe&rnt - - + + Execute SQL This has to be equal to the tab title in all the main tabs SQL ausführen - + + Recent Files + + + + Open SQL file(s) SQL-Datei(en) öffnen - + This button opens files containing SQL statements and loads them in new editor tabs Dieser Button öffnet Dateien mit SQL-Anweisungen und lädt diese in neue Editortabs - - + + Execute current line Aktuelle Zeile ausführen - + This button executes the SQL statement present in the current editor line Dieser Button führt das SQL-Statement in der aktuellen Editorzeile aus - + Shift+F5 - + Sa&ve Project &Projekt speichern - Open &Project - &Projekt öffnen - - - &Attach Database - Datenbank &anhängen - - - &Set Encryption - Verschlüsselung &setzen - - - - + + Save SQL file as SQL-Datei speichern als - + This button saves the content of the current SQL editor tab to a file Dieser Button speichert den Inhalt des aktuellen SQL-Editortabs in einer Datei - + &Browse Table Tabelle &durchsuchen - + Copy Create statement Create-Statement kopieren - + Copy the CREATE statement of the item to the clipboard CREATE-Statement des Elements in die Zwischenablage kopieren - Edit display format - Anzeigeformat bearbeiten + + User + Benutzer - Edit the display format of the data in this column - Anzeigeformat der Daten in dieser Spalte bearbeiten + + Application + Anwendung - Show rowid column - Rowid-Spalte anzeigen + + &Clear + &Leeren - Toggle the visibility of the rowid column - Sichtbarkeit der Rowid-Spalte umschalten + + &New Database... + &Neue Datenbank... - Set encoding - Codierung setzen + + + Create a new database file + Neue Datenbank-Datei erstellen - Change the encoding of the text in the table cells - Kodierung des Textes in den Tabellenzellen ändern + + This option is used to create a new database file. + Diese Option wird zum Erstellen einer neuen Datenbank-Datei verwendet. - Set encoding for all tables - Kodierung für alle Tabellen setzen + + Ctrl+N + - Change the default encoding assumed for all tables in the database - Voreingestellte Kodierung für alle Tabellen in der Datenbank ändern + + + &Open Database... + Datenbank &öffnen... - Duplicate record - Zeile duplizieren + + + + + + Open an existing database file + Existierende Datenbank-Datei öffnen - toolBar - Toolbar + + + + This option is used to open an existing database file. + Diese Option wird zum Öffnen einer existierenden Datenbank-Datei verwendet. - SQL Log - SQL-Log - - - &Show SQL submitted by - Zeige SQL von - - - - User - Benutzer - - - - Application - Anwendung - - - - &Clear - &Leeren - - - Plot - Anzeigen - - - Columns - Spalten - - - X - X - - - Y - Y - - - _ - _ - - - Line type: - Zeilentyp: - - - Line - Zeile - - - StepLeft - Nach links - - - StepRight - Nach rechts - - - StepCenter - Zur Mitte - - - Impulse - Impuls - - - Point shape: - Punktform: - - - Cross - Kreuz - - - Plus - Plus - - - Circle - Kreis - - - Disc - Scheibe - - - Square - Quadrat - - - Diamond - Diamant - - - Star - Stern - - - Triangle - Dreieck - - - TriangleInverted - Invertiertes Dreieck - - - CrossSquare - Quadrat mit Kreuz - - - PlusSquare - Quadrat mit Plus - - - CrossCircle - Kreis mit Kreuz - - - PlusCircle - Kreis mit Plus - - - Peace - Peace - - - Save current plot... - Aktuelles Diagramm speichern... - - - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - Alle Daten laden. Dies bringt nur etwas, wenn aufgrund des partiellen Abrufmechanismus noch nicht alle Daten der Tabelle abgerufen wurden. - - - DB Schema - DB Schema - - - - &New Database... - &Neue Datenbank... - - - - - Create a new database file - Neue Datenbank-Datei erstellen - - - - This option is used to create a new database file. - Diese Option wird zum Erstellen einer neuen Datenbank-Datei verwendet. - - - - Ctrl+N - - - - - - &Open Database... - Datenbank &öffnen... - - - - - - - - Open an existing database file - Existierende Datenbank-Datei öffnen - - - - - - This option is used to open an existing database file. - Diese Option wird zum Öffnen einer existierenden Datenbank-Datei verwendet. - - - + Ctrl+O - + &Close Database Datenbank &schließen - + This button closes the connection to the currently open database file Dieser Button schließt die Verbindung zu der aktuell geöffneten Datenbankdatei - - + + Ctrl+W - Revert Changes - Änderungen rückgängig machen - - - - + + Revert database to last saved state Datenbank auf zuletzt gespeicherten Zustand zurücksetzen - + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. Diese Option wird zum Zurücksetzen der aktuellen Datenbank-Datei auf den zuletzt gespeicherten Zustand verwendet. Alle getätigten Änderungen gehen verloren. - Write Changes - Änderungen schreiben - - - - + + Write changes to the database file Änderungen in Datenbank-Datei schreiben - + This option is used to save changes to the database file. Diese Option wird zum Speichern von Änderungen in der Datenbank-Datei verwendet. - + Ctrl+S - Compact Database - Datenbank komprimieren - - - + Compact the database file, removing space wasted by deleted records Datenbank-Datei komprimieren, löscht Speicherplatz von gelöschten Zeilen - - + + Compact the database file, removing space wasted by deleted records. Datenbank-Datei komprimieren, löscht Speicherplatz von gelöschten Zeilen. - + E&xit &Beenden - + Ctrl+Q - Database from SQL file... - Datenbank aus SQL-Datei... - - - + Import data from an .sql dump text file into a new or existing database. Daten von einer .sql-Dump-Textdatei in eine neue oder existierende Datenbank importieren. - + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. Diese Option wird zum Importieren von Daten von einer .sql-Dump-Textdatei in eine neue oder existierende Datenbank verwendet. SQL-Dumpdateien können von den meisten Datenbankanwendungen erstellt werden, inklusive MySQL und PostgreSQL. - Table from CSV file... - Tabelle aus CSV-Datei... - - - + Open a wizard that lets you import data from a comma separated text file into a database table. Öffnet einen Assistenten zum Importieren von Daten aus einer kommaseparierten Textdatei in eine Datenbanktabelle. - + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. Öffnet einen Assistenten zum Importieren von Daten aus einer kommaseparierten Textdatei in eine Datenbanktabelle. CSV-Dateien können von den meisten Datenbank- und Tabellenkalkulations-Anwendungen erstellt werden. - Database to SQL file... - Datenbank zu SQL-Datei... - - - + Export a database to a .sql dump text file. Daten in eine .sql-Dump-Textdatei exportieren. - + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. Diese Option ermöglicht den Export einer Datenbank in eine .sql-Dump-Textdatei. SQL-Dumpdateien enthalten alle notwendigen Daten, um die Datenbank mit den meisten Datenbankanwendungen neu erstellen zu können, inklusive MySQL und PostgreSQL. - Table as CSV file... - Tabelle als CSV-Datei... - - - + Export a database table as a comma separated text file. Datenbank als kommaseparierte Textdatei exportieren. - + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. Exportiert die Datenbank als kommaseparierte Textdatei, fertig zum Import in andere Datenbank- oder Tabellenkalkulations-Anwendungen. - Create Table... - Tabelle erstellen... - - - + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database Den Assistenten zum Erstellen einer Tabelle öffnen, wo der Name und die Felder für eine neue Tabelle in der Datenbank festgelegt werden können - Delete Table... - Tabelle löschen... - - - + Open the Delete Table wizard, where you can select a database table to be dropped. Den Assistenten zum Löschen einer Tabelle öffnen, wo eine zu entfernende Datenbanktabelle ausgewählt werden kann. - Modify Table... - Tabelle ändern... - - - + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. Den Assistenten zum Ändern einer Tabelle öffnen, wo eine existierende Tabelle umbenannt werden kann. Ebenso können Felder hinzugefügt und gelöscht sowie Feldnamen und -typen geändert werden. - Create Index... - Index erstellen... - - - + Open the Create Index wizard, where it is possible to define a new index on an existing database table. Den Assistenten zum Erstellen des Index öffnen, wo ein neuer Index für eine existierende Datenbanktabelle gewählt werden kann. - + &Preferences... &Einstellungen... - - + + Open the preferences window. Das Einstellungsfenster öffnen. - + &DB Toolbar &DB Toolbar - + Shows or hides the Database toolbar. Zeigt oder versteckt die Datenbank-Toolbar. - What's This? - Funktionen erläutern - - - + Shift+F1 - &About... - &Über... - - - + &Recently opened &Kürzlich geöffnet - Open &tab - &Tab öffnen - - - + Ctrl+T @@ -4342,365 +3352,261 @@ Sie können SQL-Statements aus der Schemaspalte nehmen und in den SQL-Editor ode Daten durchsuchen - - + + Edit Pragmas This has to be equal to the tab title in all the main tabs Pragmas bearbeiten - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - - - + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. Warnung: dieses Pragma ist nicht lesbar und dieser Wert wurde abgeleitet. Das Schreiben des Pragmas überschreibt möglicherweise ein geändertes LIKE, welches von einer SQLite-Erweiterung zur Verfügung gestellt wird. - + &Tools &Werkzeuge - + DB Toolbar DB Toolbar - Edit Database Cell - Datenbankzelle bearbeiten - - - + SQL &Log SQL-&Log - + Show S&QL submitted by Anzeige des übergebenen S&QL von - + &Plot &Diagramm - - + + Project Toolbar Projekt-Werkzeugleiste - + Extra DB toolbar Extra-DB-Werkzeugleiste - - - + + + Close the current database file Die aktuelle Datenbankdatei schließen - + &Revert Changes Änderungen &rückgängig machen - + &Write Changes Änderungen &schreiben - Compact &Database - &Datenbank komprimieren - - - + &Database from SQL file... &Datenbank aus SQL-Datei... - + &Table from CSV file... &Tabelle aus CSV-Datei... - + &Database to SQL file... - &Datenbank zu SQL-Datei... + &Datenbank als SQL-Datei... - + &Table(s) as CSV file... &Tabelle(n) als CSV-Datei... - + &Create Table... Tabelle &erstellen... - + &Delete Table... Tabelle &löschen... - + &Modify Table... Tabelle &ändern... - + Create &Index... &Index erstellen... - + W&hat's This? &Was ist das? - + &About &Über - + New &tab - + This button opens a new tab for the SQL editor Dieser Button öffnet einen neuen Tab im SQL-Editor - + &Execute SQL SQL &ausführen - &Load extension - Erweiterung &laden - - - &Wiki... - &Wiki... - - - Bug &report... - Fehler &melden... - - - Web&site... - Web&site... - - - Save Project - Projekt speichern - - - - + + Save the current session to a file Aktuelle Sitzung in einer Datei speichern - Open Project - Projekt öffnen - - - - + + Load a working session from a file Sitzung aus einer Datei laden - Open SQL file - SQL-Datei öffnen - - - <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - <html><head/><body><p>Aktuelles Diagramm speichern...</p><p>Dateiformat durch Endung auswählen (png, jpg, pdf, bmp)</p></body></html> - - - - - + + + Save SQL file SQL-Datei speichern - Load extension - Erweiterung laden - - - + Ctrl+E - + Export as CSV file Als CSV-Datei exportieren - + Export table as comma separated values file Tabelle als kommaseparierte Wertedatei exportieren - + Ctrl+L - - + + Ctrl+P - + Database encoding Datenbank-Kodierung - - + + Choose a database file Eine Datenbankdatei auswählen - + Ctrl+Return - + Strg+Return - + Ctrl+D - + Strg+D - + Ctrl+I - + Strg+I - + Reset Window Layout Fensteranordnung zurücksetzen - + Alt+0 - Close current SQL tab - Aktuellen SQL-Tab schließen - - - + The database is currenctly busy. Die Datenbank ist aktuell beschäftigt. - + Click here to interrupt the currently running query. Hier klicken, um die aktuell laufende Anfrage zu unterbrechen. - + Encrypted Verschlüsselt - + Database is encrypted using SQLCipher Datenbank ist mittels SQLCipher verschlüsselt - + Read only Nur lesen - + Database file is read only. Editing the database is disabled. Zugriff auf Datenbank nur lesend. Bearbeiten der Datenbank ist deaktiviert. - + Could not open database file. Reason: %1 Datenbankdatei konnte nicht geöffnet werden. Grund: %1 - - - + + + Choose a filename to save under Dateinamen zum Speichern auswählen - Error adding record: - - Fehler beim Hinzufügen der Zeile: - - - - Error deleting record: -%1 - Fehler beim Löschen der Zeile: -%1 - - - Please select a record first - Bitte zuerst eine Zeile auswählen - - - %1 - %2 of %3 - %1 - %2 von %3 - - - There is no database opened. Please open or create a new database file. - Es ist keine Datenbank geöffnet. Bitte eine Datenbank-Datei öffnen oder eine neue erstellen. - - - Are you sure you want to delete the %1 '%2'? -All data associated with the %1 will be lost. - Sollen %1 '%2' wirklich gelöscht werden? -Alle mit %1 verbundenen Daten gehen verloren. - - - Error: could not delete the %1. Message from database engine: -%2 - Fehler: %1 konnte nicht gelöscht werden. Meldung der Datenbank: -%2 - - - There is no database opened. - Keine Datenbank geöffnet. - - - %1 rows returned in %2ms from: %3 - %1 Reihen innerhalb von %2ms zurückgegeben von: %3 - - - , %1 rows affected - , %1 Zeilen betroffen - - - Query executed successfully: %1 (took %2ms%3) - Query erfolgreich ausgeführt: %1 (innerhalb von %2ms%3) - - - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 @@ -4709,455 +3615,412 @@ Alle mit %1 verbundenen Daten gehen verloren. %1 - + Do you want to save the changes made to SQL tabs in the project file '%1'? Sollen die in den SQL-Tabs getätigten Änderungen in der Projektdatei '%1' gespeichert werden? - + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. Eine neue Version des DB Browsers für SQLite ist verfügbar (%1.%2.%3).<br/><br/>Bitte laden Sie diese von <a href='%4'>%4</a> herunter. - Please enter the URL of the database file to save. - Bitte die URL der zu speichernden Datenbankdatei eingeben. - - - + DB Browser for SQLite project file (*.sqbpro) DB Browser für SQLite Projektdatei (*.sqbpro) - Please choose a new encoding for this table. - Bitte wählen Sie eine neue Kodierung für diese Tabelle. - - - Please choose a new encoding for all tables. - Bitte wählen Sie eine neue Kodierung für alle Tabellen. - - - + Error checking foreign keys after table modification. The changes will be reverted. Fehler beim Prüfen von Fremdschlüsseln nach der Änderung an der Tabelle. Die Änderungen werden rückgängig gemacht. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. Diese Tabelle hat die Fremdschlüsselprüfung nicht bestanden.<br/>Sie sollten 'Werkzeuge | Fremdschlüssel-Prüfng' ausführen und die gemeldeten Probleme beheben. - + Execution finished with errors. Ausführung wurde mit Fehlern beendet. - + Execution finished without errors. Ausführung wurde ohne Fehler beendet. - %1 -Leave the field empty for using the database encoding. - %1 -Lassen Sie das Feld leer, um die Datenbankodierung zu verwenden. + + Are you sure you want to undo all changes made to the database file '%1' since the last save? + Sollen wirklich alle Änderungen an der Datenbankdatei '%1' seit dem letzten Speichern rückgängig gemacht werden? - This encoding is either not valid or not supported. - Diese Kodierung ist entweder nicht gültig oder nicht unterstützt. + + Choose a file to import + Datei für Import auswählen - Cancel - Abbrechen + + Text files(*.sql *.txt);;All files(*) + Textdateien(*.sql *.txt);;Alle Dateien(*) - %1 Rows returned from: %2 (took %3ms) - %1 Reihen zurückgegeben von: %2 (in %3ms) + + Do you want to create a new database file to hold the imported data? +If you answer no we will attempt to import the data in the SQL file to the current database. + Soll für die importierten Daten eine neue Datenbank erstellt werden? +Bei der Antwort NEIN werden die Daten in die SQL-Datei der aktuellen Datenbank importiert. - Error executing query: %1 - Fehler beim Ausführen der Anfrage: %1 + + Ctrl+Tab + - Query executed successfully: %1 (took %2ms) - Anfrage erfolgreich ausgeführt: %1 (in %2ms) + + Ctrl+Shift+Tab + - Choose a text file - Textdatei auswählen + + Ctrl+PgUp + - Text files(*.csv *.txt);;All files(*) - Textdateien(*.csv *.txt);;Alle Dateien(*) + + Clear List + - Import completed - Import vollständig + + Window Layout + - - Are you sure you want to undo all changes made to the database file '%1' since the last save? - Sollen wirklich alle Änderungen an der Datenbankdatei '%1' seit dem letzten Speichern rückgängig gemacht werden? - - - Choose a filename to export - Dateinamen zum Export auswählen - - - Text files(*.sql *.txt) - Textdateien(*.sql *.txt) - - - Export cancelled or failed. - Export abgebrochen oder fehlgeschlagen. - - - Export completed. - Export abgeschlossen. - - - - Choose a file to import - Datei für Import auswählen - - - - Text files(*.sql *.txt);;All files(*) - Textdateien(*.sql *.txt);;Alle Dateien(*) + + Simplify Window Layout + - - Do you want to create a new database file to hold the imported data? -If you answer no we will attempt to import the data in the SQL file to the current database. - Soll für die importierten Daten eine neue Datenbank erstellt werden? -Bei der Antwort NEIN werden die Daten in die SQL-Datei der aktuellen Datenbank importiert. + + Shift+Alt+0 + - - Ctrl+Tab + + Dock Windows at Bottom - - Ctrl+Shift+Tab + + Dock Windows at Left Side - - Ctrl+PgUp + + Dock Windows at Top - + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? Es werden aktuell SQL-Statements ausgeführt. Das Schließen der Datenbank wird deren Ausführung stoppen, was die Datenbank möglicherweise in einem inkonsistenten Zustand belässt. Soll die Datenbank wirklich geschlossen werden? - + Do you want to save the changes made to the project file '%1'? Sollen die an der Projektdatei '%1' getätigten Änderungen gespeichert werden? - + File %1 already exists. Please choose a different name. Datei %1 existiert bereits. Bitte einen anderen Namen auswählen. - + Error importing data: %1 Fehler beim Datenimport: %1 - + Import completed. Import abgeschlossen. - + Delete View Ansicht löschen - + Delete Trigger Trigger löschen - + Delete Index Index löschen - - + + Delete Table Tabelle löschen - &%1 %2 - &%1 %2 - - - + Setting PRAGMA values will commit your current transaction. Are you sure? Das Setzen von PRAGMA-Werten übermittelt den aktuellen Vorgang. Sind Sie sicher? - Execution aborted by user - Ausführung durch Benutzer abgebrochen - - - + In-Memory database In-Memory-Datenbank - determining row count... - bestimmte Zeilenanzahl... - - - %1 - %2 of >= %3 - %1 - %2 von >= %3 - - - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. Möchten Sie die Tabelle '%1' wirklich löschen? Alle mit dieser Tabelle verbundenen Daten gehen verloren. - + Are you sure you want to delete the view '%1'? Möchten Sie die Ansicht '%1' wirklich löschen? - + Are you sure you want to delete the trigger '%1'? Möchten Sie den Trigger '%1' wirklich löschen? - + Are you sure you want to delete the index '%1'? Möchten Sie den Index '%1' wirklich löschen? - + Error: could not delete the table. Fehler: Tabelle konnte nicht gelöscht werden. - + Error: could not delete the view. Fehler: Ansicht konnte nicht gelöscht werden. - + Error: could not delete the trigger. Fehler: Trigger konnte nicht gelöscht werden. - + Error: could not delete the index. Fehler: Index konnte nicht gelöscht werden. - + Message from database engine: %1 Nachricht von Datenbank-Engine: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? Das Bearbeiten der Tabelle setzt das Speichern aller ausstehenden Änderungen voraus. Möchten Sie die Datenbank wirklich speichern? - + Edit View %1 Ansicht %1 bearbeiten - + Edit Trigger %1 Trigger %1 bearbeiten - + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. Es werden bereits SQL-Statements ausgeführt. Sollen diese gestoppt werden, um stattdessen die aktuellen Statements auszuführen? Dies führt möglicherweise zu einem inkonsistenten Zustand der Datenbank. - + -- EXECUTING SELECTION IN '%1' -- -- FÜHRE AUSWAHL IN '%1' AUS -- - + -- EXECUTING LINE IN '%1' -- -- FÜHRE ZEILE IN '%1' AUS -- - + -- EXECUTING ALL IN '%1' -- -- FÜHRE ALLES IN '%1' AUS -- - - + + At line %1: In Zeile %1: - + Result: %1 Ergebnis: %1 - + Result: %2 Ergebnis: %2 - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? Das Setzen von PRAGMA-Werten oder des Vakuumings wird Ihre aktuelle Transaktion committen. Sind Sie sich sicher? - + + Opened '%1' in read-only mode from recent file list + + + + + Opened '%1' from recent file list + + + + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. - + Project saved to file '%1' Projekt in Datei '%1' gespeichert - + + Yes. Don't ask again + + + + This action will open a new SQL tab with the following statements for you to edit and run: Diese Aktion öffnet einen neuen SQL-Tab mit den folgenden Anweisungen zum Bearbeiten und Ausführen: - + Rename Tab Tab umbenennen - + Duplicate Tab Tab duplizieren - + Close Tab Tab schließen - + Opening '%1'... Öffne '%1'... - + There was an error opening '%1'... Fehler beim Öffnen von '%1'... - + Value is not a valid URL or filename: %1 Wert ist keine gültige URL bzw. kein gültiger Dateiname: %1 - executing query - führe Query aus - - - + %1 rows returned in %2ms %1 Zeilen in %2ms zurückgegeben - query executed successfully. Took %1ms%2 - Query erfolgreich ausgeführt. Benötigte %1ms%2 - - - -- At line %1: -%4 --- Result: %3 - -- In Zeile %1: -%4 --- Ergebnis: %3 - - - + Choose text files Textdateien auswählen - + Import completed. Some foreign key constraints are violated. Please fix them before saving. Import vollständig. Ein paar Fremdschlüssel wurden verletzt. Bitten beheben Sie diese vor dem Speichern. - + Modify View Ansicht verändern - + Modify Trigger Trigger verändern - + Modify Index Index verändern - + Modify Table Tabelle verändern - + &%1 %2%3 &%1 %2%3 - + (read only) (nur lesend) - + Open Database or Project Datenbank oder Projekt öffnen - + Attach Database... Datenbank anhängen... - + Import CSV file(s)... CSV-Datei(en) importieren... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. Auf die Datei anzuwendende Aktion auswählen. <br/>Hinweis: Nur 'Import' kann mehr als eine Datei verarbeiten. @@ -5165,104 +4028,75 @@ Sind Sie sich sicher? - + Do you want to save the changes made to SQL tabs in a new project file? Sollen die an den SQL-Tabs getätigten Änderungen in einer neuen Projektdatei gespeichert werden? - + Do you want to save the changes made to the SQL file %1? Sollen die getätigten Änderungen in der SQL-Datei %1 gespeichert werden? - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? - Es werden aktuell SQL-Statements ausgeführt. Das Schließen des Tabs wird deren Ausführung stoppen, was die Datenbank möglicherweise in einem inkonsistenten Zustand belässt. Soll der Tab wirklich geschlossen werden? - - - + Select SQL file to open SQL-Datei zum Öffnen auswählen - Couldn't read file: %1. - Datei konnte nicht gelesen werden: %1. - - - Couldn't save file: %1. - Datei konnte nicht gespeichert werden: %1. - - - + Select file name Dateinamen auswählen - + Select extension file Erweiterungsdatei auswählen - Extensions(*.so *.dll);;All files(*) - Erweiterungen(*.so *.dll);;Alle Dateien(*) - - - + Extension successfully loaded. Erweiterung erfolgreich geladen. - + Error loading extension: %1 Fehler beim Laden der Erweiterung: %1 - + Could not find resource file: %1 Ressourcen-Datei konnte nicht gefunden werden: %1 - - + + Don't show again Nicht wieder anzeigen - + New version available. Neue Version verfügbar. - + Choose a project file to open Wählen Sie die zu öffnende Projektdatei - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - Diese Projektdatei verwendet ein altes Dateiformat, da es mit DB-Browser für SQLite Version 3.10 oder niedriger erstellt wurde. Das Laden dieses Dateiformats wird noch vollständig unterstützt, wird empfehlen Ihnen allerdings, alle Ihre Projektdateien in das neue Dateiformat zu überführen, da die Unterstützung für ältere Formate in Zukunft möglicherweise entfernt wird. Sie können Ihre Dateien einfach durch Öffnen und Neuspeichern umwandeln. - - - + Could not open project file for writing. Reason: %1 Projekt-Datei konnte nicht schreibend geöffnet werden. Grund: %1 - Duplicate records - Doppelte Einträge - - - Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - Bitte einen Pseudo-Primärschlüssel eingeben, um die Bearbeitung dieser Ansicht zu ermöglichen. Dies sollte der Name der eindeutigen Spalte dieser Ansicht sein. - - - + Collation needed! Proceed? Kollation notwendig! Fortführen? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -5271,82 +4105,50 @@ Wenn Sie fortfahren, sollten Sie im Hinterkopf behalten, dass mit Ihrer Datenban Erstellen Sie ein Backup! - + creating collation erstelle Kollation - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. Vergeben Sie einen Namen für den SQL-Tab. Verwenden Sie das '&&'-Zeichen, um das folgende Zeichen als Tastaturkürzel zu verwenden. - + Please specify the view name Geben Sie bitte einen Namen für Ansicht an - + There is already an object with that name. Please choose a different name. Es gibt bereits ein Objekt mit diesem Namen. Bitte wählen Sie einen anderen aus. - + View successfully created. Ansicht erfolgreich erstellt. - + Error creating view: %1 Fehler beim Erstellen der Ansicht: %1 - There is no filter set for this table. View will not be created. - Es gibt kein Filterset für diese Tabelle. Die Ansicht wird nicht erstellt. - - - Delete Records - Einträge löschen - - - + This action will open a new SQL tab for running: Diese Aktion öffnet einen neuen SQL-Tab zur Ausführung: - + Press Help for opening the corresponding SQLite reference page. Drücken Sie auf 'Hilfe', um die entsprechende SQLite-Referenzseite zu öffnen. - + Busy (%1) Beschäftigt (%1) - - A new sqlitebrowser version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. - Eine neue sqlitebrowser-Version ist verfügbar (%1.%2.%3).<br/><br/>Bitte von <a href='%4'>%4</a> herunterladen. - - - Choose a axis color - Achsenfarbe auswählen - - - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Alle Dateien(*) - - - Choose a file to open - Datei zum Öffnen auswählen - - - SQLiteBrowser project(*.sqbpro) - SQLiteBrowser-Projekt(*.sqbpro) - - - Invalid file format. - Ungültiges Dateiformat. - NullLineEdit @@ -5369,45 +4171,37 @@ Erstellen Sie ein Backup! Diagramm - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> <html><head/><body><p>Dieses Pane zeigt die Liste der Spalten der aktuell ausgewählten Tabelle oder des soeben ausgeführtne Queries. Sie können die für die X- und Y-Achse gewünschten Spalten für das Plot-Pane unten auswählen. Die Tabelle zeigt den erkannten Axentyp, der den entstehenden Plot beeinflusst. Für die Y-Achse sind nur numerische Spalten zulässig, während Sie für die X-Achse aus folgenden Optionen auswählen können:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Datum/Zeit</span>: Strings im Format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Datum</span>: Strings im Format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Zeit</span>: Strings im Format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Beschriftung</span>: andere Stringformate. Die Auswahl dieser Spalte als X-Achse erzeugt einen Barplot mit den Spaltenwerten als Beschriftungen der Bars.</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numerisch</span>: Integer- oder Real-Werte</li></ul><p>Ein Doppelklick auf die Y-Zellen ermöglicht Ihnen das Ändern der für den Graph verwendeten Farbe.</p></body></html> - + Columns Spalten - + X X - Y - Y - - - _ - _ - - - + Y1 Y1 - + Y2 Y2 - + Axis Type Achsentyp - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -5424,147 +4218,139 @@ Verwenden Sie das Mausrad zum Zoomen und Ziehen Sie mit der Maus, um den Achsenb Wählen Sie die Achsen oder Achsenbeschriftungen aus, um nur in diese Richtung zu zoomen oder zu verschieben. - + Line type: Linientyp: - - + + None Keine - + Line Linie - + StepLeft Linksschritt - + StepRight Rechtsschritt - + StepCenter Mittelschritt - + Impulse Impuls - + Point shape: Punktform: - + Cross Kreuz - + Plus Plus - + Circle Kreis - + Disc Scheibe - + Square Quadrat - + Diamond Diamant - + Star Stern - + Triangle Dreieck - + TriangleInverted Invertiertes Dreieck - + CrossSquare Quadrat mit Kreuz - + PlusSquare Quadrat mit Plus - + CrossCircle Kreis mit Kreuz - + PlusCircle Kreis mit Plus - + Peace Peace - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> <html><head/><body><p>Aktuelles Diagramm speichern...</p><p>Dateiformat durch Endung auswählen (png, jpg, pdf, bmp)</p></body></html> - + Save current plot... Aktuelles Diagramm speichern... - - + + Load all data and redraw plot Alle Daten laden und Plot neu zeichnen - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - Alle Daten laden. Dies bringt nur etwas, wenn aufgrund des partiellen Abrufmechanismus noch nicht alle Daten der Tabelle abgerufen wurden. - - - - - + + + Row # Zeile # - - Choose a axis color - Achsenfarbe auswählen - Copy @@ -5586,76 +4372,68 @@ Wählen Sie die Achsen oder Achsenbeschriftungen aus, um nur in diese Richtung z Gestapelte Bars - + Date/Time Datum/Zeit - + Date Datum - + Time Zeit - - + + Numeric Numerisch - + Label Beschriftung - + Invalid Ungültig - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. Alle Daten laden und Plot neu zeichnen. Warnung: es wurden aufgrund der partiellen Abrufmechanismus noch nicht alle Daten aus der Tabelle abgerufen. - + Choose an axis color Eine Achsenfarbe wählen - + Choose a filename to save under Dateinamen zum Speichern auswählen - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Alle Dateien(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. Dieser Plot enthält Kurven und der ausgewählte Linienstil kann nur auf nach X sortierte Graphen angewendet werden. Sortieren Sie entweder die Tabelle oder Query nach X oder entfernen Sie die Kurven oder wählen Sie eine der Stile, die von Kurven unterstützt werden: Keiner oder Linie. - + Loading all remaining data for this table took %1ms. Das Laden aller verbleibender Daten dieser Tabelle benötigte %1ms. - - Fetching all data... - Alle Daten werden abgerufen... - - - Cancel - Abbrechen - PreferencesDialog @@ -5700,35 +4478,36 @@ Warnung: es wurden aufgrund der partiellen Abrufmechanismus noch nicht alle Date Automatische &Updates - + &Database &Datenbank - + Database &encoding Datenbank-&Kodierung - + Open databases with foreign keys enabled. Öffnen von Datenbanken mit Fremdschlüsseln aktiviert. - + &Foreign keys &Fremdschlüssel - - - - - - - + + + + + + + + enabled aktiviert @@ -5739,261 +4518,213 @@ Warnung: es wurden aufgrund der partiellen Abrufmechanismus noch nicht alle Date - - + + ... ... - &Prefetch block size - &Prefetch Blockgröße - - - + Remove line breaks in schema &view Zeilenumbrüche in der Schema&ansicht entfernen - + Prefetch block si&ze Block&größe für Prefetch - Advanced - Erweitert - - - SQL to execute after opening database - Nach dem Öffnen einer Datenbank auszuführendes SQL - - - + SQ&L to execute after opening database Nach dem Öffnen einer Datenbank auszuführendes SQ&L - + Default field type Voreingestellter Feldtyp - + Data &Browser Daten&auswahl - + Font Schrift - + &Font Schri&ft - Font si&ze: - Schrift&größe: - - - + Content Inhalt - + Symbol limit in cell Symbolbegrenzung in Zelle - NULL fields - NULL-Felder - - - &Text - &Text - - - Field colors - Feldfarben - - - + NULL NULL - + Regular Normal - Text - Text - - - + Binary Binär - + Background Hintergrund - + Filters Filter - + Threshold for completion and calculation on selection Schwellwert für die Vervollständigung und Berechnung bei Auswahl - + Show images in cell Bilder in Zelle anzeigen - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. Diese Option aktivieren, um eine Vorschau von BLOBs mit Bilddaten in den Zellen anzuzeigen. Dies kann allerdings die Performanz der Anwendung beeinflussen. - + Escape character Escape-Zeichen - + Delay time (&ms) Verzögerung (&ms) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. Verzögerung vor der Anwendung eines neuen Filters setzen. Kann auf 0 gesetzt werden, um dies zu deaktivieren. - + &SQL &SQL - + Settings name Einstellungsname - + Context Kontext - + Colour Farbe - + Bold Fett - + Italic Kursiv - + Underline Unterstreichung - + Keyword Schlüsselwort - function - Funktion - - - + Function Funktion - + Table Tabelle - + Comment Kommentar - + Identifier Bezeichner - + String String - currentline - Aktuelle Zeile - - - + Current line Aktuelle Zeile - + SQL &editor font size SQL-&Editor Schriftgröße - SQL &log font size - SQL-&Log Schriftgröße - - - + Tab size Tab-Größe - + SQL editor &font SQL Editor &Schrift - + Error indicators Fehleranzeige - Enabling error indicators highlights the SQL code lines that caused errors during the last execution - Durch Aktivieren der Fehleranzeige werden SQL-Codezeilen hervorgehoben, die während der letzten Ausführung Fehler verursacht haben - - - + Hori&zontal tiling Hori&zontale Anordnung - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. Im aktivierten Zustand werden der SQL-Codeeditor und die Ergebnistabelle neben- statt untereinander angezeigt. - + Code co&mpletion &Codevervollständung @@ -6103,17 +4834,48 @@ Warnung: es wurden aufgrund der partiellen Abrufmechanismus noch nicht alle Date Anwendungs-Stil - + + This sets the font size for all UI elements which do not have their own font size option. + + + + + Font size + + + + + Max Recent Files + + + + + Prompt to save SQL tabs +in new project file + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. Falls aktiviert, werden die Zeilenumbrüche in der Schemaspalte des DB-Strukturtabs, Docks und der gedruckten Ausgabe entfernt. - + + Database structure font size + + + + Font si&ze Schrift&größe - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. @@ -6124,312 +4886,378 @@ Maximale Indexanzahl einer Auswahl für die Berechnung von Summe und Durchschnit Kann auf 0 gesetzt werden, um diese Funktionalitäten zu deaktivieren. - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. Dies ist die maximale Anzahl an Zeilen in einer Tabelle, die zur Wertvervollständigung basierend auf aktuellen Werten in dieser Spalte erlaubt ist. Kann auf 0 gesetzt werden, um die Vervollständigung zu deaktivieren. - Row count threshold for completion - Zeilenanzahl-Grenzwert für Vervollständigung - - - + Field display Feldanzeige - + Displayed &text Angezeigter &Text - - - - + - + + + + Click to set this color Zur Auswahl der Farbe klicken - + Text color Textfarbe - + Background color Hintergrundfarbe - + Preview only (N/A) Nur Vorschau (N/A) - + Foreground Vordergrund - + + selected_bg + + + + + Selection background + + + + + selected_fg + + + + + Selection foreground + + + + + highlight + + + + + Highlight + + + + SQL &results font size Schriftgröße SQL-&Ergebnisse - + &Wrap lines Zeilen &umbrechen - + Never Nie - + At word boundaries An Wortgrenzen - + At character boundaries An Zeichengrenzen - + At whitespace boundaries An Leerzeichengrenzen - + &Quotes for identifiers &Anführungszeichen für Identifiers - + Choose the quoting mechanism used by the application for identifiers in SQL code. Wählen Sie den Zitiermechanismus aus, der von der Anwendung für Identifier im SQL-Code verwendet wird. - + "Double quotes" - Standard SQL (recommended) "Doppelt Anführungszeichen" - Standard-SQL (empfohlen) - + `Grave accents` - Traditional MySQL quotes `Akzente` - Traditionelle MySQL-Anführungszeichen - + [Square brackets] - Traditional MS SQL Server quotes [Eckige Klammern] - Traditionelle MS-SQL-Server-Anführungszeichen - + Keywords in &UPPER CASE Schlüsselwörter in &GROSSSCHREIBUNG - + When set, the SQL keywords are completed in UPPER CASE letters. Falls gesetzt, werden die SQL-Schlüsselwörter in GROßSCHREIBUNG vervollständigt. - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background Falls gesetzt, werden die SQL-Codezeilen, die während der letzten Ausführung Fehler verursacht haben, hervorgehoben und das Ergebnisfenster zeigt den Fehler im Hintergrund an - + Close button on tabs Schließen-Button für Tabs - + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. Wenn aktiviert, werden die SQL-Editor-Tabs einen Schließen-Button haben. In allen Fällen können Sie zum Schließen auch das Kontextmenü oder die Tastenkombination verwenden. - + &Extensions &Erweiterungen - + Select extensions to load for every database: Bei jeder Datenbank zu ladende Erweiterungen auswählen: - + Add extension Erweiterung hinzufügen - + Remove extension Erweiterung entfernen - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> <html><head/><body><p>Auch wenn der REGEXP-Operator unterstützt wird, implementiert SQLite keinerlei Algorithmus für reguläre<br/>Ausdrücke, sondern leitet diese an die laufende Anwendung weiter. DB Browser für SQLite implementierte diesen<br/>Algorithmus für Sie, um REGEXP ohne Zusätze verwenden zu können. Allerdings gibt es viele mögliche<br/>Implementierungen und Sie möchten unter Umständen eine andere wählen, dann können Sie die<br/>Implementierung der Anwendung deaktivieren und Ihre eigene durch Laden einer Erweiterung verwenden. Ein Neustart der Anwendung ist notwendig.</p></body></html> - + Disable Regular Expression extension Erweiterung für reguläre Ausdrücke deaktivieren - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> <html><head/><body><p>SQLite bietet eine SQL-Funktion an, um Erweiterungen aus einer Shared-Library-Datei zu laden. Aktivieren Sie dies, falls Sie die <span style=" font-style:italic;">load_extension()</span>-Funktion aus SQL-Code heraus benutzen möchten.</p><p>Aus Sicherheitsgründen ist das Laden von Erweiterungen standardmäßig deaktiviert und muss durch diese Einstellung aktiviert werden. Sie können alternativ immer die gewünschten Erweiterungen über die GUI laden, auch wenn diese Option deaktiviert ist.</p></body></html> - + Allow loading extensions from SQL code Erlaube das Laden von Erweiterungen aus SQL-Code - + Remote Entfernt - + CA certificates CA-Zertifikate - + Proxy Proxy - + Configure Konfigurieren - - + + Export Settings + + + + + Import Settings + + + + + Subject CN Subject CN - + Common Name Common Name - + Subject O Subject O - + Organization Organisation - - + + Valid from Gültig ab - - + + Valid to Gültig bis - - + + Serial number Seriennummer - + Your certificates Ihre Zertifikate - + File Datei - + Subject Common Name Subject Common Name - + Issuer CN CN des Ausstellers - + Issuer Common Name Common Name des Ausstellers - + Clone databases into Datenbank klonen nach - - + + Choose a directory Verzeichnis wählen - + + The language will change after you restart the application. Die Sprache wird nach einem Neustart der Anwendung geändert. - + Select extension file Erweiterungsdatei wählen - Extensions(*.so *.dll);;All files(*) - Erweiterungen(*.so *.dll);;Alle Dateien(*) - - - + Extensions(*.so *.dylib *.dll);;All files(*) Erweiterungen(*.so *.dylib *.dll);;Alle Dateien(*) - + Import certificate file Zertifikatsdatei importieren - + No certificates found in this file. In dieser Datei wurden keine Zertifikate gefunden. - + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! Soll dieses Zertifikat wirklich entfernt werden? Jegliche Zertifikatdaten werden aus den Anwendungseinstellungen gelöscht! - + Are you sure you want to clear all the saved settings? All your preferences will be lost and default values will be used. Möchten Sie wirklich alle gespeicherten Einstellungen löschen? Alle Ihre Einstellungen gehen dadurch verloren und die Standardwerte werden verwendet. + + + Save Settings File + + + + + + Initialization File (*.ini) + + + + + The settings file has been saved in location : + + + + + + Open Settings File + + + + + The settings file was loaded properly. + + + + + The selected settings file is not a normal settings file. +Please check again. + + ProxyDialog @@ -6491,30 +5319,6 @@ Alle Ihre Einstellungen gehen dadurch verloren und die Standardwerte werden verw QObject - - Error importing data. Message from database engine: %1 - Fehler beim Datenimport. Meldung der Datenbank: %1 - - - File is not a SQLite 3 database - Datei ist keine SQLite 3-Datenbank - - - File could not be read - Datei konnte nicht gelesen werden - - - no error - kein Fehler - - - Do you want to save the changes made to the database file %1? - Sollen die getätigten Änderungen an der Datenbank-Datei %1 gespeichert werden? - - - Exporting database to SQL file... - Datenbank in SQL-Datei exportieren... - Error importing data @@ -6542,123 +5346,13 @@ Alle Ihre Einstellungen gehen dadurch verloren und die Standardwerte werden verw Cancel Abbrechen - - Executing SQL... - SQL ausführen... - - - Action cancelled. - Vorgang abgebrochen. - - - Error in statement #%1: %2. -Aborting execution. - Fehler im Statement #%1: %2. -Ausführung wird abgebrochen. - - - renameColumn: cannot find table %1. - Spalte umbenennen: Tabelle %1 nicht gefunden. - - - renameColumn: cannot find column %1. - Spalte umbennen: Spalte %1 nicht gefunden. - - - renameColumn: creating savepoint failed. DB says: %1 - Spalte umbenennen: Anlegen von Speicherpunkt fehlgeschlagen. DB meldet: %1 - - - renameColumn: creating new table failed. DB says: %1 - Spalte umbenennen: Erstellen neuer Tabelle fehlgeschlagen. DB meldet: %1 - - - renameColumn: copying data to new table failed. DB says: -%1 - Spalte umbenennen: Kopieren der Daten in neue Tabelle fehlgeschlagen. DB sagt: -%1 - - - renameColumn: deleting old table failed. DB says: %1 - Spalte umbenennen: Löschen der alten Tabelle fehlgeschlagen. DB meldet: %1 - - - Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: - - - Wiederherstellung einiger mit dieser Tabelle verbundener Objekte fehlgeschagen. Dies passiert häufig durch geänderte Spaltennamen. Hier das SQL-Statement zum manuellen Reparieren und Ausführen: - - - - - renameColumn: releasing savepoint failed. DB says: %1 - Spalte umbenennen: Freigeben des Speicherpunktes fehlgeschlagen. DB meldet: %1 - - - Error renaming table '%1' to '%2'.Message from database engine: -%3 - Fehler beim Umbenennen der Tabelle '%1' zu '%2'. Meldung von Datenbank: -%3 - - - ... <string can not be logged, contains binary data> ... - ... <String kann nicht geloggt werden, enthält binäre Daten> ... - - - unknown object type %1 - unbekannter Objekttyp %1 - - - could not get list of db objects: %1, %2 - Liste mit DB-Ojekten konnte nicht bezogen werden: %1, %2 - - - could not get types - Typen konnten nicht bezogen werden - - - Decoding CSV file... - CSV-Datei dekodieren... - - - didn't receive any output from pragma %1 - keine Ausgabe von Pragma %1 - - - could not execute pragma command: %1, %2 - Pragma-Kommando konnte nicht ausgeführt werden: %1, %2 - - - Error setting pragma %1 to %2: %3 - Fehler beim Setzen des Pragmas %1 auf %2: %3 - - - File not found. - Datei nicht gefunden. - - - Collation needed! Proceed? - Kollation notwendig! Fortführen? - - - A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. -If you choose to proceed, be aware bad things can happen to your database. -Create a backup! - Eine Tabelle in dieser Datenbank benötigt eine spezielle Kollationsfunktion '%1', welche diese Anwendung ohne weiterem Wissen nicht zur Verfügung stellen kann. -Wenn Sie fortfahren, sollten Sie im Hinterkopf behalten, dass mit Ihrer Datenbank unerwartete Dinge geschehen können. -Erstellen Sie ein Backup! - - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - SQLite Datenbankdateien (*.db *.sqlite *.sqlite3 *.db3);;Alle Dateien (*) - All files (*) Alle Dateien (*) - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) SQLite Datenbankdateien (*.db *.sqlite *.sqlite3 *.db3) @@ -6758,199 +5452,432 @@ Erstellen Sie ein Backup! Erweiterungen (*.so *.dylib *.dll) - Name - Name + + Initialization File (*.ini) + + + + RemoteCommitsModel - Commit - Commit + + Commit ID + - Last modified - Letzte Änderung + + Message + + + Date + Datum + + + + Author + + + + Size - Größe + Größe + + + + Authored and committed by %1 + + + + + Authored by %1, committed by %2 + RemoteDatabase - - Error when connecting to %1. -%2 - Fehler beim Verbinden zu %1. -%2 + + Error opening local databases list. +%1 + Fehler beim Öffnen der lokalen Datenbankliste. +%1 - - Error opening remote file at %1. -%2 - Fehler beim Öffnen der entfernten Datei unter %1. -%2 + + Error creating local databases list. +%1 + Fehler beim Erstellen der lokalen Datenbankliste. +%1 + + + RemoteDock - - Error: Invalid client certificate specified. - Fehler: Ungültiges Benutzerzertifikat angegeben. + + Remote + Entfernt - - Please enter the passphrase for this client certificate in order to authenticate. - Bitte die Passphrase für diese Benutzerzertifikat eingeben, um die Authentifizierung durchzuführen. + + Local + Lokal - - Cancel - Abbrechen + + Identity + Identität - - Uploading remote database to -%1 - Entfernte Datenbank wird hochgeladen zu -%1 + + Push currently opened database to server + Aktuell geöffnete Datenbank an den Server übertragen - - Downloading remote database from -%1 - Entfernte Datenbank wird heruntergeladen von -%1 + + Upload + - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - Die entfernte Datenbank wurde seit dem letzten Checkout verändert. Möchten Sie die lokale Datenbank mit der neuesten Version aktualisieren? Beachten Sie, dass dies alle Ihre lokalen Änderungen verwirft! Falls Sie Ihre lokalen Änderungen nicht verlieren möchten, klicken Sie auf Nein, um die lokale Version zu öffnen. + + DBHub.io + - Uploading remote database to -%1. - Entfernte Datenbank wird hochgeladen zu -%1. + + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> + <html><head/><body><p>In diesem Fensterbereich können entfernte Datenbanken von der dbhub.io-Webseite zu DB-Browser für SQLite hinzugefügt werden. Zunächst benötigen Sie eine Identität:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Melden Sie sich auf der dbhub.io-Webseite an (unter Verwendung Ihrer GitHub-Daten oder wie gewünscht)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Klicken Sie auf den Button &quot;Generate client certificate&quot;, um ein Zertifikat zu erstellen (das ist Ihre Identität). Speichern Sie die erzeugte Zertifikatdatei auf ihrer lokalen Festplatte.</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Öffnen Sie den Entfernt-Tab in den DB-Browser für SQLite-Einstellungen. Klicken Sie auf den Button, um ein neues Zertifikat hinzuzufügen und wählen Sie die soeben heruntergeladene Zertifikatdatei aus.</li></ol><p>Jetzt zeigt der Entfernt-Fensterbereich Ihre Identität und Sie können entfernte Datenbanken hinzufügen.</p></body></html> - Downloading remote database from -%1. - Entfernte Datenbank wird heruntergeladen von -%1. + + Current Database + - - - Error: The network is not accessible. - Fehler: Netzwerkzugriff nicht möglich. + + Clone + - - Error: Cannot open the file for sending. - Fehler: Öffnen der Datei zum Senden nicht möglich. + + User + Benutzer - - Error opening local databases list. -%1 - Fehler beim Öffnen der lokalen Datenbankliste. -%1 + + Database + Datenbank - - Error creating local databases list. -%1 - Fehler beim Erstellen der lokalen Datenbankliste. -%1 + + Branch + Branch - - - RemoteDock - - Remote - Entfernt + + Commits + - B&rowse - &Durchsuchen + + Commits for + - Local - Lokal + + Delete Database + - - Identity - Identität + + Delete the local clone of this database + - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. - Verbindung zum entfernten Server unter Verwendung der aktuell ausgewählten Identität. Der richtige Server wird ebenso von der Identität genommen. + + Open in Web Browser + - - Go - Los + + Open the web page for the current database in your browser + - - Push currently opened database to server - Aktuell geöffnete Datenbank an den Server übertragen + + Clone from Link + - - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>In diesem Fensterbereich können entfernte Datenbanken von der dbhub.io-Webseite zu DB-Browser für SQLite hinzugefügt werden. Zunächst benötigen Sie eine Identität:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Melden Sie sich auf der dbhub.io-Webseite an (unter Verwendung Ihrer GitHub-Daten oder wie gewünscht)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Klicken Sie auf den Button &quot;Generate client certificate&quot;, um ein Zertifikat zu erstellen (das ist Ihre Identität). Speichern Sie die erzeugte Zertifikatdatei auf ihrer lokalen Festplatte.</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Öffnen Sie den Entfernt-Tab in den DB-Browser für SQLite-Einstellungen. Klicken Sie auf den Button, um ein neues Zertifikat hinzuzufügen und wählen Sie die soeben heruntergeladene Zertifikatdatei aus.</li></ol><p>Jetzt zeigt der Entfernt-Fensterbereich Ihre Identität und Sie können entfernte Datenbanken hinzufügen.</p></body></html> + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB4S. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to create a DB4S certificate (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB4S Preferences. Click the button to add a new certificate to DB4S and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>In diesem Pane könnten entfernte Datenbanken von der dbhub.io-Webseite zu DB4S hinzugefügt werden. Zunächst benötigen Sie eine Identität:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Melden Sie sich auf der dbhub.io-Webseite an (unter Verwendung Ihrer GitHub-Daten oder wie gewünscht)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Klicken Sie auf den Button, um ein DB4S-Zertifikat zu erstellen (das ist Ihre Identität). Dies erzeugt Ihnen eine Zertifikatsdatei (speichern Sie dies auf ihrer lokalen Festplatte).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Öffnen Sie den Remote-Tab in den DB4S-Einstellungen. Klicken Sie auf den Button, um ein neues Zertifikat zu DB4S hinzuzufügen und wählen Sie die soeben heruntergeladene Zertifikatsdatei aus.</li></ol><p>Jetzt zeigt das Remote-Panel Ihre Identität und Sie können entfernte Datenbanken hinzufügen.</p></body></html> + + Refresh + Aktualisieren + + + + Reload all data and update the views + + + + + F5 + + + + + Clone Database + + + + + Open Database + + + + + Open the local copy of this database + + + + + Check out Commit + - + + Download and open this specific commit + + + + + Check out Latest Commit + + + + + Check out the latest commit of the current branch + + + + + Save Revision to File + + + + + Saves the selected revision of the database to another file + + + + + Upload Database + + + + + Upload this database as a new commit + + + + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> <html><head/><body><p>Aktuell wird eine eingebaute, nur lesend verwendbare Identität verwendet. Zum Hochladen einer Datenbank muss ein DBHub.io-Konto konfiguriert und verwendet werden.</p><p>Noch kein DBHub.io-Konto vorhanden? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Jetzt ein Konto erstellen</span></a> und das Zertifikat <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">hier</span></a> hochladen, um Datenbanken zu teilen.</p><p>Eine englische Online-Hilfe ist <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">hier</span></a> verfügbar.</p></body></html> - + Back Zurück - + + Select an identity to connect + + + + Public Öffentlich + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + + + + + Invalid URL: The host name does not match the host name of the current identity. + + + + + Invalid URL: No branch name specified. + + + + + Invalid URL: No commit ID specified. + + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + + + + + The database has unsaved changes. Are you sure you want to push it before saving? + + + + + The database you are trying to delete is currently opened. Please close it before deleting. + + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + + + + + RemoteLocalFilesModel + + + Name + Name + + + + Branch + Branch + + + + Last modified + Letzte Änderung + + + + Size + Größe + + + + Commit + Commit + + + + File + Datei + RemoteModel - + Name Name - Version - Version + + Last modified + Letzte Änderung + + + + Size + Größe + + + + Commit + Commit + + + + Size: + + + + + Last Modified: + + + + + Licence: + + + + + Default Branch: + + + + + RemoteNetwork + + + Choose a location to save the file + + + + + Error opening remote file at %1. +%2 + Fehler beim Öffnen der entfernten Datei unter %1. +%2 + + + + Error: Invalid client certificate specified. + Fehler: Ungültiges Benutzerzertifikat angegeben. + + + + Please enter the passphrase for this client certificate in order to authenticate. + Bitte die Passphrase für diese Benutzerzertifikat eingeben, um die Authentifizierung durchzuführen. + + + + Cancel + Abbrechen - - Last modified - Letzte Änderung + + Uploading remote database to +%1 + Entfernte Datenbank wird hochgeladen zu +%1 - - Size - Größe + + Downloading remote database from +%1 + Entfernte Datenbank wird heruntergeladen von +%1 - - Commit - Commit + + + Error: The network is not accessible. + Fehler: Netzwerkzugriff nicht möglich. - bytes - Bytes + + Error: Cannot open the file for sending. + Fehler: Öffnen der Datei zum Senden nicht möglich. @@ -6970,19 +5897,6 @@ Erstellen Sie ein Backup! Commit message Commit-Nachricht - - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - Database licence @@ -7004,24 +5918,25 @@ p, li { white-space: pre-wrap; } Push erzwingen - + + Username + + + + Database will be public. Everyone has read access to it. Datenbank wird öffentlich sein. Jeder hat Lesezugriff darauf. - + Database will be private. Only you have access to it. Datenbank wird privat sein. Nur Sie haben Zugriff darauf. - + Use with care. This can cause remote commits to be deleted. Verwenden Sie dies mit Vorsicht. Dadurch können entfernte Commits gelöscht werden. - - Unspecified - Nicht festgelegt - RunSql @@ -7163,51 +6078,23 @@ p, li { white-space: pre-wrap; } Dieses Feld zeigt die Ergebnisse und Statuscodes der zuletzt ausgeführten Statements. - Export to &CSV - Nach &CSV exportieren - - - Save as &view - Ansicht &speichern - - - Save as view - Ansicht speichern - - - Please specify the view name - Namen für Ansicht angeben - - - There is already an object with that name. Please choose a different name. - Es gibt bereits ein Objekt mit diesem Namen. Bitte einen anderen auswählen. - - - View successfully created. - Ansicht erfolgreich erstellt. - - - Error creating view: %1 - Fehler beim Erstellen der Ansicht: %1 - - - + Couldn't read file: %1. Datei konnte nicht gelesen werden: %1. - - + + Couldn't save file: %1. Datei konnte nicht gespeichert werden: %1. - + Your changes will be lost when reloading it! Beim Neuladen gehen die Änderungen verloren! - + The file "%1" was modified by another program. Do you want to reload it?%2 Die Datei "%1" wurde durch ein anderes Programm geändert. Soll es neu geladen werden?%2 @@ -7269,288 +6156,285 @@ p, li { white-space: pre-wrap; } + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. () Die last_insert_rowid()-Funktion gibt die ROWID der letzte Zeile zurück, die von der diese Funktion aufrufenden Datenbankverbindung eingefügt wurde. - + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. (X) Für eine Zeichenkette X gibt die length(X)-Funktion die Anzahl der Zeichen (keine Bytes) von X zurück, die sich for dem ersten NUL-Zeichen befinden. - + (X,Y) The like() function is used to implement the "Y LIKE X" expression. (X,Y) Die like()-Funktion wird als Implementierung des "Y LIKE X"-Ausdrucks verwendet. - + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. (X,Y,Z) Die like()-Funktion wird als Implementierung des "Y LIKE X ESCAPE Z"-Ausdrucks verwendet. - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - (X) Die load_extension(X)-Funktion lädt SQLite-Erweiterungen aus der geteilten Bibliotheksdatei mit dem Namen X. - - - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - (X,Y) Die load_extension(X)-Funktion lädt SQLite-Erweiterungen aus der geteilten Bibliotheksdatei mit dem Namen X unter Verwendung des Eintrittspunktes Y. - - - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. (X) Die load_extension(X)-Funktion lädt SQLite-Erweiterungen aus der Shared-Library-Datei namens X. Die Verwendung dieser Funktion muss in den Einstellungen authorisiert werden. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. (X,Y) Die load_extension(X,Y)-Funktion lädt SQLite-Erweiterungen aus der Shared-Library-Datei namens X unter Verwendung des Eintrittspunktes Y. Die Verwendung dieser Funktion muss in den Einstellungen authorisiert werden. - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. (X) Die lower(X)-Funktion gibt eine Kopie der Zeichenkette X mit allen ASCII-Zeichen in Kleinschreibung zurück. - + (X) ltrim(X) removes spaces from the left side of X. (X) ltrim(X) entfernt Leerzeichen aus der linken Seite von X. - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. (X,Y) Die ltrim(X,Y)-Funktion gibt eine Zeichenkette zurück, die durch Entfernen aller Zeichen innerhalb von Y aus der linken Seite von X gebildet wird. - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. (X,Y,...) Die max()-Funktion mit mehreren Argumenten gibt das Argument mit dem größten Wert zurück, oder NULL, wenn ein Argument NULL ist. - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. (X,Y,...) Die max()-Funktion mit mehreren Argumenten gibt das Argument mit dem kleinsten Wert zurück. - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. (X,Y) Die nullif(X,Y)-FUnktion gibt ihr erstes Argument zurück, wenn die Argumente verschieden sind und NULL, wenn die Argumente gleich sind. - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. (FORMAT,...) Die printf(FORMAT,...) SQL-Funktion arbeitet wie die sqlite3_mprintf() C-Funktion und die printf()-Funktion aus der C-Standardbibliothek. - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. (X) Die quote(X)-Funktion gibt den Text eines SQL-Literals zurück, wobei der Wert des Arguments zum Einfügen in ein SQL-Statement geeignet ist. - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. () Die random()-Funktion gibt eine pseudo-zufällige Ganzzahl zwischen -9223372036854775808 und +9223372036854775807 zurück. - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. (N) Die randomblob(N)-Funktion gibt einen N-Byte Blob aus pseudo-zufälligen Bytes zurück. - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. (X,Y,Z) Die replace(X,Y,Z)-Funktion gibt einen String zurück, der durch Ersetzen der Zeichenkette Z bei jedem Auftreten von Zeichenkette Y in Zeichenkette X gebildet wird. - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. (X) Die round(X)-Funktion gibt einen Gleitkommawert X auf nulll Nachkommastellen gerundet zurück. - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. (X,Y) Die round(X,Y)-Funktion gibt eine Gleitkommazahl X auf Y Nachkommastellen gerundet zurück. - + (X) rtrim(X) removes spaces from the right side of X. (X) rtrim(X) entfernt Leerzeichen aus der rechten Seite von X. - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. (X,Y) Die rtrim(X,Y)-Funktion gibt eine Zeichenkette zurück, die durch Entfernen aller Zeichen innerhalb von Y aus der rechten Seite von X gebildet wird. - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. (X) Die soundex(X)-Funktion gibt eine Zeichenkette zurück, die aus der Soundex-Kodierung von Zeichenkette X besteht. - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. (X,Y) substr(X,Y) gibt alle Zeichen bis zum Ende der Zeichenkette X zurück, beginnend mit dem Y-ten. - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. (X,Y,Z) Die substr(X,Y)-Funktion gibt einen Teil der Zeichenkette X zurück, die mit dem Y-ten Zeichen beginnt und Z Zeichen lang ist. - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. () Die changes()-Funktion gibt die Anzahl dergeänderten Datenbankzeilen zurück, die seit dem Öffnen der aktuellen Datenbankverbindung mit INSERT-, DELETE- oder UPDATE-Statement geändert, einfügt oder gelöscht worden sind. - + (X) trim(X) removes spaces from both ends of X. (X) trim(X) entfernt Leerzeichen an beiden Enden von X. - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. (X,Y) Die ltrim(X,Y)-Funktion gibt eine Zeichenkette zurück, die durch Entfernen aller Zeichen innerhalb von Y aus der von beiden Seiten von X gebildet wird. - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. (X) Die typeof(X)-Funktion gibt einen String zurück, der den Datentyp des Ausdruckes X angibt. - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. (X) Die unicode(X)-Funktion gibt einen numerischen Unicode-Wert zurück, der dem ersten Zeichen der Zeichenkette X entspricht. - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. (X) Die lower(X)-Funktion gibt eine Kopie der Zeichenkette X mit allen ASCII-Zeichen in Großschreibung zurück. - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. (N) Die zeroblob(N)-Funktion gibt einen BLOB aus N Bytes mit 0x00 zurück. - + (timestring,modifier,modifier,...) (Zeitstring,Modifikation,Modifikation,...) - + (format,timestring,modifier,modifier,...) (Format,Zeitstring,Modifikation,Modifikation,...) - + (X) The avg() function returns the average value of all non-NULL X within a group. (X) Die avg()-Funktion gibt den Durchschnittswert alle nicht-NULL X in einer Gruppe zurück. - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. (X) Die count(X)-Funktion gibt die Anzahl der nicht-NULL-Elemente von X in einer Gruppe zurück. - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. (X) Die group_conact()-Funktion gibt eine Zeichenkette zurück, die eine Verkettung aller nicht-NULL-Werte von X ist. - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. (X,Y) Die group_conact()-Funktion gibt eine Zeichenkette zurück, die eine Verkettung aller nicht-NULL-Werte von X ist. Wenn der Parameter Y aktiv ist, wird dieser als Trennzeichen zwischen Instanzen von X behandelt. - + (X) The max() aggregate function returns the maximum value of all values in the group. (X) Die max()-Sammelfunktion gibt den Maximalwert aller Werte in der Gruppe zurück. - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. (X) Die min()-Sammelfunktion gibt den Minimalwert aller nicht-NULL-Werte in der Gruppe zurück. - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. (X) Die sum()- und total()-Sammelfunktionen geben die Summe aller nicht-NULL-Werte in der Gruppe zurück. - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. () Die Anzahl der Zeilen in der aktuellen Partition. Zeilen werden beginnend bei 1 in der durch den ORDER-BY-Befehl in der Fensterdefinition nummeriert, ansonsten in willkürlicher Reihenfolge. - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () Die row_number() des ersten Peer in jeder Gruppe - der Rang der aktuellen Zeile mit Lücken. Falls es keinen ORDER-BY-Befehl gibt, dann werden alle Zeilen als Peers angesehen und diese Funktion gibt immer 1 zurück. - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () Die Nummer der Peer-Gruppe der aktuellen Zeile in der Partition - der Rang der aktuellen Reihe ohne Lücken. Partitionen werden mit 1 startend nummeriert in der Reihenfolge, wie sie durch den ORDER-BY-Befehl in der Fensterdefinition festgelegt ist. Falls es keinen ORDER-BY-Befehl gibt, werden alle Zeilen als Peers angesehen und diese Funktion gibt immer 1 zurück. - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. () Ungeachtet des Namens gibt diese Funktion immer einen Wert zwischen 0.0 und 1.0 identisch zu (Rang - 1)/(Partitionszeilen - 1) zurück, wobei Rang der Wert der eingebauten Fensterfunktion rank() und Partitionszeilen die Gesamtanzahl der Zeilen in der Partition ist. Falls die Partition nur eine Zeile enthält, gibt diese Funktion 0.0 zurück. - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. () Die kumulative Verteilung. Berechnet als Zeilenanzahl/Partitionszeilen, wobei Zeilenanzahl der durch row_number() zurückgegebene Wert für den letzten Peer in der Gruppe ist und Partitionszeilen die Anzahl der Zeilen in der Partition. - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. (N) Das Argument N wird als Integer behandelt. Diese Funktion teilt die Partition in N Gruppen so gleichmäßig wie möglich auf und weist jeder Gruppe einen Integer zwischen 1 und N zu, in der Reihenfolge, die durch den ORDER-BY-Befehl definiert ist, ansonsten in beliebiger Reihenfolge. Falls notwendig tauchen größere Gruppen als erstes auf. Diese Funktion gibt einen Integerwert zurück, der der Gruppe zugewiesen ist, zu der die aktuelle Zeile gehört. - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. (expr) Gibt das Ergebnis der Evaluation des Ausdrucks expr gegen die vorherige Zeile in der Partition zurück. Falls es keine vorhergehende Zeile gibt (weil die aktuelle Zeile die erste ist), wird NULL zurückgegeben. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. (expr,offset) Falls das Offset-Argument angegeben ist, dann muss dieses ein nicht-negativer Integerwert sein. In diesem Fall ist der Rückgabewert das Ergebnis der Evaluation von expr gegen die Zeile, die innerhalb der Partition offset Zeilen weiter oben liegt. Falls offset 0 ist, wird expr gegen die aktuelle Zeile evaluiert. Falls vor der aktuellen Zeile nicht genügend Zeilen vorhanden sind, wird NULL zurückgegeben. - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. (expr,offset,default) Falls auch default angegeben ist, dann wird dieser Wert anstatt NULL zurückgegeben, falls die durch offset angegebene Zeile nicht existiert. - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. (expr) Gibt das Ergebnis der Evaluation des Ausdrucks expr gegen die nächste Zeile in der Partition zurück. Falls es keine nächste Zeile gibt (weil die aktuelle Zeile die letzte ist), wird NULL zurückgegeben. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. (expr,offset) Falls das Offset-Argument angegeben ist, dann muss dieses ein nicht-negativer Integerwert sein. In diesem Fall ist der Rückgabewert das Ergebnis der Evaluation von expr gegen die Zeile, die innerhalb der Partition offset Zeilen weiter unten liegt. Falls offset 0 ist, wird expr gegen die aktuelle Zeile evaluiert. Falls nach der aktuellen Zeile nicht genügend Zeilen vorhanden sind, wird NULL zurückgegeben. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. (expr) Diese eingebaute Fensterfunktion berechnet das Windowframe für jede Zeile auf die gleiche Art wie ein aggregierte Fensterfunktion. Sie gibt den Wert von expr evaluiert gegen die erste Zeile des Windowframes für jede Zeile zurück. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. (expr) Diese eingebaute Fensterfunktion berechnet das Windowframe für jede Zeile auf die gleiche Art wie ein aggregierte Fensterfunktion. Sie gibt den Wert von expr evaluiert gegen die letzte Zeile des Windowframes für jede Zeile zurück. - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. (expr,N) Diese eingebaute Fensterfunktion berechnet das Windowframe für jede Zeile auf die gleiche Art wie ein aggregierte Fensterfunktion. Sie gibt den Wert von expr evaluiert gegen die N-te Zeile des Windowframes für zurück. Die Zeilen werden beginnend bei 1 in der durch den ORDER-BY-Befehl definierten Reihenfolge nummeriert, falls dieser vorhanden ist, ansonsten in beliebiger Reihenfolge. Falls es keine N-te Zeile in der Partition gibt, dann wird NULL zurückgegeben. @@ -7558,47 +6442,42 @@ Die Verwendung dieser Funktion muss in den Einstellungen authorisiert werden. SqliteTableModel - References %1(%2) -Hold Ctrl+Shift and click to jump there - Referenzen %1(%2) -Strg+Shift halten und klicken, um hierher zu springen - - - + reading rows lese Zeilen - + loading... lade... - + References %1(%2) Hold %3Shift and click to jump there Referenzen %1(%2) Halten Sie %3Umschalt und klicken Sie, um hierher zu springen - + Error changing data: %1 Fehler beim Ändern der Daten: %1 - + retrieving list of columns ermittle Liste der Spalten - + Fetching data... Rufe Daten ab... - + + Cancel Abbrechen @@ -7740,7 +6619,7 @@ Halten Sie %3Umschalt und klicken Sie, um hierher zu springen - + Replace Ersetzen @@ -7755,490 +6634,496 @@ Halten Sie %3Umschalt und klicken Sie, um hierher zu springen Alle ersetzen - + <html><head/><body><p>Scroll to the beginning</p></body></html> <html><head/><body><p>Zum Anfang scrollen</p></body></html> - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> <html><head/><body><p>Ein Klick auf diesen Button navigiert zum Anfang der oben angezeigten Tabelle.</p></body></html> - + |< |< - + Scroll one page upwards Eine Seite nach oben scrollen - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> <html><head/><body><p>Ein Klick auf diesen Button navigiert in den Einträgen der Tabellenansicht oben eine Seite nach oben.</p></body></html> - + < < - + 0 - 0 of 0 0 - 0 von 0 - + Scroll one page downwards Eine Seite nach unten scrollen - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> <html><head/><body><p>Ein Klick auf diesen Button navigiert in den Einträgen der Tabellenansicht oben eine Seite nach unten.</p></body></html> - + > > - + Scroll to the end Zum Ende scrollen - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>Ein Klick auf diesen Button navigiert zum Ende der oben angezeigten Tabelle.</p></body></html> - - - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> <html><head/><body><p>Ein Klick auf diesen Button navigiert zum Ende der oben angezeigten Tabelle.</p></body></html> - + >| >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> <html></head><body><p>Klicken Sie hier, um zu einer bestimmten Zeile zu springen</p></body></html> - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> <html></head><body><p>Dieser Button kann zum Navigieren zu einer im "Springe zu"-Bereich festgelegten Zeile verwendet werden.</p></body></html> - + Go to: Springe zu: - + Enter record number to browse Zeilennummer zum Suchen auswählen - + Type a record number in this area and click the Go to: button to display the record in the database view Geben Sie eine Zeilennummer in diesem Bereich ein und klicken Sie auf den "Springe zu:"-Button, um die Zeile in der Datenbankansicht anzuzeigen - + 1 1 - + Show rowid column Rowid-Spalte anzeigen - + Toggle the visibility of the rowid column Sichtbarkeit der Rowid-Spalte umschalten - + Unlock view editing Ansicht zur Bearbeitung entsperren - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. Dies entsperrt die aktuelle Ansicht zur Bearbeitung. Allerdings werden zur Bearbeitung passende Trigger benötigt. - + Edit display format Anzeigeformat bearbeiten - + Edit the display format of the data in this column Anzeigeformat der Daten in dieser Spalte bearbeiten - - + + New Record Neue Zeile - - + + Insert a new record in the current table Fügt eine neue Zeile zur aktuellen Tabelle hinzu - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> <html><head/><body><p>Dieser Button erstellt eine neue Zeile in der Datenbank. Halten sie die Maustaste gedrückt, um ein Popup-Menü mit verschiedenen Optionen zu öffnen:</p><ul><li><span style=" font-weight:600;">Neuer Eintrag</span>: eine neue Zeile mit Standardwerten in die Datenbank einfügen.</li><li><span style=" font-weight:600;">Werte einfügen...</span>: einen Dialog zur Eingabe von Werten öffnen, bevor diese in die Datenbank eingefügt werden. Dies erlaubt die Eingabe von Werten, die den Constraints Genüge tun. Dieser Dialog wird auch geöffnet, falls die <span style=" font-weight:600;">Neuer Eintrag</span>-Option aufgrund dieser Constraints fehlschlägt.</li></ul></body></html> - - + + Delete Record Zeile löschen - + Delete the current record Aktuelle Zeile löschen - - + + This button deletes the record or records currently selected in the table Dieser Button löscht die Zeile oder Zeilen, die aktuell in der Tabelle ausgewählt sind - - + + Insert new record using default values in browsed table Eine neue Zeile mit den Standardwerten in den ausgewählte Tabelle einfügen - + Insert Values... Werte einfügen... - - + + Open a dialog for inserting values in a new record Einen Dialog zum Einfügen von Werten in eine neue Zeile öffnen - + Export to &CSV Nach &CSV exportieren - - + + Export the filtered data to CSV Die gefilterten Daten als CSV exportieren - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. Dieser Button exportiert die Daten der ausgewählten Tabelle wie aktuell angezeigt (gefiltert, Anzeigeformate und Spaltenreihenfolge) als CSV-Datei. - + Save as &view Als &View speichern - - + + Save the current filter, sort column and display formats as a view Den aktuellen Filter, die Spaltenreihenfolge und Anzeigeformate als View speichern - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. Dieser Button speichert die aktuellen Einstellungen der ausgewählten Tabelle (Filter, Anzeigeformate und Spaltenreihenfolge) als SQL-View, welche Sie später durchsuchen oder in SQL-Statements verwenden können. - + Save Table As... Tabelle speichern als... - - + + Save the table as currently displayed Tabelle wie aktuell angezeigt speichern - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> <html><head/><body><p>Dieses Popup-Menü bietet die folgenden Optionen zur Anwendung auf die aktuell ausgewählte und gefilterte Tabelle:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">CSV exportieren: diese Option exportiert die Daten der ausgewählten Tabelle wie aktuell angezeigt (gefiltert, Anzeigeformat und Spaltenreihenfolge) in eine CSV-Datei.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Als Ansicht speichern: diese Option speichert die aktuelle Einstellung der ausgewählten Tabelle (Filter, Anzeigeformat und Spaltenreihenfolge) als eine SQL-View, die Sie später durchsuchen oder in SQL-Statements verwenden können.</li></ul></body></html> - + Hide column(s) Spalte(n) verbergen - + Hide selected column(s) Ausgewählte Spalte(n) verbergen - + Show all columns Alle Spalten anzeigen - + Show all columns that were hidden Alle versteckten Spalten anzeigen - - + + Set encoding Kodierung setzen - + Change the encoding of the text in the table cells Kodierung des Textes in den Tabellenzellen ändern - + Set encoding for all tables Kodierung für alle Tabellen setzen - + Change the default encoding assumed for all tables in the database Voreingestellte Kodierung für alle Tabellen in der Datenbank ändern - + Clear Filters Filter löschen - + Clear all filters Alle Filter löschen - - + + This button clears all the filters set in the header input fields for the currently browsed table. Dieser Button löscht alle gesetzten Filter in den Header-Eingabefeldern der aktuell angezeigten Tabelle. - + Clear Sorting Sortierung löschen - + Reset the order of rows to the default Die Zeilenreihenfolge auf den Standardzustand zurücksetzen - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. Dieser Button setzt die angegebene Spaltensortierung für die aktuell angezeigte Tabelle zurück und verwendet die Standardreihenfolge. - + Print Drucken - + Print currently browsed table data Aktuell angezeigte Tabellendaten drucken - + Print currently browsed table data. Print selection if more than one cell is selected. Die aktuell angezeigten Tabellendaten drucken. Druckauswahl, falls mehr als eine Zelle ausgewählt ist. - + Ctrl+P - + Refresh Aktualisieren - + Refresh the data in the selected table Die Daten in der ausgewählten Tabelle aktualisieren - + This button refreshes the data in the currently selected table. Dieser Button aktualisiert die Daten der aktuellen Tabellenansicht. - + F5 - + Find in cells In Zellen suchen - + Open the find tool bar which allows you to search for values in the table view below. Die Such-Toolbar öffnen, welche das Suchen nach Werten in der Tabellenansicht unten erlaubt. - - + + Bold Fett - + Ctrl+B - - + + Italic Kursiv - - + + Underline Unterstreichung - + Ctrl+U - - + + Align Right Rechts ausrichten - - + + Align Left Links ausrichten - - + + Center Horizontally Horizontal zentrieren - - + + Justify Blocksatz - - + + Edit Conditional Formats... Bedingte Formatierungen bearbeiten... - + Edit conditional formats for the current column Bedingte Formatierungen der aktuellen Spalte bearbeiten - + Clear Format Formatierung löschen - + Clear All Formats Alle Formatierungen löschen - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns Jegliche Zellenformatierung für die ausgewählten Zellen und alle bedingten Formatierungen für die ausgewählten Spalten löschen - - + + Font Color Schriftfarbe - - + + Background Color Hintergrundfarbe - + Toggle Format Toolbar Formatierungs-Toolbar umschalten - + Show/hide format toolbar Formatierungs-Toolbar anzeigen/verstecken - - + + This button shows or hides the formatting toolbar of the Data Browser Dieser Button zeigt oder versteckt die Formatierungs-Toolbar im Datenbrowser - + Select column Spalte auswählen - + Ctrl+Space - + Replace text in cells Text in Zellen ersetzen + + + Freeze columns + + + + + Make all columns from the first column up to this column not move when scrolling horizontally + + Filter in any column In allen Spalten filtern - + Ctrl+R - + %n row(s) %n row @@ -8246,7 +7131,7 @@ Halten Sie %3Umschalt und klicken Sie, um hierher zu springen - + , %n column(s) , %n Spalte @@ -8254,105 +7139,128 @@ Halten Sie %3Umschalt und klicken Sie, um hierher zu springen - + . Sum: %1; Average: %2; Min: %3; Max: %4 . Summe: %1; Durchschnitt: %2; Minimum: %3; Maximum: %4 - + Conditional formats for "%1" Bedingte Formatierung for "%1" - + determining row count... bestimme Zeilenanzahl... - + %1 - %2 of >= %3 %1 - %2 von >= %3 - + %1 - %2 of %3 %1 - %2 von %3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Bitte einen Pseudo-Primärschlüssel eingeben, um die Bearbeitung dieser Ansicht zu ermöglichen. Dies sollte der Name der eindeutigen Spalte dieser Ansicht sein. - + Delete Records Einträge löschen - + Duplicate records Einträge duplizieren - + Duplicate record Eintrag duplizieren - + Ctrl+" - + Adjust rows to contents Zeilen an Inhalte anpassen - + Error deleting record: %1 Fehler beim Löschen des Eintrags: %1 - + Please select a record first Bitte zuerst einen Eintrag auswählen - + There is no filter set for this table. View will not be created. Es gibt keinen Filtersatz für diese Tabelle. Die Ansicht wird nicht erstellt. - + Please choose a new encoding for all tables. Bitte wählen Sie eine neue Kodierung für alle Tabellen. - + Please choose a new encoding for this table. Bitte wählen Sie eine neue Kodierung für diese Tabelle. - + %1 Leave the field empty for using the database encoding. %1 Lassen Sie das Feld leer, um die Datenbank-Kodierung zu verwenden. - + This encoding is either not valid or not supported. Diese Kodierung ist entweder nicht gültig oder nicht unterstützt. - + %1 replacement(s) made. %1 Ersetzung(en) durchgeführt. + + TableBrowserDock + + + New Data Browser + + + + + Rename Data Browser + + + + + Close Data Browser + + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + VacuumDialog @@ -8370,13 +7278,5 @@ Lassen Sie das Feld leer, um die Datenbank-Kodierung zu verwenden. Please select the databases to co&mpact: Bitte wählen Sie die zu ver&dichtenden Datenbanken aus: - - Warning: Compacting the database will commit all changes you made. - Warnung: Das Komprimieren der Datenbank wird alle getätigten Änderungen übernehmen. - - - Please select the objects to compact: - Bitte zu komprimierende Objekte auswählen: - diff --git a/src/translations/sqlb_en_GB.ts b/src/translations/sqlb_en_GB.ts index bddb69411..e407ee56f 100644 --- a/src/translations/sqlb_en_GB.ts +++ b/src/translations/sqlb_en_GB.ts @@ -18,31 +18,6 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - - - SQLCipher Version %1 (based on SQLite %2) - - - - - Version - - - - - Built for %1, running on %2 - - - - - Qt Version - - - - - SQLite Version - - AddRecordDialog @@ -137,91 +112,151 @@ Application - - Usage: %1 [options] [db] - + + Possible command line arguments: - - Possible command line arguments: - + + The user settings file location is replaced with the argument value instead of the environment variable value. + - - -h, --help Show command line options - + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + - - -s, --sql [file] Execute this SQL file after opening the DB + + Usage: %1 [options] [<database>|<project>] + - - -t, --table [table] Browse this table after opening the DB + + -h, --help Show command line options - - This is DB Browser for SQLite version %1. + + -q, --quit Exit application after running scripts - - -q, --quit Exit application after running scripts - + + -s, --sql <file> Execute this SQL file after opening the DB + - - -R, --read-only Open database in read-only mode + + -t, --table <table> Browse this table after opening the DB - - -o, --option [group/setting=value] Run application with this setting temporarily set to value + + -R, --read-only Open database in read-only mode - - -O, --save-option [group/setting=value] Run application saving this value for this setting + + -S, --settings <settings_file> - - -v, --version Display the current version + + Run application based on this settings file - - [file] Open this SQLite database - + + -o, --option <group>/<setting>=<value> + + + + + Run application with this setting temporarily set to value + + + + + -O, --save-option <group>/<setting>=<value> + + + + + Run application saving this value for this setting + + + + + -v, --version Display the current version + + + + + <database> Open this SQLite database + + + + + <project> Open this project file (*.sqbpro) + - + The -s/--sql option requires an argument - + The file %1 does not exist - + The -t/--table option requires an argument - + + The -S/--settings option requires an argument. The option is ignored. + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value - + Invalid option/non-existant file: %1 + + + SQLite Version + + + + + SQLCipher Version %1 (based on SQLite %2) + + + + + DB Browser for SQLite Version %1. + + + + + Built for %1, running on %2 + + + + + Qt Version %1 + + CipherDialog @@ -364,38 +399,48 @@ If any of the other settings were altered for this database file you need to pro + .NET DateTime.Ticks to date + + + + Julian day to date - + Unix epoch to local time - + Date as dd/mm/yyyy - + Lower case - + + Binary GUID to text + + + + Custom display format must contain a function call applied to %1 - + Error in custom display format. Message from database engine: %1 - + Custom display format must return only one column but it returned %1. @@ -410,22 +455,22 @@ If any of the other settings were altered for this database file you need to pro - + Unix epoch to date - + Upper case - + Windows DATE to date - + Custom @@ -552,196 +597,191 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - + Please specify the database name under which you want to access the attached database - + Invalid file format - + Do you really want to close this temporary database? All data will be lost. - + Do you want to save the changes made to the database file %1? - + Database didn't close correctly, probably still busy - + The database is currently busy: - + Do you want to abort that other operation? - + Exporting database to SQL file... - - + + Cancel - - + + No database file opened - + Executing SQL... - + Action cancelled. - - + + Error in statement #%1: %2. Aborting execution%3. - - + + and rolling back - + didn't receive any output from %1 - + could not execute command: %1 - + Cannot delete this object - + Cannot set data on this object - - + + A table with the name '%1' already exists in schema '%2'. - + No table with name '%1' exists in schema '%2'. - - + + Cannot find column %1. - + Creating savepoint failed. DB says: %1 - + Renaming the column failed. DB says: %1 - - + + Releasing savepoint failed. DB says: %1 - + Creating new table failed. DB says: %1 - + Copying data to new table failed. DB says: %1 - + Deleting old table failed. DB says: %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: - + could not get list of databases: %1 - + Error loading extension: %1 - + could not get column information - - This database has already been attached. Its schema name is '%1'. - - - - + Error renaming table '%1' to '%2'. Message from database engine: %3 - + could not get list of db objects: %1 - + Error setting pragma %1 to %2: %3 - + File not found. @@ -774,12 +814,12 @@ Message from database engine: - + Browsables - + All @@ -789,22 +829,22 @@ Message from database engine: - + Tables (%1) - + Indices (%1) - + Views (%1) - + Triggers (%1) @@ -817,191 +857,191 @@ Message from database engine: - + Mode: - - + + Image - + Set as &NULL - + Apply data to cell - + This button saves the changes performed in the cell editor to the database cell. - + Apply - + Text - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. - + RTL Text - + Binary - + JSON - + XML - - + + Automatically adjust the editor mode to the loaded data type - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. - + Auto-switch - + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. - + Open preview dialog for printing the data currently stored in the cell - + Auto-format: pretty print on loading, compact on saving. - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. - + Word Wrap - + Wrap lines on word boundaries - - + + Open in default application or browser - + Open in application - + The value is interpreted as a file or URL and opened in the default application or web browser. - + Save file reference... - + Save reference to file - - + + Open in external application - + Autoformat - + &Export... - - + + &Import... - - + + Import from file - - + + Opens a file dialog used to import any kind of data to this database cell. - + Export to file - + Opens a file dialog used to export the contents of this database cell to a file. - + Erases the contents of the cell @@ -1011,137 +1051,140 @@ Errors are indicated with a red squiggle underline. - + Type of data currently in cell - + Size of data currently in table - - + Print... - - Open preview dialog for printing displayed image - - - - - + Ctrl+P - + Open preview dialog for printing displayed text - + Copy Hex and ASCII - + Copy selected hexadecimal and ASCII columns to the clipboard - + Ctrl+Shift+C - + Choose a filename to export data - + Type of data currently in cell: %1 Image - + %1x%2 pixel(s) - + Type of data currently in cell: NULL - - + + Type of data currently in cell: Text / Numeric - - + + Image data can't be viewed in this mode. - - + + Try switching to Image or Binary mode. - - + + Binary data can't be viewed in this mode. - - + + Try switching to Binary mode. - - + + Image files (%1) - + Binary files (*.bin) - + + Couldn't save file: %1. + + + + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + + + + Choose a file to import - + %1 Image - + Invalid data for this mode - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? - - - + + + %n character(s) %n character @@ -1149,23 +1192,18 @@ Errors are indicated with a red squiggle underline. - + Type of data currently in cell: Valid JSON - + Type of data currently in cell: Binary - - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. - - - - + + %n byte(s) %n byte @@ -1316,200 +1354,205 @@ Errors are indicated with a red squiggle underline. - - + + Name - - + + Type - + NN - + Not null - + PK - - Primary key - + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + - + AI - + Autoincrement - + U - - - + + + Unique - + Default - + Default value - - - + + + Check - + Check constraint - + Collation - - - + + + Foreign Key - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + Constraints - + Add constraint - + Remove constraint - + Columns - + SQL - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> - - + + Primary Key - + Add a primary key constraint - + Add a foreign key constraint - + Add a unique constraint - + Add a check constraint - - + + There can only be one primary key for each table. Please modify the existing primary key instead. - + Error creating table. Message from database engine: %1 - + There already is a field with that name. Please rename it first or choose a different name for this field. - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. - + Column '%1' has duplicate data. - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled @@ -1730,7 +1773,7 @@ All data currently stored in this field will be lost. ExtendedScintilla - + Ctrl+H @@ -1741,22 +1784,22 @@ All data currently stored in this field will be lost. - + Ctrl+P - + Find... - + Find and Replace... - + Print... @@ -1764,123 +1807,128 @@ All data currently stored in this field will be lost. ExtendedTableWidget - + Use as Exact Filter - + Containing - + Not containing - + Not equal to - + Greater than - + Less than - + Greater or equal - + Less or equal - + Between this and... - + Regular expression - + Edit Conditional Formats... - + Set to NULL - + + Cut + + + + Copy - + Copy with Headers - + Copy as SQL - + Paste - + Print... - + Use in Filter Expression - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. @@ -2194,6 +2242,39 @@ x~y Range: values between x and y + + ImageViewer + + + Image Viewer + + + + + Reset the scaling to match the original size of the image. + + + + + Set the scaling to match the size of the viewport. + + + + + Print... + + + + + Open preview dialog for printing displayed image + + + + + Ctrl+P + + + ImportCsvDialog @@ -2228,7 +2309,7 @@ x~y Range: values between x and y - + Tab @@ -2401,12 +2482,17 @@ x~y Range: values between x and y - + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + + + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. - + Inserting row failed: %1 @@ -2419,98 +2505,98 @@ x~y Range: values between x and y - + toolBar1 - + Opens the SQLCipher FAQ in a browser window - + Export one or more table(s) to a JSON file - + &File - + &Import - + &Export - + &Edit - + &View - + &Help - + DB Toolbar - + Edit Database &Cell - + DB Sche&ma - + &Remote - - + + Execute current line - + This button executes the SQL statement present in the current editor line - + Shift+F5 - + Sa&ve Project - + Open an existing database file in read only mode - + User @@ -2536,96 +2622,96 @@ You can drag SQL statements from an object row and drop them into other applicat - + Un/comment block of SQL code - + Un/comment block - + Comment or uncomment current line or selected block of code - + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. - + Ctrl+/ - + Stop SQL execution - + Stop execution - + Stop the currently running SQL script - - + + Edit Pragmas This has to be equal to the tab title in all the main tabs - + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. - - + + Execute SQL This has to be equal to the tab title in all the main tabs - + &Tools - + Application - + Error Log - + This button clears the contents of the SQL logs - + &Clear - + This panel lets you examine a log of all SQL commands issued by the application or by yourself - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. @@ -2633,1131 +2719,1154 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - - + + Project Toolbar - + Extra DB toolbar - - - + + + Close the current database file - + &New Database... - - + + Create a new database file - + This option is used to create a new database file. - + Ctrl+N - - + + &Open Database... - - - - - + + + + + Open an existing database file - - - + + + This option is used to open an existing database file. - + Ctrl+O - + &Close Database - + This button closes the connection to the currently open database file - - + + Ctrl+W - - + + Revert database to last saved state - + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. - - + + Write changes to the database file - + This option is used to save changes to the database file. - + Ctrl+S - + Compact &Database... - + Compact the database file, removing space wasted by deleted records - - + + Compact the database file, removing space wasted by deleted records. - + E&xit - + Ctrl+Q - + Import data from an .sql dump text file into a new or existing database. - + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. - + Open a wizard that lets you import data from a comma separated text file into a database table. - + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. - + Export a database to a .sql dump text file. - + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. - + Export a database table as a comma separated text file. - + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. - + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database - - + + Delete Table - + Open the Delete Table wizard, where you can select a database table to be dropped. - + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. - + Open the Create Index wizard, where it is possible to define a new index on an existing database table. - + &Preferences... - - + + Open the preferences window. - + &DB Toolbar - + Shows or hides the Database toolbar. - + Shift+F1 - + + New &tab + + + + + Open SQL file(s) + + + + + This button opens files containing SQL statements and loads them in new editor tabs + + + + Execute line - + &Wiki - + F1 - + Bug &Report... - + Feature Re&quest... - + Web&site - + &Donate on Patreon... - + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file - + This button lets you open a DB Browser for SQLite project file - + Ctrl+Shift+O - + &Save Project As... - - - + + + Save the project in a file selected in a dialog - + Save A&ll - - - + + + Save DB file, project file and opened SQL files - + Ctrl+Shift+S - + Browse Table - + + Close Pro&ject + + + + + Close project and database files and return to the initial state + + + + + Ctrl+Shift+F4 + + + + + + Detach Database + + + + + + Detach database file attached to the current database connection + + + + &Attach Database... - - + + Recent Files + + + + + Add another database file to the current database connection - + This button lets you add another database file to the current database connection - + &Set Encryption... - + SQLCipher &FAQ - + Table(&s) to JSON... - + Open Data&base Read Only... - + Save results - + Save the results view - + This button lets you save the results of the last executed query - - + + Find text in SQL editor - + Find - + This button opens the search bar of the editor - + Ctrl+F - - + + Find or replace text in SQL editor - + Find or replace - + This button opens the find/replace dialog for the current editor tab - + Ctrl+H - + Export to &CSV - + Save as &view - + Save as view - + Shows or hides the Project toolbar. - + Extra DB Toolbar - + New In-&Memory Database - + Drag && Drop Qualified Names - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor - + Drag && Drop Enquoted Names - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - + &Integrity Check - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. - + &Foreign-Key Check - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - + &Quick Integrity Check - + Run a quick integrity check over the open DB - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. - + &Optimize - + Attempt to optimize the database - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. - - + + Print - + Print text from current SQL editor tab - + Open a dialog for printing the text in the current SQL editor tab - + Print the structure of the opened database - + Open a dialog for printing the structure of the opened database - + &Recently opened - - Open &tab - - - - + Ctrl+T - + SQL &Log - + Show S&QL submitted by - + &Plot - + Ctrl+F4 - + &Revert Changes - + &Write Changes - + &Database from SQL file... - + &Table from CSV file... - + &Database to SQL file... - + &Table(s) as CSV file... - + &Create Table... - + &Delete Table... - + &Modify Table... - + Create &Index... - + W&hat's This? - + &About - + This button opens a new tab for the SQL editor - + &Execute SQL - + Execute all/selected SQL - + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. - - Open SQL file - - - - - This button opens a file containing SQL statements and loads it in a new editor tab - - - - - - + + + Save SQL file - + &Load Extension... - + Ctrl+E - + Export as CSV file - + Export table as comma separated values file - - + + Save the current session to a file - + Open &Project... - - + + Load a working session from a file - - + + Save SQL file as - + This button saves the content of the current SQL editor tab to a file - + &Browse Table - + Copy Create statement - + Copy the CREATE statement of the item to the clipboard - + Ctrl+Return - + Ctrl+L - - + + Ctrl+P - + Ctrl+D - + Ctrl+I - + Encrypted - + Read only - + Database file is read only. Editing the database is disabled. - + Database encoding - + Database is encrypted using SQLCipher - - + + Choose a database file - - - + + + Choose a filename to save under - + Error checking foreign keys after table modification. The changes will be reverted. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. - - + + At line %1: - + Result: %2 - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 - + Are you sure you want to undo all changes made to the database file '%1' since the last save? - + Choose a file to import - + Text files(*.sql *.txt);;All files(*) - + Do you want to create a new database file to hold the imported data? If you answer no we will attempt to import the data in the SQL file to the current database. - - Close current SQL tab - - - - + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? - + Do you want to save the changes made to the project file '%1'? - + File %1 already exists. Please choose a different name. - + Error importing data: %1 - + Import completed. - + Delete View - + Modify View - + Delete Trigger - + Modify Trigger - + Delete Index - + Modify Index - + Modify Table - + Do you want to save the changes made to SQL tabs in a new project file? - + Do you want to save the changes made to the SQL file %1? - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + Could not find resource file: %1 - - Could not find resource file: %1 - - - - + Choose a project file to open - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - - - - + Could not open project file for writing. Reason: %1 - + Busy (%1) - + Setting PRAGMA values will commit your current transaction. Are you sure? - + Reset Window Layout - + Alt+0 - + The database is currenctly busy. - + Click here to interrupt the currently running query. - + Could not open database file. Reason: %1 - + In-Memory database - - %n row(s) - - %n row - %n rows - - - - , %n column(s) - - , %n column - , %n columns - - - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. - + Are you sure you want to delete the view '%1'? - + Are you sure you want to delete the trigger '%1'? - + Are you sure you want to delete the index '%1'? - + Error: could not delete the table. - + Error: could not delete the view. - + Error: could not delete the trigger. - + Error: could not delete the index. - + Message from database engine: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? - + + Edit View %1 + + + + + Edit Trigger %1 + + + + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. - + -- EXECUTING SELECTION IN '%1' -- - + -- EXECUTING LINE IN '%1' -- - + -- EXECUTING ALL IN '%1' -- - + Result: %1 - + %1 rows returned in %2ms - + Choose text files - + Import completed. Some foreign key constraints are violated. Please fix them before saving. - + + Opened '%1' in read-only mode from recent file list + + + + + Opened '%1' from recent file list + + + + &%1 %2%3 - + (read only) - + Open Database or Project - + Attach Database... - + Import CSV file(s)... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. @@ -3765,154 +3874,220 @@ Are you sure you want to save the database? - + Do you want to save the changes made to SQL tabs in the project file '%1'? - + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + + + Select SQL file to open - + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + + + + + Yes. Don't ask again + + + + + This action will open a new SQL tab with the following statements for you to edit and run: + + + + Rename Tab - + Duplicate Tab - + Close Tab - + Opening '%1'... - + There was an error opening '%1'... - + Value is not a valid URL or filename: %1 - + Select file name - + + Ctrl+Tab + + + + + Ctrl+Shift+Tab + + + + + Ctrl+PgUp + + + + + Clear List + + + + + Window Layout + + + + + Simplify Window Layout + + + + + Shift+Alt+0 + + + + + Dock Windows at Bottom + + + + + Dock Windows at Left Side + + + + + Dock Windows at Top + + + + Select extension file - + Extension successfully loaded. - + Error loading extension: %1 - - + + Don't show again - + New version available. - + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. - + Project saved to file '%1' - + Collation needed! Proceed? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! - + creating collation - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. - + Please specify the view name - + There is already an object with that name. Please choose a different name. - + View successfully created. - + Error creating view: %1 - + This action will open a new SQL tab for running: - + Press Help for opening the corresponding SQLite reference page. - Choose a axis color - Choose an axis colour - - - + DB Browser for SQLite project file (*.sqbpro) - + Execution finished with errors. - + Execution finished without errors. @@ -3938,37 +4113,37 @@ Create a backup! - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used colour for that graph.</p></body></html> - + Columns - + X - + Y1 - + Y2 - + Axis Type - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -3979,143 +4154,139 @@ Select the axes or axes labels to drag and zoom only in that orientation. - + Line type: - - + + None - + Line - + StepLeft - + StepRight - + StepCenter - + Impulse - + Point shape: - + Cross - + Plus - + Circle - + Disc - + Square - + Diamond - + Star - + Triangle - + TriangleInverted - + CrossSquare - + PlusSquare - + CrossCircle - + PlusCircle - + Peace - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - + Save current plot... - - + + Load all data and redraw plot - - - + + + Row # - - Choose a axis color - Choose an axis colour - Copy @@ -4137,64 +4308,64 @@ Select the axes or axes labels to drag and zoom only in that orientation. - + Date/Time - + Date - + Time - - + + Numeric - + Label - + Invalid - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. - + Choose an axis color Choose an axis colour - + Choose a filename to save under - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. - + Loading all remaining data for this table took %1ms. @@ -4228,8 +4399,8 @@ Warning: not all data has been fetched from the table yet due to the partial fet - - + + ... @@ -4251,12 +4422,14 @@ Warning: not all data has been fetched from the table yet due to the partial fet - - - - - - + + + + + + + + enabled @@ -4266,222 +4439,217 @@ Warning: not all data has been fetched from the table yet due to the partial fet - + &Database - + Database &encoding - + Open databases with foreign keys enabled. - + &Foreign keys - + SQ&L to execute after opening database - + Data &Browser - + Remove line breaks in schema &view - + Prefetch block si&ze - - Advanced - - - - + Default field type - + Font - + &Font - + Content - + Symbol limit in cell - + NULL - + Regular - + Binary - + Background - + Filters - + Threshold for completion and calculation on selection - + Escape character - + Delay time (&ms) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. - + &SQL - + Settings name - + Context - + Colour - + Bold - + Italic - + Underline - + Keyword - + Function - + Table - + Comment - + Identifier - + String - + Current line - + SQL &editor font size - + Tab size - + SQL editor &font - + Error indicators - + Hori&zontal tiling - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. - + Code co&mpletion @@ -4591,17 +4759,48 @@ Warning: not all data has been fetched from the table yet due to the partial fet - + + This sets the font size for all UI elements which do not have their own font size option. + + + + + Font size + + + + + Max Recent Files + + + + + Prompt to save SQL tabs +in new project file + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. - + + Database structure font size + + + + Font si&ze - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. @@ -4609,302 +4808,386 @@ Can be set to 0 for disabling the functionalities. - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. - + Show images in cell - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. - + Field display - + Displayed &text - - - + - - + + + + Click to set this color - + Text color Text colour - + Background color Background colour - + Preview only (N/A) - + Foreground - + + selected_bg + + + + + Selection background + + + + + selected_fg + + + + + Selection foreground + + + + + highlight + + + + + Highlight + + + + SQL &results font size - + &Wrap lines - + Never - + At word boundaries - + At character boundaries - + At whitespace boundaries - + &Quotes for identifiers - + Choose the quoting mechanism used by the application for identifiers in SQL code. - + "Double quotes" - Standard SQL (recommended) - + `Grave accents` - Traditional MySQL quotes - + [Square brackets] - Traditional MS SQL Server quotes - + Keywords in &UPPER CASE - + When set, the SQL keywords are completed in UPPER CASE letters. - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background - + + Close button on tabs + + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + + + + &Extensions - + Select extensions to load for every database: - + Add extension - + Remove extension - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> - + Disable Regular Expression extension - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> - + Allow loading extensions from SQL code - + Remote - + CA certificates - + Proxy - + Configure - - + + Export Settings + + + + + Import Settings + + + + + Subject CN - + Common Name - + Subject O - + Organization - - + + Valid from - - + + Valid to - - + + Serial number - + Your certificates - + File - + Subject Common Name - + Issuer CN - + Issuer Common Name - + Clone databases into - - + + Choose a directory - + + The language will change after you restart the application. - + Select extension file - + Extensions(*.so *.dylib *.dll);;All files(*) - + Import certificate file - + No certificates found in this file. - + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! - + Are you sure you want to clear all the saved settings? All your preferences will be lost and default values will be used. + + + Save Settings File + + + + + + Initialization File (*.ini) + + + + + The settings file has been saved in location : + + + + + + Open Settings File + + + + + The settings file was loaded properly. + + + + + The selected settings file is not a normal settings file. +Please check again. + + ProxyDialog @@ -4998,7 +5281,7 @@ All your preferences will be lost and default values will be used. - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) @@ -5097,72 +5380,60 @@ All your preferences will be lost and default values will be used. Extensions (*.so *.dylib *.dll) - - - RemoteDatabase - - - Error when connecting to %1. -%2 - - - - - Error opening remote file at %1. -%2 - - - - Error: Invalid client certificate specified. + + Initialization File (*.ini) + + + RemoteCommitsModel - - Please enter the passphrase for this client certificate in order to authenticate. + + Commit ID - - Cancel + + Message - - Uploading remote database to -%1 + + Date - - Downloading remote database from -%1 + + Author - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. + + Size - - - Error: The network is not accessible. + + Authored and committed by %1 - - Error: Cannot open the file for sending. + + Authored by %1, committed by %2 + + + RemoteDatabase - + Error opening local databases list. %1 - + Error creating local databases list. %1 @@ -5176,150 +5447,440 @@ All your preferences will be lost and default values will be used. - + Identity - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. + + Push currently opened database to server - - Go + + Upload - - Push currently opened database to server + + DBHub.io - + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - - <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> + + Local - - Back + + Current Database - - Public + + Clone - - - RemoteModel - - Name + + User - - Commit + + Database - - Last modified + + Branch - - Size + + Commits - - - RemotePushDialog - - Push database + + Commits for - - Database na&me to push to + + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> - - Commit message + + Back - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + + Delete Database - - Database licence + + Delete the local clone of this database - - Public + + Open in Web Browser - - Branch + + Open the web page for the current database in your browser - - Force push + + Clone from Link - - Database will be public. Everyone has read access to it. + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. - - Database will be private. Only you have access to it. + + Refresh - - Use with care. This can cause remote commits to be deleted. + + Reload all data and update the views - - - RunSql - - Execution aborted by user + + F5 - - , %1 rows affected + + Clone Database - - query executed successfully. Took %1ms%2 + + Open Database - + + Open the local copy of this database + + + + + Check out Commit + + + + + Download and open this specific commit + + + + + Check out Latest Commit + + + + + Check out the latest commit of the current branch + + + + + Save Revision to File + + + + + Saves the selected revision of the database to another file + + + + + Upload Database + + + + + Upload this database as a new commit + + + + + Select an identity to connect + + + + + Public + + + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + + + + + Invalid URL: The host name does not match the host name of the current identity. + + + + + Invalid URL: No branch name specified. + + + + + Invalid URL: No commit ID specified. + + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + + + + + The database has unsaved changes. Are you sure you want to push it before saving? + + + + + The database you are trying to delete is currently opened. Please close it before deleting. + + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + + + + + RemoteLocalFilesModel + + + Name + + + + + Branch + + + + + Last modified + + + + + Size + + + + + Commit + + + + + File + + + + + RemoteModel + + + Name + + + + + Commit + + + + + Last modified + + + + + Size + + + + + Size: + + + + + Last Modified: + + + + + Licence: + + + + + Default Branch: + + + + + RemoteNetwork + + + Choose a location to save the file + + + + + Error opening remote file at %1. +%2 + + + + + Error: Invalid client certificate specified. + + + + + Please enter the passphrase for this client certificate in order to authenticate. + + + + + Cancel + + + + + Uploading remote database to +%1 + + + + + Downloading remote database from +%1 + + + + + + Error: The network is not accessible. + + + + + Error: Cannot open the file for sending. + + + + + RemotePushDialog + + + Push database + + + + + Database na&me to push to + + + + + Commit message + + + + + Database licence + + + + + Public + + + + + Branch + + + + + Force push + + + + + Username + + + + + Database will be public. Everyone has read access to it. + + + + + Database will be private. Only you have access to it. + + + + + Use with care. This can cause remote commits to be deleted. + + + + + RunSql + + + Execution aborted by user + + + + + , %1 rows affected + + + + + query executed successfully. Took %1ms%2 + + + + executing query @@ -5441,23 +6002,23 @@ p, li { white-space: pre-wrap; } - + Couldn't read file: %1. - - + + Couldn't save file: %1. - + Your changes will be lost when reloading it! - + The file "%1" was modified by another program. Do you want to reload it?%2 @@ -5469,6 +6030,11 @@ p, li { white-space: pre-wrap; } Ctrl+/ + + + Ctrl+PgDown + + SqlUiLexer @@ -5514,278 +6080,283 @@ p, li { white-space: pre-wrap; } + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. - + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. - + (X,Y) The like() function is used to implement the "Y LIKE X" expression. - + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. - + (X) ltrim(X) removes spaces from the left side of X. - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. - + (X) rtrim(X) removes spaces from the right side of X. - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. - + (X) trim(X) removes spaces from both ends of X. - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. - + (timestring,modifier,modifier,...) - + (format,timestring,modifier,modifier,...) - + (X) The avg() function returns the average value of all non-NULL X within a group. - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. - + (X) The max() aggregate function returns the maximum value of all values in the group. - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. @@ -5793,39 +6364,40 @@ Use of this function must be authorized from Preferences. SqliteTableModel - + reading rows - + loading... - + References %1(%2) Hold %3Shift and click to jump there - + Error changing data: %1 - + retrieving list of columns - + Fetching data... - + + Cancel @@ -5961,7 +6533,7 @@ Hold %3Shift and click to jump there - + Replace @@ -5976,486 +6548,496 @@ Hold %3Shift and click to jump there - + <html><head/><body><p>Scroll to the beginning</p></body></html> - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - + |< - + Scroll one page upwards - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - + < - + 0 - 0 of 0 - + Scroll one page downwards - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - + > - + Scroll to the end - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> - + >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - + Go to: - + Enter record number to browse - + Type a record number in this area and click the Go to: button to display the record in the database view - + 1 - + Show rowid column - + Toggle the visibility of the rowid column - + Unlock view editing - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. - + Edit display format - + Edit the display format of the data in this column - - + + New Record - - + + Insert a new record in the current table - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - - + + Delete Record - + Delete the current record - - + + This button deletes the record or records currently selected in the table - - + + Insert new record using default values in browsed table - + Insert Values... - - + + Open a dialog for inserting values in a new record - + Export to &CSV - - + + Export the filtered data to CSV - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - + Save as &view - - + + Save the current filter, sort column and display formats as a view - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - + Save Table As... - - + + Save the table as currently displayed - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - + Hide column(s) - + Hide selected column(s) - + Show all columns - + Show all columns that were hidden - - + + Set encoding - + Change the encoding of the text in the table cells - + Set encoding for all tables - + Change the default encoding assumed for all tables in the database - + Clear Filters - + Clear all filters - - + + This button clears all the filters set in the header input fields for the currently browsed table. - + Clear Sorting - + Reset the order of rows to the default - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. - + Print - + Print currently browsed table data - + Print currently browsed table data. Print selection if more than one cell is selected. - + Ctrl+P - + Refresh - + Refresh the data in the selected table - + This button refreshes the data in the currently selected table. - + F5 - + Find in cells - + Open the find tool bar which allows you to search for values in the table view below. - - + + Bold - + Ctrl+B - - + + Italic - - + + Underline - + Ctrl+U - - + + Align Right - - + + Align Left - - + + Center Horizontally - - + + Justify - - + + Edit Conditional Formats... - + Edit conditional formats for the current column - + Clear Format - + Clear All Formats - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns - - + + Font Color - - + + Background Color - + Toggle Format Toolbar - + Show/hide format toolbar - - + + This button shows or hides the formatting toolbar of the Data Browser - + Select column - + Ctrl+Space - + Replace text in cells + + + Freeze columns + + + + + Make all columns from the first column up to this column not move when scrolling horizontally + + - Filter in all columns + Filter in any column - + Ctrl+R - + %n row(s) %n row @@ -6463,7 +7045,7 @@ Hold %3Shift and click to jump there - + , %n column(s) , %n column @@ -6471,103 +7053,126 @@ Hold %3Shift and click to jump there - + . Sum: %1; Average: %2; Min: %3; Max: %4 - + Conditional formats for "%1" - + determining row count... - + %1 - %2 of >= %3 - + %1 - %2 of %3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - + Delete Records - + Duplicate records - + Duplicate record - + Ctrl+" - + Adjust rows to contents - + Error deleting record: %1 - + Please select a record first - + There is no filter set for this table. View will not be created. - + Please choose a new encoding for all tables. - + Please choose a new encoding for this table. - + %1 Leave the field empty for using the database encoding. - + This encoding is either not valid or not supported. - + %1 replacement(s) made. + + TableBrowserDock + + + New Data Browser + + + + + Rename Data Browser + + + + + Close Data Browser + + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + VacuumDialog diff --git a/src/translations/sqlb_es_ES.ts b/src/translations/sqlb_es_ES.ts index 694f9c331..e1de520d4 100644 --- a/src/translations/sqlb_es_ES.ts +++ b/src/translations/sqlb_es_ES.ts @@ -18,46 +18,6 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> <html><head/><body><p>«DB Browser for SQLite» es una herramienta visual, libre y de fuente abierta usada para crear, diseñar y editar archivos de bases de datos SQLite.</p><p>Está licenciada dualmente con la Mozilla Public License Versión 2, y con la GNU General Public License Versión 3 o posterior. Puede modificarla o redistribuirla bajo las condiciones de estas licencias.</p><p>Vea <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> y <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> para más detalles.</p><p>Para más información sobre este programa visite nuestra página web: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">Esta aplicación utiliza GPL/LGPL Qt Toolkit de </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Vea </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> para los términos de licencia e información.</span></p><p><span style=" font-size:small;">Además utiliza el conjunto de iconos Silk de Mark James licenciado bajo la licencia Creative Commons Attribution 2.5 y 3.0.<br/>Vea </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> para los detalles.</span></p></body></html> - - <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> for details.</p><p>For more information on this program please visit our website at: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - <html><head/><body> -<p>DB Browser para SQLite es una herramienta gratuita y de código abierto usada para crear, diseñar y editar archivos de bases de datos de SQLite.</p> -<p>Está doblemente licenciada con Mozilla Public License Version 2, y también con GNU General Public License Version 3 o posterior. Puede modificarla o redistribuirla bajo las condiciones de esas licencias.</p> -<p>Vea <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> y <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> para los detalles.</p> -<p>Para más información acerca de este programa visite, por favor, nuestra página web en: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p> -<p><span style=" font-size:small;">Este software usa el GPL/LGPL Qt Toolkit de </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Vea </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> para más información y las condiciones de la licencia.</span> -</p><p><span style=" font-size:small;">También usa el conjunto de iconos Silk de Mark James licenciado bajo Creative Commons Attribution 2.5 y 3.0.<br/>Vea </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> para los detalles.</span></p></body></html> - - - - (based on SQLite %1) - (basado en SQLite %1) - - - - SQLCipher Version %1 (based on SQLite %2) - Versión de SQLCipher %1 (basado en SQLite %2) - - - - Version - Versión - - - - Built for %1, running on %2 - Compilado para %1, ejecutándose en %2 - - - - Qt Version - Versión de Qt - - - - SQLite Version - Versión de SQLite - AddRecordDialog @@ -159,105 +119,149 @@ Application - - Usage: %1 [options] [db] - - Uso: %1 [opciones] [bd] - - - - + Possible command line arguments: Argumentos de línea de comandos disponibles: - -h, --help Show command line options - -h, --help Muestra opciones de línea de comandos + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value + Las opciones -o/--option y -O/--save-option requieren un argumento de la forma grupo/ajuste=valor - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [archivo] Ejecuta este archivo de SQL tras abrir la base de datos + + The user settings file location is replaced with the argument value instead of the environment variable value. + - - -h, --help Show command line options - -h, --help Mostrar opciones de línea de comandos + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + - - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [archivo] Ejecutar este archivo de SQL tras abrir la base de datos + + Usage: %1 [options] [<database>|<project>] + + Uso: %1 [opciones] [<base de datos>|<proyecto>] + - - -t, --table [table] Browse this table after opening the DB - -t, --table [tabla] Mostrar esta tabla en la hoja de datos tras abrir la base de datos + + -h, --help Show command line options + -h, --help Mostrar opciones de línea de comandos - - -q, --quit Exit application after running scripts - -q, --quit Salir de la aplicación tras ejecutar los scripts + + -q, --quit Exit application after running scripts + -q, --quit Salir de la aplicación tras ejecutar los scripts - - -R, --read-only Open database in read-only mode - -R, --read-only Abrir base de datos en modo de solo-lectura + + -s, --sql <file> Execute this SQL file after opening the DB + -s, --sql <archivo> Ejecuta este archivo de SQL tras abrir la base de datos - - -o, --option [group/setting=value] Run application with this setting temporarily set to value - -o, --option [grupo/ajuste=valor] Ejecutar la aplicación con este ajuste establecido temporalmente a este valor + + -t, --table <table> Browse this table after opening the DB + -t, --table <tabla> Mostrar esta tabla en la hoja de datos tras abrir la base de datos - - -O, --save-option [group/setting=value] Run application saving this value for this setting - -O, --save-option [grupo/ajuste=valor] Ejecutar la aplicación con este ajuste y guardando este valor + + -R, --read-only Open database in read-only mode + -R, --read-only Abrir base de datos en modo de solo-lectura - - -v, --version Display the current version - -v, --version Mostrar la versión actual + + -S, --settings <settings_file> + - - [file] Open this SQLite database - [archivo] Abrir esta base de datos de SQLite + + Run application based on this settings file + - - This is DB Browser for SQLite version %1. - Esto es «DB Browser for SQLite» versión %1. + + -o, --option <group>/<setting>=<value> + -o, --option <grupo>/<ajuste>=<valor> - - The -o/--option and -O/--save-option options require an argument in the form group/setting=value - Las opciones -o/--option y -O/--save-option requieren un argumento de la forma grupo/ajuste=valor + + Run application with this setting temporarily set to value + Ejecutar la aplicación con este ajuste establecido temporalmente a este valor + + + + -O, --save-option <group>/<setting>=<value> + -O, --save-option <grupo>/<ajuste>=<valor> + + + + Run application saving this value for this setting + Ejecutar la aplicación guardando este valor para este ajuste + + + + -v, --version Display the current version + -v, --version Mostrar la versión actual + + + + <database> Open this SQLite database + <base de datos> Abrir esta base de datos SQLite - This is DB Browser for SQLite version %1%2. - Esto es DB Browser para SQLite versión %1%2. + + <project> Open this project file (*.sqbpro) + <proyecto> Abrir este archivo de proyecto (*.sqbpro) - + The -s/--sql option requires an argument La opción -s/--sql necesita un argumento - + The file %1 does not exist El archivo %1 no existe - + The -t/--table option requires an argument La opción -t/--table necesita un argumento - The -o/--option option requires an argument in the form group/setting=value - La opción -o/--option requiere un argumento con la forma grupo/ajuste=valor + + The -S/--settings option requires an argument. The option is ignored. + + + + + SQLite Version + Versión de SQLite + + + + SQLCipher Version %1 (based on SQLite %2) + Versión de SQLCipher %1 (basado en SQLite %2) + + + + DB Browser for SQLite Version %1. + «DB Browser for SQLite» Versión %1. + + + + Built for %1, running on %2 + Compilado para %1, ejecutándose en %2 + + + + Qt Version %1 + Versión de Qt %1 - + Invalid option/non-existant file: %1 Opción inválida o archivo inexistente: %1 @@ -334,10 +338,6 @@ Raw key Clave en bruto - - Page &size - &Tamaño de página - Please set a key to encrypt the database. @@ -415,31 +415,41 @@ Si se modificaron cualquiera de los otros ajustes para este archivo de base de d + .NET DateTime.Ticks to date + DateTime.Ticks de .NET a fecha + + + Julian day to date Fecha juliana a fecha - + Unix epoch to local time Tiempo Unix a hora local - + Date as dd/mm/yyyy Fecha dd/mm/aaaa - + Lower case Minúsculas - + + Binary GUID to text + + + + Custom display format must contain a function call applied to %1 El formato de presentación a medida tiene que contener una llamada de función aplicada a %1 - + Error in custom display format. Message from database engine: %1 @@ -448,7 +458,7 @@ Si se modificaron cualquiera de los otros ajustes para este archivo de base de d %1 - + Custom display format must return only one column but it returned %1. El formato de presentación a medida debe devolver sólo una columna pero ha devuelto %1. @@ -463,22 +473,22 @@ Si se modificaron cualquiera de los otros ajustes para este archivo de base de d Número redondeado - + Unix epoch to date Tiempo Unix a fecha - + Upper case Mayúsculas - + Windows DATE to date Fecha Windows a fecha - + Custom A medida @@ -490,14 +500,6 @@ Si se modificaron cualquiera de los otros ajustes para este archivo de base de d Conditional Format Manager Gestor de Formato Condicional - - &Up - &Subir - - - &Down - &Bajar - This dialog allows creating and editing conditional formats. Each cell style will be selected by the first accomplished condition for that cell data. Conditional formats can be moved up and down, where those at higher rows take precedence over those at lower. Syntax for conditions is the same as for filters and an empty condition applies to all values. @@ -613,210 +615,169 @@ Si se modificaron cualquiera de los otros ajustes para este archivo de base de d DBBrowserDB - no error - Sin errores - - - + Please specify the database name under which you want to access the attached database Por favor, especifique el nombre con el que acceder a la base de datos anexada - + Invalid file format Formato de archivo inválido - + Do you want to save the changes made to the database file %1? ¿Guardar los cambios hechos al archivo de base de datos «%1»? - + Exporting database to SQL file... Exportando base de datos a un archivo SQL... - - + + Cancel Cancelar - + Executing SQL... Ejecutando SQL... - + Action cancelled. Acción cancelada. - Error in statement #%1: %2. -Aborting execution. - Error en la sentencia #%1: %2. -Abortando ejecución. - - - renameColumn: cannot find table %1. - renameColumn: no se puede encontrar la tabla %1. - - - - This database has already been attached. Its schema name is '%1'. - Esta base de datos ya ha sido anexada. Su nombre de esquema es «%1». - - - + Do you really want to close this temporary database? All data will be lost. ¿Está seguro de que quiere cerrar esta base de datos temporal? Todos los datos se perderán. - + Database didn't close correctly, probably still busy La base de datos no se ha cerrado correctamente, probablemente todavía está ocupada - + The database is currently busy: La base de datos está actualmente ocupada: - + Do you want to abort that other operation? ¿Desea abortar la otra operación? - - + + No database file opened No hay una base de datos abierta - - + + Error in statement #%1: %2. Aborting execution%3. Error en la sentencia #%1: %2. Abortando ejecución%3. - - + + and rolling back y deshaciendo cambios - + didn't receive any output from %1 no se recibió ninguna salida de «%1» - + could not execute command: %1 no se pudo ejecutar el comando: «%1» - + Cannot delete this object No se puede borrar este objeto - + Cannot set data on this object No se pueden poner datos en este objeto - - + + A table with the name '%1' already exists in schema '%2'. Una tabla con el nombre «%1» ya existe en el esquema «%2». - + No table with name '%1' exists in schema '%2'. - No existe una tabla con el nombre '%1' en el esquema '%2'. + No existe una tabla con el nombre «%1» en el esquema «%2». - - + + Cannot find column %1. No se puede encontrar la columna %1. - + Creating savepoint failed. DB says: %1 Creación del punto de guardado fallido. La base de datos dice: %1 - + Renaming the column failed. DB says: %1 Renombrado de la columna fallido. La base de datos dice: %1 - - + + Releasing savepoint failed. DB says: %1 Liberación del punto de guardado fallido. La base de datos dice: %1 - + Creating new table failed. DB says: %1 Creación de la nueva tabla fallida. La base de datos dice: %1 - + Copying data to new table failed. DB says: %1 Copia de datos a la nueva table fallida. La base de datos dice: %1 - + Deleting old table failed. DB says: %1 Borrado de tabla fallido. La base de datos dice: %1 - + Error renaming table '%1' to '%2'. Message from database engine: %3 - Error renombrando la tabla '%1' a '%2'. + Error renombrando la tabla «%1» a «%2». Mensaje de la base de datos: %3 - + could not get list of db objects: %1 No se pudo obtener la lista de objetos de la base de datos: %1 - renameColumn: cannot find column %1. - renameColumn: no se puede encontrar la columna «%1». - - - renameColumn: creating savepoint failed. DB says: %1 - renameColumn: creación del savepoint fallido. La base de datos dice: %1 - - - renameColumn: creating new table failed. DB says: %1 - renameColumn: creación de la nueva tabla fallida. La base de datos dice: %1 - - - renameColumn: copying data to new table failed. DB says: -%1 - renameColumn: copia de datos a la nueva table fallida. La base de datos dice: -%1 - - - renameColumn: deleting old table failed. DB says: %1 - renameColumn: borrado de tabla fallido. La base de datos dice: %1 - - - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -825,61 +786,27 @@ Mensaje de la base de datos: - renameColumn: releasing savepoint failed. DB says: %1 - renameColumn: liberación del savepoint fallido. La base de datos dice: %1 - - - Error renaming table '%1' to '%2'.Message from database engine: -%3 - Error renombrando la tabla «%1» a «%2». Mensaje de la base de datos: -«%3» - - - ... <string can not be logged, contains binary data> ... - ... <la cadena no se puede registrar; contiene datos binarios> ... - - - + could not get list of databases: %1 no se pudo obtener lista de bases de datos: %1 - + Error loading extension: %1 Error cargando la extensión: %1 - + could not get column information No se pudo obtener información de la columna - unknown object type %1 - tipo de objeto desconocido %1 - - - could not get list of db objects: %1, %2 - No se pudo obtener la lista de objetos de la base de datos: %1, %2 - - - could not get types - No se pudieron obtener los tipos - - - didn't receive any output from pragma %1 - No se obtuvo ninguna salida del pragma %1 - - - could not execute pragma command: %1, %2 - No se pudo ejecutar el comando pragma: %1, %2 - - - + Error setting pragma %1 to %2: %3 Error definiendo pragma %1 como %2: %3 - + File not found. Archivo no encontrado. @@ -906,22 +833,18 @@ Mensaje de la base de datos: Schema Esquema - - Browsables (%1) - Navegables (%1) - Database Base de datos - + Browsables Navegables - + All Todos @@ -931,22 +854,22 @@ Mensaje de la base de datos: Temporal - + Tables (%1) Tablas (%1) - + Indices (%1) Índices (%1) - + Views (%1) Vistas (%1) - + Triggers (%1) Disparadores (%1) @@ -959,54 +882,54 @@ Mensaje de la base de datos: Editar celda de la base de datos - + Mode: Modo: - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. Esta es la lista de modos admitidos en el editor de celdas. Elija un modo para visualizar o editar los datos de la celda actual. - + RTL Text Texto RTL - - + + Image Imagen - + JSON JSON - + XML XML - - + + Automatically adjust the editor mode to the loaded data type Ajustar automáticamente el modo de edición al tipo de datos cargados - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. Esta casilla activa o desactiva el cambio automático del modo de edición. Cuando se selecciona una nueva celda o se importan nuevos datos y la selección automática está activada, el modo de edición se ajusta al tipo de datos detectados. El modo de edición para la celda se puede cambiar manualmente. Si prefiere mantener el modo de edición seleccionado manualmente mientras se mueve por las celdas, desmarque la casilla. - + Auto-switch Auto-selección - + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. @@ -1015,400 +938,285 @@ Errors are indicated with a red squiggle underline. Los errores se indican con un subrayado ondulado en rojo. - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. Este editor Qt se usa para scripts de derecha-a-izquierda, que no están soportados por el editor de Texto por defecto. Al detectar la presencia de caracteres de derecha-a-izquierda este modo de edición se activa automáticamente. - + Open preview dialog for printing the data currently stored in the cell Abrir diálogo de previsualización para imprimir los datos actualmente almacenados en la celda - + Auto-format: pretty print on loading, compact on saving. Auto-formato: dar formato al cargar, compactar al guardar. - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. Si se habilita, la opción de auto-formato da formato a los datos al cargarlos, rompiendo y sangrando las líneas de texto para una legibilidad máxima. Al guardar los datos, esta opción los compacta, eliminando fines de línea y espacio en blanco innecesario. - + Word Wrap Ajuste del Texto - + Wrap lines on word boundaries Ajustar las líneas en palabras completas - - + + Open in default application or browser Abrir en la aplicacion por defecto o navegador - + Open in application Abrir en una aplicacion - + The value is interpreted as a file or URL and opened in the default application or web browser. El valor es interpretado como un nombre de archivo o URL y abierto en la aplicación por defecto del sistema o el navegador de internet. - + Save file reference... Guardar referencia de archivo... - + Save reference to file Guardar referencia a archivo - - + + Open in external application Abrir en una aplicación externa - + Autoformat Auto-formato - + &Export... &Exportar... - - + + &Import... &Importar... - - + + Import from file Importar desde archivo - - + + Opens a file dialog used to import any kind of data to this database cell. Abre un diálogo para elegir el archivo para importar cualquier tipo de datos a esta celda. - + Export to file Exportar a archivo - + Opens a file dialog used to export the contents of this database cell to a file. Abre un diálogo para elegir el archivo al que exportar el contenido de esta celda de la base de datos. - - + Print... Imprimir... - - Open preview dialog for printing displayed image - Abre un diálogo de previsualización para imprimir la imagen mostrada - - - - + Ctrl+P - + Open preview dialog for printing displayed text Abre un diálogo de previsualización para imprimir el texto mostrado - + Copy Hex and ASCII Copiar hex. y ASCII - + Copy selected hexadecimal and ASCII columns to the clipboard Copia las columnas seleccionadas en hexadecimal y ASCII al portapapeles - + Ctrl+Shift+C - Import text - Importa texto - - - Opens a file dialog used to import text to this database cell. - Abre una ventana para importar texto a esta celda de la base de datos. - - - &Import - &Importar - - - Export text - Exporta texto - - - Opens a file dialog used to export the contents of this database cell to a text file. - Abre una ventana para exportar el contenido de esta celda a un archivo de texto. - - - &Export - E es el acelerador del menú editar - E&xportar - - - Set this cell to NULL - Borra esta celda a NULL - - - + Set as &NULL Borrar a &NULL - This editor mode lets you edit JSON or XML data with syntax highlighting, automatic formatting and validation before saving. - -Errors are indicated with a red squiggle underline. - Este modo del editor le permite editar datos JSON o XML con resalte de sintaxis, formato automático y validación antes de guardar. - -Los errores se indican con un subrayado ondulado rojo. - - - + Apply data to cell Aplicar los datos a la celda - + This button saves the changes performed in the cell editor to the database cell. Este botón guarda los cambios realizados en el editor a la celda de la base de datos. - + Apply Aplicar - + Text Texto - + Binary Binario - Clear cell data - Borrar datos de la celda - - - + Erases the contents of the cell Borra el contenido de la celda - - &Clear - &Borrar - - - <html><head/><body><p><span style=" font-weight:600; color:#c00000;">Warning: Editing binary content in text mode may result in corrupted data!</span></p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#c00000;">¡Precaución: Editar contenido binario en modo texto puede dañar los datos!</span></p></body></html> - This area displays information about the data present in this database cell Esta zona muestra información acerca de los datos presentes en esta celda de la base de datos - + Type of data currently in cell Tipo de datos actualmente en la celda - + Size of data currently in table Tamaño de los datos actualmente en la tabla - Choose a file - Seleccione un archivo - - - Text files(*.txt);;Image files(%1);;All files(*) - Archivos de texto(*.txt);;Archivos de imagen(%1);;Todos los archivos(*) - - - + Choose a filename to export data Seleccione un nombre de archivo para exportar los datos - Text files(*.txt);;All files(*) - Archivos de texto(*.txt);;Todos los archivos(*) - - - Image data can't be viewed with the text editor - Los datos de imagen no se pueden mostrar en el editor de texto - - - Binary data can't be viewed with the text editor - Los datos binarios no se pueden mostrar en el editor de texto - - - - + + Image data can't be viewed in this mode. Datos de imagen no se puede visualizar en este modo. - - + + Try switching to Image or Binary mode. Intente cambiando al modo «Imagen» o «Binario». - - + + Binary data can't be viewed in this mode. Datos binarios no se puede visualizar en este modo. - - + + Try switching to Binary mode. Intente cambiando al modo «Binario». - Text files (*.txt) - Archivos de texto (*.txt) - - - JSON files (*.json) - Archivos JSON (*.json) - - - XML files (*.xml) - Archivos XML (*.xml) - - - - + + Image files (%1) Archivos de imagen (%1) - + Binary files (*.bin) Archivos binarios (*.bin) - All files (*) - Todos los archivos (*) - - - + Choose a file to import Seleccione el archivo a importar - + %1 Image %1 Imagen - SVG files (*.svg) - Archivos SVG (*.svg) - - - Hex dump files (*.txt) - Archivos de volcado hex. (*.txt) - - - Text files (*.txt);;Image files (%1);;JSON files (*.json);;XML files (*.xml);;Binary files (*.bin);;All files (*) - Archivos de texto (*.txt);;Archivos de imagen (%1);;Archivos JSON (*.json);;Archivos XML (*.xml);;Archivos binarios (*.bin);;Todos los archivos (*) - - - Binary files(*.bin);;All files(*) - Archivos binarios (*.bin);;Todos los archivos (*) - - - JSON files(*.json);;All files(*) - Archivos JSON (*.json);;Todos los archivos (*) - - - SVG files(*.svg);;All files(*) - Archivos SVG(*.svg);;Todos los archivos (*) - - - + Invalid data for this mode Datos inválidos para este modo - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? La celda contiene datos de tipo %1 inválidos. Razón: «%2». ¿Realmente desea aplicarlos a la celda? - + Type of data currently in cell: %1 Image El tipo de datos en la celda es: Imagen %1 - + %1x%2 pixel(s) %1×%2 píxel(s) - + Type of data currently in cell: NULL El tipo de datos en la celda es: NULL - + Type of data currently in cell: Valid JSON Tipo de datos actualmente en la celda: JSON válido - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. - Los datos se han guardado en un archivo temporal y se ha abierto con la aplicación por defecto. Ahora puede editar ese archivo y cuado termine puede aplicar los nuevos datos guardados a la celda o cancelar los cambios. + + Couldn't save file: %1. + No se pudo guardar el archivo: %1. - Type of data currently in cell: Null - Tipo de datos actualmente en la celda: Null + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + - - + + Type of data currently in cell: Text / Numeric Tipo de datos actualmente en la celda: Texto / Numérico - - - + + + %n character(s) %n carácter @@ -1416,21 +1224,13 @@ Los errores se indican con un subrayado ondulado rojo. - Type of data currently in cell: Image - Tipo de datos actualmente en la celda: Imagen - - - %1x%2 pixel - %1x%2 píxel - - - + Type of data currently in cell: Binary Tipo de datos actualmente en la celda: Binario - - + + %n byte(s) %n byte @@ -1440,27 +1240,11 @@ Los errores se indican con un subrayado ondulado rojo. EditIndexDialog - - Create New Index - Crear un Índice Nuevo - &Name &Nombre - - &Columns - &Columnas - - - Column - Columna - - - Use in Index - Usar como Índice - Order @@ -1548,11 +1332,6 @@ Los errores se indican con un subrayado ondulado rojo. Advanced Avanzado - - Database schema - El contexto es claro, mejor omitir "de la base de datos" - Esquema - Make this a 'WITHOUT rowid' table. Setting this flag requires a field of type INTEGER with the primary key flag set and the auto increment flag unset. @@ -1563,35 +1342,11 @@ Los errores se indican con un subrayado ondulado rojo. Without Rowid Sin Rowid - - Set this to create a temporary table that is deleted when closing the database. - Hacer de esta una tabla temporal que se borrará al cerrar la base de datos. - - - Temporary table - Tabla temporal - Fields Campos - - Add field - Añadir campo - - - Remove field - Eliminar campo - - - Move field up - Mover campo hacia arriba - - - Move field down - Mover campo hacia abajo - Database sche&ma @@ -1628,246 +1383,209 @@ Los errores se indican con un subrayado ondulado rojo. Mover al final - - + + Name Nombre - - + + Type Tipo - + NN NN - + Not null No nulo - + PK PK - - Primary key - Clave primaria + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + - + AI AI - + Autoincrement Autoincremento - + U U - - - + + + Unique Único - + Default Por defecto - + Default value Valor por defecto - - - + + + Check Check - + Check constraint Restricción de «check» - + Collation Comparación - - - + + + Foreign Key Clave foránea - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + Constraints Restricciones - + Add constraint Añadir restricción - + Remove constraint Eliminar restricción - + Columns Columnas - + SQL SQL - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Aviso: </span>algo ocurre con la definición de esta tabla que nuestro intérprete no entiende completamente. Modificar y guardar esta tabla podría traer problemas.</p></body></html> - - + + Primary Key Clave Primaria - + Add a primary key constraint Añadir una restricción de clave primaria - + Add a foreign key constraint Añadir una restricción de clave foránea - + Add a unique constraint Añadir una restricción de único" - + Add a check constraint Añadir una restricción de «check» - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result it in problems.</p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Cuidado: </span>Hay algo en la definición de esta tabla que nuestro intérprete no entiende del todo. Modificar y guardar esta tabla puede causar problemas.</p></body></html> - - - + Error creating table. Message from database engine: %1 Error creando la tabla. Mensaje de la base de datos: %1 - + There already is a field with that name. Please rename it first or choose a different name for this field. Ya hay un campo con este nombre. Por favor, renómbrelo antes o elija un nombre diferente para este campo. - This column is referenced in a foreign key in table %1, column %2 and thus its name cannot be changed. - Esta columna está referenciada en una foreign key en la tabla %1, columna %2 y por tanto no se le puede cambiar el nombre. - - - - + + There can only be one primary key for each table. Please modify the existing primary key instead. Sólo puede existir una clave primaria en cada tabla. Por favor, modifique la clave primaria existente. - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. Esta columna está referenciada en una clave foránea en la tabla %1 y por tanto no se le puede cambiar el nombre. - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. Hay al menos una línea con este campo NULO. Esto hace imposible activar este flag. Por favor, modifique antes los datos de la tabla. - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. Hay al menos una línea con un valor no entero en este campo. Esto hace imposible activar el flag AI. Por favor, modifique antes los datos de la tabla. - + Column '%1' has duplicate data. La columna «%1» tiene datos duplicados. - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. Como en otros textos, pasamos los términos estándar de SQL a mayúsculas para evitar traducirlos, lo que podría ser más confuso para el usuario experto y no tener beneficio para el inexperto. Esto imposibilita la habilitación de la restricción UNIQUE. Por favor, elimine primero los datos duplicados, lo cual permitirá habilitar la restricción UNIQUE. - Setting the rowid column for the table failed. Error message: -%1 - El ajuste de la columna rowid para la tabla falló. Mensaje de error: -%1 - - - Changing the table schema failed. Error message: -%1 - Falló el cambio de esquema de la tabla. Mensaje de error: -%1 - - - Setting the temporary flag for the table failed. Error message: -%1 - Activación de la marca de tabla temporal fallida. Mensaje de error: -%1 - - - Column `%1` has no unique data. - - La columna '%1' no tiene datos únicos. - - - - This makes it impossible to set this flag. Please change the table data first. - Esto hace imposible activar este flag. Por favor, modifique antes los datos de la tabla. - - - Modifying this column failed. Error returned from database: -%1 - La modificación de esta columna falló. Error devuelto por la base de datos: -%1 - - - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. ¿Está seguro de que quiere borrar este campo «%1»? Todos los datos actualmente almacenados en este campo se perderán. - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled @@ -1883,18 +1601,6 @@ Todos los datos actualmente almacenados en este campo se perderán.Export data as CSV Exportar datos como CSV - - &Table(s) - &Tablas(s) - - - &Column names in first line - Nombres de las &columnas en la primera línea - - - Field &separator - &Separador de campos - Tab&le(s) @@ -1984,10 +1690,6 @@ Todos los datos actualmente almacenados en este campo se perderán.Choose a filename to export data Seleccione un nombre de archivo para exportar los datos - - Text files(*.csv *.txt) - Archivos de texto(*.csv *.txt) - Export data as JSON @@ -2003,10 +1705,6 @@ Todos los datos actualmente almacenados en este campo se perderán.exporting JSON exportando JSON - - Text files(*.json *.js *.txt) - Archivos de texto(*.json *.js *.txt) - Please select at least 1 table. @@ -2030,10 +1728,6 @@ Todos los datos actualmente almacenados en este campo se perderán.Export SQL... Exportar SQL... - - &Table(s) - &Tabla(s) - Tab&le(s) @@ -2084,19 +1778,11 @@ Todos los datos actualmente almacenados en este campo se perderán.Overwrite old schema (DROP TABLE, then CREATE TABLE) Sobrescribir esquema previo (DROP TABLE, después CREATE TABLE) - - New INSERT INTO syntax (multiple rows in VALUES) - Usa nueva sintáxis de INSERT INTO (múltiple 'rows' en VALUES) - Export schema only Exportar solo el esquema - - Please select at least 1 table. - Por favor, seleccione al menos 1 tabla. - Please select at least one table. @@ -2107,10 +1793,6 @@ Todos los datos actualmente almacenados en este campo se perderán.Choose a filename to export Seleccione un nombre de archivo al que exportar - - Text files(*.sql *.txt) - Archivos de texto(*.sql *.txt) - Export completed. @@ -2126,7 +1808,7 @@ Todos los datos actualmente almacenados en este campo se perderán.ExtendedScintilla - + Ctrl+H @@ -2137,22 +1819,22 @@ Todos los datos actualmente almacenados en este campo se perderán. - + Ctrl+P - + Find... Buscar... - + Find and Replace... Buscar y reemplazar... - + Print... Imprimir... @@ -2160,145 +1842,133 @@ Todos los datos actualmente almacenados en este campo se perderán. ExtendedTableWidget - The content of clipboard is bigger than the range selected. -Do you want to insert it anyway? - El contenido del portapapeles es mayor que el rango seleccionado. -¿Quiere insertarlo de todos modos? - - - + Use as Exact Filter Usar como filtro exacto - + Containing Conteniendo - + Not containing Que no contenga - + Not equal to No igual a - + Greater than Mayor que - + Less than Menor que - + Greater or equal Mayor o igual - + Less or equal Menor o igual - + Between this and... Entre esto y... - + Regular expression Expresión regular - + Edit Conditional Formats... Editar formatos condicionales... - + Set to NULL Poner a NULL - + + Cut + + + + Copy Copiar - + Copy with Headers Copiar con cabeceras - + Copy as SQL Copiar como SQL - + Paste Pegar - + Print... Imprimir... - + Use in Filter Expression Usar en expresión de filtro - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. <p>No se han cargado todos los datos. <b>¿Quiere cargar todos los datos antes de seleccionar todas las filas?</b><p><p>Responder <b>No</b> significa que no se cargarán mas datos y la selección no se se realizará.<br/>Responder <b>Sí</b> puede tardar un tiempo mientras los datos se cargan pero la selección se realizará en su totalidad.</p>Precaución: Cargar todos los datos puede necesitar una gran cantidad de memoria para tablas grandes. - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. No se puede ajustar la selección a NULL. La columna %1 tiene una restricción NOT NULL. - Use as Filter - Usar como filtro - - - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? El contenido del portapapeles es mayor que el rango seleccionado. ¿Quiere insertarlo de todos modos? - - FileDialog - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - Archivos de base de datos de SQLite (*.db *.sqlite *.sqlite3 *.db3);;Todos los archivos (*) - - FileExtensionManager @@ -2350,30 +2020,6 @@ Do you want to insert it anyway? Filter Filtro - - These input fields allow you to perform quick filters in the currently selected table. -By default, the rows containing the input text are filtered out. -The following operators are also supported: -% Wildcard -> Greater than -< Less than ->= Equal to or greater -<= Equal to or less -= Equal to: exact match -<> Unequal: exact inverse match -x~y Range: values between x and y - Estos campos de texto permiten realizar filtros rápidos sobre la tabla actualmente seleccionada. -Por defecto, las filas que contengan el texto introducido se muestran. -Los siguientes operadores también se admiten: -% Comodín -> Mayor que -< Menor que ->= Igual o mayor que -<= Igual o menor que -= Igual a: correspondencia exacta -<> Distinto: correspondencia inversa exacta -x~y Rango: valores entre x e y - These input fields allow you to perform quick filters in the currently selected table. @@ -2641,9 +2287,38 @@ x~y Rango: valores entre x e y Foreign key clauses (ON UPDATE, ON DELETE etc.) Cláusulas de clave foránea (ON UPDATE, ON DELETE etc.) + + + ImageViewer + + + Image Viewer + + + + + Reset the scaling to match the original size of the image. + + + + + Set the scaling to match the size of the viewport. + + + + + Print... + Imprimir... + + + + Open preview dialog for printing displayed image + Abre un diálogo de previsualización para imprimir la imagen mostrada + - (foreign key clauses(ON UPDATE, ON DELETE etc.) - claúsulas de clave foránea (ON UPDATE, ON DELETE etc.) + + Ctrl+P + @@ -2653,10 +2328,6 @@ x~y Rango: valores entre x e y Import CSV file Importar archivo CSV - - &Table name - Nombre de la &tabla - Table na&me @@ -2684,7 +2355,7 @@ x~y Rango: valores entre x e y - + Tab Tab @@ -2831,26 +2502,6 @@ x~y Rango: valores entre x e y Select All Seleccionar Todo - - Inserting data... - Insertando datos... - - - Cancel - Cancelar - - - There is already a table of that name and an import into an existing table is only possible if the number of columns match. - Ya hay una tabla con ese nombre y la importación a una tabla existente sólo es posible si el número de columnas coincide. - - - There is already a table of that name. Do you want to import the data into it? - Ya hay una tabla con ese nombre. ¿Quiere importar los datos en ella? - - - Import completed - Importación completada - There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. @@ -2877,16 +2528,17 @@ x~y Rango: valores entre x e y importando CSV - - Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. - Importar el archivo '%1' tardó %2ms. De ellos, %3ms se gastaron en la función fila. + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + - Missing field for record %1 - Falta el campo para el registro %1 + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. + Importar el archivo «%1» tardó %2ms. De ellos, %3ms se gastaron en la función fila. - + Inserting row failed: %1 Inserción de línea fallido: %1 @@ -2899,583 +2551,418 @@ x~y Rango: valores entre x e y DB Browser for SQLite - Database &Structure - E&structura de la Base de Datos - - - + toolBar1 toolBar1 - &Browse Data - &Navegar Datos - - - Table: - Tabla: - - - Select a table to browse data - Seleccione una tabla para ver sus datos - - - Use this list to select a table to be displayed in the database view - Use esta lista para seleccionar la tabla a mostrar en la vista de la base de datos - - - Refresh the data in the selected table. - Refresca los datos de la tabla seleccionada. - - - This button refreshes the data in the currently selected table. - Este botón refresca los datos de la tabla actualmente seleccionada. - - - <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - <html><head/><body><p>Este botón crea un nuevo registro en la base de datos. Mantenga pulsado el botón del ratón para abrir un menú emergente con varias opciones:</p><ul><li><span style=" font-weight:600;">Nuevo Registro</span>: inserta en la base de datos un nuevo registro con valores por defecto.</li><li><span style=" font-weight:600;">Introduce Valores...</span>: abre un diálogo para introducir valores antes de insertarlos en la base de datos. Esto permite introducir valores que cumplan con las restricciones. Este diálogo también se abre si la opción de <span style=" font-weight:600;">Nuevo Registro</span> falla debido a esas restricciones.</li></ul></body></html> - - - This button deletes the record or records currently selected in the table - Este botón borra el registro seleccionado (o los registros seleccionados) actualmente en la base de datos - - - This is the database table view. You can do the following actions: - - Start writing for editing inline the value. - - Double-click any record to edit its contents in the cell editor window. - - Alt+Del for deleting the cell content to NULL. - - Ctrl+" for duplicating the current record. - - Ctrl+' for copying the value from the cell above. - - Standard selection and copy/paste operations. - Este es el visor de la tabla de la base de datos. Puede realizar lo siguiente: - - Escribir y editar valores. - - Doble-clic en cualquier registro para editar su contenido en la ventana del editor de celdas. - - Alt+Supr para borrar el contenido de la celda a NULL. - - Ctrl+" para duplicar el registro actual. - - Ctrl+' para copiar el valor de la celda de arriba. - - Las operaciones de copiar y pegar usuales. - - - Scroll one page upwards - Retroceder una página - - - <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - <html><head/><body><p>Al pulsar este botón se retrocede una página de registros en la vista de tabla superior.</p></body></html> - - - Scroll one page downwards - Avanzar una página - - - <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - <html><head/><body><p>Al pulsar este botón se avanza una página de registros en la vista de tabla superior.</p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index">Automatic Index</a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index">Indexado automático</a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys">Foreign Keys</a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys">Claves foráneas</a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints">Ignore Check Constraints</a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints">Ignorar Check Constraints</a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode">Journal Mode</a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode">Modo journal</a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit">Journal Size Limit</a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit">Límite de tamaño del journal</a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode">Locking Mode</a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode">Modo de bloqueo</a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count">Max Page Count</a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count">Máx. número de páginas</a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size">Page Size</a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size">Tamaño de página</a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers">Recursive Triggers</a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers">Disparadores recursivos</a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete">Secure Delete</a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete">Borrado seguro</a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous">Synchronous</a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous">Síncrono</a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store">Temp Store</a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store">Almacenamiento temporal</a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version">User Version</a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version">Versión de usuario</a></p></body></html> - - - + This button clears the contents of the SQL logs Este botón limpia el contenido del historial SQL - + This panel lets you examine a log of all SQL commands issued by the application or by yourself Este panel le permite examinar el histórico de todos los comandos SQL ordenados por la aplicación o por usted mismo - This is the structure of the opened database. -You can drag multiple object names from the Name column and drop them into the SQL editor. -You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. - - Esta es la estructura de la base de datos abierta. -Usted puede arrastrar varios nombres de objetos desde la columna «Nombre» y soltarlos en el editor SQL. -También puede arrastrar varias sentencias SQL desde la columna «Esquema» y soltarlos en el editor SQL o en otra aplicación. - - - - + + Project Toolbar Barra de herramientas de proyectos - + Extra DB toolbar Barra de herramientas extra - - - + + + Close the current database file Cierra el archivo de base de datos actual - + This button closes the connection to the currently open database file Este botón cierra la conexión con el archivo de base de datos actualmente abierto - + Ctrl+F4 - + Compact &Database... Compactar base de &datos... - + &About &Acerca de - + This button opens a new tab for the SQL editor Este botón abre una nueva pestaña para el editor SQL - + Execute all/selected SQL Ejecuta todo el SQL (o la selección) - + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. Este botón ejecuta las sentencias SQL actualmente seleccionadas. Si no hay ningún texto seleccionado, se ejecutan todas las sentencias. - - This button opens a file containing SQL statements and loads it in a new editor tab - Este botón abre un archivo que contenga sentencias SQL y las carga en una pestaña nueva del editor - - - + &Load Extension... &Cargar extensión... - + Execute line Ejecutar línea - + This button executes the SQL statement present in the current editor line Este botón ejecuta la sentencia SQL presente en la línea actual del editor - + &Wiki &Wiki - + F1 - + Bug &Report... &Informar de fallos... - + Feature Re&quest... Solicitud de &mejoras... - + Web&site &Sitio web - + &Donate on Patreon... &Donar en Patreon... - Sa&ve Project... - &Guardar proyecto... - - - This button lets you save all the settings associated to the open DB to a DB4S project file - Este botón le permite guardar todos los ajustes asociados a la base de datos abierta a un archivo de proyecto DB4S - - - + Open &Project... Abrir &proyecto... - This button lets you open a DB4S project file - Este botón le permite abrir un archivo de proyecto DB4S - - - + &Attach Database... Ane&xar base de datos... - - + + Add another database file to the current database connection Añade un archivo de base de datos adicional a la conexión actual - + This button lets you add another database file to the current database connection Este botón le permite añadir otro archivo de base de datos a la conexión de base de datos actual - + &Set Encryption... &Establecer cifrado... - + This button saves the content of the current SQL editor tab to a file Este botón guarda el contenido de la pestaña actual del editor SQL a un archivo - + SQLCipher &FAQ SQLCipher &FAQ - + Find Buscar - + Find or replace Buscar o reemplazar - + Ctrl+H - Insert Values... - Introducir valores... - - - Open a dialog for inserting values in a new record - Abre un diálogo para introducir valores en un nuevo registro + + Recent Files + - Insert new record using default values in browsed table - Inserta un nuevo registro usando valores por defecto en la tabla visualizada + + New &tab + - + Open SQL file(s) Abrir archivo(s) SQL - + This button opens files containing SQL statements and loads them in new editor tabs Este botón abre archivos que contengan sentencias SQL y los carga en pestañas nuevas del editor - + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file Este botón le permite guardar todos los ajustes asociados a la base de datos abierta a un archivo de proyecto de «DB Browser for SQLite» - + This button lets you open a DB Browser for SQLite project file Este botón le permite abrir un archivo de proyecto «DB Browser for SQLite» - + New In-&Memory Database Nueva base de datos en &memoria - + Drag && Drop Qualified Names Arrastrar y soltar nombres calificados - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor Usa nombres calificados (p.ej. "Tabla"."Campo") al arrastrar los objetos y soltarlos en el editor - + Drag && Drop Enquoted Names Arrastrar y soltar nombres entrecomillados - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor Usa identificadores escapados (p.ej. "Tabla1") al arrastrar los objetos y soltarlos en el editor - + &Integrity Check Comprobar &integridad - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. Ejecuta el pragma integrity_check en la base de datos abierta y devuelve los resultados en la pestaña Ejecutar SQL. Este pragma realiza una comprobación de integridad de toda la base de datos. - + &Foreign-Key Check Comprobar clave &foránea - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab Ejecuta el pragma foreign_key_check con la base de datos abierta y devuelve los resultados en la pestaña Ejecutar SQL. - + &Quick Integrity Check Comprobar integridad &rápido - + Run a quick integrity check over the open DB Ejecuta una comprobación de integridad rápida en la base de datos abierta - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. Ejecuta el pragma quick_check en la base de datos abierta y devuelve los resultados en la pestaña Executar SQL. Este comando hace la mayoría de comprobaciones de PRAGMA integrity_check pero se ejecuta mucho más rápido. - + &Optimize &Optimizar - + Attempt to optimize the database Intenta optimizar la base de datos - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. Ejecuta el pragma optimize en la base de datos abierta. Este pragma realiza optimizaciones que pueden mejorar el rendimiento de consultas futuras. - - + + Print Imprimir - + Print text from current SQL editor tab Imprime el texto de la pestaña actual del editor SQL - + Open a dialog for printing the text in the current SQL editor tab Abre un diálogo para imprimir el texto de la pestaña actual del editor SQL - + Print the structure of the opened database Imprime la estructura de la base de datos abierta - + Open a dialog for printing the structure of the opened database Abre un diálogo para imprimir la estructura de la base de datos abierta - + Un/comment block of SQL code Des/comentar bloque de código SQL - + Un/comment block Des/comentar bloque de código - + Comment or uncomment current line or selected block of code Comenta o descomenta la línea actual o el bloque de código seleccionado - + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. Comenta o descomenta las líneas seleccionadas o la línea actual cuando no hay selección. El estado de todo el bloque es intercambiado en función de la primera línea. - + Ctrl+/ - + Stop SQL execution Detener ejecución de SQL - + Stop execution Detener ejecución - + Stop the currently running SQL script Detener el script SQL que está ejecutándose - + &Save Project As... &Guardar proyecto como... - - - + + + Save the project in a file selected in a dialog Guarda el proyecto en un archivo seleccionado en una ventana de diálogo - + Save A&ll Guardar &todo - - - + + + Save DB file, project file and opened SQL files Guarda los archivos de la base de datos, el proyecto y los archivos SQL abiertos - + Ctrl+Shift+S - + Browse Table Navegar Tabla - SQLCipher &FAQ... - &FAQ de SQLCipher... - - - - Shows or hides the Project toolbar. - Muestra u oculta la barra de herramientas de proyecto. + + Close Pro&ject + - - Extra DB Toolbar - Barra de herramientas extra + + Close project and database files and return to the initial state + - Export the filtered data to CSV - Exportar los datos filtrados a CSV + + Ctrl+Shift+F4 + - This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - Este botón exporta los datos de la tabla mostrada tal como se presentan (después de filtros, formatos de presentación y columna de orden) como un archivo CSV. + + + Detach Database + - Save the current filter, sort column and display formats as a view - Guardar el filtro actual, la columna de orden y los formatos de presentación como una vista + + + Detach database file attached to the current database connection + - This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - Este botón guarda los ajustes actuales de la tabla visualizada (filtros, formatos de presentación y la columna de orden) como una vista SQL que más tarde puede visualizar o usar en sentencias SQL. + + Shows or hides the Project toolbar. + Muestra u oculta la barra de herramientas de proyecto. - Table(s) to JSON... - Tabla(s) a JSON... + + Extra DB Toolbar + Barra de herramientas extra - + Export one or more table(s) to a JSON file Exportar una o más tablas a un archivo JSON - - Open from Remote - Abrir desde el Remoto - - - Save to Remote - Guardar al Remoto - - - Refresh - Refrescar - - - F5 - - - - Clear all filters - Borra todos los filtros - This is the structure of the opened database. @@ -3486,419 +2973,139 @@ Puede arrastrar sentencias SQL desde una fila de objeto y soltarlas en otras apl - &Table: - &Tabla: + + Table(&s) to JSON... + Tabla(&s) a JSON... - Refresh the data in the selected table - Refresca los datos en la tabla seleccionada + + Open Data&base Read Only... + Abrir &base de datos como solo lectura... - This button clears all the filters set in the header input fields for the currently browsed table. - Este botón elimina todos los filtros establecidos en la cabecera para la tabla actualmente mostrada. - - - Save the table as currently displayed - Guarda la tabla tal como se presenta - - - <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - <html><head/><body><p>Este menú contextual provee las siguientes opciones que se aplican a la tabla actualmente visualizada y filtrada:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Exportar a CSV: esta opción exporta los datas de la tabla tal cual se presentan actualmente (después de filtros, formatos de presentación y columna de orden) a un archivo CSV.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Guardar como vista: esta opción guarda la configuración actual de la tabla visualizada (filtros, formatos de presentación y columna de orden) como una vista SQL que usted luego puede visualizar o usar en sentencias SQL.</li></ul></body></html> - - - ... - ... - - - Print currently browsed table data - Imprime los datos de la tabla mostrada actualmente - - - Print currently browsed table data. Print selection if more than one cell is selected. - Imprime los datos de la tabla mostrada actualmente. Imprime la selección si se ha seleccionado más de una celda. - - - Insert a new record in the current table - Inserta un nuevo registro en la tabla actual - - - This button creates a new, empty record in the database - Este botón crea un nuevo registro vacío en la base de datos - - - New Record - Nuevo registro - - - Delete the current record - Borra el registro actual - - - This button deletes the record currently selected in the database - Este botón borra el registro actualmente seleccionado en la base de datos - - - Delete Record - Borrar registro - - - This is the database view. You can double-click any record to edit its contents in the cell editor window. - Esta es la vista de la base de datos. Puede hacer doble-clic sobre cualquier registro para editar su contenido en la ventana del editor de celdas. - - - <html><head/><body><p>Scroll to the beginning</p></body></html> - <html><head/><body><p>Desplazarse hasta el principio</p></body></html> - - - <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - <html><head/><body><p>Pulsando este botón se mueve hasta el principio en la vista de tabla de arriba.</p></body></html> - - - |< - |< - - - Scroll 100 records upwards - Desplazarse 100 registros hacia arriba - - - <html><head/><body><p>Clicking this button navigates 100 records upwards in the table view above.</p></body></html> - <html><head/><body><p>Pulsando este botón se desplaza 100 registros hacia arriba en la vista de tabla de arriba.</p></body></html> - - - < - < - - - 0 - 0 of 0 - 0 - 0 de 0 - - - <html><head/><body><p>Scroll 100 records downwards</p></body></html> - <html><head/><body><p>Desplazarse 100 registros hacia abajo</p></body></html> - - - <html><head/><body><p>Clicking this button navigates 100 records downwards in the table view above.</p></body></html> - <html><head/><body><p>Pulsando este botón se desplaza 100 registros hacia abajo en la vista de tabla de arriba.</p></body></html> - - - > - > - - - Scroll to the end - Desplazarse hasta el final - - - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Pulsando este botón se mueve hasta el final en la vista de tabla de arriba.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - >| - >| - - - <html><head/><body><p>Click here to jump to the specified record</p></body></html> - Pulse aquí para saltar al registro especificado - - - <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - <html><head/><body><p>Este botón se usa para moverse al número de registro especificado en la casilla Ir a.</p></body></html> - - - Go to: - Ir a: - - - Enter record number to browse - Introduzca el número de registro al que navegar - - - Type a record number in this area and click the Go to: button to display the record in the database view - Escriba un número de registro en esta casilla y haga clic en el botón «Ir a:» para mostrar el registro en la vista de la base de datos - - - 1 - 1 - - - Edit &Pragmas - Editar &Pragmas - - - None - Ninguno - - - Full - Completo - - - Incremental - Incremental - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Indexado Automático</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Foreign Keys</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Claves foráneas</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignorar Check Constraints</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Modo Journal</span></a></p></body></html> - - - Delete - Borrar - - - Truncate - Truncar - - - Persist - Persistente - - - Memory - Memoria - - - WAL - WAL - - - Off - Apagado - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Límite de tamaño del Journal</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Locking Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Modo de Bloqueo</span></a></p></body></html> - - - Normal - Normal - - - Exclusive - Exclusivo - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Máximo número de Páginas</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Tamaño de Página</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Disparadores Recursivos</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Borrado Seguro</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Síncrono</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Almacenamiento Temporal</span></a></p></body></html> - - - Default - Por defecto - - - File - Archivo - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">Versión de Usuario</span></a></p></body></html> - - - - Table(&s) to JSON... - Tabla(&s) a JSON... - - - - Open Data&base Read Only... - Abrir &base de datos como solo lectura... - - - + Ctrl+Shift+O - + Save results Guardar resultados - + Save the results view Guarda la vista de resultados - + This button lets you save the results of the last executed query Este botón le permite guardar los resultados de la última consulta ejecutada - - + + Find text in SQL editor Buscar texto en el editor SQL - + This button opens the search bar of the editor Este botón abre la barra de búsqueda del editor - + Ctrl+F - - + + Find or replace text in SQL editor Buscar o reemplazar texto en el editor SQL - + This button opens the find/replace dialog for the current editor tab Este botón abre el diálogo de buscar/reemplazar para la pestaña actual del editor - + Export to &CSV Exportar a &CSV - + Save as &view Guardar como &vista - + Save as view Guardar como vista - Hide column(s) - Ocultar columna(s) - - - Hide selected column(s) - Ocultar columna(s) seleccionada(s) - - - Show all columns - Mostrar todas las columnas - - - Show all columns that were hidden - Mostrar todas las columnas que están ocultas - - - &Open Database Read Only... - &Abrir Base de Datos como Sólo Lectura... - - - + Open an existing database file in read only mode Abre una base de datos existente en modo de solo lectura - Unlock view editing - Desbloquear edición de vistas - - - This unlocks the current view for editing. However, you will need appropriate triggers for editing. - Esto desbloquea la vista actual para edición. Aunque para la edición se necesitarán los disparadores adecuados. - - - E&xecute SQL - E&jecutar SQL - - - + &File &Archivo - + &Import &Importar - + &Export E&xportar - Remote - Remoto - - - + &Edit &Editar - + &View &Ver - + &Help Ay&uda - + &Tools &Herramientas - + DB Toolbar DB Toolbar - + Edit Database &Cell Editar &celda - + Error Log Registro de errores - + DB Sche&ma Esque&ma - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. @@ -3909,496 +3116,259 @@ Puede arrastrar sentencias SQL desde la columna Esquema y soltarlas en el editor - + &Remote &Remoto - - + + Execute SQL This has to be equal to the tab title in all the main tabs Ejecutar SQL - &Load extension - &Cargar extensión - - - - + + Execute current line Ejecuta la línea actual - + Shift+F5 - + Sa&ve Project &Guardar proyecto - Open &Project - Abrir &proyecto - - - &Set Encryption - &Definir cifrado - - - Edit display format - Editar el formato de presentación - - - Edit the display format of the data in this column - Editar el formato de presentación de los datos en esta columna - - - Show rowid column - Mostrar la columna rowid - - - Toggle the visibility of the rowid column - Cambia la visibilidad de la columna rowid - - - Set encoding - Definir codificación - - - Change the encoding of the text in the table cells - Cambia la codificación del texto de las celdas de la tabla - - - Set encoding for all tables - Definir la codificación para todas las tablas - - - Change the default encoding assumed for all tables in the database - Cambia la codificación por defecto para todas las tablas en la base de datos - - - Duplicate record - Duplicar registro - - - SQL Log - SQL Log - - - &Show SQL submitted by - &Mostrar SQL enviado por - - - + User Usuario - + Application Aplicación - + &Clear &Limpiar - Plot - Gráfica - - - Columns - Columnas - - - X - X - - - Y - Y - - - _ - _ - - - Line type: - Tipo de línea: - - - Line - Línea - - - StepLeft - EscalónIzquierda - - - StepRight - EscalónDerecha - - - StepCenter - EscalónCentrado - - - Impulse - Impulso - - - Point shape: - Forma del punto: - - - Cross - Cruz - - - Plus - Más - - - Circle - Circunferencia - - - Disc - Disco - - - Square - Cuadrado - - - Diamond - Diamante - - - Star - Estrella - - - Triangle - Triángulo - - - TriangleInverted - TriánguloInvertido - - - CrossSquare - CruzCuadrado - - - PlusSquare - MasCuadrado - - - CrossCircle - CruzCircunferencia - - - PlusCircle - MásCircunferencia - - - Peace - Paz - - - <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - <html><head/><body><p>Guarda la gráfica actual...</p><p>El formato del archivo es elegido por la extensión (png, jpg, pdf, bmp)</p></body></html> - - - Save current plot... - Guardar la gráfica actual... - - - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - Carga todos los datos. Es efectivo sólo si no se han leído ya todos los datos de la tabla porque el mecanismo de lectura ha hecho una lectura parcial. - - - DB Schema - Esquema de la base de datos - - - + &New Database... &Nueva base de datos... - - + + Create a new database file Crea un nuevo archivo de base de datos - + This option is used to create a new database file. Esta opción se usa para crear un nuevo archivo de base de datos. - + Ctrl+N - - + + &Open Database... &Abrir base de datos... - - - - - + + + + + Open an existing database file Abre un archivo de base de datos - - - + + + This option is used to open an existing database file. Esta opción se usa para abrir un archivo de base de datos. - + Ctrl+O - + &Close Database &Cerrar base de datos - - + + Ctrl+W - SQLCipher FAQ... - FAQ de SQLCipher... - - - + Opens the SQLCipher FAQ in a browser window Abre la FAQ de SQLCipher en una ventana del navegador - Revert Changes - Deshacer cambios - - - - + + Revert database to last saved state Deshace los cambios al último estado guardado - + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. Esta opción se usa para deshacer los cambios en la base de datos actual al último estado guardado. Todos los cambios hechos desde la última vez que se guardó se perderán. - Write Changes - Escribir cambios - - - - + + Write changes to the database file Escribe los cambios al archivo de la base de datos - + This option is used to save changes to the database file. Esta opción se usa para guardar los cambios en el archivo de la base de datos. - + Ctrl+S - Compact Database - Compactar base de datos - - - + Compact the database file, removing space wasted by deleted records Compacta el archivo de la base de datos eliminando el espacio malgastado por los registros borrados - - + + Compact the database file, removing space wasted by deleted records. Compacta el archivo de la base de datos, eliminando el espacio malgastado por los registros borrados. - + E&xit &Salir - + Ctrl+Q - Database from SQL file... - Base de datos en un archivo SQL... - - - + Import data from an .sql dump text file into a new or existing database. Importa datos de un archivo de texto con un volcado .sql en una base de datos nueva o existente. - + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. Esta opción se usa para importar datos de un archivo de texto con un volcado .sql en una base de datos nueva o existente. Los archivos de volcado SQL se pueden crear en la mayoría de los motores de base de datos, incluyendo MySQL y PostgreSQL. - Table from CSV file... - Tabla de un archivo CSV... - - - + Open a wizard that lets you import data from a comma separated text file into a database table. Abre un asistente que le permite importar datos desde un archivo de texto con valores separado por comas a una tabla de una base de datos. - + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. Abre un asistente que le permite importar datos desde un archivo de texto con valores separado por comas a una tabla de una base de datos. Los archivos CSV se pueden crear en la mayoría de las aplicaciones de bases de datos y hojas de cálculo. - Database to SQL file... - Base de datos a archivo SQL... - - - + Export a database to a .sql dump text file. Exporta la base de datos como un volcado .sql a un archivo de texto. - + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. Esta opción le permite exportar la base de datos como un volcado .sql a un archivo de texto. Los archivos de volcado SQL contienen todos los datos necesarios para recrear la base de datos en la mayoría de los motores de base de datos, incluyendo MySQL y PostgreSQL. - Table(s) as CSV file... - Tabla(s) como un archivo CSV... - - - + Export a database table as a comma separated text file. Exporta la base de datos como un archivo de texto con valores separados por comas. - + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. Exporta la base de datos como un archivo de texto con valores separados por comas, listo para ser importado en otra base de datos o aplicaciones de hoja de cálculo. - Create Table... - Crear Tabla... - - - + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database Abre el asistente para Crear una Tabla, donde se puede definir el nombre y los campos de una nueva tabla en la base de datos - Delete Table... - Borrar Tabla... - - - - + + Delete Table Borrar tabla - + Open the Delete Table wizard, where you can select a database table to be dropped. Abre el asistente para «Borrar tabla», donde se puede seleccionar una tabla de la base de datos para borrar. - Modify Table... - Modificar Tabla... - - - + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. Abre el asistente «Modificar tabla», donde se puede renombrar una tabla existente de la base de datos. También se pueden añadir o borrar campos de la tabla, así como modificar los nombres de los campos y sus tipos. - Create Index... - Crear Índice... - - - + Open the Create Index wizard, where it is possible to define a new index on an existing database table. Abre el asistente «Crear índice», donde se puede definir un nuevo índice de una tabla existente de la base de datos. - + &Preferences... &Preferencias... - - + + Open the preferences window. Abrir la ventana de preferencias. - + &DB Toolbar &Barra de herramientas - + Shows or hides the Database toolbar. Muestra u oculta la barra de herramientas de la base de datos. - What's This? - ¿Qué es esto? - - - + Shift+F1 - &About... - &Acerca de... - - - + &Recently opened Archivos &recientes - - Open &tab - Abrir &pestaña - - - + Ctrl+T @@ -4417,348 +3387,213 @@ Puede arrastrar sentencias SQL desde la columna Esquema y soltarlas en el editor Hoja de datos - - + + Edit Pragmas This has to be equal to the tab title in all the main tabs Editar pragmas - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Like sensible a mayúsculas</a></p></body></html> - - - + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. Aviso: este pragma no es legible y este valor se ha supuesto. Escribir el pragma puede sobreescribir un LIKE redefinido que proporcione una extensión de SQLite. - Edit Database Cell - Editar Celda de la Base de datos - - - + SQL &Log Historial de &SQL - + Show S&QL submitted by Mostrar S&QL ejecutado por - + &Plot &Gráfica - + &Revert Changes &Deshacer cambios - + &Write Changes &Guardar cambios - Compact &Database - Compactar base de &datos - - - + &Database from SQL file... Base de datos de &archivo SQL... - + &Table from CSV file... &Tabla de archivo CSV... - + &Database to SQL file... &Base de datos a archivo SQL... - + &Table(s) as CSV file... &Tabla(s) a archivo CSV... - + &Create Table... &Crear tabla... - + &Delete Table... &Borrar tabla... - + &Modify Table... &Modificar tabla... - + Create &Index... Crear &índice... - + W&hat's This? ¿&Qué es esto? - + &Execute SQL &Ejecutar SQL - - Open SQL file - Abrir archivo SQL - - - - - + + + Save SQL file Guardar archivo SQL - Load extension - Cargar extensión - - - + Ctrl+E - + Export as CSV file Exportar como archivo CSV - + Export table as comma separated values file Exportar tabla como archivo de valores separados por comas - &Wiki... - Wi&ki... - - - Bug &report... - Informe de &fallos... - - - Web&site... - Sitio &web... - - - Save Project - Guardar Proyecto - - - - + + Save the current session to a file Guarda la sesión actual en un archivo - Open Project - Abrir Proyecto - - - - + + Load a working session from a file Carga una sesión de trabajo de un archivo - &Attach Database - Ane&xar base de datos - - - Set Encryption - Definir Cifrado - - - - + + Save SQL file as Guardar archivo SQL como - - &Browse Table - &Mostrar datos - - - - Copy Create statement - Copiar sentencia CREATE - - - - Copy the CREATE statement of the item to the clipboard - Copia la sentencia CREATE del ítem al portapapeles - - - - Ctrl+Return - - - - - Ctrl+L - - - - - - Ctrl+P - - - - - Ctrl+D - - - - - Ctrl+I - - - - - Encrypted - Cifrado - - - - Read only - Solo lectura - - - - Database file is read only. Editing the database is disabled. - El archivo de la base de datos es de solo lectura. La edición de la base de datos está desactivada. - - - - Database encoding - Codificación de la base de datos - - - - Database is encrypted using SQLCipher - La base de datos está cifrada usando SQLCipher - - - - - Choose a database file - Seleccione un archivo de base de datos - - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - Archivos de base de datos de SQLite (*.db *.sqlite *.sqlite3 *.db3);;Todos los archivos (*) - - - Invalid file format. - Formato de archivo inválido. - - - - - - Choose a filename to save under - Seleccione un nombre de archivo en el que guardar - - - Error adding record: - - Error añadiendo registro: - - - - Error deleting record: -%1 - Error borrando registro: -%1 - - - Please select a record first - Por favor, antes seleccione un registro + + &Browse Table + &Mostrar datos - %1 - %2 of %3 - %1 - %2 de %3 + + Copy Create statement + Copiar sentencia CREATE - There is no database opened. Please open or create a new database file. - No hay una base de datos abierta. Por favor, abra o cree un nuevo archivo de base de datos. + + Copy the CREATE statement of the item to the clipboard + Copia la sentencia CREATE del ítem al portapapeles - Are you sure you want to delete the %1 '%2'? -All data associated with the %1 will be lost. - This is a bad case for translation. %1 is not translatable and if it would be, the genus would produce inconsistencies in some languages - ¿Está seguro de que quiere borrar el objeto «%2» de tipo: %1? -Se perderán todos los datos asociados con «%2». + + Ctrl+Return + - Error: could not delete the %1. Message from database engine: -%2 - This is a bad case for translation. %1 is not translatable and if it would be, the genus would produce inconsistencies in some languages - Error: no se pudo borrar el objeto de tipo: %1. Mensaje de la base de datos: -«%2» + + Ctrl+L + - There is no database opened. - No hay una base de datos abierta. + + + Ctrl+P + - %1 Rows returned from: %3 (took %2ms) - %1 líneas devueltas de: %3 (tardó %2ms) + + Ctrl+D + - Error executing query: %1 - Error ejecutando la consulta: %1 + + Ctrl+I + - Query executed successfully: %1 (took %2ms) - Consulta ejecutada con éxito: %1 (tardó %2ms) + + Encrypted + Cifrado - %1 rows returned in %2ms from: %3 - %1 líneas devueltas en %2ms de: %3 + + Read only + Solo lectura - , %1 rows affected - , %1 líneas afectadas + + Database file is read only. Editing the database is disabled. + El archivo de la base de datos es de solo lectura. La edición de la base de datos está desactivada. - Query executed successfully: %1 (took %2ms%3) - Consulta ejecutada con éxito: %1 (tardó %2ms%3) + + Database encoding + Codificación de la base de datos - Choose a text file - Seleccione un archivo de texto + + Database is encrypted using SQLCipher + La base de datos está cifrada usando SQLCipher - Text files(*.csv *.txt);;All files(*) - Archivos de texto(*.csv *.txt);;Todos los archivos(*) + + + Choose a database file + Seleccione un archivo de base de datos - Import completed - Importación completada + + + + Choose a filename to save under + Seleccione un nombre de archivo en el que guardar - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 @@ -4766,42 +3601,42 @@ Se perderán todos los datos asociados con «%2». %1 - + Are you sure you want to undo all changes made to the database file '%1' since the last save? ¿Está seguro de que quiere deshacer todos los cambios hechos al archivo de la base de datos «%1» desde la última vez que se guardó? - + Choose a file to import Seleccione el archivo a importar - + &%1 %2%3 &%1 %2%3 - + (read only) (sólo lectura) - + Open Database or Project Abrir base de datos o proyecto - + Attach Database... Ane&xar base de datos... - + Import CSV file(s)... Importar archivo(s) CSV... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. Seleccione la acción a aplicar al archivo. @@ -4809,196 +3644,186 @@ Se perderán todos los datos asociados con «%2». - + Do you want to save the changes made to SQL tabs in the project file '%1'? - ¿Quiere guardar los cambios hechos a las pestañas SQL en el archivo de proyecto '%1'? + ¿Quiere guardar los cambios hechos a las pestañas SQL en el archivo de proyecto «%1»? - + Text files(*.sql *.txt);;All files(*) Archivos de texto(*.sql *.txt);;Todos los archivos(*) - + Do you want to create a new database file to hold the imported data? If you answer no we will attempt to import the data in the SQL file to the current database. ¿Quiere crear un nuevo archivo de base de datos donde poner los datos importados? Si responde no se intentarán importar los datos del archivo SQL en la base de datos actual. - - Close current SQL tab - Cerrar la pestaña SQL actual - - - + Do you want to save the changes made to the project file '%1'? - ¿Quiere guardar los cambios hechos al archivo de proyecto '%1'? + ¿Quiere guardar los cambios hechos al archivo de proyecto «%1»? - + Edit View %1 Editar vista %1 - + Edit Trigger %1 Editar disparador %1 - + Result: %1 Resultado: %1 - + File %1 already exists. Please choose a different name. El archivo %1 ya existe. Por favor elija un nombre diferente. - + Error importing data: %1 Error importando datos: %1 - + Import completed. Importación completada. - + Delete View Borrar vista - + Modify View Modificar vista - + Delete Trigger Borrar disparador - + Modify Trigger Modificar disparador - + Delete Index Borrar índice - + Modify Index Modificar índice - + Modify Table Modificar tabla - + + Opened '%1' in read-only mode from recent file list + Se ha abierto «%1» en modo de sólo lectura desde la lista de archivos recientes + + + + Opened '%1' from recent file list + Se ha abierto «%1» desde la lista de archivos recientes + + + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + + + + + Yes. Don't ask again + + + + This action will open a new SQL tab with the following statements for you to edit and run: Esta acción abrirá una nueva pestaña SQL con las siguientes sentencias para que usted las pueda modificar y ejecutar: - + Rename Tab Renombrar Pestaña - + Duplicate Tab Duplicar Pestaña - + Close Tab Cerrar Pestaña - + Opening '%1'... - Abriendo '%1'... + Abriendo «%1»... - + There was an error opening '%1'... - Hubo un error abriendo '%1'... + Hubo un error abriendo «%1»... - + Value is not a valid URL or filename: %1 Valor no es un nombre de archivo o URL válido: %1 - &%1 %2 - &%1 %2 - - - + Do you want to save the changes made to SQL tabs in a new project file? ¿Quiere guardar los cambios hechos a las pestañas SQL en un nuevo archivo de proyecto? - + Do you want to save the changes made to the SQL file %1? ¿Quiere guardar los cambios hechos al archivo SQL %1? - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? - Las sentencias en esta pestaña todavía se están ejecutando. Al cerrar la pestaña detendrá la ejecución. Esto puede dejar la base de datos en un estado inconsistente. ¿Está seguro de que quiere cerrar la pestaña? - - - Extensions(*.so *.dylib *.dll);;All files(*) - Extensiones (*.so *.dylib *.dll);;Todos los archivos (*) - - - + Could not find resource file: %1 No se pudo encontrar el archivo de recursos: %1 - + Choose a project file to open Seleccione un archivo de proyecto para abrir - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - Este archivo de proyecto está usando un formato antiguo porque fue creado usando una versión 3.10 o inferior de «DB Browser for SQLite». La carga de este archivo aún está completamente soportada pero le recomendamos convertir todos sus archivos de proyecto al nuevo formato porque el soporte de formatos antiguos podría ser descartado en algún momento futuro. Puede convertir sus archivos simplemente abriéndolos y guardándolos de nuevo. - - - + Could not open project file for writing. Reason: %1 No se pudo abrir el archivo de proyecto para escritura. Motivo: %1 - Duplicate records - Duplicar registros - - - Ctrl+" - - - - Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - Introduzca una clave pseudo-primaria para activar la edición en esta vista. Esta debería ser el nombre de una columna única en la vista. - - - + Collation needed! Proceed? ¡Es necesaria una función de comparación! ¿Proceder? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -5007,405 +3832,330 @@ Si decide continuar, está avisado de que la base de datos se puede dañar. ¡Cree una copia de respaldo! - + Setting PRAGMA values will commit your current transaction. Are you sure? Al definir los valores de PRAGMA se consolidará la transacción actual. ¿Está seguro? - + + Ctrl+Tab + + + + + Ctrl+Shift+Tab + + + + + Ctrl+PgUp + + + + + Clear List + + + + + Window Layout + Disposición de la ventana + + + Reset Window Layout - Reiniciar la disposición de la ventana + Reiniciar disposición - + Alt+0 - + + Simplify Window Layout + Simplificar disposición + + + + Shift+Alt+0 + + + + + Dock Windows at Bottom + Acoplar ventanas en la parte inferior + + + + Dock Windows at Left Side + Acoplar ventanas en la parte izquierda + + + + Dock Windows at Top + Acoplar ventanas en la parte superior + + + The database is currenctly busy. La base de datos está ocupada - + Click here to interrupt the currently running query. Haga clic aquí para interrumpir la consulta que se está ejecutando - + Could not open database file. Reason: %1 No se pudo abrir el archivo de base de datos. Razón: %1 - + In-Memory database Base de datos en memoria - - %n row(s) - - %n fila - %n filas - - - - , %n column(s) - - , %n columna - , %n columnas - - - - . Sum: %1; Average: %2; Min: %3; Max: %4 - . Suma: %1; Media: %2; Mín: %3; Máx: %4 - - + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? Todavía se están ejecutando sentencias SQL. Al cerrar la base de datos se detendrá la ejecución. Esto puede dejar la base de datos en un estado inconsistente. ¿Está seguro de que quiere cerrar la base de datos? - determining row count... - determinando nº de filas... - - - %1 - %2 of >= %3 - %1 - %2 de >= %3 - - - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. ¿Está seguro de que quiere borrar la tabla «%1»? Se perderán todos los datos asociados con la tabla. - + Are you sure you want to delete the view '%1'? ¿Está seguro de que quiere borrar la vista «%1»? - + Are you sure you want to delete the trigger '%1'? ¿Está seguro de que quiere borrar el disparador «%1»? - + Are you sure you want to delete the index '%1'? ¿Está seguro de que quiere borrar el índice «%1»? - + Error: could not delete the table. Error: no se pudo borrar la tabla. - + Error: could not delete the view. Error: no se pudo borrar la vista. - + Error: could not delete the trigger. Error: no se pudo borrar el disparador. - + Error: could not delete the index. Error: no se pudo borrar el índice. - + Message from database engine: %1 Mensaje de la base de datos: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? Para editar la tabla es necesario guardar antes todos los cambios pendientes. ¿Está seguro de que quiere guardar la base de datos? - + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. Ya se están ejecutando sentencias SQL. ¿Quiere detenerlas para en su lugar ejecutar las sentencias actuales?. Esto puede dejar la base de datos en un estado inconsistente. - + -- EXECUTING SELECTION IN '%1' -- -- EJECUTANDO SELECCIÓN DE «%1» -- - + -- EXECUTING LINE IN '%1' -- -- EJECUTANDO LÍNEA DE «%1» -- - + -- EXECUTING ALL IN '%1' -- -- EJECUTANDO TODO «%1» -- - -- At line %1: -%3 --- Result: %2 - -- En la línea %1: -%4 --- Resultado: %2 {1:?} {3 -?} - - - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? Establecer valores PRAGMA o realizar una limpieza consolidará la transacción actual. ¿Está seguro? - + Busy (%1) Ocupado (%1) - Execution aborted by user - Ejecución abortada por el usuario - - - executing query - ejecutando consulta - - - + %1 rows returned in %2ms %1 filas devueltas en %2ms - query executed successfully. Took %1ms%2 - consulta ejecutada con éxito. Llevó %1ms%2 - - - -- At line %1: -%4 --- Result: %3 - -- En la línea %1: -%4 --- Resultado: %3 - - - + Choose text files Elija archivos de texto - + Import completed. Some foreign key constraints are violated. Please fix them before saving. Importación completada. Algunas restricciones de las claves foráneas se han infringido. Por favor arréglelas antes de guardar. - + Select SQL file to open Seleccione el archivo SQL a abrir - Couldn't read file: %1. - No se pudo leer el archivo: %1. - - - Couldn't save file: %1. - No se pudo guardar el archivo: %1. - - - + Select file name Seleccione el nombre del archivo - + Select extension file Seleccione el archivo de extensión - Extensions(*.so *.dll);;All files(*) - Extensiones(*.so *.dll);;Todos los archivos(*) - - - + Extension successfully loaded. Extensiones cargadas con éxito. - + Error loading extension: %1 Error cargando la extensión: %1 - - + + Don't show again No volver a mostrar - + New version available. Hay una nueva versión disponible. - + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. Hay disponible una nueva versión de «DB Browser for SQLite» (%1.%2.%3).<br/><br/>Por favor, descárguela de <a href='%4'>%4</a>. - + Project saved to file '%1' - Proyecto guardado en el archivo '%1' + Proyecto guardado en el archivo «%1» - + creating collation creando comparación - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. Establezca el nuevo nombre para la pestaña SQL. Use el carácter «&&» para permitir usar el carácter siguiente como un atajo de teclado. - + Please specify the view name Por favor, especifique el nombre de la vista - + There is already an object with that name. Please choose a different name. Ya hay un objeto con ese nombre. Por favor, elija un nombre diferente. - + View successfully created. Vista creada con éxito. - + Error creating view: %1 Error creando la vista: %1 - There is no filter set for this table. View will not be created. - No existe un filtro para esta tabla. La vista no será creada. - - - Delete Records - Borrar registros - - - + This action will open a new SQL tab for running: Esta acción abrirá una nueva pestaña SQL para ejecutar: - + Press Help for opening the corresponding SQLite reference page. Pulse Ayuda para abrir la página correspondiente de la referencia de SQLite. - Row # - Línea # - - - Choose a axis color - Seleccione un eje de color - - - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Todos los Archivos(*) - - - Please enter the URL of the database file to open. - Por favor introduzca la URL del archivo de la base de datos a abrir. - - - Please enter the URL of the database file to save. - Por favor introduzca la URL del archivo de la base de datos a guardar. - - - Choose a file to open - Seleccione un archivo para abrir - - - + DB Browser for SQLite project file (*.sqbpro) Archivo de proyecto de «DB Browser for SQLite» (*.sqbpro) - Please choose a new encoding for this table. - Por favor, elija una nueva codificación para esta tabla. - - - Please choose a new encoding for all tables. - Por favor, elija una nueva codificación para todas las tablas. - - - + Error checking foreign keys after table modification. The changes will be reverted. Error comprobando las claves foráneas tras la modificación de la tabla. Los cambios se desharán. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. Esta tabla no ha pasado la comprobación de claves foráneas.<br/>Debería ejecutar 'Herramientas | Comprobar Claves foráneas' y arreglar los problemas mostrados. - - + + At line %1: En la línea %1: - + Result: %2 Resultado: %2 - + Execution finished with errors. Ejecución terminada con errores. - + Execution finished without errors. Ejecución terminada sin errores. - - %1 -Leave the field empty for using the database encoding. - %1 -Deje este campo vacío para usar la codificación de la base de datos. - - - This encoding is either not valid or not supported. - Esta codificación no es válida o no está soportada. - - - Fetching all data... - Trayendo todos los datos... - - - Cancel - Cancelar - NullLineEdit @@ -5428,45 +4178,37 @@ Deje este campo vacío para usar la codificación de la base de datos.Gráfica - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> <html><head/><body><p>Esta tabla muestra la lista de columnas de la tabla actualmente visualizada o de la consulta recién ejecutada. Puede seleccionar las columnas que desea usar como ejes X o Y en el gráfico del panel inferior. La tabla muestra el tipo de eje detectado, el cual afectará al gráfico resultante. Para los ejes Y solo se pueden seleccionar columnas numéricas, pero para el eje X se pueden seleccionar :</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Fecha/Hora</span>: texto con formato &quot;aaaa-MM-dd hh:mm:ss&quot; o &quot;aaaa-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Fecha</span>: texto con formato &quot;aaaa-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: texto con formato &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Etiqueta</span>: texto con otros formatos. Seleccionado esta columna como eje X se dibuja un gráfico de barras con los valores de la columna usados como etiquetas de las barras.</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numérico</span>: valores reales o enteros</li></ul><p>Haciendo doble clic sobre las celdas Y se puede cambiar el color usado para la gráfica correspondiente.</p></body></html> - + Columns Columnas - + X X - Y - Y - - - _ - _ - - - + Y1 - + Y2 - + Axis Type Tipo de eje - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -5483,148 +4225,140 @@ Use la rueda del ratón para aumentar y disminuir el gráfico y arrastre con el Seleccione los ejes o sus etiquetas para arrastrar y aumentar/disminuir solo en esa orientación. - + Line type: Tipo de línea: - - + + None Ninguno - + Line Línea - + StepLeft EscalónIzquierda - + StepRight EscalónDerecha - + StepCenter EscalónCentrado - + Impulse Impulso - + Point shape: Forma de punto: - + Cross Aspa es más específico que cruz. El signo más también es una cruz (una cruz griega). Aspa - + Plus Más - + Circle Circunferencia - + Disc Círculo - + Square Cuadrado - + Diamond Diamante - + Star Estrella - + Triangle Triángulo - + TriangleInverted TriánguloInvertido - + CrossSquare AspaCuadrado - + PlusSquare MásCuadrado - + CrossCircle AspaCircunferencia - + PlusCircle MásCircunferencia - + Peace Paz - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> <html><head/><body><p>Guarda la gráfica actual...</p><p>El formato del archivo es elegido por la extensión (png, jpg, pdf, bmp)</p></body></html> - + Save current plot... Guarda la gráfica actual... - - + + Load all data and redraw plot Cargar todos los datos y redibujar el gráfico - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - Cargar todos los datos. Es efectivo sólo si no se han leído ya todos los datos de la tabla porque el mecanismo de lectura ha hecho una lectura parcial. - - - - - + + + Row # Nº de línea - - Choose a axis color - Seleccione el color de la curva - Copy @@ -5646,76 +4380,68 @@ Seleccione los ejes o sus etiquetas para arrastrar y aumentar/disminuir solo en Barras apiladas - + Date/Time Fecha/hora - + Date Fecha - + Time Tiempo - - + + Numeric Numérico - + Label Etiqueta - + Invalid Inválido - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. Cargar todos los datos y redibujar el gráfico. Aviso: aún no se han cargado todos los datos desde la tabla debido al mecanismo de lectura parcial. - + Choose an axis color Elija un color para el eje - + Choose a filename to save under Seleccione un nombre de archivo en el que guardar - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Todos los archivos(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. Existen lazos en este gráfico y el estilo de línea seleccionado solo se puede aplicar a gráficos ordenados por X. Debe ordenar la tabla o consulta por X para eliminar los lazos o seleccionar uno de los estilos soportados por los lazos: Ninguno o Línea. - + Loading all remaining data for this table took %1ms. Cargar todos los datos restantes para esta tabla tardó %1ms. - - Fetching all data... - Trayendo todos los datos... - - - Cancel - Cancelar - PreferencesDialog @@ -5746,8 +4472,8 @@ Aviso: aún no se han cargado todos los datos desde la tabla debido al mecanismo - - + + ... ... @@ -5769,12 +4495,14 @@ Aviso: aún no se han cargado todos los datos desde la tabla debido al mecanismo - - - - - - + + + + + + + + enabled activado @@ -5784,137 +4512,92 @@ Aviso: aún no se han cargado todos los datos desde la tabla debido al mecanismo Mostrar opciones del remoto - + &Database &Base de datos - + Database &encoding Co&dificación de la base de datos - + Open databases with foreign keys enabled. Abrir base de datos con claves foráneas activadas. - + &Foreign keys Claves &foráneas - Remove line breaks in schema view - Eliminar los salos de línea en la vista del esquema - - - &Prefetch block size - Tamaño del bloque de &precarga - - - + Data &Browser &Hoja de datos - NULL fields - Campos NULL - - - Text &colour - &Color del texto - - - &Text - &Texto - - - Bac&kground colour - Color de &fondo - - - + Remove line breaks in schema &view Elimina los saltos de línea en la &vista del esquema - + Prefetch block si&ze &Tamaño del bloque de precarga - - Advanced - Avanzado - - - SQL to execute after opening database - SQL a ejecutar tras abrir la base de datos - - - + SQ&L to execute after opening database SQ&L a ejecutar tras abrir la base de datos - + Default field type Tipo de campo por defecto - + Font Tipo de letra - + &Font &Tipo de letra - Font si&ze: - &Tamaño del texto - - - + Content Contenido - + Symbol limit in cell Límite de símbolos en la celda - Field colors - Color de los campos - - - + NULL NULL - + Regular Normal - Text - Texto - - - + Binary Binario - + Background Fondo - + Filters Filtros @@ -6024,17 +4707,48 @@ Aviso: aún no se han cargado todos los datos desde la tabla debido al mecanismo Estilo de la aplicación - + + This sets the font size for all UI elements which do not have their own font size option. + Esto establece el tamaño de tipografía para todos los elementos de la interfaz de usuario que no tienen su propia opción. + + + + Font size + Tamaño de fuente + + + + Max Recent Files + + + + + Prompt to save SQL tabs +in new project file + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. Cuando está activado, se omiten los saltos de línea en la columna Esquema, tanto en la pestaña Estructura en pantalla, como al imprimir. - + + Database structure font size + Tamaño de fuente de la estructura de base de datos + + + Font si&ze &Tamaño de fuente - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. @@ -6045,412 +4759,428 @@ Máximo número de índices en una selección para calcular la suma y la media. Pueden ajustarse a 0 parar desactivar las funcionalidades. - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. Este el el número máximo de filas en una tabla para activar el autocompletado basado en los valores actuales en la columna. Se puede poner a 0 para desactivar el autocompletado. - + + selected_bg + + + + + Selection background + + + + + selected_fg + + + + + Selection foreground + + + + + highlight + + + + + Highlight + + + + Close button on tabs Botón de cerrar en pestañas - + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. Si se habilita, las pestañas del editor SQL tendrán un botón para cerrarlas. En cualquier caso, usted siempre podrá usar el menú contextual o el atajo de teclado para cerrarlas. - + Proxy Proxy - + Configure Configurar - Row count threshold for completion - Umbral del conteo de filas para autocompletar + + Export Settings + + + + + Import Settings + - + Field display Estilo de las celdas - + Displayed &text &Texto presentado - - - + - - + + + + Click to set this color Haga clic para ajustar este color - + Text color Color del texto - + Background color Color del fondo - + Preview only (N/A) Solo vista previa (N/A) - + Escape character Carácter de escape - + Delay time (&ms) Tiempo de retardo (&ms) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. Define el tiempo de espera antes de que se aplique un nuevo valor de filtro. Se puede poner a 0 para desactivar la espera. - + &SQL &SQL - + Settings name Nombre de los ajustes - + Context Contexto - + Colour Color - + Bold Negrita - + Italic Cursiva - + Underline Subrayado - + Keyword - Palabra clave - - - function - función + Palabra clave - + Function Función - + Table Tabla - + Comment Comentario - + Identifier Identificador - + String Cadena - currentline - currentline - - - + Current line Línea actual - + SQL &editor font size Tamaño de letra del &editor SQL - SQL &log font size - Tamaño de letra del &historial SQL - - - + Tab size Tamaño del tabulador - + &Wrap lines Ajuste de líneas - + Never Nunca - + At word boundaries En los límites de palabra - + At character boundaries En los límites de caracteres - + At whitespace boundaries En los límites de espacios en blanco - + &Quotes for identifiers &Comillas para identificadores - + Choose the quoting mechanism used by the application for identifiers in SQL code. Elija el mecanismo de entrecomillado usado por la aplicación para los identificadores en el código SQL. - + "Double quotes" - Standard SQL (recommended) "Dobles comillas" - SQL estándar (recomendado) - + `Grave accents` - Traditional MySQL quotes `Acentos graves` - Entrecomillado tradicional de MySQL - + [Square brackets] - Traditional MS SQL Server quotes [Corchetes] - Entrecomillado tradicional de MS SQL Server - + Keywords in &UPPER CASE Palabras claves en &MAYÚSCULAS - + When set, the SQL keywords are completed in UPPER CASE letters. Si se activa, las palabras claves de SQL se completan en letras MAYÚSCULAS. - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background Si se activa, las líneas de código SQL que causaron errores durante la última ejecución se destacan y el marco de resultados indica el error mediante el color del fondo - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> <html><head/><body><p>SQLite proporciona una función SQL para cargar extensiones desde un archivo de biblioteca compartida. Active esta opción si desea usar la función <span style=" font-style:italic;">load_extension()</span> desde código SQL.</p><p>Por razónes de seguridad, la carga de extensiones está desactivada por defecto y debe ser habilitada usando esta configuración. Siempre puede cargar extensiones a través de la interfaz de usuario, incluso aunque esta opción esté deshabilitada.</p></body></html> - + Allow loading extensions from SQL code Permitir cargar extensiones desde código SQL - + Remote Remoto - + CA certificates Certificados CA - - + + Subject CN Sujeto CN - + Common Name Nombre común - + Subject O Sujeto O - + Organization Organización - - + + Valid from Válido desde - - + + Valid to Válido hasta - - + + Serial number Número de serie - + Your certificates Sus certificados - + File Archivo - + Subject Common Name Nombre común del sujeto - + Issuer CN Emisor CN - + Issuer Common Name Nombre común del emisor - + Clone databases into Clonar las bases de datos en - Tab size: - Tamaño del tabulador: - - - + SQL editor &font &Tipo de letra del editor SQL - + Error indicators Indicadores de error - Enabling error indicators highlights the SQL code lines that caused errors during the last execution - Activando los indicadores de error se resaltan las líneas del código SQL que han causado errores durante la última ejecución - - - + Hori&zontal tiling Mosaico hori&zontal - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. Si se activa, el editor de código SQL y la vista de la tabla de resultados se muestran de lado a lado en lugar de una sobre la otra. - + Code co&mpletion Co&mpletar código - + Threshold for completion and calculation on selection Umbral para cálculos al seleccionar y completación - + Show images in cell Mostrar imágenes en la celda - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. Active esta opción para mostrar una previsualización de los BLOBs que contengan datos de imagen en las celdas. Tenga en cuenta que esto puede afectar el desempeño del navegador de la hoja de datos. - + Foreground Texto - + SQL &results font size Tamaño de letra de &resultados - + &Extensions E&xtensiones - + Select extensions to load for every database: Seleccione extensiones a cargar para cada base de datos: - + Add extension Añadir extensión - + Remove extension Eliminar extensión - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> <html><head/><body><p> Aunque SQLite admite el operador REGEXP, no implementa en sí ningún algoritmo de expresiones<br/> @@ -6461,53 +5191,87 @@ usando una extensión. Necesitará reiniciar la aplicación.</p> </body></html> - + Disable Regular Expression extension Desactivar extensión de expresiones regulares - - + + Choose a directory Seleccione una carpeta - + + The language will change after you restart the application. El idioma cambiará al reiniciar la aplicación. - + Select extension file Seleccione archivo de extensión - + Extensions(*.so *.dylib *.dll);;All files(*) Extensiones (*.so *.dll);;Todos los archivos (*) - + Import certificate file Importar archivo de certificado - + No certificates found in this file. No hay certificados en este archivo. - + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! ¿Está seguro de que quiere eliminar este certificado? ¡Todos los datos del certificado se borrarán de los ajustes de la aplicación! - + Are you sure you want to clear all the saved settings? All your preferences will be lost and default values will be used. ¿Está seguro de que desea borrar todos los ajustes guardadas? Todas sus preferencias se perderán y se usarán valores predeterminados. + + + Save Settings File + + + + + + Initialization File (*.ini) + + + + + The settings file has been saved in location : + + + + + + Open Settings File + + + + + The settings file was loaded properly. + + + + + The selected settings file is not a normal settings file. +Please check again. + + ProxyDialog @@ -6591,39 +5355,18 @@ Todas sus preferencias se perderán y se usarán valores predeterminados.Importing CSV file... Importando archivo CSV... - - Decoding CSV file... - Descodificando archivo CSV... - Cancel Cancelar - - Collation needed! Proceed? - ¡Es necesaria una función de comparación! ¿Proceder? - - - A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. -If you choose to proceed, be aware bad things can happen to your database. -Create a backup! - Una tabla en esta base de datos necesita una función de comparación especial '%1' que esta aplicación no puede proporcionar sin más información. -Si decide continuar, está avisado de que la base de datos se puede dañar. -¡Cree un backup! - - - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - Archivos de base de datos de SQLite (*.db *.sqlite *.sqlite3 *.db3);;Todos los archivos (*) - All files (*) Todos los archivos (*) - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) Archivos de BB.DD. SQLite (*.db *.sqlite *.sqlite3 *.db3) @@ -6723,205 +5466,436 @@ Si decide continuar, está avisado de que la base de datos se puede dañar. Extensiones (*.so *.dylib *.dll) - Name - Nombre + + Initialization File (*.ini) + + + + RemoteCommitsModel - Commit - Consolidación + + Commit ID + ID versión - Last modified - Última modificación + + Message + Mensaje + + + + Date + Fecha + + + + Author + Autor + Size - Tamaño + Tamaño + + + + Authored and committed by %1 + Escrito y registrado por %1 + + + + Authored by %1, committed by %2 + Escrito por %1, registrado por %2 RemoteDatabase - Error opening remote database file from %1. -%2 - Error abriendo el archivo de base de datos remoto de %1. -%2 + + Error opening local databases list. +%1 + Error abriendo la lista de bases de datos locales. +%1 - - Error when connecting to %1. -%2 - Error conectando a %1. -%2 + + Error creating local databases list. +%1 + Error creando la lista de bases de datos locales. +%1 + + + RemoteDock - - Error opening remote file at %1. -%2 - Error abriendo el archivo remoto en %1. -%2 + + Remote + Remoto - - Error: Invalid client certificate specified. - Error: El certificado del cliente es inválido. + + Local + Local - - Please enter the passphrase for this client certificate in order to authenticate. - Por favor, introduzca la clave de este certificado de cliente para autenticarse. + + Identity + Identidad - - Cancel - Cancelar + + Push currently opened database to server + Volcar la base de datos actualmente abierta al servidor - - Uploading remote database to -%1 - Subiendo base de datos remota a -%1 + + Upload + - - Downloading remote database from -%1 - Descargando base de datos remota desde -%1 + + DBHub.io + - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - La base de datos remota ha cambiado desde la última sincronización. ¿Desea actualizar la base de datos local a la versión más reciente? ¡Tenga en cuenta que esto descartará cualquier cambio que haya hecho localmente! Si no desea perder cambios locales, pulse «No» para abrir la versión local. + + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> + <html><head/><body><p>En este panel, las BB.DD. remotas del sitio web dbhub.io se pueden añadir a «DB Browser for SQLite». En primer lugar necesita una identidad:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ingrese en el sitio web dbhub.io (use sus credenciales de GitHub o las que desee)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Haga clic en el botón de crear un certificado de cliente (esa es su identidad). Eso le proporcionará un archivo de certificado (guárdelo en su disco local).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Vaya a la pestaña «Remoto» de las preferencias de «DB Browser for SQLite». Haga clic en el botón para añadir el nuevo certificado a la aplicación y elija el archivo de certificado recién descargado.</li></ol><p>Ahora el panel «Remoto» le mostrará su identidad y podrá añadir BB.DD. remotas.</p></body></html> - Uploading remote database to -%1. - Subiendo base de datos remota a -%1. + + Current Database + Base de datos actual - Downloading remote database from -%1. - Descargando base de datos remota desde -%1. + + Clone + Clonar - - - Error: The network is not accessible. - Error: La red no es accesible. + + User + Usuario - - Error: Cannot open the file for sending. - Error: No se puede abrir el archivo para enviar. + + Database + Base de datos - - Error opening local databases list. -%1 - Error abriendo la lista de bases de datos locales. -%1 + + Branch + Rama - - Error creating local databases list. -%1 - Error creando la lista de bases de datos locales. -%1 + + Commits + Versiones - - - RemoteDock - - Remote - Remoto + + Commits for + Versiones para - B&rowse - Navega&r + + Delete Database + Borrar base de datos - Local - Local + + Delete the local clone of this database + Borrar el clon local de la base de datos - - Identity - Identidad + + Open in Web Browser + Abrir en el navegador web - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. - Conectar al servidor remoto usando la identidad actualmente seleccionada. El servidor correcto se selecciona también con la entidad. + + Open the web page for the current database in your browser + Abrir la página web de la base de datos actual en su navegador - - Go - Ir + + Clone from Link + Clonar desde enlace - - Push currently opened database to server - Volcar la base de datos actualmente abierta al servidor + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + Use esto para descargar una base de datos remota y editarla localmente usando una URL provista por la página web de la base de datos. - - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>En este panel, las BB.DD. remotas del sitio web dbhub.io se pueden añadir a «DB Browser for SQLite». En primer lugar necesita una identidad:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ingrese en el sitio web dbhub.io (use sus credenciales de GitHub o las que desee)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Haga clic en el botón de crear un certificado de cliente (esa es su identidad). Eso le proporcionará un archivo de certificado (guárdelo en su disco local).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Vaya a la pestaña «Remoto» de las preferencias de «DB Browser for SQLite». Haga clic en el botón para añadir el nuevo certificado a la aplicación y elija el archivo de certificado recién descargado.</li></ol><p>Ahora el panel «Remoto» le mostrará su identidad y podrá añadir BB.DD. remotas.</p></body></html> + + Refresh + Refrescar + + + + Reload all data and update the views + Recargar todos los datos y actualizar las vistas + + + + F5 + + + + + Clone Database + Clonar base de datos + + + + Open Database + Abrir base de datos + + + + Open the local copy of this database + Abrir la copia local de esta base de datos + + + + Check out Commit + Obtener versión + + + + Download and open this specific commit + Descargar y abrir esta versión específica + + + + Check out Latest Commit + Obtener la última versión + + + + Check out the latest commit of the current branch + Obtener la última versión de la rama actual + + + + Save Revision to File + Guardar versión en un archivo + + + + Saves the selected revision of the database to another file + Guarda la versión seleccionada de la base de datos a otro archivo + + + + Upload Database + Cargar base de datos - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB4S. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to create a DB4S certificate (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB4S Preferences. Click the button to add a new certificate to DB4S and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>En este panel, las BB.DD. remotas del sitio web dbhub.io se pueden añadir a DB4S. En primer lugar necesita una identidad:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ingrese en el sitio web dbhub.io (use sus credenciales de GitHub o las que desee)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Haga clic en el botón de crear un certificado de DB4S (esa es su identidad). Eso le proporcionará un archivo de certificado (guárdelo en su disco local).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Vaya a la pestaña «Remoto» de las preferencias de DB4S. Haga clic en el botón para añadir el nuevo certificado a DB4S y elija el archivo de certificado recién descargado.</li></ol><p>Ahora el panel «Remoto» le mostrará su identidad y podrá añadir BB.DD. remotas.</p></body></html> + + Upload this database as a new commit + Cargar en el servidor esta base de datos como una nueva versión - + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> <html><head/><body><p>Está usando una identidad integrada de sólo lectura. Para subir su base de datos necesita configurar y usar su cuenta DBHub.io.</p><p>¿Todavía no tiene una cuenta en DBHub.io? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Cree una ahora</span></a> e importe su certificado <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">aquí</span></a> para compartir sus bases de datos.</p><p>Tiene ayuda en línea <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">aquí</span></a>.</p></body></html> - + Back Retroceder - + + Select an identity to connect + Seleccione una identidad para conectar + + + Public Pública + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + Esto descarga una base de datos desde un servidor remoto para edición local. +Por favor, introduzca la URL desde la que clonar. Puede obtener esta URL +haciendo clic en el botón «Clonar base de datos en DB4S» de la página web +de la base de datos. + + + + Invalid URL: The host name does not match the host name of the current identity. + URL inválida: El nombre de 'host' no encaja con el de la identidad actual. + + + + Invalid URL: No branch name specified. + URL inválida: No se ha especificado el nombre de rama. + + + + Invalid URL: No commit ID specified. + URL inválida: No se ha especificado el ID de versión. + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + Ha realizado cambios en el clon local de la base de datos. Al obtener esta versión sobreescribiría los cambios locales. +¿Está seguro de querer proceder? + + + + The database has unsaved changes. Are you sure you want to push it before saving? + La base de datos tiene cambios sin guardar. ¿Está seguro de enviarlos sin guardar? + + + + The database you are trying to delete is currently opened. Please close it before deleting. + La base de datos que pretende borrar está actualmente abierta. Por favor, ciérrela antes de borrarla. + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + Esto borra la versión local de esta base de datos con todos los cambios que aún no ha registrado. ¿Está seguro de querer borrarla? + + + + RemoteLocalFilesModel + + + Name + Nombre + + + + Branch + Rama + + + + Last modified + Última modificación + + + + Size + Tamaño + + + + Commit + Versión + + + + File + Archivo + RemoteModel - + Name Nombre - Version - Versión + + Last modified + Última modificación + + + + Size + Tamaño + + + + Commit + Versión + + + + Size: + Tamaño: + + + + Last Modified: + Última modificación: + + + + Licence: + Licencia: + + + + Default Branch: + Rama por defecto: + + + + RemoteNetwork + + + Choose a location to save the file + Seleccione una localización para guardar el archivo + + + + Error opening remote file at %1. +%2 + Error abriendo el archivo remoto en %1. +%2 + + + + Error: Invalid client certificate specified. + Error: El certificado del cliente es inválido. + + + + Please enter the passphrase for this client certificate in order to authenticate. + Por favor, introduzca la frase de contraseña de este certificado de cliente para autenticarse. + + + + Cancel + Cancelar - - Last modified - Última modificación + + Uploading remote database to +%1 + Subiendo base de datos remota a +%1 - - Size - Tamaño + + Downloading remote database from +%1 + Descargando base de datos remota desde +%1 - - Commit - Consolidación + + + Error: The network is not accessible. + Error: La red no está accesible. - bytes - bytes + + Error: Cannot open the file for sending. + Error: No se puede abrir el archivo para enviar. @@ -6939,16 +5913,7 @@ Si decide continuar, está avisado de que la base de datos se puede dañar. Commit message - Mensaje de consolidación - - - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - + Mensaje de versión @@ -6971,44 +5936,45 @@ p, li { white-space: pre-wrap; } Forzar remisión - + + Username + Nombre de usuario + + + Database will be public. Everyone has read access to it. La base de datos será pública. Todo el mundo podrá leerla. - + Database will be private. Only you have access to it. La base de datos será privada. Sólo usted tendrá acceso. - + Use with care. This can cause remote commits to be deleted. - Usar con cuidado. Esto puede provocar borrados de consolidaciones remotas. - - - Unspecified - No especificada + Usar con cuidado. Esto puede provocar borrados de versiones remotas. RunSql - + Execution aborted by user Ejecución abortada por el usuario - + , %1 rows affected , %1 filas afectadas - + query executed successfully. Took %1ms%2 consulta ejecutada con éxito. Tardó %1ms%2 - + executing query ejecutando consulta @@ -7130,51 +6096,23 @@ p, li { white-space: pre-wrap; } Este campo muestra los resultados y códigos de estado de las últimas sentencias ejecutadas. - Export to &CSV - Exportar a &CSV - - - Save as &view - Guardar como &vista - - - Save as view - Guardar como vista - - - Please specify the view name - Por favor, especifique el nombre de la vista - - - There is already an object with that name. Please choose a different name. - Ya hay un objeto con ese nombre. Por favor, elija un nombre diferente. - - - View successfully created. - Vista creada con éxito. - - - Error creating view: %1 - Error creando la vista: %1 - - - + Couldn't read file: %1. No se pudo leer el archivo: %1. - - + + Couldn't save file: %1. No se pudo guardar el archivo: %1. - + Your changes will be lost when reloading it! ¡Los cambios se perderán al recargarlo! - + The file "%1" was modified by another program. Do you want to reload it?%2 El archivo "%1" ha sido modificado por otro programa. ¿Quiere recargarlo?%2 @@ -7186,6 +6124,11 @@ p, li { white-space: pre-wrap; } Ctrl+/ + + + Ctrl+PgDown + + SqlUiLexer @@ -7231,288 +6174,285 @@ p, li { white-space: pre-wrap; } + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + (X,Y,Z) La función iif(X,Y,Z) devuelve el valor Y si X es verdadero, y Z en caso contrario. + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. () La función last_insert_rowid() devuelve el ROWID del la última línea insertada desde la conexión de la base de datos que invocó la función. - + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. (X) La función length(X) devuelve el número de caracteres (no bytes) en X anteriores al primer carácter NUL. - + (X,Y) The like() function is used to implement the "Y LIKE X" expression. - X,Y) La función like() se usa para implementar la expresión "Y LIKE X". + (X,Y) La función like() se usa para implementar la expresión "Y LIKE X". - + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. (X,Y,Z) La función like() se usa para implementar la expresión "Y LIKE X ESCAPE Z". - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - (X) La función load_extension(X) carga extensiones SQLite del archivo de la biblioteca compartida llamada X. - - - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - (X) La función load_extension(X) carga extensiones SQLite del archivo de la biblioteca compartida llamada X usando el punto de entrada Y. - - - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. (X) La función load_extension(X) carga extensiones SQLite del archivo de la biblioteca compartida llamada X usando el punto de entrada Y. El uso de esta función tiene que ser autorizado desde las Preferencias. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. (X,Y) La función load_extension(X,Y) carga extensiones SQLite del archivo de la biblioteca compartida llamado X usando el punto de entrada Y. El uso de esta función tiene que ser autorizado desde las Preferencias. - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. (X) La función lower(X) devuelve una copia de la cadena X con todos los caracteres ASCII convertidos a minúsculas. - + (X) ltrim(X) removes spaces from the left side of X. (X) La función ltrim(X) quita los espacios a la izquierda de X. - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. (X,Y) La función ltrim(X,Y) devuelve una cadena formada quitando todos los caracteres que aparecen en Y de la izquierda de X. - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. (X,Y,...) La función multi-argumento max() devuelve el argumento con el valor máximo, o NULL si cualquier argumento es NULL. - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. (X,Y,...) La función multi-argumento max() devuelve el argumento con el valor mínimo. - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. (X,Y) La función nullif(X,Y) devuelve su primer argumento si los argumentos son diferentes y NULL si los argumentos son el mismo. - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. (FORMAT,...) La función SQL printf(FORMAT,...) funciona como la función de lenguaje C sqlite3_mprintf() y la función printf() de la biblioteca C estándar. - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. (X) La función quote(X) devuelve el texto de un literal SQL, que es el valor de su argumento, apropiado para la inclusión en una sentencia SQL. - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. () La función random() devuelve un entero pseudo-aleatorio entre -9223372036854775808 y +9223372036854775807. - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. (N) La función randomblob(N) devuelve un BLOB de N bytes que contiene bytes pseudo-aleatorios. - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. (X,Y,Z) La función replace(X,Y,Z) devuelve una cadena formada substituyendo en la cadena Z cada coincidencia con la subcadena Y por la subcadena X. - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. (X) La función round(X) devuelve un valor en coma flotante X redondeado a cero dígitos a la derecha de la coma decimal. - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. (X,Y) La función round(X,Y) devuelve un valor en coma flotante X redondeado a Y dígitos a la derecha de la coma decimal. - + (X) rtrim(X) removes spaces from the right side of X. (X) La función rtrim(X) quita los espacios a la derecha de X. - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. (X,Y) La función rtrim(X,Y) devuelve una cadena formada quitando todos los caracteres que aparecen en Y de la derecha de X. - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. (X) La función soundex(X) devuelve una cadena que es la codificación soundex de la cadena X. - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. (X,Y) La función substr(X,Y) devuelve una subcadena con todos los caracteres de la cadena X desde el Y-ésimo hasta el último. - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. - (X,Y) La función substr(X,Y) devuelve una subcadena de la cadena X desde el Y-ésimo y que es Z caracteres de largo. + (X,Y,Z) La función substr(X,Y,Z) devuelve una subcadena de la cadena X desde el Y-ésimo carácter y que es Z caracteres de largo. - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. () La función total_changes() devuelve el número de cambios en las líneas causadas por sentencias INSERT, UPDATE o DELETE desde que la conexión con la base de datos actual se abrió. - + (X) trim(X) removes spaces from both ends of X. (X) La función trim(X) quita los espacios de ambos lados de X. - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. (X,Y) La función trim(X,Y) devuelve una cadena formada quitando todos los caracteres que aparecen en Y de ambos lados de X. - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. (X) La función typeof(X) devuelve una cadena que indica el tipo de datos de la expresión X. - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. (X) La función unicode(X) devuelve el valor numérico del código de punto unicode correspondiente al primer carácter de la cadena X. - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. (X) La función upper(X) devuelve una copia de la cadena X con todos los caracteres ASCII convertidos a mayúsculas. - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. (N) La función zeroblob(N) devuelve un BLOB consistente en N bytes de 0x00. - + (timestring,modifier,modifier,...) (timestring,modificador,modificador,...) - + (format,timestring,modifier,modifier,...) (formato,timestring,modificador,modificador,...) - + (X) The avg() function returns the average value of all non-NULL X within a group. (X) La función avg() devuelve el valor medio de todos los valores no nulos del grupo X. - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. (X) La función count(X) devuelve el conteo del número de veces que X no es nulo en un grupo. - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. (X) La función group_concat() devuelve una cadena que es la concatenación de todos los valores no nulos X. - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. (X,Y) La función group_concat() devuelve una cadena que es la concatenación de todos los valores no nulos X, usando el parámetro Y como separador entre las instancias de X. - + (X) The max() aggregate function returns the maximum value of all values in the group. (X) La función agregada max() devuelve el máximo valor de entre todos los valores en el grupo. - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. (X) La función agregada min() devuelve el mínimo valor no NULO de entre todos los valores en el grupo. - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. (X) Las funciones agregadas sum() y total() devuelven la suma de todos los valores no NULOS en el grupo. - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. () El número de fila dentro de la partición actual. Las filas se numeran empezando por 1 en el orden definido por la cláusula ORDER BY en la ventana de definición, o sino en un orden arbitrario. - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () El row_number() del primer par (igual) en cada grupo - el rango de la fila actual con huecos. Si no hay una cláusula ORDER BY, entonces todas las filas son consideradas pares y esta función siempre devuelve 1. - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () El número del grupo de pares de la fila actual dentro de su partición - el rango de la fila actual sin huecos. Las particiones se numeran empezando por 1 en el orden definido por la cláusula ORDER BY en la ventana de definición. Si no hay una cláusula ORDER BY, entonces todas las filas son consideradas pares y esta función siempre devuelve 1. - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. () A pesar del nombre, esta función siempre devuelve un valor entre 0.0 y 1.0 igual a (rank - 1)/(partition-rows - 1), donde rank es el valor devuelto por la función de ventana incorporada rank() y partition-rows es el número total de filas en la partición. Si la partición contiene sólo una fila, esta función devuelve 0.0. - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. () La distribución acumulada. Calculada como row-number/partition-rows, donde row-number es el valor devuelto por row_number() para el último par (igual) en el grupo y partition-rows el número de filas en la partición. - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. (N) El argumento N es tratado como un entero. Esta función divide la partición en N grupos tan equitativamente como sea posible y asigna un entero entre 1 y N a cada grupo, en el orden definido por la cláusula ORDER BY, o sino en un orden arbitrario. Si es necesario, los grupos mayores aparecen primero. Esta función devuelve un valor entero asignado al grupo del que la fila actual es parte. - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. (expr) Devuelve el resultado de evaluar la expresión expr con la fila anterior en la partición. Si no hay fila anterior (porque la fila actual es la primera) devuelve NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. (expr,offset) Si se proporciona un offset, éste debe ser un entero no negativo. En este caso el valor devuelto es el resultado de evaluar expr con la fila offset veces anterior a la fila actual dentro de la partición. Si offset es 0, entonces expr se evalua con la fila actual. Si no hay fila offset veces anterior devuelve NULL. - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. (expr,offset,default) Si también se proporciona un default, entonces éste es devuelto en lugar de NULL si no existe la fila identificada por offet. - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. (expr) Devuelve el resultado de evaluar la expresión expr con la siguiente fila en la partición. Si no hay fila siguiente (porque la fila actual es la última) devuelve NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. (expr,offset) Si se proporciona un offset, éste debe ser un entero no negativo. En este caso el valor devuelto es el resultado de evaluar expr con la fila offset veces posterior a la fila actual dentro de la partición. Si offset es 0, entonces expr se evalua con la fila actual. Si no hay fila offset veces siguiente devuelve NULL. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. (expr) Esta función de ventana incorporada calcula el marco de la ventana para cada fila de la misma forma que una función agregada de ventana. Devuelve el valor de expr evaluada con la primera fila en el marco de la ventana para cada fila. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. (expr) Esta función de ventana incorporada calcula el marco de la ventana para cada fila de la misma forma que una función agregada de ventana. Devuelve el valor de expr evaluada con la última fila en el marco de la ventana para cada fila. - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. (expr,N) Esta función de ventana incorporada calcula el marco de la ventana para cada fila de la misma forma que una función agregada de ventana. Devuelve el valor de expr evaluada con la fila N del marco de la ventana. Las columnas se numeran dentro del marco de la ventana empezando por 1 en el orden definico por la cláusula ORDER BY, o sino en orden arbitrario. Si no hay fila N-ava en la partición, entonces devuelve NULL. @@ -7520,47 +6460,42 @@ El uso de esta función tiene que ser autorizado desde las Preferencias. SqliteTableModel - + reading rows leyendo filas - + loading... cargando... - References %1(%2) -Hold Ctrl+Shift and click to jump there - Referencia %1(%2) -Mantenga pulsado Ctrl+Mayús. y haga clic para ir ahí - - - + References %1(%2) Hold %3Shift and click to jump there Referencia %1(%2) Mantenga pulsado %3Mayús. y haga clic para ir ahí - + Error changing data: %1 Error modificando datos: %1 - + retrieving list of columns obteniendo lista de columnas - + Fetching data... Obteniendo datos... - + + Cancel Cancelar @@ -7702,7 +6637,7 @@ Mantenga pulsado %3Mayús. y haga clic para ir ahí - + Replace Reemplazar @@ -7717,498 +6652,496 @@ Mantenga pulsado %3Mayús. y haga clic para ir ahí Reemplazar todo - + <html><head/><body><p>Scroll to the beginning</p></body></html> <html><head/><body><p>Desplazarse hasta el principio</p></body></html> - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> <html><head/><body><p>Pulsando este botón se mueve hasta el principio en la vista de tabla de arriba.</p></body></html> - + |< |< - + Scroll one page upwards Retroceder una página - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> <html><head/><body><p>Pulsando este botón se retrocede una página de registros en la vista de tabla de arriba.</p></body></html> - + < < - + 0 - 0 of 0 0 - 0 de 0 - + Scroll one page downwards Avanzar una página - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> <html><head/><body><p>Pulsando este botón se avanza una página de registros en la vista de tabla de arriba.</p></body></html> - + > > - + Scroll to the end Desplazarse hasta el final - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Pulsando este botón se mueve hasta el final en la vista de tabla de arriba.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> <html><head/><body><p>Pulsando este botón se mueve al final de la vista de tabla de arriba.</p></body></html> - + >| >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> <html><head/><body><p>Pulse aquí para saltar al registro especificado</p></body></html> - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> <html><head/><body><p>Este botón se usa para moverse al número de registro especificado en la casilla Ir a.</p></body></html> - + Go to: Ir a: - + Enter record number to browse Introduzca el número de registro al que navegar - + Type a record number in this area and click the Go to: button to display the record in the database view Escriba un número de registro en esta casilla y haga clic en el botón «Ir a:» para mostrar el registro en la vista de la base de datos - + 1 1 - + Show rowid column Mostrar la columna rowid - + Toggle the visibility of the rowid column Cambia la visibilidad de la columna rowid - + Unlock view editing Desbloquear edición de vistas - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. Esto desbloquea la vista actual para edición. Aunque para la edición se necesitarán los disparadores adecuados. - + Edit display format Editar el formato de presentación - + Edit the display format of the data in this column Editar el formato de presentación de los datos en esta columna - - + + New Record Nuevo registro - - + + Insert a new record in the current table Inserta un nuevo registro en la tabla actual - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> <html><head/><body><p>Este botón crea un nuevo registro en la base de datos. Mantenga pulsado el botón del ratón para abrir un menú emergente con varias opciones:</p><ul><li><span style=" font-weight:600;">Nuevo Registro</span>: inserta en la base de datos un nuevo registro con valores por defecto.</li><li><span style=" font-weight:600;">Introduce Valores...</span>: abre un diálogo para introducir valores antes de insertarlos en la base de datos. Esto permite introducir valores que cumplan con las restricciones. Este diálogo también se abre si la opción de <span style=" font-weight:600;">Nuevo Registro</span> falla debido a esas restricciones.</li></ul></body></html> - - + + Delete Record Borrar registro - + Delete the current record Borra el registro actual - - + + This button deletes the record or records currently selected in the table Este botón borra el registro seleccionado (o los registros seleccionados) actualmente en la base de datos - - + + Insert new record using default values in browsed table Inserta un nuevo registro usando valores por defecto en la tabla visualizada - + Insert Values... Introducir valores... - - + + Open a dialog for inserting values in a new record Abre un diálogo para introducir valores en un nuevo registro - + Export to &CSV Exportar a &CSV - - + + Export the filtered data to CSV Exportar los datos filtrados a CSV - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. Este botón exporta los datos de la tabla mostrada tal como se presentan (después de filtros, formatos de presentación y columna de orden) como un archivo CSV. - + Save as &view Guardar como &vista - - + + Save the current filter, sort column and display formats as a view Guardar el filtro actual, la columna de orden y los formatos de presentación como una vista - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. Este botón guarda los ajustes actuales de la tabla visualizada (filtros, formatos de presentación y la columna de orden) como una vista SQL que más tarde puede visualizar o usar en sentencias SQL. - + Save Table As... Guardar Tabla Como... - - + + Save the table as currently displayed Guarda la tabla tal como se presenta - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> <html><head/><body><p>Este menú contextual provee las siguientes opciones que se aplican a la tabla actualmente visualizada y filtrada:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Exportar a CSV: esta opción exporta los datas de la tabla tal cual se presentan actualmente (después de filtros, formatos de presentación y columna de orden) a un archivo CSV.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Guardar como vista: esta opción guarda la configuración actual de la tabla visualizada (filtros, formatos de presentación y columna de orden) como una vista SQL que luego puede visualizar o usar en sentencias SQL.</li></ul></body></html> - + Hide column(s) Ocultar columna(s) - + Hide selected column(s) Ocultar columna(s) seleccionada(s) - + Show all columns Mostrar todas las columnas - + Show all columns that were hidden Mostrar todas las columnas que están ocultas - - + + Set encoding Definir codificación - + Change the encoding of the text in the table cells Cambia la codificación del texto de las celdas de la tabla - + Set encoding for all tables Definir la codificación para todas las tablas - + Change the default encoding assumed for all tables in the database Cambia la codificación por defecto para todas las tablas en la base de datos - + Clear Filters Borrar Filtros - + Clear all filters Borra todos los filtros - - + + This button clears all the filters set in the header input fields for the currently browsed table. Este botón elimina todos los filtros establecidos en la cabecera para la tabla mostrada actualmente. - + Clear Sorting Eliminar ordenación - + Reset the order of rows to the default Reinicia el orden de las filas al orden por defecto - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. Este botón elimina la ordenación de las columnas especificadas para la tabla mostrada actualmente y vuelve al orden por defecto. - + Print Imprimir - + Print currently browsed table data Imprime los datos de la tabla mostrada actualmente - + Print currently browsed table data. Print selection if more than one cell is selected. Imprime los datos de la tabla mostrada actualmente. Imprime la selección si se ha seleccionado más de una celda. - + Ctrl+P - + Refresh Refrescar - + Refresh the data in the selected table Refresca los datos en la tabla seleccionada - + This button refreshes the data in the currently selected table. Este botón refresca los datos de la tabla seleccionada actualmente. - + F5 - + Find in cells Buscar en celdas - + Open the find tool bar which allows you to search for values in the table view below. Abre la barra de búsqueda que permite buscar valores en la vista de la tabla de abajo. - Ctrl+F - + + Freeze columns + - - + + Make all columns from the first column up to this column not move when scrolling horizontally + + + + + Bold Negrita - + Ctrl+B - - + + Italic Cursiva - - + + Underline Subrayado - + Ctrl+U - - + + Align Right Alineado derecha - - + + Align Left Alineado izquierda - - + + Center Horizontally Centrado horizontal - - + + Justify Justificar - - + + Edit Conditional Formats... Editar formatos condicionales... - + Edit conditional formats for the current column Edita formatos condicionales para la columna actual - + Clear Format Eliminar formato - + Clear All Formats Eliminar todos los formatos - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns Elimina todo el formato de las celdas seleccionadas y los formatos condicionales de las columnas seleccionadas - - + + Font Color Color del texto - - + + Background Color Color del fondo - + Toggle Format Toolbar Conmutar barra de formato - + Show/hide format toolbar Mostrar/ocultar la barra de formato - - + + This button shows or hides the formatting toolbar of the Data Browser Este botón muestra u oculta la barra de formato de la Hoja de Datos - + Select column Seleccionar columna - + Ctrl+Space - + Replace text in cells Reemplazar texto en las celdas - - Ctrl+H - - Filter in any column Filtrar en cualquier columna - + Ctrl+R - + %n row(s) %n fila @@ -8216,7 +7149,7 @@ Mantenga pulsado %3Mayús. y haga clic para ir ahí - + , %n column(s) , %n columna @@ -8224,105 +7157,128 @@ Mantenga pulsado %3Mayús. y haga clic para ir ahí - + . Sum: %1; Average: %2; Min: %3; Max: %4 . Suma: %1; Media: %2; Mín: %3; Máx: %4 - + Conditional formats for "%1" Formatos condicionales para "%1" - + determining row count... determinando nº de filas... - + %1 - %2 of >= %3 %1 - %2 de >= %3 - + %1 - %2 of %3 %1 - %2 de %3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Introduzca una clave pseudo-primaria para activar la edición en esta vista. Esta debería ser el nombre de una columna única en la vista. - + Delete Records Borrar registros - + Duplicate records Duplicar registros - + Duplicate record Duplicar registro - + Ctrl+" - + Adjust rows to contents Ajustar las filas al contenido - + Error deleting record: %1 Error borrando registro: %1 - + Please select a record first Por favor, antes seleccione un registro - + There is no filter set for this table. View will not be created. No existe un filtro para esta tabla. La vista no será creada. - + Please choose a new encoding for all tables. Por favor, elija una nueva codificación para todas las tablas. - + Please choose a new encoding for this table. Por favor, elija una nueva codificación para esta tabla. - + %1 Leave the field empty for using the database encoding. %1 Deje este campo vacío para usar la codificación de la base de datos. - + This encoding is either not valid or not supported. Esta codificación no es válida o no está soportada. - + %1 replacement(s) made. Se realizaron %1 sustitucion(es). + + TableBrowserDock + + + New Data Browser + + + + + Rename Data Browser + + + + + Close Data Browser + + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + VacuumDialog @@ -8340,13 +7296,5 @@ Deje este campo vacío para usar la codificación de la base de datos.Please select the databases to co&mpact: Seleccione las bases de datos que desea co&mpactar: - - Warning: Compacting the database will commit all changes you made. - Cuidado: Al compactar la base de datos se confirmarán todos los cambios hechos. - - - Please select the objects to compact: - Por favor, seleccione los objetos a compactar: - diff --git a/src/translations/sqlb_fa.ts b/src/translations/sqlb_fa.ts index 7e70e949f..bc03b1da7 100644 --- a/src/translations/sqlb_fa.ts +++ b/src/translations/sqlb_fa.ts @@ -18,31 +18,6 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - - - SQLite Version - - - - - SQLCipher Version - - - - - (based on SQLite %1) - - - - - Version - - - - - Qt Version - - AddRecordDialog @@ -92,44 +67,44 @@ - + Auto-increment - + Unique constraint - + Check constraint: %1 - + Foreign key: %1 - + Default value: %1 - + Error adding record. Message from database engine: %1 - + Are you sure you want to restore all the entered values to their defaults? @@ -137,83 +112,148 @@ Application - - Usage: %1 [options] [db] + + Possible command line arguments: + + + + + The user settings file location is replaced with the argument value instead of the environment variable value. + + + + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + + + + + Usage: %1 [options] [<database>|<project>] - - Possible command line arguments: + + -h, --help Show command line options + + + + + -q, --quit Exit application after running scripts + + + + + -s, --sql <file> Execute this SQL file after opening the DB + + + + + -t, --table <table> Browse this table after opening the DB + + + + + -R, --read-only Open database in read-only mode - - -h, --help Show command line options + + -S, --settings <settings_file> - - -q, --quit Exit application after running scripts + + Run application based on this settings file - - -s, --sql [file] Execute this SQL file after opening the DB + + -o, --option <group>/<setting>=<value> - - -t, --table [table] Browse this table after opening the DB + + Run application with this setting temporarily set to value - - -R, --read-only Open database in read-only mode + + -O, --save-option <group>/<setting>=<value> - - -o, --option [group/setting=value] Run application with this setting temporarily set to value + + Run application saving this value for this setting - - -v, --version Display the current version + + -v, --version Display the current version - - [file] Open this SQLite database + + <database> Open this SQLite database - - This is DB Browser for SQLite version %1. + + <project> Open this project file (*.sqbpro) - + The -s/--sql option requires an argument - + The file %1 does not exist - + The -t/--table option requires an argument - - The -o/--option option requires an argument in the form group/setting=value + + The -S/--settings option requires an argument. The option is ignored. + + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value + + + + + SQLite Version - + + SQLCipher Version %1 (based on SQLite %2) + + + + + DB Browser for SQLite Version %1. + + + + + Built for %1, running on %2 + + + + + Qt Version %1 + + + + Invalid option/non-existant file: %1 @@ -285,6 +325,11 @@ KDF algorithm + + + Plaintext Header Size + + Please set a key to encrypt the database. @@ -318,283 +363,425 @@ If any of the other settings were altered for this database file you need to pro - + Default - + Decimal number - + Exponent notation - + Hex blob - + Hex number - + Octal number - + Round number - + Apple NSDate to date - + Java epoch (milliseconds) to date - + + .NET DateTime.Ticks to date + + + + Julian day to date - + Unix epoch to date - + Unix epoch to local time - + Windows DATE to date - + Date as dd/mm/yyyy - + Lower case - + Upper case - + + Binary GUID to text + + + + Custom + + + Custom display format must contain a function call applied to %1 + + + + + Error in custom display format. Message from database engine: + +%1 + + + + + Custom display format must return only one column but it returned %1. + + - DBBrowserDB + CondFormatManager + + + Conditional Format Manager + + + + + This dialog allows creating and editing conditional formats. Each cell style will be selected by the first accomplished condition for that cell data. Conditional formats can be moved up and down, where those at higher rows take precedence over those at lower. Syntax for conditions is the same as for filters and an empty condition applies to all values. + + + + + Add new conditional format + + + + + &Add + + + + + Remove selected conditional format + + + + + &Remove + + + + + Move selected conditional format up + + + + + Move &up + + + + + Move selected conditional format down + + + + + Move &down + + + + + Foreground + + + + + Text color + + + + + Background + + + + + Background color + + + + + Font + + + + + Size + + + + + Bold + + + + + Italic + + + + + Underline + + + + + Alignment + + + + + Condition + + + + + + Click to select color + + - - This database has already been attached. Its schema name is '%1'. + + Are you sure you want to clear all the conditional formats of this field? + + + DBBrowserDB - + Please specify the database name under which you want to access the attached database - + Invalid file format - + Do you really want to close this temporary database? All data will be lost. - + Do you want to save the changes made to the database file %1? - + + Database didn't close correctly, probably still busy + + + + The database is currently busy: - + Do you want to abort that other operation? - + Exporting database to SQL file... - - + + Cancel - - + + No database file opened - + Executing SQL... - + Action cancelled. - - + + Error in statement #%1: %2. Aborting execution%3. - - + + and rolling back - + didn't receive any output from %1 - + could not execute command: %1 - + Cannot delete this object - + Cannot set data on this object - - + + A table with the name '%1' already exists in schema '%2'. - + No table with name '%1' exists in schema '%2'. - - + + Cannot find column %1. - + Creating savepoint failed. DB says: %1 - + Renaming the column failed. DB says: %1 - - + + Releasing savepoint failed. DB says: %1 - + Creating new table failed. DB says: %1 - + Copying data to new table failed. DB says: %1 - + Deleting old table failed. DB says: %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: - - Error renaming table '%1' to '%2'.Message from database engine: + + Error renaming table '%1' to '%2'. +Message from database engine: %3 - - ... <string can not be logged, contains binary data> ... + + could not get list of db objects: %1 - - could not get list of db objects: %1, %2 - - - - + could not get list of databases: %1 - + Error setting pragma %1 to %2: %3 - + File not found. - + Error loading extension: %1 - + could not get column information @@ -602,62 +789,62 @@ Aborting execution%3. DbStructureModel - + Name - + Object - + Type - + Schema - + Database - + Browsables - + All - + Temporary - + Tables (%1) - + Indices (%1) - + Views (%1) - + Triggers (%1) @@ -670,341 +857,357 @@ Aborting execution%3. - + Mode: - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. - + Text - + + RTL Text + + + + Binary - + + Image - + JSON - + XML - - + + Automatically adjust the editor mode to the loaded data type - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. - + Auto-switch - - + + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. + +Errors are indicated with a red squiggle underline. + + + + + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. + + + + + Open preview dialog for printing the data currently stored in the cell + + + + Auto-format: pretty print on loading, compact on saving. - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. - - Autoformat + + Word Wrap - - Import from file + + Wrap lines on word boundaries - - Opens a file dialog used to import any kind of data to this database cell. + + + Open in default application or browser - - &Import + + Open in application - - Export to file + + The value is interpreted as a file or URL and opened in the default application or web browser. - - Opens a file dialog used to export the contents of this database cell to a file. + + Save file reference... - - &Export + + Save reference to file - - Set this cell to NULL + + + Open in external application - - Erases the contents of the cell + + Autoformat - - Set as &NULL + + &Export... - - This area displays information about the data present in this database cell + + + &Import... - - This editor mode lets you edit JSON or XML data with syntax highlighting, automatic formatting and validation before saving. - -Errors are indicated with a red squiggle underline. + + + Import from file - + + + Opens a file dialog used to import any kind of data to this database cell. + + + + + Export to file + + + + + Opens a file dialog used to export the contents of this database cell to a file. + + + + + Erases the contents of the cell + + + + + Set as &NULL + + + + + This area displays information about the data present in this database cell + + + + Type of data currently in cell - + Size of data currently in table - + Apply data to cell - + This button saves the changes performed in the cell editor to the database cell. - + Apply - - + Print... - - Open preview dialog for printing displayed image - - - - - + Ctrl+P - + Open preview dialog for printing displayed text - + Copy Hex and ASCII - + Copy selected hexadecimal and ASCII columns to the clipboard - + Ctrl+Shift+C - - + + Image data can't be viewed in this mode. - - + + Try switching to Image or Binary mode. - - + + Binary data can't be viewed in this mode. - - + + Try switching to Binary mode. - - - - - Text files (*.txt) + + + Image files (%1) - - - - JSON files (*.json) + + Binary files (*.bin) - - - - - XML files (*.xml) + + Choose a file to import - - - Image files (%1) - - - - - - - Binary files (*.bin) - - - - - - All files (*) - - - - - Choose a file to import - - - - + %1 Image - - SVG files (*.svg) - - - - - - Hex dump files (*.txt) - - - - + Choose a filename to export data - + Invalid data for this mode - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? - - + + Type of data currently in cell: Text / Numeric - - - + + + %n character(s) - + Type of data currently in cell: %1 Image - + %1x%2 pixel(s) - + Type of data currently in cell: NULL - - + + %n byte(s) - + Type of data currently in cell: Valid JSON - + Type of data currently in cell: Binary + + + Couldn't save file: %1. + + + + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + + EditIndexDialog @@ -1069,13 +1272,13 @@ Errors are indicated with a red squiggle underline. - + Deleting the old index failed: %1 - + Creating the index failed: %1 @@ -1098,11 +1301,6 @@ Errors are indicated with a red squiggle underline. Advanced - - - Database schema - - Without Rowid @@ -1114,155 +1312,245 @@ Errors are indicated with a red squiggle underline. - + Fields - - Add field + + + Name - - Remove field + + + Type - - Move field up + + NN - - Move field down + + Not null - - Name + + PK - - Type + + Database sche&ma - - NN + + Add - - Not null + + Remove - - PK + + Move to top + + + + + Move up + + + + + Move down - - Primary key + + Move to bottom - + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + + + + AI - + Autoincrement - + U - + + + Unique - + Default - + Default value - + + + Check - + Check constraint - + + Collation + + + + + + Foreign Key - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + + Constraints + + + + + Add constraint + + + + + Remove constraint + + + + + Columns + + + + + SQL + + + + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> - + + + Primary Key + + + + + Add a primary key constraint + + + + + Add a foreign key constraint + + + + + Add a unique constraint + + + + + Add a check constraint + + + + + + There can only be one primary key for each table. Please modify the existing primary key instead. + + + + Error creating table. Message from database engine: %1 - + There already is a field with that name. Please rename it first or choose a different name for this field. - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. - + Column '%1' has duplicate data. - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled @@ -1354,54 +1642,44 @@ All data currently stored in this field will be lost. - + Export data as JSON - + exporting CSV - - + + Could not open output file: %1 - + exporting JSON - - Text files(*.csv *.txt) - - - - - Text files(*.json *.js *.txt) - - - - - + + Choose a filename to export data - + Please select at least 1 table. - + Choose a directory - + Export completed. @@ -1469,27 +1747,22 @@ All data currently stored in this field will be lost. - + Please select at least one table. - - - Choose a filename to export - - - Text files(*.sql *.txt) + Choose a filename to export - + Export completed. - + Export cancelled or failed. @@ -1497,24 +1770,34 @@ All data currently stored in this field will be lost. ExtendedScintilla - - + + Ctrl+H - - + + Ctrl+F + + + + + Ctrl+P - + + Find... + + + + Find and Replace... - + Print... @@ -1522,111 +1805,131 @@ All data currently stored in this field will be lost. ExtendedTableWidget - + Use as Exact Filter - + Containing - + Not containing - + Not equal to - + Greater than - + Less than - + Greater or equal - + Less or equal - + Between this and... - + Regular expression - + + Edit Conditional Formats... + + + + Set to NULL - + + Cut + + + + Copy - + Copy with Headers - + Copy as SQL - + Paste - + Print... - + Use in Filter Expression - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? + + + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. + + + + + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. + + FileExtensionManager @@ -1657,7 +1960,7 @@ Do you want to insert it anyway? - + Description @@ -1667,7 +1970,7 @@ Do you want to insert it anyway? - + *.extension @@ -1675,12 +1978,12 @@ Do you want to insert it anyway? FilterLineEdit - + Filter - + These input fields allow you to perform quick filters in the currently selected table. By default, the rows containing the input text are filtered out. The following operators are also supported: @@ -1696,90 +1999,95 @@ x~y Range: values between x and y - + Clear All Conditional Formats - + Use for Conditional Format - + Set Filter Expression - + What's This? - + Is NULL - + Is not NULL - + Is empty - + Is not empty - + Not containing... - + Equal to... - + Not equal to... - + Greater than... - + Less than... - + Greater or equal... - + Less or equal... - + In range... - + Regular expression... + + + Edit Conditional Formats... + + FindReplaceDialog @@ -1859,57 +2167,62 @@ x~y Range: values between x and y - + + F3 + + + + &Replace - + Highlight all the occurrences of the text in the page - + F&ind All - + Replace all the occurrences of the text in the page - + Replace &All - + The searched text was not found - + The searched text was not found. - + The searched text was replaced one time. - + The searched text was found one time. - + The searched text was replaced %1 times. - + The searched text was found %1 times. @@ -1927,6 +2240,39 @@ x~y Range: values between x and y + + ImageViewer + + + Image Viewer + + + + + Reset the scaling to match the original size of the image. + + + + + Set the scaling to match the size of the viewport. + + + + + Print... + + + + + Open preview dialog for printing displayed image + + + + + Ctrl+P + + + ImportCsvDialog @@ -1961,7 +2307,7 @@ x~y Range: values between x and y - + Tab @@ -1971,168 +2317,178 @@ x~y Range: values between x and y - - - + Other - + &Quote character - + + + Other (printable) + + + + + + Other (code) + + + + " - + ' - + &Encoding - + UTF-8 - + UTF-16 - + ISO-8859-1 - + Trim fields? - + Separate tables - + Advanced - + When importing an empty value from the CSV file into an existing table with a default value for this column, that default value is inserted. Activate this option to insert an empty value instead. - + Ignore default &values - + Activate this option to stop the import when trying to import an empty value into a NOT NULL column without a default value. - + Fail on missing values - + Disable data type detection - + Disable the automatic data type detection when creating a new table. - + When importing into an existing table with a primary key, unique constraints or a unique index there is a chance for a conflict. This option allows you to select a strategy for that case: By default the import is aborted and rolled back but you can also choose to ignore and not import conflicting rows or to replace the existing row in the table. - + Abort import - + Ignore row - + Replace existing row - + Conflict strategy - - + + Deselect All - + Match Similar - - Import completed - - - - + Select All - + There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. - + There is already a table named '%1'. Do you want to import the data into it? - + Creating restore point failed: %1 - + Creating the table failed: %1 - + importing CSV - + Inserting row failed: %1 + + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. @@ -2147,337 +2503,152 @@ x~y Range: values between x and y - + + Database Structure + This has to be equal to the tab title in all the main tabs - + This is the structure of the opened database. You can drag SQL statements from an object row and drop them into other applications or into another instance of 'DB Browser for SQLite'. - + + Browse Data + This has to be equal to the tab title in all the main tabs - - &Table: + + + Edit Pragmas + This has to be equal to the tab title in all the main tabs - - Select a table to browse data + + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. - - Use this list to select a table to be displayed in the database view + + + Execute SQL + This has to be equal to the tab title in all the main tabs - - Refresh the data in the selected table + + toolBar1 - - This button refreshes the data in the currently selected table. + + &File - - Clear all filters + + &Import - - This button clears all the filters set in the header input fields for the currently browsed table. + + &Export - - Save the table as currently displayed + + Recent Files - - <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> + + &Edit - - ... + + &View - - Print currently browsed table data + + &Help - - Print currently browsed table data. Print selection if more than one cell is selected. + + &Tools - - Insert a new record in the current table + + DB Toolbar - - <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> + + Edit Database &Cell - - - New Record + + SQL &Log - - Delete the current record + + Show S&QL submitted by - - This button deletes the record or records currently selected in the table + + User - - - Delete Record + + Application - - This is the database table view. You can do the following actions: - - Start writing for editing inline the value. - - Double-click any record to edit its contents in the cell editor window. - - Alt+Del for deleting the cell content to NULL. - - Ctrl+" for duplicating the current record. - - Ctrl+' for copying the value from the cell above. - - Standard selection and copy/paste operations. + + Error Log - - <html><head/><body><p>Scroll to the beginning</p></body></html> + + This button clears the contents of the SQL logs - - <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - - - - - |< - - - - - Scroll one page upwards - - - - - <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - - - - - < - - - - - 0 - 0 of 0 - - - - - Scroll one page downwards - - - - - <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - - - - - > - - - - - Scroll to the end - - - - - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - - - >| - - - - - <html><head/><body><p>Click here to jump to the specified record</p></body></html> - - - - - <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - - - - - Go to: - - - - - Enter record number to browse - - - - - Type a record number in this area and click the Go to: button to display the record in the database view - - - - - 1 - - - - - Edit Pragmas - - - - - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - - - - - Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. - - - - - Execute SQL - - - - - toolBar1 - - - - - &File - - - - - &Import - - - - - &Export - - - - - &Edit - - - - - &View - - - - - &Help - - - - - &Tools - - - - - DB Toolbar - - - - - Edit Database &Cell - - - - - SQL &Log - - - - - Show S&QL submitted by - - - - - User - - - - - Application - - - - - This button clears the contents of the SQL logs - - - - + &Clear - + This panel lets you examine a log of all SQL commands issued by the application or by yourself - + &Plot - + DB Sche&ma - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. @@ -2485,1642 +2656,1716 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - + &Remote - - + + Project Toolbar - + Extra DB toolbar - - - + + + Close the current database file - + &New Database... - - + + Create a new database file - + This option is used to create a new database file. - + Ctrl+N - - + + &Open Database... - - - - - + + + + + Open an existing database file - - - + + + This option is used to open an existing database file. - - + Ctrl+O - + &Close Database - + This button closes the connection to the currently open database file - + + Ctrl+W - + &Revert Changes - - + + Revert database to last saved state - + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. - + &Write Changes - - + + Write changes to the database file - + This option is used to save changes to the database file. - + Ctrl+S - + Compact &Database... - + Compact the database file, removing space wasted by deleted records - - + + Compact the database file, removing space wasted by deleted records. - + E&xit - + Ctrl+Q - + &Database from SQL file... - + Import data from an .sql dump text file into a new or existing database. - + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. - + &Table from CSV file... - + Open a wizard that lets you import data from a comma separated text file into a database table. - + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. - + &Database to SQL file... - + Export a database to a .sql dump text file. - + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. - + &Table(s) as CSV file... - + Export a database table as a comma separated text file. - + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. - + &Create Table... - + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database - + &Delete Table... - - + + Delete Table - + Open the Delete Table wizard, where you can select a database table to be dropped. - + &Modify Table... - + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. - + Create &Index... - + Open the Create Index wizard, where it is possible to define a new index on an existing database table. - + &Preferences... - - + + Open the preferences window. - + &DB Toolbar - + Shows or hides the Database toolbar. - - - Ctrl+T - - - - - W&hat's This? + + New &tab - - Shift+F1 + + Ctrl+T - - &About + + Open SQL file(s) - - &Recently opened + + This button opens files containing SQL statements and loads them in new editor tabs - - Open &tab + + Sa&ve Project - - This button opens a new tab for the SQL editor + + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file - - &Execute SQL + + This button lets you open a DB Browser for SQLite project file - - Execute all/selected SQL + + Ctrl+Shift+O - - This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. + + &Save Project As... - - Ctrl+Return - + + + + Save the project in a file selected in a dialog + - - Open SQL file + + Save A&ll - - This button opens a file containing SQL statements and loads it in a new editor tab + + + + Save DB file, project file and opened SQL files - - - - Save SQL file + + Ctrl+Shift+S - - &Load Extension... + + Browse Table - - - Execute current line + + Close Pro&ject - - This button executes the SQL statement present in the current editor line + + Close project and database files and return to the initial state - - Shift+F5 - + + Ctrl+Shift+F4 + - - Export as CSV file + + + Detach Database - - Export table as comma separated values file + + + Detach database file attached to the current database connection - - &Wiki + + W&hat's This? - - Bug &Report... + + Ctrl+F4 - - Feature Re&quest... - + + Shift+F1 + - - Web&site + + &About - - &Donate on Patreon... + + &Recently opened - - Sa&ve Project... + + This button opens a new tab for the SQL editor - - - Save the current session to a file + + &Execute SQL - - This button lets you save all the settings associated to the open DB to a DB4S project file + + Execute all/selected SQL - - Open &Project... + + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. - - - Load a working session from a file - + + Ctrl+Return + - - This button lets you open a DB4S project file + + + + Save SQL file - - &Attach Database... + + &Load Extension... - - - Add another database file to the current database connection + + + Execute current line - - This button lets you add another database file to the current database connection + + Execute line - - &Set Encryption... + + This button executes the SQL statement present in the current editor line - - - Save SQL file as - + + Shift+F5 + - - This button saves the content of the current SQL editor tab to a file + + Export as CSV file - - &Browse Table + + Export table as comma separated values file - - Copy Create statement + + &Wiki - - Copy the CREATE statement of the item to the clipboard + + F1 - - Edit display format + + Bug &Report... - - Edit the display format of the data in this column + + Feature Re&quest... - - Show rowid column + + Web&site - - Toggle the visibility of the rowid column + + &Donate on Patreon... - - - Set encoding + + + Save the current session to a file - - Change the encoding of the text in the table cells + + Open &Project... - - Set encoding for all tables + + + Load a working session from a file - - Change the default encoding assumed for all tables in the database - - - - - SQLCipher &FAQ - - - - - Opens the SQLCipher FAQ in a browser window + + &Attach Database... - - Table(&s) to JSON... + + + Add another database file to the current database connection - - Export one or more table(s) to a JSON file + + This button lets you add another database file to the current database connection - - Refresh + + &Set Encryption... - - F5 - - - - - Open Data&base Read Only... + + + Save SQL file as - - Open an existing database file in read only mode + + This button saves the content of the current SQL editor tab to a file - - Unlock view editing + + &Browse Table - - This unlocks the current view for editing. However, you will need appropriate triggers for editing. + + Copy Create statement - - Save results + + Copy the CREATE statement of the item to the clipboard - - Save the results view + + SQLCipher &FAQ - - This button lets you save the results of the last executed query + + Opens the SQLCipher FAQ in a browser window - - - Find text in SQL editor + + Table(&s) to JSON... - - This button opens the search bar of the editor + + Export one or more table(s) to a JSON file - - Ctrl+F - - - - - - Find or replace text in SQL editor + + Open Data&base Read Only... - - This button opens the find/replace dialog for the current editor tab + + Open an existing database file in read only mode - - Ctrl+H - - - - - - Export to &CSV + + Save results - - - Save as &view + + Save the results view - - Save as view + + This button lets you save the results of the last executed query - - Hide column(s) + + + Find text in SQL editor - - Hide selected column(s) + + Find - - Show all columns + + This button opens the search bar of the editor - - Show all columns that were hidden - + + Ctrl+F + - - Shows or hides the Project toolbar. + + + Find or replace text in SQL editor - - Extra DB Toolbar + + Find or replace - - - Export the filtered data to CSV + + This button opens the find/replace dialog for the current editor tab - - This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - + + Ctrl+H + - - - Save the current filter, sort column and display formats as a view + + Export to &CSV - - This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. + + Save as &view - - Insert Values... + + Save as view - - - Open a dialog for inserting values in a new record + + Shows or hides the Project toolbar. - - - Insert new record using default values in browsed table + + Extra DB Toolbar - + New In-&Memory Database - + Drag && Drop Qualified Names - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor - + Drag && Drop Enquoted Names - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - + &Integrity Check - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. - + &Foreign-Key Check - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - + &Quick Integrity Check - + Run a quick integrity check over the open DB - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. - + &Optimize - + Attempt to optimize the database - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. - - + + Print - + Print text from current SQL editor tab - + Open a dialog for printing the text in the current SQL editor tab - - + + Ctrl+P - + Print the structure of the opened database - + Open a dialog for printing the structure of the opened database - + Un/comment block of SQL code - + + Un/comment block + + + + Comment or uncomment current line or selected block of code - + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. - + Ctrl+/ - + Stop SQL execution - + + Stop execution + + + + Stop the currently running SQL script - + Ctrl+L - + Ctrl+D - + Ctrl+I - + Ctrl+E - + The database is currenctly busy. - + Click here to interrupt the currently running query. - + Encrypted - + Database is encrypted using SQLCipher - + Read only - + Database file is read only. Editing the database is disabled. - + Database encoding - - + + Choose a database file - + Could not open database file. Reason: %1 - - - + + + Choose a filename to save under - + In-Memory database - - You are still executing SQL statements. When closing the database now the execution will be stopped. maybe leaving the database in an incosistent state. Are you sure you want to close the database? - - - - - Error deleting record: -%1 - - - - - Please select a record first - - - - - determining row count... - - - - - %1 - %2 of >= %3 - - - - - %1 - %2 of %3 - - - - - - There is no database opened. Please open or create a new database file. - - - - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. - + Are you sure you want to delete the view '%1'? - + Are you sure you want to delete the trigger '%1'? - + Are you sure you want to delete the index '%1'? - + Error: could not delete the table. - + Error: could not delete the view. - + Error: could not delete the trigger. - + Error: could not delete the index. - + Message from database engine: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? - + Error checking foreign keys after table modification. The changes will be reverted. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. - + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. - + -- EXECUTING SELECTION IN '%1' -- - + -- EXECUTING LINE IN '%1' -- - + -- EXECUTING ALL IN '%1' -- - - -- At line %1: -%3 --- Result: %2 - - - - + %1 rows returned in %2ms - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? - + Execution finished with errors. - + Execution finished without errors. - + Choose text files - - Text files(*.csv *.txt);;All files(*) - - - - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 - + Are you sure you want to undo all changes made to the database file '%1' since the last save? - + Choose a file to import - - - - Text files(*.sql *.txt);;All files(*) + + Opened '%1' in read-only mode from recent file list - - Do you want to create a new database file to hold the imported data? -If you answer no we will attempt to import the data in the SQL file to the current database. + + Opened '%1' from recent file list - - File %1 already exists. Please choose a different name. + + &%1 %2%3 - - Error importing data: %1 + + (read only) - - Import completed. Some foreign key constraints are violated. Please fix them before saving. + + Open Database or Project - - Import completed. + + Attach Database... - - Delete View + + Import CSV file(s)... + + + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. + + + + - - Modify View + + Do you want to save the changes made to SQL tabs in a new project file? - - Delete Trigger + + Do you want to save the changes made to SQL tabs in the project file '%1'? - - Modify Trigger + + Do you want to save the changes made to the SQL file %1? - - Delete Index + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? - - Modify Index + + Text files(*.sql *.txt);;All files(*) - - Modify Table + + Do you want to create a new database file to hold the imported data? +If you answer no we will attempt to import the data in the SQL file to the current database. - - &%1 %2 + + Ctrl+Tab - - Setting PRAGMA values will commit your current transaction. -Are you sure? + + Ctrl+Shift+Tab - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + Ctrl+PgUp - - Select SQL file to open + + Clear List - - Couldn't read file: %1. + + Window Layout - - Couldn't save file: %1. + + Reset Window Layout - - Select file name + + Alt+0 - - Select extension file + + Simplify Window Layout - - Extensions(*.so *.dylib *.dll);;All files(*) + + Shift+Alt+0 - - Extension successfully loaded. + + Dock Windows at Bottom - - Error loading extension: %1 + + Dock Windows at Left Side - - - Don't show again + + Dock Windows at Top - - New version available. + + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? - - A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. + + Do you want to save the changes made to the project file '%1'? - - Choose a project file to open + + Edit View %1 - - - DB Browser for SQLite project file (*.sqbpro) + + Edit Trigger %1 - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. + + + At line %1: - - Duplicate records + + Result: %1 - - Duplicate record + + Result: %2 - - Ctrl+" - + + File %1 already exists. Please choose a different name. + - - Please choose a new encoding for all tables. + + Error importing data: %1 - - Please choose a new encoding for this table. + + Import completed. Some foreign key constraints are violated. Please fix them before saving. - - %1 -Leave the field empty for using the database encoding. + + Import completed. - - This encoding is either not valid or not supported. + + Delete View - - Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. + + Modify View - - Collation needed! Proceed? + + Delete Trigger - - A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. -If you choose to proceed, be aware bad things can happen to your database. -Create a backup! + + Modify Trigger - - creating collation + + Delete Index - - Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. + + Modify Index - - Please specify the view name + + Modify Table - - There is already an object with that name. Please choose a different name. + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. - - View successfully created. + + Could not open project file for writing. +Reason: %1 - - Error creating view: %1 + + Project saved to file '%1' - - There is no filter set for this table. View will not be created. + + Yes. Don't ask again - - Delete Records + + Rename Tab - - This action will open a new SQL tab for running: + + Duplicate Tab - - Press Help for opening the corresponding SQLite reference page. + + Close Tab - - Busy (%1) + + Opening '%1'... - - - NullLineEdit - - Set to NULL + + There was an error opening '%1'... - - Alt+Del - + + Value is not a valid URL or filename: %1 + - - - PlotDock - - Plot + + Setting PRAGMA values will commit your current transaction. +Are you sure? - - <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> + + Select SQL file to open - - Columns + + Select file name - - X + + Select extension file - - Y + + Extension successfully loaded. - - Axis Type + + Error loading extension: %1 - - Here is a plot drawn when you select the x and y values above. - -Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. - -Use mouse-wheel for zooming and mouse drag for changing the axis range. - -Select the axes or axes labels to drag and zoom only in that orientation. + + Could not find resource file: %1 - - Line type: + + + Don't show again - - - None + + New version available. - - Line + + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. - - StepLeft + + Choose a project file to open - - StepRight + + DB Browser for SQLite project file (*.sqbpro) + + + + + Collation needed! Proceed? + + + + + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. +If you choose to proceed, be aware bad things can happen to your database. +Create a backup! + + + + + creating collation + + + + + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + + + Please specify the view name + + + + + There is already an object with that name. Please choose a different name. + + + + + View successfully created. + + + + + Error creating view: %1 + + + + + This action will open a new SQL tab for running: + + + + + This action will open a new SQL tab with the following statements for you to edit and run: + + + + + Press Help for opening the corresponding SQLite reference page. + + + + + Busy (%1) + + + + + NullLineEdit + + + Set to NULL + + + + + Alt+Del + + + + + PlotDock + + + Plot + + + + + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> + + + + + Columns + + + + + X + + + + + Y1 + + + + + Y2 + + + + + Axis Type + + + + + Here is a plot drawn when you select the x and y values above. + +Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. + +Use mouse-wheel for zooming and mouse drag for changing the axis range. + +Select the axes or axes labels to drag and zoom only in that orientation. + + + + + Line type: + + + + + + None + + + + + Line + + + + + StepLeft + + + + + StepRight - + StepCenter - + Impulse - + Point shape: - + Cross - + Plus - + Circle - + Disc - + Square - + Diamond - + Star - + Triangle - + TriangleInverted - + CrossSquare - + PlusSquare - + CrossCircle - + PlusCircle - + Peace - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - + Save current plot... - - + + Load all data and redraw plot - + Copy - + Print... - + Show legend - + Stacked bars - + Date/Time - + Date - + Time - - + + Numeric - + Label - + Invalid - - - + + + Row # - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. - + Choose an axis color - + Choose a filename to save under - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. + + + Loading all remaining data for this table took %1ms. + + PreferencesDialog @@ -4156,8 +4401,8 @@ Warning: not all data has been fetched from the table yet due to the partial fet - - + + ... @@ -4173,1290 +4418,2753 @@ Warning: not all data has been fetched from the table yet due to the partial fet + + + + Only display the icon + + + + Only display the text + + + + The text appears beside the icon + + + + The text appears under the icon + + + + Follow the style - - - - - - - - + + + + + + + + + + enabled - + Automatic &updates - + DB file extensions - + Manage - + Show remote options - + &Database - + Database &encoding - + Open databases with foreign keys enabled. - + &Foreign keys - + Remove line breaks in schema &view - + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. - + Prefetch block si&ze - - Advanced + + SQ&L to execute after opening database - - SQ&L to execute after opening database + + Default field type - Default field type + Main Window + + + + + Database Structure + + + + + Browse Data + + + + + Execute SQL + + + + + Edit Database Cell + + + + + When this value is changed, all the other color preferences are also set to matching colors. + + + + + Follow the desktop style + + + + + Dark style + + + + + Application style + + + + + This sets the font size for all UI elements which do not have their own font size option. + + + + + Font size + + + + + Max Recent Files - + + Prompt to save SQL tabs +in new project file + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + + Database structure font size + + + + Data &Browser - + Font - + &Font - + Font si&ze - + Content - + Symbol limit in cell - - + + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: +Maximum number of rows in a table for enabling the value completion based on current values in the column. +Maximum number of indexes in a selection for calculating sum and average. +Can be set to 0 for disabling the functionalities. + + + + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. - - Row count threshold for completion + + Threshold for completion and calculation on selection + + + + + Show images in cell + + + + + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. - + Field display - + Displayed &text - + Binary - + NULL - + Regular - + + + + + + + Click to set this color + + + + Text color - + Background color - + Preview only (N/A) - + Filters - + Escape character - + Delay time (&ms) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. - + &SQL - + Settings name - + Context - + Colour - + Bold - + Italic - + Underline - + Keyword - + Function - + Table - + Comment - + Identifier - + String - + Current line - + Background - + Foreground - + + selected_bg + + + + + Selection background + + + + + selected_fg + + + + + Selection foreground + + + + + highlight + + + + + Highlight + + + + SQL editor &font - + SQL &editor font size - + SQL &results font size - + Tab size - + &Wrap lines - + Never - + At word boundaries - + At character boundaries - + At whitespace boundaries - + &Quotes for identifiers - + Choose the quoting mechanism used by the application for identifiers in SQL code. - + "Double quotes" - Standard SQL (recommended) - + `Grave accents` - Traditional MySQL quotes - + [Square brackets] - Traditional MS SQL Server quotes - + Code co&mpletion - + Keywords in &UPPER CASE - + When set, the SQL keywords are completed in UPPER CASE letters. - + Error indicators - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background - + Hori&zontal tiling - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. - + + Close button on tabs + + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + + + + &Extensions - + Select extensions to load for every database: - + Add extension - + Remove extension - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> - + Disable Regular Expression extension - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> - + Allow loading extensions from SQL code - + Remote - + Your certificates - + File - - + + Subject CN - + Subject Common Name - + Issuer CN - + Issuer Common Name - - + + Valid from - - + + Valid to - - + + Serial number - + CA certificates - + Common Name - + Subject O - + Organization - + Clone databases into - - + + Proxy + + + + + Configure + + + + + Export Settings + + + + + Import Settings + + + + + Choose a directory - + + The language will change after you restart the application. - + Select extension file - + Extensions(*.so *.dylib *.dll);;All files(*) - + Import certificate file - + No certificates found in this file. - + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! - + Are you sure you want to clear all the saved settings? All your preferences will be lost and default values will be used. - - - QObject - - - All files (*) - - - - Error importing data + + Save Settings File - - from record number %1 + + + Initialization File (*.ini) - - . -%1 + + The settings file has been saved in location : + - - Importing CSV file... + + Open Settings File - - Cancel + + The settings file was loaded properly. - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3) + + The selected settings file is not a normal settings file. +Please check again. - RemoteDatabase + ProxyDialog - - Error when connecting to %1. -%2 + + Proxy Configuration - - Error opening remote file at %1. -%2 - - - - - Error: Invalid client certificate specified. + + Pro&xy Type - - Please enter the passphrase for this client certificate in order to authenticate. + + Host Na&me - - Cancel + + Port - - Uploading remote database to -%1 + + Authentication Re&quired - - Downloading remote database from -%1 + + &User Name - - - Error: The network is not accessible. + + Password - - Error: Cannot open the file for sending. + + None - - Error opening local databases list. -%1 + + System settings - - Error creating local databases list. -%1 + + HTTP - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. + + Socks v5 - RemoteDock - - - Remote - - + QObject - - Identity + + All files (*) - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. + + Error importing data - - Go + + from record number %1 - - Push currently opened database to server + + . +%1 - - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB4S. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to create a DB4S certificate (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB4S Preferences. Click the button to add a new certificate to DB4S and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> + + Importing CSV file... - - <html><head/><body><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> + + Cancel - - - RemoteModel - - Name + + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) - - Commit + + Left - - Last modified + + Right - - Size + + Center - - bytes + + Justify - - - RemotePushDialog - - Push database + + SQLite Database Files (*.db *.sqlite *.sqlite3 *.db3) - - Database na&me to push to + + DB Browser for SQLite Project Files (*.sqbpro) - - Commit message + + SQL Files (*.sql) - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + + All Files (*) - - Database licence + + Text Files (*.txt) - - Public + + Comma-Separated Values Files (*.csv) - - Branch + + Tab-Separated Values Files (*.tsv) - - Force push + + Delimiter-Separated Values Files (*.dsv) - - Database will be public. Everyone has read access to it. + + Concordance DAT files (*.dat) - - Database will be private. Only you have access to it. + + JSON Files (*.json *.js) - - Use with care. This can cause remote commits to be deleted. + + XML Files (*.xml) - - Unspecified + + Binary Files (*.bin *.dat) - - - RunSql - - Execution aborted by user + + SVG Files (*.svg) - - , %1 rows affected + + Hex Dump Files (*.dat *.bin) - - query executed successfully. Took %1ms%2 + + Extensions (*.so *.dylib *.dll) - - executing query + + Initialization File (*.ini) - SqlExecutionArea + RemoteCommitsModel - - Form + + Commit ID - - Find previous match [Shift+F3] + + Message - - Find previous match with wrapping + + Date - - Shift+F3 - - - - - The found pattern must be a whole word + + Author - - Whole Words + + Size - - Text pattern to find considering the checks in this frame + + Authored and committed by %1 - - Find in editor + + Authored by %1, committed by %2 + + + RemoteDatabase - - The found pattern must match in letter case + + Error opening local databases list. +%1 - - Case Sensitive + + Error creating local databases list. +%1 + + + RemoteDock - - Find next match [Enter, F3] + + Remote - - Find next match with wrapping + + Identity - - F3 - + + Upload + - - Interpret search pattern as a regular expression + + DBHub.io - - <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> + + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - - Regular Expression + + Local - - - Close Find Bar + + Current Database - - - Results of the last executed statements + + Clone - - This field shows the results and status codes of the last executed statements. + + User - - - SqlTextEdit - - Ctrl+/ - + + Database + - - - SqlUiLexer - - (X) The abs(X) function returns the absolute value of the numeric argument X. + + Branch - - () The changes() function returns the number of database rows that were changed or inserted or deleted by the most recently completed INSERT, DELETE, or UPDATE statement. + + Commits - - (X1,X2,...) The char(X1,X2,...,XN) function returns a string composed of characters having the unicode code point values of integers X1 through XN, respectively. + + Commits for - - (X,Y,...) The coalesce() function returns a copy of its first non-NULL argument, or NULL if all arguments are NULL + + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> - - (X,Y) The glob(X,Y) function is equivalent to the expression "Y GLOB X". + + Back - - (X,Y) The ifnull() function returns a copy of its first non-NULL argument, or NULL if both arguments are NULL. + + Delete Database - - (X,Y) The instr(X,Y) function finds the first occurrence of string Y within string X and returns the number of prior characters plus 1, or 0 if Y is nowhere found within X. + + Delete the local clone of this database - - (X) The hex() function interprets its argument as a BLOB and returns a string which is the upper-case hexadecimal rendering of the content of that blob. + + Open in Web Browser - - () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. + + Open the web page for the current database in your browser - - (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. + + Clone from Link - - (X,Y) The like() function is used to implement the "Y LIKE X" expression. + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. - - (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. + + Refresh - - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. -Use of this function must be authorized from Preferences. + + Reload all data and update the views - - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. -Use of this function must be authorized from Preferences. + + F5 - - (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. + + Clone Database - - (X) ltrim(X) removes spaces from the left side of X. + + Open Database - - (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. + + Open the local copy of this database - - (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. + + Check out Commit - - (X,Y,...) The multi-argument min() function returns the argument with the minimum value. + + Download and open this specific commit - - (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. + + Check out Latest Commit - - (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. + + Check out the latest commit of the current branch - - (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. + + Save Revision to File - - () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. + + Saves the selected revision of the database to another file - - (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. + + Upload Database - - (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. + + Upload this database as a new commit - - (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. + + Push currently opened database to server - - (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. + + Select an identity to connect - - (X) rtrim(X) removes spaces from the right side of X. + + Public - - (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. - - (X) The soundex(X) function returns a string that is the soundex encoding of the string X. + + Invalid URL: The host name does not match the host name of the current identity. - - (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. + + Invalid URL: No branch name specified. - - (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. + + Invalid URL: No commit ID specified. - - () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? - - (X) trim(X) removes spaces from both ends of X. + + The database has unsaved changes. Are you sure you want to push it before saving? - - (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. + + The database you are trying to delete is currently opened. Please close it before deleting. - - (X) The typeof(X) function returns a string that indicates the datatype of the expression X. + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + + + RemoteLocalFilesModel - - (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. + + Name - - (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. + + Branch - - (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. + + Last modified - - - - - (timestring,modifier,modifier,...) + + Size - - (format,timestring,modifier,modifier,...) + + Commit - - (X) The avg() function returns the average value of all non-NULL X within a group. + + File + + + RemoteModel - - (X) The count(X) function returns a count of the number of times that X is not NULL in a group. + + Name - - (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. + + Commit - - (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. + + Last modified - - (X) The max() aggregate function returns the maximum value of all values in the group. + + Size - - (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. + + Size: - - - (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. + + Last Modified: - - () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. + + Licence: - - () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. + + Default Branch: + + + RemoteNetwork - - () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. + + Choose a location to save the file - - () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. + + Error opening remote file at %1. +%2 - - () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. + + Error: Invalid client certificate specified. - - (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. + + Please enter the passphrase for this client certificate in order to authenticate. - - (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. + + Cancel - - (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. + + Uploading remote database to +%1 - - - (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. + + Downloading remote database from +%1 - - (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. + + + Error: The network is not accessible. - - (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. + + Error: Cannot open the file for sending. + + + RemotePushDialog - - (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. + + Push database - - (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. + + Database na&me to push to - - (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. + + Commit message + + + + + Database licence + + + + + Public + + + + + Branch + + + + + Force push + + + + + Username + + + + + Database will be public. Everyone has read access to it. + + + + + Database will be private. Only you have access to it. + + + + + Use with care. This can cause remote commits to be deleted. - SqliteTableModel + RunSql - - reading rows + + Execution aborted by user - - loading... + + , %1 rows affected - - References %1(%2) -Hold %3Shift and click to jump there + + query executed successfully. Took %1ms%2 - - Error changing data: -%1 + + executing query + + + SelectItemsPopup - - retrieving list of columns + + A&vailable - - Fetching data... + + Sele&cted + + + + + SqlExecutionArea + + + Form - - Cancel + + Find previous match [Shift+F3] + + + + + Find previous match with wrapping + + + + + Shift+F3 + + + + + The found pattern must be a whole word + + + + + Whole Words + + + + + Text pattern to find considering the checks in this frame + + + + + Find in editor + + + + + The found pattern must match in letter case + + + + + Case Sensitive + + + + + Find next match [Enter, F3] + + + + + Find next match with wrapping + + + + + F3 + + + + + Interpret search pattern as a regular expression + + + + + <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> + + + + + Regular Expression + + + + + + Close Find Bar + + + + + <html><head/><body><p>Results of the last executed statements.</p><p>You may want to collapse this panel and use the <span style=" font-style:italic;">SQL Log</span> dock with <span style=" font-style:italic;">User</span> selection instead.</p></body></html> + + + + + Results of the last executed statements + + + + + This field shows the results and status codes of the last executed statements. + + + + + Couldn't read file: %1. + + + + + + Couldn't save file: %1. + + + + + Your changes will be lost when reloading it! + + + + + The file "%1" was modified by another program. Do you want to reload it?%2 + + + + + SqlTextEdit + + + Ctrl+/ + + + + + Ctrl+PgDown + + + + + SqlUiLexer + + + (X) The abs(X) function returns the absolute value of the numeric argument X. + + + + + () The changes() function returns the number of database rows that were changed or inserted or deleted by the most recently completed INSERT, DELETE, or UPDATE statement. + + + + + (X1,X2,...) The char(X1,X2,...,XN) function returns a string composed of characters having the unicode code point values of integers X1 through XN, respectively. + + + + + (X,Y,...) The coalesce() function returns a copy of its first non-NULL argument, or NULL if all arguments are NULL + + + + + (X,Y) The glob(X,Y) function is equivalent to the expression "Y GLOB X". + + + + + (X,Y) The ifnull() function returns a copy of its first non-NULL argument, or NULL if both arguments are NULL. + + + + + (X,Y) The instr(X,Y) function finds the first occurrence of string Y within string X and returns the number of prior characters plus 1, or 0 if Y is nowhere found within X. + + + + + (X) The hex() function interprets its argument as a BLOB and returns a string which is the upper-case hexadecimal rendering of the content of that blob. + + + + + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + + + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. + + + + + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. + + + + + (X,Y) The like() function is used to implement the "Y LIKE X" expression. + + + + + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. + + + + + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. + + + + + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. + + + + + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. + + + + + (X) ltrim(X) removes spaces from the left side of X. + + + + + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. + + + + + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. + + + + + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. + + + + + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. + + + + + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. + + + + + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. + + + + + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. + + + + + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. + + + + + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. + + + + + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. + + + + + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. + + + + + (X) rtrim(X) removes spaces from the right side of X. + + + + + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. + + + + + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. + + + + + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. + + + + + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. + + + + + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. + + + + + (X) trim(X) removes spaces from both ends of X. + + + + + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. + + + + + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. + + + + + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. + + + + + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. + + + + + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. + + + + + + + + (timestring,modifier,modifier,...) + + + + + (format,timestring,modifier,modifier,...) + + + + + (X) The avg() function returns the average value of all non-NULL X within a group. + + + + + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. + + + + + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. + + + + + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. + + + + + (X) The max() aggregate function returns the maximum value of all values in the group. + + + + + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. + + + + + + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. + + + + + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. + + + + + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. + + + + + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. + + + + + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. + + + + + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. + + + + + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. + + + + + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. + + + + + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. + + + + + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. + + + + + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. + + + + + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. + + + + + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. + + + + + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. + + + + + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. + + + + + SqliteTableModel + + + reading rows + + + + + loading... + + + + + References %1(%2) +Hold %3Shift and click to jump there + + + + + Error changing data: +%1 + + + + + retrieving list of columns + + + + + Fetching data... + + + + + + Cancel + + + + + TableBrowser + + + Browse Data + + + + + &Table: + + + + + Select a table to browse data + + + + + Use this list to select a table to be displayed in the database view + + + + + This is the database table view. You can do the following actions: + - Start writing for editing inline the value. + - Double-click any record to edit its contents in the cell editor window. + - Alt+Del for deleting the cell content to NULL. + - Ctrl+" for duplicating the current record. + - Ctrl+' for copying the value from the cell above. + - Standard selection and copy/paste operations. + + + + + Text pattern to find considering the checks in this frame + + + + + Find in table + + + + + Find previous match [Shift+F3] + + + + + Find previous match with wrapping + + + + + Shift+F3 + + + + + Find next match [Enter, F3] + + + + + Find next match with wrapping + + + + + F3 + + + + + The found pattern must match in letter case + + + + + Case Sensitive + + + + + The found pattern must be a whole word + + + + + Whole Cell + + + + + Interpret search pattern as a regular expression + + + + + <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> + + + + + Regular Expression + + + + + + Close Find Bar + + + + + Text to replace with + + + + + Replace with + + + + + Replace next match + + + + + + Replace + + + + + Replace all matches + + + + + Replace all + + + + + <html><head/><body><p>Scroll to the beginning</p></body></html> + + + + + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> + + + + + |< + + + + + Scroll one page upwards + + + + + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> + + + + + < + + + + + 0 - 0 of 0 + + + + + Scroll one page downwards + + + + + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> + + + + + > + + + + + Scroll to the end + + + + + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> + + + + + >| + + + + + <html><head/><body><p>Click here to jump to the specified record</p></body></html> + + + + + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> + + + + + Go to: + + + + + Enter record number to browse + + + + + Type a record number in this area and click the Go to: button to display the record in the database view + + + + + 1 + + + + + Show rowid column + + + + + Toggle the visibility of the rowid column + + + + + Unlock view editing + + + + + This unlocks the current view for editing. However, you will need appropriate triggers for editing. + + + + + Edit display format + + + + + Edit the display format of the data in this column + + + + + + New Record + + + + + + Insert a new record in the current table + + + + + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> + + + + + + Delete Record + + + + + Delete the current record + + + + + + This button deletes the record or records currently selected in the table + + + + + + Insert new record using default values in browsed table + + + + + Insert Values... + + + + + + Open a dialog for inserting values in a new record + + + + + Export to &CSV + + + + + + Export the filtered data to CSV + + + + + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. + + + + + Save as &view + + + + + + Save the current filter, sort column and display formats as a view + + + + + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. + + + + + Save Table As... + + + + + + Save the table as currently displayed + + + + + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> + + + + + Hide column(s) + + + + + Hide selected column(s) + + + + + Show all columns + + + + + Show all columns that were hidden + + + + + + Set encoding + + + + + Change the encoding of the text in the table cells + + + + + Set encoding for all tables + + + + + Change the default encoding assumed for all tables in the database + + + + + Clear Filters + + + + + Clear all filters + + + + + + This button clears all the filters set in the header input fields for the currently browsed table. + + + + + Clear Sorting + + + + + Reset the order of rows to the default + + + + + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. + + + + + Print + + + + + Print currently browsed table data + + + + + Print currently browsed table data. Print selection if more than one cell is selected. + + + + + Ctrl+P + + + + + Refresh + + + + + Refresh the data in the selected table + + + + + This button refreshes the data in the currently selected table. + + + + + F5 + + + + + Find in cells + + + + + Open the find tool bar which allows you to search for values in the table view below. + + + + + + Bold + + + + + Ctrl+B + + + + + + Italic + + + + + + Underline + + + + + Ctrl+U + + + + + + Align Right + + + + + + Align Left + + + + + + Center Horizontally + + + + + + Justify + + + + + + Edit Conditional Formats... + + + + + Edit conditional formats for the current column + + + + + Clear Format + + + + + Clear All Formats + + + + + + Clear all cell formatting from selected cells and all conditional formats from selected columns + + + + + + Font Color + + + + + + Background Color + + + + + Toggle Format Toolbar + + + + + Show/hide format toolbar + + + + + + This button shows or hides the formatting toolbar of the Data Browser + + + + + Select column + + + + + Ctrl+Space + + + + + Replace text in cells + + + + + Freeze columns + + + + + Make all columns from the first column up to this column not move when scrolling horizontally + + + + + Filter in any column + + + + + Ctrl+R + + + + + %n row(s) + + + + + + + , %n column(s) + + + + + + + . Sum: %1; Average: %2; Min: %3; Max: %4 + + + + + Conditional formats for "%1" + + + + + determining row count... + + + + + %1 - %2 of >= %3 + + + + + %1 - %2 of %3 + + + + + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. + + + + + Delete Records + + + + + Duplicate records + + + + + Duplicate record + + + + + Ctrl+" + + + + + Adjust rows to contents + + + + + Error deleting record: +%1 + + + + + Please select a record first + + + + + There is no filter set for this table. View will not be created. + + + + + Please choose a new encoding for all tables. + + + + + Please choose a new encoding for this table. + + + + + %1 +Leave the field empty for using the database encoding. + + + + + This encoding is either not valid or not supported. + + + + + %1 replacement(s) made. + + + + + TableBrowserDock + + + New Data Browser + + + + + Rename Data Browser + + + + + Close Data Browser + + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. diff --git a/src/translations/sqlb_fr.ts b/src/translations/sqlb_fr.ts index 1388a8168..b0e9b5a24 100644 --- a/src/translations/sqlb_fr.ts +++ b/src/translations/sqlb_fr.ts @@ -3,10 +3,6 @@ AboutDialog - - About SqliteBrowser - A propos de SQLiteBrowser - About DB Browser for SQLite @@ -22,60 +18,6 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> <html><head/><body><p>DB Browser pour SQLite est un logiciel libre, open-source utilisé pour créer, concevoir et modifier des Bases de Données SQLite.</p><p>Ce programme vous est proposé sous une double licence : Mozilla Public License Version 2 et GNU General Public License Version 3 ou suivante. Vous pouvez le modifier ou le redistribuer en respectant les conditions de ces licences.</p><p>Voir : <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> et <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> pour plus de détails</p><p>Pour plus d'information concernant ce programme, visitez notre site Internet : <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">Ce logiciel utilise le GPL/LGPL Qt Toolkit fourni par </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Voir : </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> pour les conditions de licence et toute autre information.</span></p><p><span style=" font-size:small;">Il utilise le jeu d&apos;icones Silk créé par Mark James disponible selon la licence Creative Commons Attribution 2.5 and 3.0.<br/>Voir </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> pour plus de details.</span></p></body></html> - - <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> for details.</p><p>For more information on this program please visit our website at: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - DB Browser pour SQLite est un logiciel libre, open-source utilisé pour créer, concevoir et modifier des bases de données SQLite. - <html><head/><body><p>DB Browser pour SQLite est un logiciel libre, open-source utilisé pour créer, concevoir et modifier des Bases de Données SQLite.</p><p>Ce programme est proposé sous une double licence : Mozilla Public License Version 2 et GNU General Public License Version 3 ou suivante. Vous pouvez le modifier ou le redistribuer en respectant les conditions de ces licences.</p><p>Voir <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> et <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> pour plus de détails.</p><p>Pour plus d'information concernant ce programme, visitez notre site Internet sur : <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">Ce logiciel utilise le GPL/LGPL Qt Toolkit fourni par </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Voir </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> pour les conditions de licence et toute autre information.</span></p><p><span style=" font-size:small;">Il utilise le jeu d'icones Silk créé par Mark James disponible selon la licence Creative Commons Attribution 2.5 and 3.0.<br/>Voir </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> pour plus de détails.</span></p></body></html> - - - Qt Version - Version de Qt - - - SQLite Version - Version de SQLite - - - &lt;html><head/><body><p>SQLite Database Browser is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> for details.</p><p>For more information on this program please visit our website at: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - &lt;head/><meta charset="UTF-8"><body><p>SQLite Database Browser est un outil visuel, libre et open-source, pour créer, définir et éditer des bases de données SQLite.</p><p>Il est fourni sous une double licence, la licence Mozilla Public License Version 2 et la licence GNU General Public License Version 3 ou ultérieure. Vous pouvez modifier ou redistribuer de programme dans les mêmes conditions de licence.</p><p>Pour plus de détails, voir : <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> et <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a>.</p><p>Pour plus d'information à propos de ce programme, merci de visiter notre site Internet à l'adresse suivante : <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a>.</p><p><span style=" font-size:small;">Ce logiciel utilise le boite à outils GPL/LGPL Qt Toolkit de </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a>.<span style=" font-size:small;"><br/>Pour toute information et licences, voir : </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a>.</p><p><span style=" font-size:small;">Il utilise aussi le jeu d'icônes Silk créé par Mark James, qui est sous licence Creative Commons Attribution 2.5 et 3.0.<br/>Pour plus de détails, voir : </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a>.</p></body></html> - - - (based on SQLite %1) - (basé sur SQLite %1) - - - - SQLCipher Version %1 (based on SQLite %2) - SQLCipher Version %1 (basé sur SQLite %2) - - - - Version - Version - - - - Built for %1, running on %2 - Compilé pour %1, fonctionnant sur %2 - - - Built for - Compilé pour - - - - Qt Version - Version de Qt - - - SQLCipher Version - Version de SQLCipher - - - - SQLite Version - Version de SQLite - AddRecordDialog @@ -177,102 +119,152 @@ Application - - Usage: %1 [options] [db] + + Possible command line arguments: + Arguments utilisables en ligne de commande : + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value + Les options de commande -o/--option et -O/--save-option nécessitent un argument sous la forme groupe/paramètre=valeur + + + + The user settings file location is replaced with the argument value instead of the environment variable value. + + + + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + + + + + Usage: %1 [options] [<database>|<project>] - Usage: %1 [options] [db] + Usage: %1 [options] [<basededonnees>|<projet>] - - Possible command line arguments: - Arguments utilisables en ligne de commande : + + -h, --help Show command line options + -h, --help Affiche les options utilisables de la ligne de commande - - -h, --help Show command line options - -h, --help Affiche les options en mode ligne de commande + + -q, --quit Exit application after running scripts + -q, --quit Quitte l'application après l'exécution des scripts - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [fichier] Exécute ce fichier de commande SQL après l'ouverture de la Base de Données + + -s, --sql <file> Execute this SQL file after opening the DB + -s, --sql <fichier> Execute ce fichier SQL après avoir ouvert la BdD - - -s, --sql [file] Execute this SQL file after opening the DB - Il est possible de remplacer "ce fichier de commande SQL" par "ce fichier SQL" et "Base de Données" par BdD - -s, --sql [fichier], Exécute ce fichier de commande SQL après l'ouverture de la Base de Données + + -t, --table <table> Browse this table after opening the DB + -t, --table <table> Parcourt cette table après avoir ouvert la BdD - - -t, --table [table] Browse this table after opening the DB - Il est possible de remplacer "Base de Données" par BdD - -t, --table [table] Parcourir cette table après l'ouverture de la Base de Données + + -R, --read-only Open database in read-only mode + -R, --read-only Ouvre la Base de Données en lectyure seule - - -q, --quit Exit application after running scripts - -q, --quit Quitte l'application après l'exécution du script + + -S, --settings <settings_file> + - - -R, --read-only Open database in read-only mode - -R, --read-only Ouvre la Base de Données en lecture seule + + Run application based on this settings file + - - -o, --option [group/setting=value] Run application with this setting temporarily set to value - -o, --option [groupe/paramètre=valeur] Lance l'application en utilisant temporairement la valeur donnée au paramètre + + -o, --option <group>/<setting>=<value> + -o, --option <groupe>/<paramètre>=<valeur> - - -O, --save-option [group/setting=value] Run application saving this value for this setting - -O, --save-option [groupe/paramètre=valeur] Lance l'application en sauvegardant la valeur donnée au paramètre + + Run application with this setting temporarily set to value + Lance l'application en utilisant temporairement la valeur de ce paramètre - - -v, --version Display the current version - -v, --version Affiche la version en cours + + -O, --save-option <group>/<setting>=<value> + -O, --save-option <groupe>/<paramètre>=<valeur> - - [file] Open this SQLite database - [fichier] Ouvre cette Base de Données SQLite + + Run application saving this value for this setting + Lance l'application en sauvegardant la valeur de ce paramètre - - This is DB Browser for SQLite version %1. - Voici DB Browser pour SQLite version %1. + + -v, --version Display the current version + -v, --version Affiche la version de l'application - - The -o/--option and -O/--save-option options require an argument in the form group/setting=value - Les options de commande -o/--option et -O/--save-option nécessitent un argument sous la forme groupe/paramètre=valeur + + <database> Open this SQLite database + <database> Ouvre cette Base de Données SQLite - This is DB Browser for SQLite version %1%2. - Voici DB Browser pour SQLite version %1%2. + + <project> Open this project file (*.sqbpro) + <projet> Ouvre ce fichier projet (*.sqbpro) - + The -s/--sql option requires an argument L'option -s/--sql nécessite un argument - + The file %1 does not exist Le fichier %1 n'existe pas - + The -t/--table option requires an argument L'option -t/--table nécessite un argument - + + The -S/--settings option requires an argument. The option is ignored. + + + + Invalid option/non-existant file: %1 Option invalide ou fichier %1 inexistant + + + SQLite Version + Version de SQLite + + + + SQLCipher Version %1 (based on SQLite %2) + SQLCipher Version %1 (basé sur SQLite %2) + + + + DB Browser for SQLite Version %1. + DB Browser pour SQLite Version %1. + + + + Built for %1, running on %2 + Compilé pour %1, fonctionnant sur %2 + + + + Qt Version %1 + Version de Qt %1 + CipherDialog @@ -348,10 +340,6 @@ Same comment as for Passphrase Clé de Chiffrement - - Page &size - &Taille de la page - Please set a key to encrypt the database. @@ -427,31 +415,41 @@ Il sera appliqué à chaque valeur avant son affichage. + .NET DateTime.Ticks to date + .NET DateTime.Ticks en date + + + Julian day to date Date jullienne vers Date - + Unix epoch to local time Heure Unix epoch vers heure locale - + Date as dd/mm/yyyy Date au format DD/MM/AAAA - + Lower case Minuscule - + + Binary GUID to text + + + + Custom display format must contain a function call applied to %1 Le format d'affichage personnalisé doit contenir un appel de fonction appliqué à %1 - + Error in custom display format. Message from database engine: %1 @@ -460,7 +458,7 @@ Il sera appliqué à chaque valeur avant son affichage. %1 - + Custom display format must return only one column but it returned %1. Le format d'affichage personnalisé ne doit renvoyer qu'une seule colonne, mais il a renvoyé %1. @@ -475,22 +473,22 @@ Il sera appliqué à chaque valeur avant son affichage. Nombre arrondi - + Unix epoch to date Date Unix epoch en Date - + Upper case Majuscule - + Windows DATE to date Date Windows en Date - + Custom Personnalisé @@ -502,14 +500,6 @@ Il sera appliqué à chaque valeur avant son affichage. Conditional Format Manager Gestion des formats conditionnels - - &Up - &Monter - - - &Down - &Descendre - This dialog allows creating and editing conditional formats. Each cell style will be selected by the first accomplished condition for that cell data. Conditional formats can be moved up and down, where those at higher rows take precedence over those at lower. Syntax for conditions is the same as for filters and an empty condition applies to all values. @@ -625,170 +615,155 @@ Il sera appliqué à chaque valeur avant son affichage. DBBrowserDB - + Please specify the database name under which you want to access the attached database Veuillez spécifier le nom de la Base de Données sous laquelle vous voulez accéder à la Base de Données attachée - + Invalid file format Format de fichier invalide - + Do you want to save the changes made to the database file %1? Voulez-vous enregistrer les changements effectués dans la Base de Données %1 ? - + Exporting database to SQL file... Exporter la Base de Données dans un fichier SQL... - - + + Cancel Annuler - + Executing SQL... Exécution du SQL... - + Action cancelled. Action annulée. - Error in statement #%1: %2. -Aborting execution. - Erreur dans le traitement #%1 : %2. -L'exécution est abandonnée. - - - renameColumn: cannot find table %1. - Renommer les Colonnes : La table %1 n'a pas été trouvée. - - - - This database has already been attached. Its schema name is '%1'. - Cette Base de Données a déjà été attachée. Son nom de schéma est '%1'. - - - + Do you really want to close this temporary database? All data will be lost. Voulez-vous vraiment fermer cette Base de Données temporaire ? Toutes les données seront perdues. - + Database didn't close correctly, probably still busy La Base de Données ne s'est pas fermée correctement; Elle est probablement encore occupée - + The database is currently busy: La Base de Données est actuellement occupée : - + Do you want to abort that other operation? Voulez-vous annuler cette autre opération ? - - + + No database file opened Aucun fichier de Base de Données ouvert - - + + Error in statement #%1: %2. Aborting execution%3. Erreur dans le traitement #%1 : %2. Exécution de %3 abandonnée. - - + + and rolling back et annulation des changements - + didn't receive any output from %1 n'a pas reçu toutes les sorties de %1 - + could not execute command: %1 ne peut pas exécuter les commandes : %1 - + Cannot delete this object Impossible de supprimer cet objet - + Cannot set data on this object 170726 MVT Has to be checked in real context Définition des données impossible pour cet objet - - + + A table with the name '%1' already exists in schema '%2'. Une table portant le nom " %1 " existe déjà dans le schéma " %2 ". - + No table with name '%1' exists in schema '%2'. Il n'existe pas de table nommée " %1 " dans le schéma " %2 ". - - + + Cannot find column %1. La colonne %1 n'a pas été trouvée. - + Creating savepoint failed. DB says: %1 La création du point de restauration a échoué. DB indique : %1 - + Renaming the column failed. DB says: %1 Le changement de nom de la colonne a échoué. DB indique : %1 - - + + Releasing savepoint failed. DB says: %1 La libération du point de sauvegarde a échoué. DB indique : %1 - + Creating new table failed. DB says: %1 La création d'une nouvelle table a échoué. DB indique : %1 - + Copying data to new table failed. DB says: %1 La copie des données dans une nouvelle table a échoué. DB indique : %1 - + Deleting old table failed. DB says: %1 La suppression d'une ancienne table a échoué. DB indique : %1 - + Error renaming table '%1' to '%2'. Message from database engine: %3 @@ -797,37 +772,12 @@ Message du moteur de Base de Données : %3 - + could not get list of db objects: %1 La liste des objets de la Base de Données ne peut être obtenue : %1 - renameColumn: cannot find column %1. - Renommer les Colonnes : La colonne %1 n'a pas été trouvée. - - - renameColumn: creating savepoint failed. DB says: %1 - Renommer les Colonnes : La création d'un point de sauvegarde a échoué. Message du moteur de Base de Données : -%1 - - - renameColumn: creating new table failed. DB says: %1 - Renommer les Colonnes : La création de la table a échoué. Message du moteur de Base de Données : -%1 - - - renameColumn: copying data to new table failed. DB says: -%1 - Renommer les Colonnes : La copie des données dans une nouvelle table a échoué. Message du moteur de Base de Données : -%1 - - - renameColumn: deleting old table failed. DB says: %1 - Renommer les Colonnes : La suppression de l'ancienne table a échoué. Message du moteur de Base de Données : -%1 - - - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -836,63 +786,28 @@ Message du moteur de Base de Données : - renameColumn: releasing savepoint failed. DB says: %1 - Renommer les Colonnes : La libération d'un point de sauvegarde a échoué. Message du moteur de Base de Données : -%1 - - - Error renaming table '%1' to '%2'.Message from database engine: -%3 - Erreur lors du changement de nom de la table %1 vers %2. Message du moteur de Base de Données : -%3 - - - ... <string can not be logged, contains binary data> ... - ... <la Chaîne de caractère ne peut être journalisée. Elle contient des données binaires> ... - - - + could not get list of databases: %1 n'a pas pu obtenir la liste des bases de données : %1 - + Error loading extension: %1 Erreur lors du chargement de l'extension %1 - + could not get column information 170726 MVT Has to be checked in real context ne peut obtenir les informations sur la colonne - unknown object type %1 - Type d'objet %1 inconnu - - - could not get list of db objects: %1, %2 - la liste des objets de la Base de Données ne peut être obtenue : %1, %2 - - - could not get types - la liste des types ne peut être obtenue - - - didn't receive any output from pragma %1 - n'a pas reçu toutes les sorties du pragma %1 - - - could not execute pragma command: %1, %2 - ne peut pas exécuter les commandes du pragma : %1, %2 - - - + Error setting pragma %1 to %2: %3 Erreur dans les paramètres des pragma %1 à %2 : %3 - + File not found. Fichier non trouvé. @@ -919,22 +834,18 @@ Message du moteur de Base de Données : Schema Schéma - - Browsables (%1) - Consultables (%1) - Database Base de Données - + Browsables Consultables - + All Tout @@ -944,22 +855,22 @@ Message du moteur de Base de Données : Temporaire - + Tables (%1) Tables (%1) - + Indices (%1) Index (%1) - + Views (%1) Vues (%1) - + Triggers (%1) Déclencheurs (%1) @@ -972,55 +883,55 @@ Message du moteur de Base de Données : Éditer le contenu d'une cellule - + Mode: Mode : - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. Voici la liste des modes pris en charge par l'éditeur de cellules. Choisissez un mode d'affichage ou d'édition des données de la cellule courante. - + RTL Text Remark : there is not acronym in french for Right to Left Text (DàG : Droite à Gauche ?). If DçG is not correct, we should use the HTML dir parameter RTL Texte DàG - - + + Image Image - + JSON JSON - + XML XML - - + + Automatically adjust the editor mode to the loaded data type Ajuster automatiquement le mode éditeur au type de données chargé - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. Ce bouton à cocher active ou désactive le changement automatique du mode éditeur. Lorsqu'une nouvelle cellule est sélectionnée ou de nouvelles données sont importées et que la commutation automatique est activée, le mode s'adapte au type de données détecté. Vous pouvez ensuite changer le mode éditeur manuellement. Si vous souhaitez conserver ce mode de commutation manuelle pendant que vous vous déplacez dans les cellules, éteignez le bouton. - + Auto-switch Auto-switch - + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. @@ -1029,378 +940,280 @@ Errors are indicated with a red squiggle underline. Les erreurs sont signalées par un trait de soulignement rouge. - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. Cet éditeur Qt est utilisé pour les scripts écrits de droite à gauche. Ils ne sont pas pris en charge par l'éditeur de texte par défaut. La présence de caractères de droite à gauche est détectée et ce mode d'édition est automatiquement sélectionné. - + Open preview dialog for printing the data currently stored in the cell Ouvrir la fenêtre de prévisualisation pour imprimer les données actuellement stockées dans la cellule - + Auto-format: pretty print on loading, compact on saving. Auto-format : formater au chargement, compacter à l'enregistrement. - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. Lorsqu'elle est activée, la fonction de formatage automatique met en forme les données lors du chargement, transforme le texte en lignes et ajoute des retraits pour une lisibilité maximale. Lors de la sauvegarde des données, la fonction de formatage automatique compacte les données en supprimant les fins des lignes et les espaces inutiles. - + Word Wrap Coupure des mots - + Wrap lines on word boundaries Coupe les lignes aux limites des mots - - + + Open in default application or browser Ouvrir dans l'application ou le navigateur par défaut - + Open in application Ouvrir dans l'application - + The value is interpreted as a file or URL and opened in the default application or web browser. La valeur est interprétée comme étant un fichier ou une URL. Elle sera ouverte dans l'application ou le navigateur web par défaut. - + Save file reference... Enregistrer la référence du fichier... - + Save reference to file Enregistre la référence au fichier - - + + Open in external application Ouvrir dans une application externe - + Autoformat Format Automatique - + &Export... &Exporter... - - + + &Import... &Importer... - - + + Import from file Importer depuis un fichier - - + + Opens a file dialog used to import any kind of data to this database cell. Ouvre une boîte de dialogue pour importer n'importe quel type de données dans cette cellule de Base de Données. - + Export to file Exporter vers un fichier - + Opens a file dialog used to export the contents of this database cell to a file. Ouvrir la boîte de dialogue pour exporter le contenu de cette cellule de la Base de Données vers un fichier. - - + Print... Imprimer... - - Open preview dialog for printing displayed image - Ouvrir un apperçu de l'image pour son impression - - - - + Ctrl+P - + Open preview dialog for printing displayed text - Ouvrir un apperçu du texte avant son impression + Ouvrir un aperçu du texte avant son impression - + Copy Hex and ASCII Copier l'Hex et l'ASCII - + Copy selected hexadecimal and ASCII columns to the clipboard Copier les colonnes hexadécimales et ASCII sélectionnées dans le presse-papiers - + Ctrl+Shift+C - Import text - Importer du texte - - - Opens a file dialog used to import text to this database cell. - Ouvrir la boîte de dialogue permettant d'importer du texte dans cette cellule. - - - &Import - &Importer - - - Export text - Exporter du texte - - - Opens a file dialog used to export the contents of this database cell to a text file. - Ouvrir la boîte de dialogue permettant d'exporter le contenu de la cellule de la Base de Données vers un fichier texte. - - - &Export - &Exporter - - - Set this cell to NULL - Définir cette cellule comme NULL - - - + Set as &NULL Définir comme &NULL - This editor mode lets you edit JSON or XML data with syntax highlighting, automatic formatting and validation before saving. - -Errors are indicated with a red squiggle underline. - Ce mode éditeur vous permet d'éditer des données JSON ou XML avec la coloration syntaxique, la formatage automatique et la validation avant leur enregistrement. - -Les erreurs sont signalées par un tilde rouge souligné. - - - + Apply data to cell Appliquer les données à la cellule - + This button saves the changes performed in the cell editor to the database cell. Ce bouton permet d'enregistrer les modifications effectuées dans l'éditeur de cellule dans la cellule de Base de Données. - + Apply Appliquer - + Text Texte - + Binary Binaire - Clear cell data - Effacer les données de la cellule - - - + Erases the contents of the cell Effacer le contenu de la cellule - - &Clear - &Effacer - - - <html><head/><body><p><span style=" font-weight:600; color:#c00000;">Warning: Editing binary content in text mode may result in corrupted data!</span></p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#c00000;">Attention : Éditer un contenu binaire en mode texte peut corrompre les données!</span></p></body></html> - This area displays information about the data present in this database cell Cette zone affiche des informations à propos des données contenues dans la cellule de la Base de Données - + Type of data currently in cell Type actuel des données dans la cellule - + Size of data currently in table Taille actuelle des données dans la table - Choose a file - Choisir un fichier - - - Text files(*.txt);;Image files(%1);;All files(*) - Fichiers Texte (*.txt);;Fichiers Image(%1);;Tous les fichiers(*) - - - + Choose a filename to export data Choisir un nom de fichier pour exporter les données - Text files(*.txt);;All files(*) - Fichiers Texte (*.txt);;Tous les fichiers(*) - - - Image data can't be viewed with the text editor - Les données d'une image ne peuvent être affichées dans l'éditeur de texte - - - Binary data can't be viewed with the text editor - Les données binaires ne peuvent être affichées dans l'éditeur de texte - - - + Type of data currently in cell: %1 Image Type actuel des données de la cellule. Image %1 - + %1x%2 pixel(s) %1x%2 pixel(s) - + Type of data currently in cell: NULL Type actuel des données de la cellule : NULL - - + + Type of data currently in cell: Text / Numeric Type actuel des données de la cellule : Texte / Numérique - - + + Image data can't be viewed in this mode. L'image ne peut être affichée dans ce mode. - - + + Try switching to Image or Binary mode. Essayez de basculer vers le mode Image ou le mode Binaire. - - + + Binary data can't be viewed in this mode. Les données Binaires ne peuvent être affichées dans ce mode. - - + + Try switching to Binary mode. Essayez de basculer vers le mode Binaire. - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. - Les données ont été enregistrées dans un fichier temporaire. Elles ont été ouvertes avec l'application par défaut. Vous pouvez maintenant modifier le fichier et, lorsque vous serez prêt, appliquer les nouvelles données enregistrées à l'éditeur de cellules ou annuler les modifications. - - - The data has been saved to a temporary file and has been opened with the default application.You can edit now the file and when your are ready, you can apply the saved new data to the cell editor or cancel any changes. - Les données ont été enregistrées dans un fichier temporaire et ont été ouvertes avec l'application par défaut. Vous pouvez maintenant modifier le fichier et, lorsque vous serez prêt, vous pouvez appliquer ces nouvelles données enregistrées à l'éditeur de cellules ou annuler toute modification. - - - Text files (*.txt) - Fichiers Texte (*.txt) - - - JSON files (*.json) - Fichiers JSON (*.json) + + Couldn't save file: %1. + Le fichier %1 ne peut être sauvegardé. - XML files (*.xml) - Fichiers XML (*.xml) + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + - - + + Image files (%1) Fichiers image (%1) - + Binary files (*.bin) Fichiers Binaires (*.bin) - All files (*) - Tous les fichiers (*) - - - + Choose a file to import Choisir un fichier à importer - + %1 Image %1 Image - SVG files (*.svg) - Fichiers SVG (*.svg) - - - Hex dump files (*.txt) - Fichiers Dump Hexadécimal (*.txt) - - - + Invalid data for this mode Les données sont invalides pour ce mode - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? La cellule contient des données %1 invalides. Raison : %2. Vouslez-vous vraiment l'appliquer à la cellule ? - - - + + + %n character(s) %n caractère @@ -1408,26 +1221,18 @@ Les erreurs sont signalées par un tilde rouge souligné. - + Type of data currently in cell: Valid JSON Type de données actuellement dans la cellule : JSON valide - Type of data currently in cell: Image - Type des données actuellement dans la cellule : Image - - - %1x%2 pixel - %1x%2 pixel - - - + Type of data currently in cell: Binary Type actuel des données de la cellule : Binaire - - + + %n byte(s) %n octet @@ -1437,27 +1242,11 @@ Les erreurs sont signalées par un tilde rouge souligné. EditIndexDialog - - Create New Index - Créer un Nouvel Index - &Name &Nom - - &Columns - &Colonnes - - - Column - Colonne - - - Use in Index - Utiliser dans l'index - Order @@ -1546,10 +1335,6 @@ Les erreurs sont signalées par un tilde rouge souligné. Advanced Avancé - - Database schema - Schéma de la base de Données - Make this a 'WITHOUT rowid' table. Setting this flag requires a field of type INTEGER with the primary key flag set and the auto increment flag unset. @@ -1560,35 +1345,11 @@ Les erreurs sont signalées par un tilde rouge souligné. Without Rowid Sans RowId - - Set this to create a temporary table that is deleted when closing the database. - Cochez cette case pour créer une table temporaire qui sera supprimée lors de la fermeture de la Base de Données. - - - Temporary table - Table Temporaire - Fields Champs - - Add field - Ajouter un champ - - - Remove field - Supprimer un champ - - - Move field up - Remonter le champ - - - Move field down - Descendre le champ - Database sche&ma @@ -1625,226 +1386,208 @@ Les erreurs sont signalées par un tilde rouge souligné. Descendre à la fin - - + + Name Nom - - + + Type Type - + NN NN - + Not null Non-Null - + PK CP - - Primary key - Clé primaire + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + - + AI IA - + Autoincrement Incrément automatique - + U U - - - + + + Unique Unique - + Default Défaut - + Default value Valeur par défaut - - - + + + Check Vérifier - + Check constraint Vérifier les contraintes - + Collation Séquence - - - + + + Foreign Key Clé étrangère - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + Constraints Contraintes - + Add constraint Ajouter une contrainte - + Remove constraint Supprimer une contrainte - + Columns Colonnes - + SQL SQL - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Attention : </span>Il y a quelque chose dans la définition de cette table que notre analyseur syntaxique n'a pas complètement compris. La modification et l'enregistrement de cette table peuvent créer des problèmes.</p></body></html> - - + + Primary Key Clé primaire - + Add a primary key constraint Ajoute une clé primaire à la contrainte - + Add a foreign key constraint Ajoute une clé étrangère à la contrainte - + Add a unique constraint Ajoute une contrainte unique - + Add a check constraint Ajouter une contrainte de contrôle - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result it in problems.</p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Attention : </span>Il y a quelque chose dans la définition de cette table que notre analyseur syntaxique n'a pas complètement compris. La modification et l'enregistrement de cette table peut créer des problèmes.</p></body></html> - - - + Error creating table. Message from database engine: %1 Erreur lors de la création de la table. Message du moteur de la Base de Données : %1 - + There already is a field with that name. Please rename it first or choose a different name for this field. Il existe déjà un champ avec ce nom. Veuillez le renommer avant ou choisir un autre nom pour ce champ. - This column is referenced in a foreign key in table %1, column %2 and thus its name cannot be changed. - Cette colonne est référencée dans une clé étrangère dans la table %1, colonne %2. Son nom ne peut être changé. - - - - + + There can only be one primary key for each table. Please modify the existing primary key instead. Une table ne peut avoir qau'une seule clé primaire. Veuillez modifier la clé primaire existante à la place. - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. Cette colonne est référencée dans une clé étrangère dans la table %1. Son nom ne peut être changé. - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. Il existe au moins un enregistrement avec ce champ autorisant des valeurs nulles (NULL). Il est donc impossible de définir cet indicateur. Veuillez modifier les données de la table au préalable. - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. Il existe au moins un enregistrement avec une valeur qui n'est pas un nombre entier dans ce champ. Il est donc impossible de définir l'indicateur AI (Incrément automatique) sur ce champ. Veuillez modifier les données de la table au préalable. - + Column '%1' has duplicate data. La colonne %1 a des des données en double. - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. Il est donc impossible d'activer l'indicateur "Unique". Veuillez supprimer les données en double, cela vous permettra d'activer l'indicateur "Unique". - Column '%1' has no unique data. - - La colonne %1 n'a pas de valeurs uniques. - - - This makes it impossible to set this flag. Please change the table data first. - Cela rend le choix de cette option impossible. Veuillez au préalable modifier les données de la table. - - - Modifying this column failed. Error returned from database: -%1 - La modification de cette colonne a échoué. Erreur retournée par la Base de Données : -%1 - - - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. Êtes-vous sûr de vouloir supprimer le champ "%1" ? Toutes les données contenues dans ce champ seront perdues. - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled @@ -1852,24 +1595,6 @@ Toutes les données contenues dans ce champ seront perdues. - Défini comme clé primaire ; - Incrément automatique désactivé - - Setting the rowid column for the table failed. Error message: -%1 - Le paramétrage de la colonne RowId pour la table a échoué. Message d'erreur : -%1 - - - Changing the table schema failed. Error message: -%1 - Le changement du schéma de la Base de Données a echoué. Message d'erreur : -%1 - - - Setting the temporary flag for the table failed. Error message: -%1 - Activer l'option "table temporaire" pour cette table a échoué. Message d'erreur : -%1 - ExportDataDialog @@ -1878,22 +1603,6 @@ Toutes les données contenues dans ce champ seront perdues. Export data as CSV Exporter au format CSV - - &Table - &Table - - - &Table(s) - &Table(s) - - - &Column names in first line - Nom des &Col. en 1ère ligne - - - Field &separator - &Séparateur de champ - Tab&le(s) @@ -1983,10 +1692,6 @@ Toutes les données contenues dans ce champ seront perdues. Choose a filename to export data Choisir un nom de fichier pour exporter les données - - Text files(*.csv *.txt) - Fichiers Texte (*.csv *.txt) - Export data as JSON @@ -2002,10 +1707,6 @@ Toutes les données contenues dans ce champ seront perdues. exporting JSON Exporter au format JSON - - Text files(*.json *.js *.txt) - Fichiers Texte (*.json *.js *.txt) - Please select at least 1 table. @@ -2021,10 +1722,6 @@ Toutes les données contenues dans ce champ seront perdues. Export completed. Export terminé. - - Could not open output file. - Le fichier de destination ne peut être ouvert. - ExportSqlDialog @@ -2089,10 +1786,6 @@ Toutes les données contenues dans ce champ seront perdues. Overwrite old schema (DROP TABLE, then CREATE TABLE) Écraser l'ancien schéma (DROP TABLE, puis CREATE TABLE) - - Please select at least 1 table. - Veuillez sélectionner au moins une table. - Please select at least one table. @@ -2103,10 +1796,6 @@ Toutes les données contenues dans ce champ seront perdues. Choose a filename to export Choisir un nom de fichier pour l'export - - Text files(*.sql *.txt) - Fichiers Texte (*.sql *.txt) - Export completed. @@ -2122,7 +1811,7 @@ Toutes les données contenues dans ce champ seront perdues. ExtendedScintilla - + Ctrl+H @@ -2133,22 +1822,22 @@ Toutes les données contenues dans ce champ seront perdues. - + Ctrl+P - + Find... Rechercher... - + Find and Replace... Chercher et remplacer... - + Print... Imprimer... @@ -2156,141 +1845,133 @@ Toutes les données contenues dans ce champ seront perdues. ExtendedTableWidget - The content of clipboard is bigger than the range selected. -Do you want to insert it anyway? - Le contenu du presse-papier est plus grand que la plage sélectionnée. -Voulez-vous poursuivre l'insertion malgré tout ? - - - + Use as Exact Filter Utiliser comme filtre exact - + Containing Contenant - + Not containing Ne contenant pas - + Not equal to Différent de - + Greater than Plus grand que - + Less than Plus petit que - + Greater or equal Plus grand ou égal à - + Less or equal Plus petit ou égal à - + Between this and... Entre ceci et... - + Regular expression Expression régulière - + Edit Conditional Formats... Éditer les formats conditionnels... - + Set to NULL Définir comme NULL - + + Cut + + + + Copy Copier - + Copy with Headers Copier avec les Entêtes - + Copy as SQL Copier comme du SQL - + Paste Coller - + Print... Imprimer... - + Use in Filter Expression Utiliser dans l'expression du Filtre - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? Le contenu du presse-papier est plus grand que la plage sélectionnée. Voulez-vous poursuivre l'insertion malgré tout ? - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. <p>Toutes les données n'ont pas été chargées. <b>Voulez-vous charger toutes les données avant de sélectionner toutes les lignes ? </b><p><p>Répondre <b>Non</b> signifie qu'aucune autre donnée ne sera chargée et que la sélection ne sera pas effectuée.<br/>Répondre <b>Oui</b> peut prendre un certain temps pendant le chargement des données mais la sélection sera complète.</p>Avertissement : Le chargement de toutes les données peut nécessiter une grande quantité de mémoire pour les grandes tables. - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. La sélection ne peut être à NULL. La colonne %1 à une contrainte NOT NULL. - - FileDialog - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - Base de Données SQLite (*.db *.sqlite *.sqlite3 *.db3);;Tous les fichiers (*) - - FileExtensionManager @@ -2342,30 +2023,6 @@ Voulez-vous poursuivre l'insertion malgré tout ? Filter Filtre - - These input fields allow you to perform quick filters in the currently selected table. -By default, the rows containing the input text are filtered out. -The following operators are also supported: -% Wildcard -> Greater than -< Less than ->= Equal to or greater -<= Equal to or less -= Equal to: exact match -<> Unequal: exact inverse match -x~y Range: values between x and y - Ces champs de saisie vous permettent d'effectuer des filtres rapides dans la table actuellement sélectionnée. -Par défaut, les lignes contenant le texte saisi sont filtrées. -Les opérateurs suivants sont également pris en charge : -Caractère de remplacement -> Supérieur à -< Inférieur à ->= Supérieur ou Égal à -<= Inférieur ou Égal à -= Égal à : correspondance exacte -<> Différent de : correspondance inverse exacte -x~y Plage : valeurs comprises entre x et y - These input fields allow you to perform quick filters in the currently selected table. @@ -2485,13 +2142,6 @@ x~y Fourchette : valeurs entre x et y Expression régulière... - - FilterTableHeader - - Filter - Filtre - - FindReplaceDialog @@ -2643,9 +2293,38 @@ x~y Fourchette : valeurs entre x et y Foreign key clauses (ON UPDATE, ON DELETE etc.) Clauses de clé étrangère (ON UPDATE, ON DELETE etc.) + + + ImageViewer + + + Image Viewer + + + + + Reset the scaling to match the original size of the image. + + + + + Set the scaling to match the size of the viewport. + + + + + Print... + Imprimer... + + + + Open preview dialog for printing displayed image + Ouvrir un aperçu de l'image pour son impression + - (foreign key clauses(ON UPDATE, ON DELETE etc.) - (clauses de clé étrangère (ON UPDATE, ON DELETE etc.) + + Ctrl+P + @@ -2655,10 +2334,6 @@ x~y Fourchette : valeurs entre x et y Import CSV file Importer un fichier CSV - - &Table name - Nom de la &Table - Table na&me @@ -2686,7 +2361,7 @@ x~y Fourchette : valeurs entre x et y - + Tab Tabulation @@ -2834,26 +2509,6 @@ x~y Fourchette : valeurs entre x et y Select All Sélectionner tout - - Inserting data... - Ajout des données... - - - Cancel - Annuler - - - There is already a table of that name and an import into an existing table is only possible if the number of columns match. - Il existe déjà une table portant ce nom. Importer des données dans une table existante n'est possible que si le nombre de colonnes correspond. - - - There is already a table of that name. Do you want to import the data into it? - Il existe déjà une table portant ce nom. Voulez-vous y importer les données ? - - - Import completed - Import terminé - There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. @@ -2880,16 +2535,17 @@ x~y Fourchette : valeurs entre x et y Importer au format CSV - - Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. - L'importation du fichier'%1' a pris %2ms. %3ms ont été dépensés dans la fonction enregistrement. + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + - Missing field for record %1 - Champ manquant pour l'enregistrement %1 + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. + L'importation du fichier'%1' a pris %2ms. %3ms ont été dépensés dans la fonction enregistrement. - + Inserting row failed: %1 L'insertion de l'enregistrement a échoué : %1 @@ -2897,1078 +2553,672 @@ x~y Fourchette : valeurs entre x et y MainWindow - SQLiteBrowser - SQLiteBrowser - - - Database &Structure - &Structure de la Base de Données - - - + toolBar1 Barre d'outils1 - &Browse Data - &Parcourir les données - - - Table: - Table : - - - Select a table to browse data - Sélectionner une table pour parcourir son contenu - - - Use this list to select a table to be displayed in the database view - Utiliser cette liste pour sélectionner la table à afficher dans la vue Base de Données - - - Refresh the data in the selected table. - Rafraîchir les données de la table sélectionnée. - - - This button refreshes the data in the currently selected table. - Ce bouton permet de rafraîchir les données de la table actuellement sélectionnée. - - - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - - - + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. Attention : ce pragma n'est pas lisible et cette valeur a été déduite. Ecrire le pragma pourrait écraser un LIKE redéfini fourni par une extension SQLite. - + &Tools &Outils - + Edit Database &Cell Éditer le contenu d'une &Cellule - SQLCipher &FAQ... - SQLCipher &FAQ... - - - + Opens the SQLCipher FAQ in a browser window Ouvre la FAQ de SQLCipher dans la fenêtre d'un navigateur - Table(s) to JSON... - Table(s) vers JSON... - - - + Export one or more table(s) to a JSON file Exporter une ou plusieurs tables vers un fichier JSON - Save to Remote - Enregistrer sur un serveur distant + + DB Browser for SQLite + DB Browser pour SQLite - Refresh - Rafraichir + + &File + &Fichier - F5 - + + &Import + &Importer - Clear all filters - Effacer tous les filtres + + &Export + &Exporter - Insert a new record in the current table - Insérer un nouvel enregistrement dans la table en cours + + &Edit + É&dition - This button creates a new, empty record in the database - Ce bouton permet de créer un nouvel enregistrement, vide, dans la Base de Données + + &View + &Vue - New Record - Nouvel Enregistrement + + &Help + &Aide - Delete the current record - Supprimer l'enregistrement courant + + User + Utilisateur - This button deletes the record currently selected in the database - Ce bouton permet de supprimer l'enregistrement sélectionné de la Base de Données + + Application + Application - Delete Record - Supprimer l'enregistrement + + This button clears the contents of the SQL logs + Ce bouton supprime le contenu des logs SQL - This is the database view. You can double-click any record to edit its contents in the cell editor window. - Ceci est la vue Base de Données. Vous pouvez, en double-cliquant sur un enregistrement, modifier son contenu dans la fenêtre Éditeur de cellule. + + &Clear + &Effacer - <html><head/><body><p>Scroll to the beginning</p></body></html> - <html><head/><body><p>Aller au début</p></body></html> + + &New Database... + &Nouvelle Base de Données... - <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - <html><head/><body><p>Cliquer sur ce bouton permet d'aller au début de la table ci-dessus.</p></body></html> + + + Create a new database file + Créer une nouvelle Base de Données - |< - |< + + This option is used to create a new database file. + Cette option est utilisée pour créer un nouveau fichier de Base de Données. - < - < + + Ctrl+N + - 0 - 0 of 0 - 0 - 0 de 0 + + + &Open Database... + &Ouvrir une Base de Données... - > - > + + + + + + Open an existing database file + Ouvre une Base de Données existante - Scroll 100 records upwards - Remonter de 100 enregistrements + + + + This option is used to open an existing database file. + Cette option est utilisée pour ouvrir une Base de Données existante. - - DB Browser for SQLite - DB Browser pour SQLite + + Ctrl+O + - <html><head/><body><p>Clicking this button navigates 100 records upwards in the table view above.</p></body></html> - <html><head/><body><p>Cliquer sur ce bouton permet de remonter de 100 enregistrements dans l'affichage de la table ci-dessus.</p></body></html> + + &Close Database + &Fermer la Base de Données - <html><head/><body><p>Scroll 100 records downwards</p></body></html> - <html><head/><body><p>Descendre de 100 enregistrements</p></body></html> + + This button closes the connection to the currently open database file + Ce bouton ferme la connexion à la Base de Données actuellement ouverte - <html><head/><body><p>Clicking this button navigates 100 records downwards in the table view above.</p></body></html> - <html><head/><body><p>Cliquer sur ce bouton permet de descendre de 100 enregistrements dans l'affichage de la table ci-dessus.</p></body></html> + + + Ctrl+W + - Scroll to the end - Aller à la fin + + &Revert Changes + &Annuler les modifications - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Cliquer sur ce bouton permet d'aller à la fin de la table ci-dessus.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> + + + Revert database to last saved state + Revenir à la dernière version sauvegardée de la Base de Données - >| - >| + + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. + Cette option permet de restaurer la Base de Données dans l'état de sa dernière sauvegarde. Tous les changements effectués depuis cette dernière sauvegarde seront perdus. - <html><head/><body><p>Click here to jump to the specified record</p></body></html> - <html><head/><body><p>Cliquer ici pour vous déplacer sur l'enregistrement défini</p></body></html> + + &Write Changes + Enregistrer les &modifications - <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - <html><head/><body><p>Ce bouton est utilisé pour aller directement à l'enregistrement défini dans le champ Aller à.</p></body></html> + + + Write changes to the database file + Enregistrer les modifications dans la Base de Données - Go to: - Aller à : + + This option is used to save changes to the database file. + Cette option est utilisée pour enregistrer les modifications dans la Base de Données. - Enter record number to browse - Entrez le nombre d'enregistrements à parcourir + + Ctrl+S + - Type a record number in this area and click the Go to: button to display the record in the database view - Entrez un numéro d'enregistrement dans ce champ et cliquez sur le bouton "Aller à" pour afficher l'enregistrement dans la vue Base de Données + + Execute all/selected SQL + Exécuter Tout ou seulement le SQL sélectionné - 1 - 1 + + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. + Ce bouton lance l'exécution des commandes SQL actuellement sélectionnées. Si aucun texte n'est sélectionné, toutes les commandes SQL seront éxécutées. - Edit &Pragmas - Éditer les &Pragmas + + Execute line + Exécuter la ligne - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum""><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum""><span style=" text-decoration: underline; color:#0000ff;">Vidage automatique</span></a></p></body></html> + + &Wiki + &Wiki - None - Aucun + + F1 + - Full - Complet + + Bug &Report... + &Rapport d'erreur... - Incremental - Incrémental + + Feature Re&quest... + &Demande de fonctionnalités... - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index""><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index""><span style=" text-decoration: underline; color:#0000ff;">Index Automatique</span></a></p></body></html> + + Web&site + &Site Internet - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync""><span style=" text-decoration: underline; color:#0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync""><span style=" text-decoration: underline; color:#0000ff;">Point de contrôle FSYNC intégral</span></a></p></body></html> + + &Donate on Patreon... + Effectuer une &Donation sur Patreon... - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys""><span style=" text-decoration: underline; color:#0000ff;">Foreign Keys</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys""><span style=" text-decoration: underline; color:#0000ff;">Clés étrangères</span></a></p></body></html> + + Open &Project... + Ouvrir un &Projet... - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync""><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync""><span style=" text-decoration: underline; color:#0000ff;">FSYNC intégral</span></a></p></body></html> + + &Attach Database... + Attac&her une Base de Données... - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints""><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints""><span style=" text-decoration: underline; color:#0000ff;">Ignorer le contrôle des contraintes</span></a></p></body></html> + + + Add another database file to the current database connection + Ajouter un autre fichier de Base de Données à la connexion de la Base de Données en cours - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode""><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode""><span style=" text-decoration: underline; color:#0000ff;">Mode de journalisation</span></a></p></body></html> + + This button lets you add another database file to the current database connection + Ce bouton vous permet d'ajouter un autre fichier de Base de Données à la connexion de la Base de Données en cours - Delete - Supprimer + + &Set Encryption... + Chi&ffrer... - Truncate - Tronquer - - - Persist - Persistant - - - Memory - Mémoire - - - WAL - WAL - - - Off - Arrêté - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit""><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit""><span style=" text-decoration: underline; color:#0000ff;">Taille maximale du Journal</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode""><span style=" text-decoration: underline; color:#0000ff;">Locking Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode""><span style=" text-decoration: underline; color:#0000ff;">Mode de recherche</span></a></p></body></html> - - - Normal - Normal - - - Exclusive - Exclusif - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count""><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count""><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size""><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size""><span style=" text-decoration: underline; color:#0000ff;">Taille de la Page</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers""><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers""><span style=" text-decoration: underline; color:#0000ff;">Déclencheurs récursifs</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete""><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete""><span style=" text-decoration: underline; color:#0000ff;">Suppression sécurisée</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous""><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous""><span style=" text-decoration: underline; color:#0000ff;">Synchronisation</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store""><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store""><span style=" text-decoration: underline; color:#0000ff;">Stockage temporaire</span></a></p></body></html> - - - Default - Défaut - - - File - Fichier - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version""><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version""><span style=" text-decoration: underline; color:#0000ff;">Version utilisateur</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint""><span style=" text-decoration: underline; color:#0000ff;">WAL Auto Checkpoint</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint""><span style=" text-decoration: underline; color:#0000ff;">Point de contrôle WAL automatique</span></a></p></body></html> - - - E&xecute SQL - E&xécuter le SQL - - - - &File - &Fichier - - - - &Import - &Importer - - - - &Export - &Exporter - - - - &Edit - É&dition - - - - &View - &Vue - - - - &Help - &Aide - - - toolBar - Barre d'outils - - - SQL Log - Journal SQL - - - &Show SQL submitted by - A&fficher le SQL soumis par - - - - User - Utilisateur - - - - Application - Application - - - - This button clears the contents of the SQL logs - Ce bouton supprime le contenu des logs SQL - - - - &Clear - &Effacer - - - Plot - Voir le contexte d'utilisation - Graphique - - - Columns - Colonnes - - - X - X - - - Y - Y - - - _ - _ - - - Save current plot... - Voir le contexte d'utilisation - Enregistrer le tracé actuel... - - - DB Schema - DB Schema - - - - &New Database... - &Nouvelle Base de Données... - - - - - Create a new database file - Créer une nouvelle Base de Données - - - - This option is used to create a new database file. - Cette option est utilisée pour créer un nouveau fichier de Base de Données. - - - - Ctrl+N - - - - - - &Open Database... - &Ouvrir une Base de Données... - - - - - - - - Open an existing database file - Ouvre une Base de Données existante - - - - - - This option is used to open an existing database file. - Cette option est utilisée pour ouvrir une Base de Données existante. - - - - Ctrl+O - - - - - &Close Database - &Fermer la Base de Données - - - - This button closes the connection to the currently open database file - Ce bouton ferme la connexion à la Base de Données actuellement ouverte - - - - - Ctrl+W - - - - - &Revert Changes - &Annuler les modifications - - - - - Revert database to last saved state - Revenir à la dernière version sauvegardée de la Base de Données - - - - This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. - Cette option permet de restaurer la Base de Données dans l'état de sa dernière sauvegarde. Tous les changements effectués depuis cette dernière sauvegarde seront perdus. - - - - &Write Changes - Enregistrer les &modifications - - - - - Write changes to the database file - Enregistrer les modifications dans la Base de Données - - - - This option is used to save changes to the database file. - Cette option est utilisée pour enregistrer les modifications dans la Base de Données. - - - - Ctrl+S - - - - - Execute all/selected SQL - Exécuter Tout ou seulement le SQL sélectionné - - - - This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. - Ce bouton lance l'exécution des commandes SQL actuellement sélectionnées. Si aucun texte n'est sélectionné, toutes les commandes SQL seront éxécutées. - - - - This button opens a file containing SQL statements and loads it in a new editor tab - Ce bouton ouvre un fichier contenant des instructions SQL et le charge dans un nouvel onglet de l'éditeur - - - - Execute line - Exécuter la ligne - - - - &Wiki - &Wiki - - - - F1 - - - - - Bug &Report... - &Rapport d'erreur... - - - - Feature Re&quest... - &Demande de fonctionnalités... - - - - Web&site - &Site Internet - - - - &Donate on Patreon... - Effectuer une &Donation sur Patreon... - - - Sa&ve Project... - Sau&vegarder le projet... - - - This button lets you save all the settings associated to the open DB to a DB4S project file - Ce bouton vous permet d'enregistrer tous les paramètres associés à la Base de Données ouverte dans un fichier projet DB4S - - - - Open &Project... - Ouvrir un &Projet... - - - This button lets you open a DB4S project file - Ce bouton ouvre un fichier projet DB4S - - - - &Attach Database... - Attac&her une Base de Données... - - - - - Add another database file to the current database connection - Ajouter un autre fichier de Base de Données à la connexion de la Base de Données en cours - - - - This button lets you add another database file to the current database connection - Ce bouton vous permet d'ajouter un autre fichier de Base de Données à la connexion de la Base de Données en cours - - - - &Set Encryption... - Chi&ffrer... - - - + SQLCipher &FAQ &Faq SQLCipher - + Table(&s) to JSON... Table(&s) vers JSON... - + Open Data&base Read Only... Ouvrir la Base de Données en &Lecture seule... - + Ctrl+Shift+O - + Save results Enregistrer les résultats - + Save the results view Enregistrer la vue des résultats - + This button lets you save the results of the last executed query Ce bouton vous permet d'enregistrer les résultats de la dernière requête exécutée - - + + Find text in SQL editor Rechercher du texte dans l'éditeur SQL - + Find Rechercher - + This button opens the search bar of the editor Ce bouton ouvre la barre de recherche dans l'éditeur - + Ctrl+F - - + + Find or replace text in SQL editor Rechercher ou remplacer du texte dans l'éditeur SQL - + Find or replace Chercher et remplacer - + This button opens the find/replace dialog for the current editor tab Ce bouton ouvre la boîte de dialogue Rechercher/Remplacer pour l'onglet en cours de l'éditeur - + Ctrl+H - + Export to &CSV Exporter au format &CSV - - Save as &view - Enregistrer comme une &vue - - - - Save as view - Enregistrer comme une vue - - - - Browse Table - Parcourir la table - - - Hide column(s) - Masquer une/des colonnes - - - Hide selected column(s) - Maquer la/les colonnes sélectionnées - - - Show all columns - Afficher toutes les colonnes - - - Show all columns that were hidden - Permet d'afficher toutes les colonnes qui ont été masquées - - - - Shows or hides the Project toolbar. - Afficher ou masquer la barre d'outil Projet. - - - - Extra DB Toolbar - Extra DB Toolbar - - - Export the filtered data to CSV - Exporte les données filtrées au format CSV - - - This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - Ce bouton exporte les données du tableau parcouru telles qu'elles sont actuellement affichées (après les filtres, les formats d'affichage et la colonne d'ordre) dans un fichier CSV. - - - Save the current filter, sort column and display formats as a view - Enregistrer le filtre, la colonne de tri et les formats d'affichage actuels sous forme de vue + + Save as &view + Enregistrer comme une &vue - This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - Ce bouton permet d'enregistrer les paramètres actuels de la table parcourue (filtres, formats d'affichage et colonne d'ordre) sous forme de vue SQL que vous pourrez ensuite parcourir ou utiliser dans les instructions SQL. + + Save as view + Enregistrer comme une vue - Insert Values... - Ajout de valeurs... + + Browse Table + Parcourir la table - Open a dialog for inserting values in a new record - Ouvre une fenêtre de dialogue permettant l'insersion de valeurs dans un nouvel enregistrement + + Shows or hides the Project toolbar. + Afficher ou masquer la barre d'outil Projet. - Insert new record using default values in browsed table - Insérer un nouvel enregistrement en utilisant les valeurs par défaut de la table parcourrue + + Extra DB Toolbar + Extra DB Toolbar - + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file Ce bouton vous permet d'enregistrer tous les paramètres associés à la base de données ouverte dans un fichier de projet DB Browser pour SQLite - + This button lets you open a DB Browser for SQLite project file Ce bouton vous permet d'ouvrir un fichier de projet DB Browser pour SQLite - + New In-&Memory Database Nouvelle Base de Données en &Mémoire - + Drag && Drop Qualified Names Glisser && Déposer les noms qualifiés - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor Utilisez des noms qualifiés (par ex. "Table", "Champ") lorsque vous faites glisser les objets et pour les déposez dans l'éditeur - + Drag && Drop Enquoted Names Glisser && Déposer les noms indiqués - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor Utiliser les identificateurs par défaut (par ex. "Table1") lors du glisser-déposer des objets dans l'éditeur - + &Integrity Check Vérifier l'&Intégrité - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. Exécute le pragma integrity_check sur la Base de Données ouverte et retourne les résultats dans l'onglet Exécuter SQL. Ce pragma effectue un contrôle d'intégrité de l'ensemble de la Base de Données. - + &Foreign-Key Check Vérifier les clés &Etrangères - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab Exécute le pragma foreign_key_check_check sur la Base de Données ouverte et retourne les résultats dans l'onglet Exécuter SQL - + &Quick Integrity Check Vérification &rapide de l'intégrité - + Run a quick integrity check over the open DB Effectuer un rapide contrôle d'intégrité sur la Base de Données ouverte - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. Exécute le pragma quick_check sur la Base de Données ouverte et retourne les résultats dans l'onglet Exécuter SQL. Cette commande effectue la plupart des vérifications de PRAGMA integrity_check mais s'exécute beaucoup plus rapidement. - + &Optimize &Optimiser - + Attempt to optimize the database Tente d'optimiser la Base de Données - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. Exécute le pragma d'optimisation sur la Base de Données ouverte. Ce pragma pourrait effectuer des optimisations qui amélioreront la performance des requêtes futures. - - + + Print Imprimer - + Print text from current SQL editor tab Imprime le contenu de l'onglet en cours de l'éditeur SQL [Ctrp+P] - + Open a dialog for printing the text in the current SQL editor tab Ouvre une boite de dialogue pour imprimer le contenu de l'onglet en cours de l'éditeur SQL - + Print the structure of the opened database Imprime la structure de la Base de Données ouverte - + Open a dialog for printing the structure of the opened database Ouvre une boite de dialogue pour imprimer la structure de la Base de Données ouverte - + &Save Project As... Enr&egistrer le projet sous... - - - + + + Save the project in a file selected in a dialog Enregistrer le projet dans un fichier sélectionné dans une boite de dialogue - + Save A&ll Enregistrer &Tout - - - + + + Save DB file, project file and opened SQL files Enregistre la Base de Données, le fichier projet et les fichiers SQL ouverts - + Ctrl+Shift+S - Compact Database - Compacter la Base de Données + + Close Pro&ject + + + + + Close project and database files and return to the initial state + + + + + Ctrl+Shift+F4 + + + + + + Detach Database + + + + + + Detach database file attached to the current database connection + - + Compact the database file, removing space wasted by deleted records Compacter la base de donnée, récupérer l'espace perdu par les enregistrements supprimés - - + + Compact the database file, removing space wasted by deleted records. Compacter la base de donnée, récupérer l'espace perdu par les enregistrements supprimés. - + E&xit &Quitter - + Ctrl+Q - Database from SQL file... - Base de Données à partir du fichier SQL... - - - + Import data from an .sql dump text file into a new or existing database. Importer les données depuis un fichier sql résultant d'un vidage (sql dump) dans une nouvelle Base de Données ou une base existante. - + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. Cette option vous permet d'importer un fichier sql de vidage d'une Base de Données (SQL dump) dans une nouvelle Base de Données ou une base existante. Ce fichier peut être créé par la plupart des moteurs de Base de Données, y compris MySQL et PostgreSQL. - Table from CSV file... - Table à partir d'un fichier CSV... - - - + Open a wizard that lets you import data from a comma separated text file into a database table. Ouvrir un Assistant vous permettant d'importer des données dans une table de la Base de Données à partir d'un fichier texte séparé par des virgules (csv). - + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. Ouvre un Assistant vous permettant d'importer des données dans une table de la Base de Données à partir d'un fichier texte séparé par des virgules (csv). Les fichiers CSV peuvent être créés par la plupart des outils de gestion de Base de Données et les tableurs. - Database to SQL file... - Base de Données vers un fichier SQL... - - - + Export a database to a .sql dump text file. Exporter la Base de Données vers un fichier de vidage sql (SQL dump) au format texte. - + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. Exporter la Base de Données vers un fichier de vidage sql (SQL dump) au format texte. Ce fichier (SQL dump) contient toutes les informations nécessaires pour recréer une Base de Données par la plupart des moteurs de Base de Données, y compris MySQL et PostgreSQL. - Table as CSV file... - Table vers un fichier CSV... - - - + Export a database table as a comma separated text file. Exporter la table vers un fichier texte séparé par des virgules (CSV). - + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. Exporter la table vers un fichier texte séparé par des virgules (CSV), prêt à être importé dans une autre Base de Données ou un tableur. - + &Create Table... &Créer une table... - + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database Ouvrir l'assistant de création d'une table dans lequel il sera possible de définir les noms et les champs d'une nouvelle table dans la Base de Données - + &Delete Table... &Supprimer une table... - + Open the Delete Table wizard, where you can select a database table to be dropped. Ouvrir l'assistant de suppression d'une table avec lequel vous pourrez sélectionner la table à supprimer. - + &Modify Table... &Modifier une table... - + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. Ouvrir l'assistant de modification d'une table avec lequel il sera possible de renommer une table existante. Il est aussi possible d'ajouter ou de supprimer des champs de la table, tout comme modifier le nom des champs et leur type. - Create Index... - Créer un index... - - - + Open the Create Index wizard, where it is possible to define a new index on an existing database table. Ouvrir l'assistant de création d'un index avec lequel il sera possible de définir un nouvel index dans une table préexistante de la Base de Données. - + &Preferences... &Préférences... - - + + Open the preferences window. Ouvrir la fenêtre des préférences. - + &DB Toolbar &Barre d'outils BdD - + Shows or hides the Database toolbar. Affiche ou masque la barre d'outils Base de Données. - What's This? - Qu'est-ce que c'est ? - - - + Shift+F1 - &About... - À &propos... - - - + &Recently opened Ouvert &récemment - - Open &tab - vérifier le contexte - Ouvrir un on&glet - - - + Ctrl+T - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. @@ -3979,96 +3229,72 @@ Vous pouvez faire glisser les instructions SQL de la colonne Schéma et les dép - - + + Recent Files + + + + + Project Toolbar Barre d'outil Projet - + Extra DB toolbar Extra DB Toolbar - - - + + + Close the current database file Fermer la Base de Données en cours - + Ctrl+F4 - + Compact &Database... Compacter la Base de &Données... - + &About À &propos - + This button opens a new tab for the SQL editor Ce bouton ouvre un nouvel onglet dans l'éditeur SQL - + &Execute SQL &Exécuter le SQL - - + + Execute SQL This has to be equal to the tab title in all the main tabs Exécuter le SQL - &Load extension - Charger &l'Extension - - - &Wiki... - &Wiki... - - - Bug &report... - &Rapport d'anomalie... - - - Web&site... - &Site Internet... - - - Save Project - Enregistrer le projet - - - - + + Save the current session to a file Enregistrer la session courante dans un fichier - Open Project - Ouvrir un projet - - - - + + Load a working session from a file Charger une session de travail depuis un fichier - - - Open SQL file - Ouvrir un fichier SQL - @@ -4083,672 +3309,319 @@ You can drag SQL statements from an object row and drop them into other applicat Ceci est la structure de la Base de Données ouverte. Vous pouvez faire glisser les instructions SQL d'une ligne d'objet et les déposer dans d'autres applications ou dans une autre instance de'DB Browser pour SQLite'. - - - - - - Browse Data - This has to be equal to the tab title in all the main tabs - Parcourir les données - - - &Table: - &Table : - - - - Error Log - Journal des erreurs - - - Refresh the data in the selected table - Rafraîchir les données de la table sélectionnée - - - - Un/comment block of SQL code - Dé/commenter un bloc de code SQL - - - - Un/comment block - Dé/commenter un bloc - - - - Comment or uncomment current line or selected block of code - Commenter ou décommenter la ligne actuelle ou le bloc de code sélectionné - - - - Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. - Commenter ou décommenter les lignes sélectionnées ou la ligne en cours, lorsqu'il n'y a pas de sélection. Tout le bloc est basculé en fonction de la première ligne. - - - - Ctrl+/ - - - - - Stop SQL execution - Arrête l'exécution du SQL - - - - Stop execution - Arrêter l'exécution - - - - Stop the currently running SQL script - Arrête le script SQL en cours d'exécution - - - This button clears all the filters set in the header input fields for the currently browsed table. - Ce bouton efface tous les filtres définis dans les champs de saisie de l'en-tête de la table actuellement parcourue. - - - Save the table as currently displayed - Enregistrer la table comme affichée actuellement - - - <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - <html><head/><body><p>Ce menu déroulant fournit les options suivantes s'appliquant à la table actuellement parcourue et filtrée:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Exporter au format CSV : cette option exporte les données de la table parcourue telles qu'elles sont actuellement affichées (après filtres, formats d'affichage et colonne d'ordre) vers un fichier CSV.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Enregistrer comme vue : cette option permet d'enregistrer les paramètres actuels de la table parcourue (filtres, formats d'affichage et colonne d'ordre) dans une vue SQL que vous pourrez ensuite parcourir ou utiliser dans les instructions SQL.</li></ul></body></html> - - - ... - ... - - - Print currrently browsed table data - Imprimer le données de la table actuellement parcourues - - - Print currrently browsed table data. Print selection if more than one cell is selected. - Imprimer le données de la table actuellement parcourues. Imprime la sélection su plus s'une ligne est sélectionnée. - - - <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - <html><head/><body><p>Ce bouton crée un nouvel enregistrement dans la Base de Données. Maintenez le bouton de la souris enfoncé pour ouvrir un menu contextuel de différentes options :</p><ul><li><span style=" font-weight:600;">Nouvel Enregistrement</span> : Insère un nouvel enregistrement avec les valeurs par défaut dans la Base de Données.</li><li><span style=" font-weight:600;">Insérer des valeurs...</span> : ouvre une boite de dialogue pour saisir des valeurs avant leur insersion dans la Base de Données. Ceci permet de saisir des valeurs correspondant aux différentes contraintes. Cette boîte de dialogue est également ouverte si l'option <span style=" font-weight:600;">Nouvel Enregistrement </span> est en erreur à cause de ces contraintes.</li></ul></body></html> - - - This button deletes the record or records currently selected in the table - Ce bouton permet de supprimer l'enregistrement sélectionné dans la table - - - This is the database table view. You can do the following actions: - - Start writing for editing inline the value. - - Double-click any record to edit its contents in the cell editor window. - - Alt+Del for deleting the cell content to NULL. - - Ctrl+" for duplicating the current record. - - Ctrl+' for copying the value from the cell above. - - Standard selection and copy/paste operations. - Ceci est la vue des tables de Base de Données. Vous pouvez effectuer les actions suivantes : - - Commencez à écrire pour éditer en ligne la valeur. - - Double-cliquez sur n'importe quel enregistrement pour éditer son contenu dans la fenêtre de l'éditeur de cellule. - - Alt+Supp pour supprimer le contenu de la cellule et la met à NULL. - - Ctrl+" pour dupliquer l'enregistrement en cours. - - Ctrl+' pour copier la valeur de la cellule ci-dessus. - - Sélection standard et opérations de copier/coller. - - - Scroll one page upwards - Remonter d'une page - - - <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - <html><head/><body><p>Cliquer sur ce bouton permet d'afficher la page d'enregistrements précédente de la table ci dessus.</p></body></html> - - - Scroll one page downwards - Descendre d'une page - - - <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - <html><head/><body><p>Cliquer sur ce bouton permet d'afficher la page d'enregistrements suivante de la table ci dessus.</p></body></html> - - - - - Edit Pragmas - This has to be equal to the tab title in all the main tabs - Éditer les Pragmas - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Index Automatique</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Point de contrôle FSYNC intégral</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Foreign Keys</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Clés étrangères</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignorer la vérification des contraintes</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Mode de journalisation</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Taille maximale du journal</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Locking Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Mode de vérouillagee</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Taille de la Page</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Triggers récursifs</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Suppression sécuriséee</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronisation</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Stockage temporaire</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">Version utilisateur</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL Auto Checkpoint</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">Point de contrôle WAL automatique</span></a></p></body></html> - - - Remote - Serveur distant - - - - DB Toolbar - Barre d'outils BdD - - - Edit Database Cell - Éditer le contenu d'une cellule de la Base de Données - - - - SQL &Log - &Journal SQL - - - - Show S&QL submitted by - A&fficher le SQL soumis par - - - - This panel lets you examine a log of all SQL commands issued by the application or by yourself - Ce panneau vous permet d'examiner un journal de toutes les commandes SQL émises par l'application ou par vous-même - - - - &Plot - Gra&phique - - - Line type: - Type de ligne : - - - Line - Ligne - - - StepLeft - Voir la traduction. Peut aussi siugnifier qu'il s'agit de la dernière étape comme "maintenant vous n'avez plus qu'à"... - A Gauche - - - StepRight - A Droite - - - StepCenter - Centré - - - Impulse - Traduction à modifier en fonction du contexte et du résultat - Impulsion - - - Point shape: - Traduction à modifier en fonction du contexte et du résultat - Type de pointe : + - Cross - Croix + + + Browse Data + This has to be equal to the tab title in all the main tabs + Parcourir les données - Plus - Plus + + Error Log + Journal des erreurs - Circle - Cercle + + Un/comment block of SQL code + Dé/commenter un bloc de code SQL - Disc - Disque + + Un/comment block + Dé/commenter un bloc - Square - Carré + + Comment or uncomment current line or selected block of code + Commenter ou décommenter la ligne actuelle ou le bloc de code sélectionné - Diamond - Diamant + + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. + Commenter ou décommenter les lignes sélectionnées ou la ligne en cours, lorsqu'il n'y a pas de sélection. Tout le bloc est basculé en fonction de la première ligne. - Star - Etoile + + Ctrl+/ + - Triangle - Triangle + + Stop SQL execution + Arrête l'exécution du SQL - TriangleInverted - Triangle Inversé + + Stop execution + Arrêter l'exécution - CrossSquare - Carré et croix + + Stop the currently running SQL script + Arrête le script SQL en cours d'exécution - PlusSquare - Carré et Plus + + + Edit Pragmas + This has to be equal to the tab title in all the main tabs + Éditer les Pragmas - CrossCircle - Cercle et Croix + + DB Toolbar + Barre d'outils BdD - PlusCircle - Cercle et Plus + + SQL &Log + &Journal SQL - Peace - A voir en fonction du contexte et du résultat - Paix + + Show S&QL submitted by + A&fficher le SQL soumis par - <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - <html><head/><body><p>Enregistrer le graphique actuel...</p><p>Choisir le format de fichier parmi les extensions (png, jpg, pdf, bmp)</p></body></html> + + This panel lets you examine a log of all SQL commands issued by the application or by yourself + Ce panneau vous permet d'examiner un journal de toutes les commandes SQL émises par l'application ou par vous-même - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - Charger toute les données : Cela a un effet uniquement si les données ont été parourues partiellement en raison du mécanisme de fetch partiel. + + &Plot + Gra&phique - + DB Sche&ma DB Sche&ma - + &Remote Serveur &distant - Compact &Database - C&ompacter la Base de Données - - - + &Database from SQL file... &Base de Données à partir du fichier SQL... - + &Table from CSV file... &Table depuis un fichier CSV... - + &Database to SQL file... Base de &Données vers un fichier SQL... - + &Table(s) as CSV file... &Table vers un fichier CSV... - + Create &Index... Créer un &Index... - + W&hat's This? &Qu'est-ce que c'est ? - - - + + New &tab + + + + + Open SQL file(s) + Ouvrir un fichier SQL + + + + This button opens files containing SQL statements and loads them in new editor tabs + Ce bouton ouvre un fichier contenant des instructions SQL et le charge dans un nouvel onglet de l'éditeur + + + + + Save SQL file Enregistrer le fichier SQL - + &Load Extension... Charger l'&Extension... - - + + Execute current line Exécuter la ligne courante (Maj+F5) - + This button executes the SQL statement present in the current editor line Ce bouton exécute l'instruction SQL présente dans la ligne courante de l'éditeur - + Shift+F5 - + Sa&ve Project Enre&gistrer le projet - Open &Project - Ouvrir un &Projet - - - &Attach Database - Attac&her une Base de Données - - - &Set Encryption - &Chiffrer - - - - + + Save SQL file as Enregistrer le fichier SQL comme - + This button saves the content of the current SQL editor tab to a file Ce bouton enregistre le contenu de l'onglet actuel de l'éditeur SQL dans un fichier - + &Browse Table &Parcourir la table - + Copy Create statement Copier l'instruction CREATE - + Copy the CREATE statement of the item to the clipboard Copie l'instruction CREATE de cet item dans le presse-papier - Edit display format - Modifier le format d'affichage - - - Edit the display format of the data in this column - Modifie le format d'affichage des données contenues dans cette colonne - - - Show rowid column - Afficher la colonne RowId - - - Toggle the visibility of the rowid column - Permet d'afficher ou non la colonne RowId - - - Set encoding - Définir l'encodage - - - Change the encoding of the text in the table cells - Change l'encodage du texte des cellules de la table - - - Set encoding for all tables - Définir l'encodage pour toutes les tables - - - Change the default encoding assumed for all tables in the database - Change l'encodage par défaut choisi pour l'ensemble des tables de la Base de Données - - - &Open Database Read Only... - Ouvrir en &Lecture seule... - - - + Open an existing database file in read only mode Ouvrir une Base de Données existante en mode Lecture seule - Unlock view editing - Dévérouiller l'éditeur de vues - - - This unlocks the current view for editing. However, you will need appropriate triggers for editing. - Permet de dévérouiller la vue courante l'éditer. Cependant, vous aurez besoin de déclencheurs appropriés pour faire cela. - - - Duplicate record - Dupliquer l'enregistrement - - - Load extension - Charger une extension - - - + Ctrl+E - + Export as CSV file Exporter les données au format CSV - + Export table as comma separated values file Exporter la table vers un fichier texte séparé par des virgules (CSV) - + Ctrl+L - - + + Ctrl+P - + Database encoding Encodage de la Base de Données - - + + Choose a database file Choisir une Base de Données - + Ctrl+Return - + Ctrl+D - + Ctrl+I - + Reset Window Layout Rétablir la disposition des fenêtres - + Alt+0 - - Close current SQL tab - Fermer l'onglet SQL courant - - - + The database is currenctly busy. La Base de Données est actuellement occupée. - + Click here to interrupt the currently running query. Cliquez ici pour interrompre la requête en cours. - + Encrypted Chiffré - + Database is encrypted using SQLCipher La Base de Données a été chiffrée avec SQLCipher - + Read only Lecture seule - + Database file is read only. Editing the database is disabled. La Base de Données est ouverte en lecture seule. Il n'est pas possible de la modifier. - + Could not open database file. Reason: %1 La Base de Données ne peut être ouverte. Motif : %1 - - - + + + Choose a filename to save under Choisir un nom de fichier pour enregistrer sous - Error adding record: - - Erreur dans l'ajout d'un enregistrement : - - - Error deleting record: -%1 - Erreur dans la suppression d'un enregistrement : -%1 - - - Please select a record first - Veuillez sélectionner au préalable un enregistrement - - - %1 - %2 of %3 - %1 - %2 de %3 - - - There is no database opened. Please open or create a new database file. - Il n'y a pas de Base de Données ouverte. Veuillez ouvrir ou créer une nouvelle Base de Données. - - - Are you sure you want to delete the %1 '%2'? -All data associated with the %1 will be lost. - Êtes-vous sûr de vouloir supprimer le %1 '%2'? -Toutes les données associées à %1 seront perdues. - - - Error: could not delete the %1. Message from database engine: -%2 - Erreur : Suppression impossible de %1. Message du moteur de Base de Données : -%2 - - - There is no database opened. - Il n'y a pas de Base de Données ouverte. - - - %1 rows returned in %2ms from: %3 - %1 enregistrements ramenés en %2ms depuis : %3 - - - , %1 rows affected - , %1 enregistrements affectés - - - Query executed successfully: %1 (took %2ms%3) - Requête exécutée avec succès : %1 (en %2 ms%3) - - - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 @@ -4757,424 +3630,413 @@ Toutes les données associées à %1 seront perdues. %1 - + Do you want to save the changes made to SQL tabs in the project file '%1'? Voulez-vous enregistrer les modifications apportées aux onglets SQL dans le fichier du projet '%1' ? - + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. Une nouvelle version de DB Browser pour SQLite est disponible (%1.%2.%3).<br/><br/>Vous pouvez la télécharger sur <a href='%4'>%4</a>. - Please enter the URL of the database file to save. - Veuillez saisir l'URL du fichier de Base de Données à enregistrer. - - - + DB Browser for SQLite project file (*.sqbpro) - Projet DB Browser pour SQLite (*.sqbpro) - - - Please choose a new encoding for this table. - Veuillez choisir un nouvel encodage pour cette table. - - - Please choose a new encoding for all tables. - Veuillez choisir un nouvel encodage pour toutes les tables. + Fichier de projet DB Browser pour SQLite (*.sqbpro) - + Error checking foreign keys after table modification. The changes will be reverted. Erreur de vérification des clés étrangères après modification de la table. Les modifications seront annulées. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. Cette table n'a pas passé avec succès un contrôle de clé étrangère.<br/>Vous devez exécuter l'Outil | Contrôle des clés étrangères' et corriger les problèmes rapportés. - + Execution finished with errors. L'exécution s'est terminée avec des erreurs. - + Execution finished without errors. L'exécution s'est terminée sans erreur. - %1 -Leave the field empty for using the database encoding. - %1 -Laissez le champ vide pour utiliser l'encodage de la Base de Données. - - - This encoding is either not valid or not supported. - Cet encodage est invalide ou non supporté. - - - Cancel - Annuler - - - %1 Rows returned from: %2 (took %3ms) - %1 enregistrements ramenés depuis %2 (en %3ms) + + Are you sure you want to undo all changes made to the database file '%1' since the last save? + Êtes-vous sûr de vouloir annuler tous les changements effectués dans la Base de Données %1 depuis la dernière sauvegarde ? - Error executing query: %1 - Erreur lors de l'exécution de la requête : %1 + + Choose a file to import + Choisir un fichier à importer - Query executed successfully: %1 (took %2ms) - Requête exécutée avec succès : %1 (en %2 ms) + + Text files(*.sql *.txt);;All files(*) + Fichiers Texte (*.sql *.txt);;Tous les fichiers(*) - Choose a text file - Choisir un fichier texte + + Do you want to create a new database file to hold the imported data? +If you answer no we will attempt to import the data in the SQL file to the current database. + Voulez vous créer une nouvelle base de donnée pour gérer les données importées ? +Si vous répondez non, nous essaierons d'importer les données du fichier SQL dans la Base de Données courante. - Text files(*.csv *.txt);;All files(*) - Fichiers Texte (*.txt);;Tous les fichiers(*) + + Ctrl+Tab + - Import completed - Import terminé + + Ctrl+Shift+Tab + - - Are you sure you want to undo all changes made to the database file '%1' since the last save? - Êtes-vous sûr de vouloir annuler tous les changements effectués dans la Base de Données %1 depuis la dernière sauvegarde ? + + Ctrl+PgUp + - Choose a filename to export - Choisir un nom de fichier pour l'export + + Clear List + - Text files(*.sql *.txt) - Fichiers Texte (*.sql *.txt) + + Window Layout + Disposition des fenêtres - Export cancelled or failed. - l'export a été annulé ou a échoué. + + Simplify Window Layout + Simplifier la disposition des fenêtres - Export completed. - Export terminé. + + Shift+Alt+0 + Maj+Alt+0 - - Choose a file to import - Choisir un fichier à importer + + Dock Windows at Bottom + Ancrer les fenêtres en Bas - - Text files(*.sql *.txt);;All files(*) - Fichiers Texte (*.sql *.txt);;Tous les fichiers(*) + + Dock Windows at Left Side + Ancrer les fenêtres à Gauche - - Do you want to create a new database file to hold the imported data? -If you answer no we will attempt to import the data in the SQL file to the current database. - Voulez vous créer une nouvelle base de donnée pour gérer les données importées ? -Si vous répondez non, nous essaierons d'importer les données du fichier SQL dans la Base de Données courante. + + Dock Windows at Top + Ancrer les fenêtres en Haut - + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? - Des traitements SQL sont en cours d'exécution. Fermer la Base de Données maintrenant arrêtera ces traitements. Cela risque de laisser la Base de Données dans un état incohérent. Êtes-vous sûr de vouloir fermer la Base de Données ? + Des traitements SQL sont en cours d'exécution. Fermer la Base de Données maintenant arrêtera ces traitements. Cela risque de laisser la Base de Données dans un état incohérent. Êtes-vous sûr de vouloir fermer la Base de Données ? - + Do you want to save the changes made to the project file '%1'? - Voulez-vous enregistrer les changements effectués dans la dans le fichier projet '%1' ? + Voulez-vous enregistrer les changements effectués dans le fichier projet '%1' ? - + File %1 already exists. Please choose a different name. Le fichier %1 existe déjà. Veuillez choisir un nom de fichier différent. - + Error importing data: %1 Erreur lors de l'import des données : %1 - + Import completed. Import terminé. - + Delete View Supprimer la Vue - + Delete Trigger Supprimer le Déclencheur - + Delete Index Supprimer l'Index - - + + Delete Table Supprimer la Table - &%1 %2 - &%1 %2 - - - + Setting PRAGMA values will commit your current transaction. Are you sure? Paramétrer les valeurs du PRAGMA enregistrera les actions de votre transaction courante. Êtes-vous sûr ? - Execution aborted by user - Exécution annulée par l'utilisateur - - - + In-Memory database Base de Données en mémoire - You are still executing SQL statements. When closing the database now the execution will be stopped. maybe leaving the database in an incosistent state. Are you sure you want to close the database? - Des traitements SQL sont en cours d'exécution. Lorsque vous fermez la Base de Données, ces traitements s'arrêteront. Vous risquez de laisser la Base de Données dans un état incohérent. Êtes-vous sûr de vouloir fermer la Base de Données ? - - - determining row count... - Détermination du nombre d'enregistrements... - - - %1 - %2 of >= %3 - %1 - %2 de >= %3 - - - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. - Êtes vous sûr de vouloir supprimer la table %1 ? + Êtes-vous sûr de vouloir supprimer la table %1 ? Toutes les données de la table seront perdues. - + Are you sure you want to delete the view '%1'? - Êtes vous sûr de voulolir supprimer la vue %1 ? + Êtes-vous sûr de vouloir supprimer la vue %1 ? - + Are you sure you want to delete the trigger '%1'? - Êtes vous sûr de voulolir supprimer le déclencheur %1 ? + Êtes-vous sûr de vouloir supprimer le déclencheur %1 ? - + Are you sure you want to delete the index '%1'? - Êtes vous sûr de voulolir supprimer l'index %1 ? + Êtes-vous sûr de vouloir supprimer l'index %1 ? - + Error: could not delete the table. Erreur : suppression de la table impossible. - + Error: could not delete the view. Erreur : suppression de la vue impossible. - + Error: could not delete the trigger. Erreur : suppression du déclencheur impossible. - + Error: could not delete the index. Erreur : suppression de l'index impossible. - + Message from database engine: %1 Message depuis el moteur de la Base de Données : %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? La modification de la table nécessite d'enregistrer toutes les modifications en attente maintenant. Êtes-vous sûr de vouloir enregistrer la Base de Données ? - + + Edit View %1 + Editer la vue %1 + + + + Edit Trigger %1 + Editer le déclencheur %1 + + + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. Vous avez des instructions SQL en cours d'exécution. Voulez-vous les arrêter afin d'exécuter les instructions en cours à la place ? Cela pourrait laisser la Base de Données dans un état incohérent. - + -- EXECUTING SELECTION IN '%1' -- -- EXECUTION DE LA SELECTION DANS '%1' -- - + -- EXECUTING LINE IN '%1' -- -- EXECUTION DE LA LIGNE DANS '%1' -- - + -- EXECUTING ALL IN '%1' -- -- EXECUTER TOUT DANS '%1' -- - - + + At line %1: À la ligne %1 : - + Result: %1 Résultat : %1 - + Result: %2 Résultat : %2 - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? Le réglage des valeurs PRAGMA ou du "vacuuming" validera votre transaction en cours. Êtes-vous sûr ? - + + Opened '%1' in read-only mode from recent file list + Ouverture de '%1' en lecture seule depuis la liste des fichiers récents + + + + Opened '%1' from recent file list + Ouverture de '%1' depuis la liste des fichiers récents + + + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + + + + Project saved to file '%1' Projet enregistré dans le fichier '%1' - + + Yes. Don't ask again + + + + + This action will open a new SQL tab with the following statements for you to edit and run: + Need to verify if following statements ore shown bellow ou above or on the open action + Cette action ouvrira un nouvel onglet SQL avec les instructions suivantes que vous pourrez modifier et exécuter : + + + Rename Tab Renommer l'onglet - + Duplicate Tab Dupliquer l'onglet - + Close Tab Fermer l'onglet - + Opening '%1'... Ouverture de '%1'... - + There was an error opening '%1'... Il y a eu une erreur lors de l'ouverture de '%1'... - + Value is not a valid URL or filename: %1 Le valeur n'est pas une URL valide ou un nom de fichier : %1 - executing query - Exécution de la requête - - - + %1 rows returned in %2ms %1 enregistrements ramenés en %2ms - query executed successfully. Took %1ms%2 - Requête exécutée avec succès. A pris %1 ms %2 - - - -- At line %1: -%4 --- Result: %3 - -- A la ligne %1 : -%4 --- Résultat : %3 - - - + Choose text files Choisir des fichiers texte - + Import completed. Some foreign key constraints are violated. Please fix them before saving. Importation terminée. Certaines contraintes clés étrangères sont violées. Veuillez les corriger avant de les enregistrer. - + Modify View Modifier une Vue - + Modify Trigger Modifier un Déclencheur - + Modify Index Modifier un Index - + Modify Table Modifier une Table - + &%1 %2%3 &%1 %2%3 - + (read only) (lecture seule) - + Open Database or Project Ouvrir une Base de Données ou un projet - + Attach Database... Attacher une Base de Données... - + Import CSV file(s)... Importer un ou des fichiers CSV... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. Sélectionnez l'action à appliquer au fichier déposé. <br>Note : seul "Importer" traitera plusieurs fichiers. @@ -5182,109 +4044,75 @@ Are you sure? - + Do you want to save the changes made to SQL tabs in a new project file? Voulez-vous enregistrer les changements effectués dans l'onglet SQL dans un nouveau fichier projet ? - + Do you want to save the changes made to the SQL file %1? Voulez-vous enregistrer les changements effectués dans le fichier SQL %1 ? - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? - Les instructions de cet onglet sont toujours en cours d'exécution. La fermeture de l'onglet arrête leur exécution. Cela pourrait laisser la Base de Données dans un état incohérent. Êtes-vous sûr de vouloir fermer l'onglet ? - - - + Select SQL file to open Sélectionner un fichier SQL à ouvrir - Couldn't read file: %1. - Le fichier %1 ne peut être lu. - - - Couldn't save file: %1. - Le fichier %1 ne peut être sauvegardé. - - - + Select file name Sélectionner un nom de fichier - + Select extension file Sélectionner une extension de fichier - Extensions(*.so *.dll);;All files(*) - Extensions (*.so *.dll);;Tous les fichiers (*) - - - + Extension successfully loaded. l'extension a été chargée avec succès. - + Error loading extension: %1 Erreur lors du chargement de l'extension %1 - + Could not find resource file: %1 Le fichier de ressources : %1 ne peut être ouvert - - + + Don't show again Ne plus afficher - + New version available. Une nouvelle version est disponible. - + Choose a project file to open Choisir un fichier de projet à ouvrir - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - Ce fichier de projet utilise un ancien format de fichier parce qu'il a été créé avec DB Browser pour SQLite version 3.10 ou inférieure. Le chargement de ce format de fichier est toujours entièrement pris en charge, mais nous vous conseillons de convertir tous vos fichiers de projet vers le nouveau format de fichier car la prise en charge des anciens formats pourrait être supprimée à un moment donné dans le futur. Vous pouvez convertir vos fichiers en les ouvrant et en les sauvegardant à nouveau. - - - - Could not open project file for writing. -Reason: %1 - Le fichier projet ne peut être ouvert en écriture. -Raison : %1 - - - Duplicate records - Enregistrement en double - - - Ctrl+" - - - - Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - Veuillez entrer une pseudo clé primaire pour permettre l'édition de la vue. Ce devrait être le nom d'une colonne unique dans la vue. + + Could not open project file for writing. +Reason: %1 + Le fichier projet ne peut être ouvert en écriture. +Raison : %1 - + Collation needed! Proceed? Classement nécessaire ! Continuer ? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -5293,82 +4121,50 @@ Si vous choisissez de continuer, ayez à l'esprit que des choses non souhai Faites une sauvegarde ! - + creating collation Créer un classement - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. Définissez un nouveau nom pour l'onglet SQL. Utilisez le caractère '&&' pour permettre d'utiliser le caractère suivant comme raccourci clavier. - + Please specify the view name Veuillez spécifier le nom de la vue - + There is already an object with that name. Please choose a different name. Il existe déjà un objet avec ce nom. Veuillez choisir un autre nom. - + View successfully created. La vue a été crée avec succès. - + Error creating view: %1 Erreur lors de la création de la vue : %1 - There is no filter set for this table. View will not be created. - Il n'existe pas de filtre pour cette table. La vue ne sera pas crée. - - - Delete Records - Supprimer les enregistrements - - - + This action will open a new SQL tab for running: Cette action ouvrira un nouvel onglet SQL pour son exécution : - + Press Help for opening the corresponding SQLite reference page. Cliquez sur Aide pour ouvrir la page de référence correspondante de SQLite. - + Busy (%1) Occupé (%1) - - A new sqlitebrowser version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. - Une nouvelle version de SQLiteBrowser est disponible (%1.%2.%3).<br/><br/>Vous pouvez la télécharger sur <a href='%4'>%4</a>. - - - Choose a axis color - Choisir la couleur de l'axe - - - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - - - Choose a file to open - Choisir un fichier à ouvrir - - - SQLiteBrowser project(*.sqbpro) - Projet SQLiteBrowser (*.sqbpro) - - - Invalid file format. - Format de fichier invalide. - NullLineEdit @@ -5391,45 +4187,37 @@ Faites une sauvegarde ! Graphique - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> <html><head/><body><p>Ce volet affiche la liste des colonnes de la table actuellement parcourue ou de la requête qui vient d'être exécutée. Vous pouvez sélectionner les colonnes que vous voulez utiliser comme axe X ou Y pour le volet de tracé ci-dessous. Le tableau montre le type d'axe détecté qui affectera le tracé résultant. Pour l'axe Y, vous ne pouvez sélectionner que des colonnes numériques, mais pour l'axe X, vous pourrez sélectionner :</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Heure</span> : chaînes au format &quot;aaaa-MM-jj hh:mm:ss&quot; ou &quot;aaaa-MM-jjThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span> : chaînes au format &quot;aaaa-MM-jj&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Heures</span> : chaînes au format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span> : autres formats de chaînes. Sélectionner cette colonne comme axe X produira un diagramme en barres avec les valeurs de la colonne comme étiquettes pour les barres</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numerique</span> : Nombres entiers ou Réels</li></ul><p>Avec Double-clic sur une cellule Y, vous pouvez changer le couleur utilisée dans le graphique.</p></body></html> - + Columns Colonnes - + X X - Y - Y - - - _ - _ - - - + Y1 Y1 - + Y2 Y2 - + Axis Type Type d'axe - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -5446,147 +4234,139 @@ Utilisez la molette de la souris pour zoomer et faites glisser la souris pour mo Sélectionnez les axes ou les étiquettes d'axes à faire glisser et à zoomer uniquement dans cette orientation. - + Line type: Type de ligne : - - + + None Aucun - + Line Ligne - + StepLeft A Gauche - + StepRight A Droite - + StepCenter Centré - + Impulse Impulsion - + Point shape: Forme du point : - + Cross Croix - + Plus Plus - + Circle Cercle - + Disc Disque - + Square Carré - + Diamond Diamant - + Star Étoile - + Triangle Triangle - + TriangleInverted Triangle Inversé - + CrossSquare Carré et croix - + PlusSquare Carré et Plus - + CrossCircle Cercle et Croix - + PlusCircle Cercle et Plus - + Peace Paix - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> <html><head/><body><p>Enregistrer le graphique actuel...</p><p>Choisir le format de fichier parmi ces extensions (png, jpg, pdf, bmp)</p></body></html> - + Save current plot... Enregistrer le tracé actuel... - - + + Load all data and redraw plot Charger toutes les données et redessiner le graphique - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - Charger toute les données : Cela a un effet uniquement si les données ont été parourues partiellement en raison du mécanisme de fetch partiel. - - - - - + + + Row # # Ligne - - Choose a axis color - Choisir la couleur de l'axe - Copy @@ -5608,76 +4388,68 @@ Sélectionnez les axes ou les étiquettes d'axes à faire glisser et à zoo Diagramme à barres empilées - + Date/Time Date/Heure - + Date Date - + Time Heure - - + + Numeric Numérique - + Label Label - + Invalid Invalide - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. Charger toutes les données et redessiner le tracé. Attention : toutes les données n'ont pas encore été extraites du tableau en raison du mécanisme d'extraction partielle. - + Choose an axis color Choisir une couleur d'axe - + Choose a filename to save under Choisir un nom de fichier pour enregistrer sous - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. Il y a des courbes dans ce graphique et le style de ligne sélectionné ne peut être appliqué qu'aux graphiques triés par X. Triez la table ou la requête par X pour supprimer les courbes ou sélectionnez un des styles pris en charge par les courbes : Aucun ou Ligne. - + Loading all remaining data for this table took %1ms. Le chargement de toutes les données restantes pour ce tableau a pris %1 ms. - - Fetching all data... - Récupérer toutes les données... - - - Cancel - Annuler - PreferencesDialog @@ -5722,34 +4494,36 @@ Attention : toutes les données n'ont pas encore été extraites du tableau Mises à jour A&utomatiques - + &Database Base de &Données - + Database &encoding &Encodage de la Base de Données - + Open databases with foreign keys enabled. Ouvrir une Base de Données en autorisant les clés étrangères. - + &Foreign keys &Clés étrangères - - - - - - + + + + + + + + enabled Autoriser @@ -5760,264 +4534,214 @@ Attention : toutes les données n'ont pas encore été extraites du tableau - - + + ... ... - &Prefetch block size - Taille du bloc &Prefetch - - - + Remove line breaks in schema &view Suppr. les sauts de ligne dans la &vue du schéma - + Prefetch block si&ze &Taille du bloc de préfetch - - Advanced - Avancé - - - SQL to execute after opening database - Fichier SQL à éxécuter à l'ouverture -de la Base de Données - - - + SQ&L to execute after opening database Fichier SQ&L à exécuter à l'ouverture de la Base de Données - + Default field type Type de champ par défaut - + Data &Browser &Navigateur des données - + Font Police - + &Font &Police - Font si&ze: - T&aille de police : - - - + Content Contenu - + Symbol limit in cell Texte : Nb max. de caractères - NULL fields - Champs NULL - - - &Text - &Texte - - - Field colors - Couleur des champs - - - + NULL NULL - + Regular Standard - Text - Texte - - - + Binary Binaire - + Background Arrière plan - + Filters Filtres - + Threshold for completion and calculation on selection Seuil d'achèvement et calcul lors de la sélection - + Show images in cell Afficher les images dans la cellule - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. Activez cette option pour afficher un aperçu des BLOBs contenant des images dans les cellules. Cela peut toutefois affecter les performances du navigateur de données. - + Escape character Caractère d'échappement - + Delay time (&ms) Délai (&ms) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. Défini le temps d'attente avant qu'une nouvelle valeur de filtre est appliquee. Peut être renseigné à 0 pour supprimer le temps d'attente. - + &SQL &SQL - + Settings name Définir le nom - + Context Contexte - + Colour Couleur - + Bold Gras - + Italic Italique - + Underline Souligné - + Keyword Mot Clé - function - fonction - - - + Function Fonction - + Table Table - + Comment Commentaire - + Identifier Identifiant - + String Chaîne de caractère - currentline - Ligne courante - - - + Current line Ligne courante - + SQL &editor font size &Taille de la police : Éditeur SQL - SQL &log font size - Taille de la police : &Journal SQL - - - + Tab size Largeur de tabulation - + SQL editor &font &Police de l'éditeur SQL - + Error indicators Indicateur d'erreur - Enabling error indicators highlights the SQL code lines that caused errors during the last execution - Activer l'indicateur d'erreur met en évidence la ligne de code SQL ayant causé une ou des erreurs pendant son exécution - - - + Hori&zontal tiling Division hori&zontale - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. Si elle est activée, l'éditeur de code SQL et l'affichage du tableau de résultats sont présentés côte à côte au lieu d'être l'un sur l'autre. - + Code co&mpletion Co&mplétion de code @@ -6127,17 +4851,48 @@ de la Base de Données Style de l'application - + + This sets the font size for all UI elements which do not have their own font size option. + Définit la taille de la police pour tous les éléments de l'interface utilisateur qui n'ont pas leur propre option de taille de police. + + + + Font size + Taille de police + + + + Max Recent Files + + + + + Prompt to save SQL tabs +in new project file + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. Lorsque cette option est activée, les sauts de ligne de la colonne Schéma de l'onglet Structure de la Base de Données, du dock et de la sortie imprimée sont supprimés. - + + Database structure font size + Taille de la police pour la structure de la Base de Données + + + Font si&ze T&aille de police - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. @@ -6148,527 +4903,465 @@ Nombre maximum d'index dans une sélection pour le calcul de la somme et de Peut être fixé à 0 pour la désactivation des fonctionnalités. - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. Il s'agit du nombre maximum de lignes dans une table pour permettre la complétion de la valeur en fonction des valeurs actuelles dans la colonne. Peut être mis à 0 pour désactiver la complétion. - Row count threshold for completion - Seuil de comptage des enregistrements pour la complétion - - - + Field display Affichage des champs - + Displayed &text &Texte affiché - - - + - - + + + + Click to set this color Cliquez pour définir cette couleur - + Text color Couleur de texte - + Background color Couleur d'arrière plan - + Preview only (N/A) Préaffichage uniquement (N/A) - + Foreground Avant Plan - + + selected_bg + + + + + Selection background + + + + + selected_fg + + + + + Selection foreground + + + + + highlight + + + + + Highlight + + + + SQL &results font size Taille police &résultats SQL - + &Wrap lines &Retour à la ligne - + Never Jamais - + At word boundaries Aux limites des mots - + At character boundaries Aux limites des caractères - + At whitespace boundaries Aux limites des espaces - + &Quotes for identifiers &Guillemets pour les identifiants - + Choose the quoting mechanism used by the application for identifiers in SQL code. Choisissez le système de guillemets utilisés par l'application pour les identificateurs dans le code SQL. - + "Double quotes" - Standard SQL (recommended) "Double guillemet" - Standard SQL (recommandé) - + `Grave accents` - Traditional MySQL quotes `Accent Grave` - Guillemets standards MySQL - + [Square brackets] - Traditional MS SQL Server quotes [Crochets] - Guillemets traditionels de MS SQL Server - + Keywords in &UPPER CASE Mots clé en &MAJUSCULES - + When set, the SQL keywords are completed in UPPER CASE letters. Quand cette case est cochée, les mots clé SQL sont transformés en MAJUSCULES. - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background Lorsque cette option est activée, les lignes de code SQL qui ont causé des erreurs lors de la dernière exécution sont mises en surbrillance et le cadre des résultats indique l'erreur en arrière-plan - + + Close button on tabs + Bouton de fermeture des onglets + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + Si cette option est activée, les onglets de l'éditeur SQL comporteront un bouton de fermeture. Dans tous les cas, vous pouvez utiliser le menu contextuel ou le raccourci clavier pour les fermer. + + + &Extensions E&xtensions - + Select extensions to load for every database: Sélectionner une extension à charger pour toutes les bases de données : - + Add extension Ajouter une extension - + Remove extension Enlever une extension - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> - <html><head/><body><p>Bien que SQLite supporte l'opérateur REGEXP, aucun algorithme<br>d'expression régulière est implémenté, mais il rappelle l'application en cours d'exécution. DB Browser pour SQLite implémente<br/>cet algorithme pour vous permettre d'utiliser REGEXP. Cependant, comme il existe plusieurs implémentations possibles<br/>et que vous souhaitez peut-être utiliser autre chose, vous êtes libre de désactiver cette implémentation dans l'application<br/>pour utiliser la votre en utilisant une extention. Cela nécessite le redémarrage de l'application.</p></body></html> + <html><head/><body><p>Bien que SQLite supporte l'opérateur REGEXP, aucun algorithme<br>d'expression régulière est implémenté, mais il rappelle l'application en cours d'exécution. DB Browser pour SQLite implémente<br/>cet algorithme pour vous permettre d'utiliser REGEXP. Cependant, comme il existe plusieurs implémentations possibles<br/>et que vous souhaitez peut-être utiliser autre chose, vous êtes libre de désactiver cette implémentation dans l'application<br/>pour utiliser la votre en utilisant une extension. Cela nécessite le redémarrage de l'application.</p></body></html> - + Disable Regular Expression extension Désactiver l'extention "Expression Régulière" - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> <html><head/><body><p>SQLite fournit une fonction SQL pour charger des extensions à partir d'un fichier de bibliothèque partagé. Activez cette option si vous souhaitez utiliser la fonction <span style=" font-style:italic;">load_extension()</span> depuis el code SQL.</p><p>Pour des raisons de sécurité, le chargement des extensions est désactivé par défaut et doit être activé par ce paramètre. Vous pouvez toujours charger des extensions via l'interface graphique, même si cette option est désactivée.</p></body></html> - + Allow loading extensions from SQL code Autoriser le chargement des extensions depuis le code SQL - + Remote Serveur distant - + CA certificates Certificats CA - + Proxy Proxy - + Configure Configurer - - + + Export Settings + + + + + Import Settings + + + + + Subject CN Sujet CN - + Common Name Nom Commun - CN - + Subject O Sujet O - + Organization Organisation - - + + Valid from Valide de - - + + Valid to Valide jusqu'à - - + + Serial number Numéro de série - + Your certificates Vos certificats - + File Fichier - + Subject Common Name Sujet Common Name - + Issuer CN Émetteur CN - + Issuer Common Name - + Clone databases into Cloner la Base de Données dans - - + + Choose a directory Choisir un répertoire - + + The language will change after you restart the application. La langue ne changera qu'après le redémarrage de l'application. - + Select extension file Sélectionner un fichier d'extension - Extensions(*.so *.dll);;All files(*) - Extensions (*.so *.dll);;Tous les fichiers (*) - - - + Extensions(*.so *.dylib *.dll);;All files(*) Extensions (*.so *.dylib *.dll);;Tous les fichiers (*) - + Import certificate file Importer un fichier de certificat - + No certificates found in this file. Aucun certificat n'a été trouvé dans ce fichier. - + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! Êtes-vous sûr de vouloir supprimer ce certificat ? Toutes les données de ce certificat seront supprimées des paramètres de l'application! - + Are you sure you want to clear all the saved settings? All your preferences will be lost and default values will be used. Êtes-vous sûr de vouloir effacer tous les réglages sauvegardés ? Toutes vos préférences seront perdues et les valeurs par défaut seront utilisées. - - - ProxyDialog - - - Proxy Configuration - Configuration du proxy - - - - Pro&xy Type - Type de Pro&xy - - - - Host Na&me - No&m de l'hôte - - - - Port - Port - - - Authentication Re&quired - Authentification re&quise - - - - &User Name - Nom &Utilisateur + + Save Settings File + - - Password - Mot de Passe + + + Initialization File (*.ini) + - - None - Aucun + + The settings file has been saved in location : + + - - System settings - Paramètres système + + Open Settings File + - - HTTP - HTTP + + The settings file was loaded properly. + - - Socks v5 - Socks v5 + + The selected settings file is not a normal settings file. +Please check again. + - QObject - - Error importing data. Message from database engine: %1 - Erreur lors de l'import des données. Message du moteur de Base de Données : -%1 - - - File is not a SQLite 3 database - Ce fichier n'est pas une Base de Données SQLite3 - - - File could not be read - Le fichier ne peut être lu - - - no error - pas d'erreur - - - Do you want to save the changes made to the database file %1? - Voulez-vous enregistrer les changements effectués dans la Base de Données %1 ? - - - Exporting database to SQL file... - Exporter la Base de Données dans un fichier SQL... - - - - Error importing data - Erreur lors de l'import des données - - - - from record number %1 - pour l'enregistrement numéro %1 - - - - . -%1 - . -%1 - - - - Importing CSV file... - Import du fichier CSV... - - - - Cancel - Annuler - - - Executing SQL... - Exécution du SQL... - - - Action cancelled. - Action annulée. - - - Error in statement #%1: %2. -Aborting execution. - Erreur dans le traitement #%1 : %2. -l'exécution est abandonnée. - - - renameColumn: cannot find table %1. - Renommer les Colonnes : La table %1 ne peut être trouvée. - - - renameColumn: cannot find column %1. - Renommer les Colonnes : La colonne %1 ne peut être trouvée. - - - renameColumn: creating savepoint failed. DB says: %1 - Renommer les Colonnes : La création d'un point de sauvegarde a échoué. Message du moteur de Base de Données : -%1 - - - renameColumn: creating new table failed. DB says: %1 - Renommer les Colonnes : La création de la table a échoué. Message du moteur de Base de Données : -%1 - - - renameColumn: copying data to new table failed. DB says: -%1 - Renommer les Colonnes : La copie des données dans une nouvelle table a échoué. Message du moteur de Base de Données : -%1 - + ProxyDialog - renameColumn: deleting old table failed. DB says: %1 - Renommer les Colonnes : La suppression de l'ancienne table a échoué. Message du moteur de Base de Données : -%1 + + Proxy Configuration + Configuration du proxy - Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: - - - La restauration de certains des objets associés à cette table a échoué. Cela est le plus souvent dû au changement du nom de certaines colonnes. Voici l'instruction SQL que vous pourrez corriger et exécuter manuellement : - + + Pro&xy Type + Type de Pro&xy - renameColumn: releasing savepoint failed. DB says: %1 - Renommer les Colonnes : La libération d'un point de sauvegarde a échoué. Message du moteur de Base de Données : -%1 + + Host Na&me + No&m de l'hôte - Error renaming table '%1' to '%2'.Message from database engine: -%3 - Erreur lors du changement de nom de la table %1 vers %2. Message du moteur de Base de Données : -%3 + + Port + Port - ... <string can not be logged, contains binary data> ... - ... <la Chaîne de caractère ne peut être journalisée. Elle contient des données binaires> ... + + Authentication Re&quired + Authentification re&quise - unknown object type %1 - Type d'objet %1 inconnu + + &User Name + Nom &Utilisateur - could not get list of db objects: %1, %2 - la liste des objets de la Base de Données ne peut être obtenue : %1, %2 + + Password + Mot de Passe - could not get types - la liste des types ne peut être obtenue + + None + Aucun - Decoding CSV file... - Décodage du fichier CSV... + + System settings + Paramètres système - didn't receive any output from pragma %1 - n'a pas reçu toutes les sorties du pragma %1 + + HTTP + HTTP - could not execute pragma command: %1, %2 - ne peut pas exécuter les commandes du pragme : %1, %2 + + Socks v5 + Socks v5 + + + QObject - Error setting pragma %1 to %2: %3 - Erreur dans les paramètres du pragma %1 à %2 : %3 + + Error importing data + Erreur lors de l'import des données - File not found. - Fichier non trouvé. + + from record number %1 + pour l'enregistrement numéro %1 - Collation needed! Proceed? - Classement nécessaire ! Continuer ? + + . +%1 + . +%1 - A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. -If you choose to proceed, be aware bad things can happen to your database. -Create a backup! - Une table de cette Base de Données nécessite la fonction spéciale de classement '%1' que cette application ne peut fournir sans connaissances complémentaires. -Si vous choisissez de continuer, ayez à l'esprit que des choses non souhaitées peuvent survenir dans votre Base de Données. -Faites une sauvegarde ! + + Importing CSV file... + Import du fichier CSV... - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - Base de Données SQLite (*.db *.sqlite *.sqlite3 *.db3);;Tous les fichiers (*) + + Cancel + Annuler @@ -6676,7 +5369,7 @@ Faites une sauvegarde ! Tous les fichiers (*) - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) Base de Données SQLite (*.db *.sqlite *.sqlite3 *.db3) @@ -6776,203 +5469,437 @@ Faites une sauvegarde ! Extensions (*.so *.dylib *.dll) - Name - Nom + + Initialization File (*.ini) + + + + RemoteCommitsModel - Commit - Commit + + Commit ID + ID de Commit - Last modified - Dernière modification + + Message + Message + + + + Date + Date + + + + Author + Auteur + Size - Taille + Taille + + + + Authored and committed by %1 + Need to see the context Authored can be translated by "Publié" (published) too as the main author + Créé et validé par %1 + + + + Authored by %1, committed by %2 + Créé par %1, validé par %2 RemoteDatabase - - Error when connecting to %1. -%2 - Erreur lors de la connexion à %1. -%2 + + Error opening local databases list. +%1 + Erreur lors de l'ouverture de la liste des bases de données locales. +%1 - - Error opening remote file at %1. -%2 - Erreur lors de l'ouverture du fichier distant %1. -%2 + + Error creating local databases list. +%1 + Erreur lors de la création de la liste des bases de données locales. +%1 + + + RemoteDock - - Error: Invalid client certificate specified. - Erreur : Le certificat du client spécifié est invalide. + + Remote + Serveur Distant - - Please enter the passphrase for this client certificate in order to authenticate. - Veuillez entrer la phrase secrète pour ce certificat client de façon à vous authentifier. + + Local + Local - - Cancel - Annuler + + Identity + Identité - - Uploading remote database to -%1 - Téléchargement de la base distante dans -%1 + + Push currently opened database to server + Déplacer la Base de Données en cours sur le serveur - - Downloading remote database from -%1 - Télécharger une Base de Données distante depuis -%1 + + Upload + - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - La Base de Données distante a été mise à jour depuis la dernière commande. Voulez-vous mettre à jour la Base de Données locale vers la dernière version ? Notez que ceci annule toutes les modifications que vous avez faites localement ! Si vous ne voulez pas perdre les modifications locales, cliquez sur Non pour ouvrir la version locale. + + DBHub.io + DBHub.io - Uploading remote database to -%1. - Téléchargement de la base distante dans -%1. + + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> + <html><head/><body><p>Dans ce volet, les bases de données distantes du site Web dbhub.io peuvent être ajoutées à DB Browser pour SQLite. Il faut d'abord vous identifier :</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Connectez-vous sur le site dbhub.io (utilisez vos identifiants GitHub ou ce que vous voulez)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Cliquez sur le bouton &quot;Generate client certificate&quot; (c'est votre identité). Cela vous fournira un fichier de certificat (enregistrez-le sur votre disque local).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Allez dans l'onglet Serveur Distant des Préférences DB Browser pour SQLite . Cliquez sur le bouton pour ajouter un nouveau certificat à DB Browser pour SQLite et choisissez le fichier de certificat que vous venez de télécharger.</li></ol><p>Maintenant, le panneau Serveur distant affiche votre identité et vous pouvez ajouter des bases de données distantes..</p></body></html> - Downloading remote database from -%1. - Télécharger une Base de Données distante depuis -%1. + + Current Database + Base de Données en cours - - - Error: The network is not accessible. - Erreur : le réseau n'est pas accessible. + + Clone + Cloner - - Error: Cannot open the file for sending. - Erreur : Ne peut ouvrir le fichier à envoyer. + + User + Utilisateur - - Error opening local databases list. -%1 - Erreur lors de l'ouverture de la liste des bases de données locales. -%1 + + Database + Base de Données - - Error creating local databases list. -%1 - Erreur lors de la création de la liste des bases de données locales. -%1 + + Branch + Branche - - - RemoteDock - - Remote - Serveur Distant + + Commits + Commits - B&rowse - &Parcourir + + Commits for + Commits pour - Local - Local + + Delete Database + Supprime la Base de Données - - Identity - Identité + + Delete the local clone of this database + Supprime le clone local de la Base de Données - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. - Connectez-vous au serveur distant en utilisant l'identité actuellement sélectionnée. Le serveur correct est également extrait de l'identité. + + Open in Web Browser + Ouvre dans un navigateur Internet - - Go - Go + + Open the web page for the current database in your browser + Ouvre la page web de la Base de Données en cours dans votre navigateur - - Push currently opened database to server - Déplacer la Base de Données en cours sur le serveur + + Clone from Link + Cloner depuis un lien - - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>Dans ce volet, les bases de données distantes du site Web dbhub.io peuvent être ajoutées à DB Browser pour SQLite. Il faut d'abord vous identifier :</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Connectez-vous sur le site dbhub.io (utilisez vos identifiants GitHub ou ce que vous voulez)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Cliquez sur le bouton &quot;Generate client certificate&quot; (c'est votre identité). Cela vous fournira un fichier de certificat (enregistrez-le sur votre disque local).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Allez dans l'onglet Serveur Distant des Préférences DB Browser pour SQLite . Cliquez sur le bouton pour ajouter un nouveau certificat à DB Browser pour SQLite et choisissez le fichier de certificat que vous venez de télécharger.</li></ol><p>Maintenant, le panneau Serveur distant affiche votre identité et vous pouvez ajouter des bases de données distantes..</p></body></html> + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + Utilisez ceci pour télécharger une Base de Données distante pour l'édiiter localement en utilisant une URL telle que fournie sur la page web de la Base de Données. + + + + Refresh + Rafraichir + + + + Reload all data and update the views + Recherge toutes les données et met à jour les vues + + + + F5 + F5 + + + + Clone Database + Cloner une Base de Données + + + + Open Database + Ouvrir une Base de données + + + + Open the local copy of this database + Ouvrir la copie locale de la Base de Données + + + + Check out Commit + Vérifier le Commit + + + + Download and open this specific commit + Télécharger et ouvrir ce Commit particulier + + + + Check out Latest Commit + Vérifier le dernier Commit + + + + Check out the latest commit of the current branch + Vérifie le dernier Commit de la branche en cours + + + + Save Revision to File + Enregistrer la Révision dans un fichier + + + + Saves the selected revision of the database to another file + Enregistre la Révision sélectionnée de la Base de Données dans un autre fichier + + + + Upload Database + Télécharger la Base de Données - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB4S. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to create a DB4S certificate (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB4S Preferences. Click the button to add a new certificate to DB4S and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>Dans ce volet, les bases de données distantes du site Web dbhub.io peuvent être ajoutées à DB4S. Il vous faut d'abord une identité :</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Connectez-vous sur le site dbhub.io (utilisez vos identifiants GitHub ou ce que vous voulez)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Cliquez sur le bouton pour créer un certificat DB4S (c'est votre identité). Cela vous donnera un fichier de certificat (enregistrez-le sur votre disque local).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Allez dans l'onglet Serveur Distant des Préférences DB4S. Cliquez sur le bouton pour ajouter un nouveau certificat à DB4S et choisissez le fichier de certificat que vous venez de télécharger.</li></ol><p>Maintenant, le panneau Serveur distant affiche votre identité et vous pouvez ajouter des bases de données distantes..</p></body></html> + + Upload this database as a new commit + Téléchargez cette Base de Données en tant que nouveau Commit - + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> <html><head/><body><p>Vous utilisez actuellement une identité intégrée, en lecture seule. Pour télécharger votre Base de Données, vous devez configurer et utiliser votre compte DBHub.io. </p><p>Vous n'avez pas encore de compte DBHub.io ? <a href="https://dbhub.io/"><span style=" text-decoration : underline ; color:#007af4 ;">Créez-en un maintenant</span></a> et importez votre certificat <a href="#preferences"><span style=" text-decoration : underline ; color:#007af4 ;">ici</span></a> pour partager vos bases de données.</p><p>Pour l'aide en ligne, visitez <a href="https://dbhub.io/about"><span style=" text-decoration : underline ; color:#007af4 ;">ici</span></a>.</p></body></html> - + Back Retour - Please enter the database name to push to. - Veuillez saisir le nom de la Base de Données à déplacer. + + Select an identity to connect + Sélectionner une identité pour se connecter - + Public Public + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + Cela télécharge une Base de Données à partir d'un serveur distant pour l'éditer localement. +Veuillez entrer l'URL à partir de laquelle vous souhaitez la cloner. Vous pouvez générer cette URL en +en cliquant sur le bouton "Cloner la Base de Données dans DB4S" sur la page web +de la Base de Données. + + + + Invalid URL: The host name does not match the host name of the current identity. + URL invalide : Le nom de l'hôte ne correspond pas au nom de l'hôte de l'identité actuelle. + + + + Invalid URL: No branch name specified. + URL Invalide : Nom de branche non spécifié. + + + + Invalid URL: No commit ID specified. + URL Invalide : Commit ID non spécifié. + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + Vous avez modifié le clone local de la Base de Données. La récupération de ce commit annule ces modifications locales. +Êtes-vous sûr de vouloir continuer ? + + + + The database has unsaved changes. Are you sure you want to push it before saving? + La Base de Données contient des modifications non sauvegardées. Êtes-vous sûr de vouloir la pousser avant de la sauvegarder ? + + + + The database you are trying to delete is currently opened. Please close it before deleting. + La Base de Données que vous essayez de supprimer est actuellement ouverte. Veuillez la fermer avant de la supprimer. + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + Cela va supprimer la version locale de cette Base de Données avec tous les changements pour lesquels vous n'avez pas fait de Commit. Êtes-vous sûr de vouloir supprimer cette Base de Données ? + + + + RemoteLocalFilesModel + + + Name + Nom + + + + Branch + Branche + + + + Last modified + Dernière modification + + + + Size + Taille + + + + Commit + Commit + + + + File + Fichier + RemoteModel - + Name Nom - Version - Version + + Last modified + Dernière modification + + + + Size + Taille + + + + Commit + Commit + + + + Size: + Taille : + + + + Last Modified: + Dernière modification : + + + + Licence: + Licence : + + + + Default Branch: + Branche par défaut : + + + + RemoteNetwork + + + Choose a location to save the file + Choisissez un emplacement pour enregistrer le fichier + + + + Error opening remote file at %1. +%2 + Erreur lors de l'ouverture du fichier distant %1. +%2 + + + + Error: Invalid client certificate specified. + Erreur : Le certificat du client spécifié est invalide. + + + + Please enter the passphrase for this client certificate in order to authenticate. + Pour vous authentifier, veuillez entrer la phrase secrète pour ce certificat client. + + + + Cancel + Annuler - - Last modified - Dernière modification + + Uploading remote database to +%1 + Téléchargement de la base distante dans +%1 - - Size - Taille + + Downloading remote database from +%1 + Télécharger une Base de Données distante depuis +%1 - - Commit - Commit + + + Error: The network is not accessible. + Erreur : le réseau n'est pas accessible. - bytes - octets + + Error: Cannot open the file for sending. + Erreur : le fichier à envoyer ne peut être ouvert. @@ -6980,7 +5907,7 @@ Faites une sauvegarde ! Push database - Je ne pense pas que Push soir le bon terme. Est-ce que cela fonction comme un serveur de version ? + Je ne pense pas que Push soir le bon terme. Est-ce que cela fonctionne comme un serveur de version ? Pousser une basse de données @@ -6993,19 +5920,6 @@ Faites une sauvegarde ! Commit message Message de Commit - - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - Database licence @@ -7027,44 +5941,45 @@ p, li { white-space: pre-wrap; } Forcer le "push" - + + Username + Nom utilisateur + + + Database will be public. Everyone has read access to it. La Base de DOnnée sera publique. Tout le monde a un accès en lecture. - + Database will be private. Only you have access to it. La Base de Données est privée. Vous seul y avez accès. - + Use with care. This can cause remote commits to be deleted. A utiliser avec précaution. Cela peut entraîner la suppression des commit distants. - - Unspecified - Non spécifié - RunSql - + Execution aborted by user Exécution annulée par l'utilisateur - + , %1 rows affected , %1 enregistrements affectés - + query executed successfully. Took %1ms%2 Requête exécutée avec succès. Elle a pris %1 ms %2 - + executing query Exécution de la requête @@ -7186,51 +6101,23 @@ p, li { white-space: pre-wrap; } Ce champ affiche les résultats et les codes de statut du dernier traitement exécuté. - Export to &CSV - Exporter au format &CSV - - - Save as &view - Enregistrer comme une &vue - - - Save as view - Enregistrer comme une vue - - - Please specify the view name - Veuillez spécifier le nom de la vue - - - There is already an object with that name. Please choose a different name. - Il existe déjà un objet avec ce nom. Veuillez choisir un autre nom. - - - View successfully created. - La vue a été crée avec succès. - - - Error creating view: %1 - Erreur lors de la création de la vue : %1 - - - + Couldn't read file: %1. Le fichier %1 ne peut être lu. - - + + Couldn't save file: %1. Le fichier %1 ne peut être sauvegardé. - + Your changes will be lost when reloading it! Vos modifications seront perdues lors du rechargement ! - + The file "%1" was modified by another program. Do you want to reload it?%2 Le fichier "%1" a été modifié par un autre programme. Vioulez-vous le recharger ? %2 @@ -7242,6 +6129,11 @@ p, li { white-space: pre-wrap; } Ctrl+/ + + + Ctrl+PgDown + + SqlUiLexer @@ -7287,288 +6179,285 @@ p, li { white-space: pre-wrap; } + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. () La fonction last_insert_rowid () renvoie le ROWID de la dernière ligne insérée par la connexion de la Base de Données qui a invoqué la fonction. - + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. (X) Pour une valeur de chaîne X, la fonction length(X) renvoie le nombre de caractères (pas d'octets) dans X avant le premier caractère NULL. - + (X,Y) The like() function is used to implement the "Y LIKE X" expression. (X, Y) La fonction like() est utilisée pour mettre en œuvre de l’expression « Y LIKE X ». - + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. (X, Y, Z) La fonction like() est utilisée pour mettre en œuvre de l’expression « Y LIKE X ESCAPE Z ». - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - (X) La fonction load_extension(X) charge les extensions SQLite situées en dehors du fichier de bibliothèque partagée nommée X. - - - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - (X, Y) La fonction load_extension(X) charge les extensions SQLite situées en dehors du fichier de bibliothèque partagée nommée X en utilisant le point d'entrée Y. - - - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. (X) La fonction load_extension(X) charge les extensions SQLite à partir du fichier de bibliothèque partagé nommé X. L'utilisation de cette fonction doit être autorisée à partir des Préférences. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. (X,Y) La fonction load_extension(X) charge les extensions SQLite à partir du fichier de bibliothèque partagée nommé X en utilisant le point d'entrée Y. L'utilisation de cette fonction doit être autorisée à partir des Préférences. - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. (X) La fonction lower(X) renvoie une copie de la chaîne X avec tous ses caractères ASCII convertis en minuscules. - + (X) ltrim(X) removes spaces from the left side of X. (X) ltrim(X) supprime les espaces gauche de X. - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. (X, Y) La fonction ltrim(X,Y) renvoie une chaîne résultant de la suppression de tous les caractères qui apparaissent en Y à gauche de X. - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. (X,Y,...) La fonction à arguments multiples max() renvoie l'argument ayant la plus grande valeur ou renvoie NULL si tous les arguments sont NULL. - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. (X,Y,...) La fonction à arguments multiples min() renvoie l'argument ayant la plus petite valeur. - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. (X, Y) La fonction nullif(X,Y) renvoie le premier argument, si les arguments sont différents et NULL si les X et Y sont les mêmes. - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. (FORMAT,...) La fonction SQL printf(FORMAT,...) fonctionne comme la fonction de sqlite3_mprintf() en langage C et la fonction printf() de la bibliothèque C standard. - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. (X) La fonction quote(X) renvoie le texte d’un litéral SQL qui est la valeur appropriée de l’argument pour son inclusion dans une requête SQL. - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. () La fonction random() renvoie un nombre entier pseudo-aléatoire entre -9223372036854775808 et + 9223372036854775807. - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. (N) La fonction randomblob(N) renvoie un blob de N octets contenant des octets pseudo-aléatoires. - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. (X, Y, Z) La fonction replace(X,Y,Z) renvoie une chaîne formée en substituant par la chaîne Z chaque occurrence de la chaîne Y présente dans la chaîne X. - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. (X) La fonction round(X) renvoie une valeur à virgule flottante X arrondie à zéro chiffres à droite de la virgule décimale. - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. (X, Y) La fonction round(X,Y) renvoie une valeur à virgule flottante X arrondie à Y chiffres à droite de la virgule décimale. - + (X) rtrim(X) removes spaces from the right side of X. X) rtrim(X) supprime les espaces droite de X. - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. (X, Y) La fonction rtrim(X,Y) renvoie une chaîne formée en supprimant tous les caractères qui apparaissent en Y, à droite de X. - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. (X) La fonction soundex(X) renvoie une chaîne qui est l'encodage soundex de la chaîne X. - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. (X, Y) substr(X,Y) renvoie tous les caractères à partir du n-ième Y jusqu'à la fin de la chaîne X. - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. (X, Y, Z) La fonction substr(X,Y,Z) renvoie une sous-chaîne de la chaîne X à partie du n-ième caractère Y, de longueur Z. - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. () La fonction total_changes() renvoie le nombre d'enregistrements altérés par les instructions INSERT, UPDATE ou DELETE depuis l’ouverture de la connexion de Base de Données courante. - + (X) trim(X) removes spaces from both ends of X. (X) trim(X) supprime les espaces aux deux extrémités de X. - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. (X, Y) La fonction trim(X,Y) renvoie une chaîne formée en supprimant tous les caractères de Y présents aux deux extrémités de X. - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. (X) La fonction typeof(X) renvoie une chaîne qui indique le type de données de l’expression X. - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. (X) La fonction unicode(X) renvoie le point de code unicode numérique correspondant au premier caractère de la chaîne X. - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. (X) La fonction upper(X) renvoie une copie de la chaîne X dans laquel tous les caractères ASCII en minuscules sont convertis en leurs équivalents en majuscules. - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. (N) La fonction zeroblob(N) renvoie un BLOB composé de N octets de valeur 0x00. - + (timestring,modifier,modifier,...) (timestring,modifier,modifier,...) - + (format,timestring,modifier,modifier,...) (format,timestring,modifier,modifier,...) - + (X) The avg() function returns the average value of all non-NULL X within a group. (X) La fonction avg() renvoie la valeur moyenne de tous les X non-NULL dans d’un groupe. - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. (X) La fonction count(X) renvoie le nombre de fois où X n’est pas NULL dans un groupe. - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. (X) la fonction group_concat() renvoie une chaîne qui est la concaténation de toutes les valeurs non-NULL de X. - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. (X, Y) La fonction group_concat() renvoie une chaîne qui est la concaténation de toutes les valeurs non-NULL de X. Si le paramètre Y est présent, il est utilisé comme séparateur entre chaque instances de X. - + (X) The max() aggregate function returns the maximum value of all values in the group. (X) La fonction d’agrégat max() renvoie la valeur maximale de toutes les valeurs du groupe. - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. (X) La fonction d’agrégation min() renvoie la valeur non-NULL minimale de toutes les valeurs du groupe. - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. (X) Les fonctions d'agrégation sum() et total() renvoient la somme de toutes les valeurs non-NULL du groupe. - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. () Le numéro del'enregistrement dans la partition courante. Les lignes sont numérotées à partir de 1 dans l'ordre défini par la clause ORDER BY dans la définition de la fenêtre, ou, sinon, dans un ordre arbitraire. - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () Le row_number() enregistrement homologue de chaque groupe - le rang de l'enregistrement courant avec les écarts. S'il n'y a pas de clause ORDER BY, alors tous les enregistrements sont considérées comme homologues et cette fonction renvoie toujours 1. - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () Le numéro du groupe d'enregistrements homologues de la rangée courante dans sa partition - le rang de la rangée courante sans espaces. Les partitions sont numérotées à partir de 1 dans l'ordre défini par la clause ORDER BY dans la définition de la fenêtre. S'il n'y a pas de clause ORDER BY, alors toutes les lignes sont considérées comme homologues et cette fonction renvoie toujours 1. - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. () Malgré le nom, cette fonction retourne toujours une valeur comprise entre 0.0 et 1.0 égale à (rang - 1)/(rangées de partitions - 1), où rang est la valeur retournée par la fonction de fenêtre intégrée rank() et rangées de partitions est le nombre total de rangées dans la partition. Si la partition ne contient qu'une seule ligne, cette fonction renvoie 0.0. - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. () Répartition cumulée. Calculée en tant que ligne-numéro/rangées-partition, où ligne-numéro est la valeur retournée par row_number() pour le dernier homologue dans le groupe et ligne-partition le nombre de lignes dans la partition. - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. (N) L'argument N est traité comme un entier. Cette fonction divise la partition en N groupes le plus uniformément possible et attribue un entier compris entre 1 et N à chaque groupe, dans l'ordre défini par la clause ORDER BY, ou, sinon, dans un ordre arbitraire. Si nécessaire, les plus grands groupes se forment en premier. Cette fonction retourne la valeur entière assignée au groupe dont la ligne courante fait partie. - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. (expr) Retourne le résultat de l'évaluation de l'expression expr par rapport à la ligne précédente de la partition. Ou NULL s'il n'y a pas de ligne précédente (parce que la ligne courante est la première). - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. (expr,offset) Si l'argument offset est fourni, alors il doit être un entier non négatif. Dans ce cas, la valeur retournée est le résultat de l'évaluation de expr par rapport au décalage des lignes avant la ligne courante dans la partition. Si l'offset est égal à 0, alors expr est évalué par rapport à la ligne courante. S'il n'y a pas de lignes de décalage de ligne avant la ligne courante, NULL est retourné. - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. (expr,offset,default) Si la valeur par défaut est aussi renseignée, cette valeur sera retournée au lieu de NULL si la ligne identifiée par offset n'existe pas. - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. (expr) Retourne le résultat de l'évaluation de l'expression expr par rapport à la ligne suivante de la partition. Ou NULL s'il n'y a pas de ligne suivante (parce que la ligne courante est la dernière). - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. (expr,offset) Si l'argument offset est fourni, alors il doit être un entier non négatif. Dans ce cas, la valeur retournée est le résultat de l'évaluation de expr par rapport par rapport au décalage des lignes après la ligne courante dans la partition. Si l'offset est égal à 0, alors expr est évalué par rapport à la ligne courante. S'il n'y a pas de lignes de décalage de ligne après la ligne courante, NULL est retourné. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. (expr) Cette fonction de fenêtrage intégrée calcule le cadre de la fenêtre pour chaque rangée de la même manière qu'une fonction de fenêtrage agrégée. Elle retourne la valeur de expr évaluée par rapport à la première ligne du cadre de la fenêtre pour chaque ligne. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. (expr) Cette fonction de fenêtrage intégrée calcule le cadre de la fenêtre pour chaque rangée de la même manière qu'une fonction de fenêtrage agrégée. Elle retourne la valeur de expr évaluée par rapport à la dernière ligne du cadre de la fenêtre pour chaque ligne. - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. (expr,N) Cette fonction de fenêtrage intégrée calcule le cadre de la fenêtre pour chaque rangée de la même manière qu'une fonction de fenêtrage agrégée. Elle retourne la valeur de expr évaluée par rapport à la ligne N du cadre de la fenêtre. Les rangées sont numérotées à l'intérieur du cadre de la fenêtre à partir de 1 dans l'ordre défini par la clause ORDER BY si elle est présente, ou dans un ordre arbitraire sinon. S'il n'y a pas de Nième ligne dans la partition, alors NULL est retourné. @@ -7576,47 +6465,42 @@ L'utilisation de cette fonction doit être autorisée à partir des Préfé SqliteTableModel - References %1(%2) -Hold Ctrl+Shift and click to jump there - Références %1(%2) -Appuyez simultanément sur Ctrl+Maj et cliquez pour arriver ici - - - + reading rows Lecture des enregistrements - + loading... chargement... - + References %1(%2) Hold %3Shift and click to jump there Références %1(%2) Appuyez simultanément sur %3+Maj et cliquez pour arriver ici - + Error changing data: %1 Erreur lors du changement des données : %1 - + retrieving list of columns récupération de la liste des colonnes - + Fetching data... Récupération des données... - + + Cancel Annuler @@ -7758,7 +6642,7 @@ Appuyez simultanément sur %3+Maj et cliquez pour arriver ici - + Replace Remplacer @@ -7773,498 +6657,496 @@ Appuyez simultanément sur %3+Maj et cliquez pour arriver ici Remplacer tout - + <html><head/><body><p>Scroll to the beginning</p></body></html> <html><head/><body><p>Aller au début</p></body></html> - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> <html><head/><body><p>Cliquer sur ce bouton permet d'aller au début de la table ci-dessus.</p></body></html> - + |< |< - + Scroll one page upwards Remonter d'une page - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> <html><head/><body><p>Cliquer sur ce bouton permet d'afficher la page précédente des enregistrements de la table ci dessus.</p></body></html> - + < < - + 0 - 0 of 0 0 - 0 de 0 - + Scroll one page downwards Descendre d'une page - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> <html><head/><body><p>Cliquer sur ce bouton permet d'afficher la page suivante des enregistrements de la table ci dessus.</p></body></html> - + > > - + Scroll to the end Aller à la fin - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Cliquer sur ce bouton permet d'aller à la fin de la table ci-dessus.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> <html><head/><body><p>Cliquer sur ce bouton permet d'aller à la fin de la table ci-dessus.</p></body></html> - + >| >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> <html><head/><body><p>Cliquer ici pour vous déplacer sur l'enregistrement indiqué</p></body></html> - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> <html><head/><body><p>Ce bouton est utilisé pour aller directement à l'enregistrement indiqué dans le champ Aller à.</p></body></html> - + Go to: Aller à : - + Enter record number to browse Entrez le nombre d'enregistrements à parcourir - + Type a record number in this area and click the Go to: button to display the record in the database view Entrez un numéro d'enregistrement dans ce champ et cliquez sur le bouton "Aller à" pour afficher l'enregistrement dans la vue Base de Données - + 1 1 - + Show rowid column Afficher la colonne RowId - + Toggle the visibility of the rowid column Permet d'afficher ou non la colonne RowId - + Unlock view editing - Dévérouiller l'éditeur de vues + Déverrouiller l'éditeur de vues - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. - Permet de dévérouiller la vue courante pour l'éditer. Cependant, vous aurez besoin de déclencheurs appropriés pour faire cela. + Permet de déverrouiller la vue courante pour l'éditer. Cependant, vous aurez besoin de déclencheurs appropriés pour faire cela. - + Edit display format Modifier le format d'affichage - + Edit the display format of the data in this column Modifie le format d'affichage des données contenues dans cette colonne - - + + New Record Nouvel Enregistrement - - + + Insert a new record in the current table Insérer un nouvel enregistrement dans la table en cours - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> <html><head/><body><p>Ce bouton crée un nouvel enregistrement dans la Base de Données. Maintenez le bouton de la souris enfoncé pour ouvrir un menu contextuel de différentes options :</p><ul><li><span style=" font-weight:600;">Nouvel Enregistrement</span> : Insère un nouvel enregistrement avec les valeurs par défaut dans la Base de Données.</li><li><span style=" font-weight:600;">Insérer des valeurs...</span> : ouvre une boite de dialogue pour saisir des valeurs avant leur insersion dans la Base de Données. Ceci permet de saisir des valeurs correspondant aux différentes contraintes. Cette boîte de dialogue est également ouverte si l'option <span style=" font-weight:600;">Nouvel Enregistrement </span> est en erreur à cause de ces contraintes.</li></ul></body></html> - - + + Delete Record Supprimer l'enregistrement - + Delete the current record Supprimer l'enregistrement courant - - + + This button deletes the record or records currently selected in the table Ce bouton permet de supprimer l'enregistrement sélectionné dans la table - - + + Insert new record using default values in browsed table Insérer un nouvel enregistrement en utilisant les valeurs par défaut de la table parcourrue - + Insert Values... Ajouter des valeurs... - - + + Open a dialog for inserting values in a new record Ouvre une fenêtre de dialogue permettant l'insersion de valeurs dans un nouvel enregistrement - + Export to &CSV Exporter au format &CSV - - + + Export the filtered data to CSV Exporte les données filtrées au format CSV - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. Ce bouton exporte les données de la table parcourue telles qu'elles sont actuellement affichées (après les filtres, les formats d'affichage et la colonne d'ordre) dans un fichier CSV. - + Save as &view Enregistrer comme une &vue - - + + Save the current filter, sort column and display formats as a view Enregistrer le filtre, la colonne de tri et les formats d'affichage actuels sous la forme d'une vue - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. Ce bouton permet d'enregistrer les paramètres actuels de la table parcourue (filtres, formats d'affichage et colonne d'ordre) sous forme de vue SQL que vous pourrez ensuite parcourir ou utiliser dans les instructions SQL. - + Save Table As... Enregistrer la table sous... - - + + Save the table as currently displayed Enregistrer la table comme affichée actuellement - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> <html><head/><body><p>Ce menu déroulant fournit les options suivantes s'appliquant à la table actuellement parcourue et filtrée:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Exporter au format CSV : cette option exporte les données de la table parcourue telles qu'elles sont actuellement affichées (après filtres, formats d'affichage et colonne d'ordre) vers un fichier CSV.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Enregistrer comme vue : cette option permet d'enregistrer les paramètres actuels de la table parcourue (filtres, formats d'affichage et colonne d'ordre) dans une vue SQL que vous pourrez ensuite parcourir ou utiliser dans les instructions SQL.</li></ul></body></html> - + Hide column(s) Masquer une/des colonnes - + Hide selected column(s) Maquer la/les colonnes sélectionnées - + Show all columns Afficher toutes les colonnes - + Show all columns that were hidden Permet d'afficher toutes les colonnes qui ont été masquées - - + + Set encoding Définir l'encodage - + Change the encoding of the text in the table cells Change l'encodage du texte des cellules de la table - + Set encoding for all tables Définir l'encodage pour toutes les tables - + Change the default encoding assumed for all tables in the database Change l'encodage par défaut choisi pour l'ensemble des tables de la Base de Données - + Clear Filters Effacer les filtres - + Clear all filters Effacer tous les filtres - - + + This button clears all the filters set in the header input fields for the currently browsed table. Ce bouton efface tous les filtres définis dans les champs de saisie de l'en-tête de la table actuellement parcourue. - + Clear Sorting Effacer le tri - + Reset the order of rows to the default Rétablit l'ordre des lignes aux valeurs par défaut - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. Ce bouton efface les critères de tri définis pour les colonnes de la table actuellement parcourue et revient à l'ordre par défaut. - + Print Imprimer - + Print currently browsed table data Imprimer le données de la table actuellement parcourues - + Print currently browsed table data. Print selection if more than one cell is selected. Imprimer le données de la table actuellement parcourues. Imprime la sélection si plus d'une cellule est sélectionnée. - + Ctrl+P - + Refresh Rafraichir - + Refresh the data in the selected table Rafraîchir les données de la table sélectionnée - + This button refreshes the data in the currently selected table. Ce bouton permet de rafraîchir les données de la table actuellement sélectionnée. - + F5 - + Find in cells Rechercher dans les cellules - + Open the find tool bar which allows you to search for values in the table view below. Ouvre la barre d'outils de recherche qui vous permet de rechercher des valeurs dans la table ci-dessous. - Ctrl+F - + + Freeze columns + - - + + Make all columns from the first column up to this column not move when scrolling horizontally + + + + + Bold Gras - + Ctrl+B - - + + Italic Italique - - + + Underline Souligné - + Ctrl+U - - + + Align Right Aligrer à Droite - - + + Align Left Aligner à Gauche - - + + Center Horizontally Centrer Horizontalement - - + + Justify Justifié - - + + Edit Conditional Formats... Éditer les formats conditionnels... - + Edit conditional formats for the current column Éditer les formats conditionnels de la colonne en cours - + Clear Format Effacer les Formats - + Clear All Formats Effacer tous les Formats - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns Effacr tous les formats de cellule des cellules sélectionnées et tous les formats conditionnels des colonnes sélectionnées - - + + Font Color Couleur de Police - - + + Background Color Couleur d'arrière plan - + Toggle Format Toolbar Changer le format de lma barre d'outils - + Show/hide format toolbar Afficher/Cacher la barre des formats - - + + This button shows or hides the formatting toolbar of the Data Browser Ce bouton permet d'afficher ou de masquer la barre d'outils de formatage du navigateur de données - + Select column Sélectionner une colonne - + Ctrl+Space - + Replace text in cells Remplace du texte dans les cellules - - Ctrl+H - - - Filter in all columns - Filtrer dans toutes les collonnes + Filter in any column + Filtrer dans n'importe quelle colonne - + Ctrl+R - + %n row(s) %n ligne @@ -8272,7 +7154,7 @@ Appuyez simultanément sur %3+Maj et cliquez pour arriver ici - + , %n column(s) , %n colonne @@ -8280,105 +7162,128 @@ Appuyez simultanément sur %3+Maj et cliquez pour arriver ici - + . Sum: %1; Average: %2; Min: %3; Max: %4 . Somme: %1; Moyenne: %2; Min: %3; Max: %4 - + Conditional formats for "%1" Format conditionnel pour "%1" - + determining row count... Détermination du nombre d'enregistrements... - + %1 - %2 of >= %3 %1 - %2 de >= %3 - + %1 - %2 of %3 %1 - %2 de %3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Veuillez entrer une pseudo clé primaire pour permettre l'édition de la vue. Ce devrait être le nom d'une colonne unique dans la vue. - + Delete Records Supprimer les enregistrements - + Duplicate records Enregistrement en double - + Duplicate record Dupliquer l'enregistrement - + Ctrl+" - + Adjust rows to contents Ajuster les lignes au contenu - + Error deleting record: %1 Erreur dans la suppression d'un enregistrement : %1 - + Please select a record first Veuillez sélectionner au préalable un enregistrement - + There is no filter set for this table. View will not be created. Il n'existe pas de filtre pour cette table. La vue ne sera pas créée. - + Please choose a new encoding for all tables. Veuillez choisir un nouvel encodage pour toutes les tables. - + Please choose a new encoding for this table. Veuillez choisir un nouvel encodage pour cette table. - + %1 Leave the field empty for using the database encoding. %1 Laissez le champ vide pour utiliser l'encodage de la Base de Données. - + This encoding is either not valid or not supported. Cet encodage est invalide ou non supporté. - + %1 replacement(s) made. %1 remplacement(s) effectué(s). + + TableBrowserDock + + + New Data Browser + + + + + Rename Data Browser + + + + + Close Data Browser + + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + VacuumDialog @@ -8396,13 +7301,5 @@ Laissez le champ vide pour utiliser l'encodage de la Base de Données.Please select the databases to co&mpact: Veuillez saisir le nom de la Base de Données à co&mpacter : - - Warning: Compacting the database will commit all changes you made. - Attention : compacter la base de donnée entraînera l'enregistrement de tous les changements effectués. - - - Please select the objects to compact: - Veuillez sélectionner les objets à compacter : - diff --git a/src/translations/sqlb_it.ts b/src/translations/sqlb_it.ts index 52c8a4680..6770d506f 100644 --- a/src/translations/sqlb_it.ts +++ b/src/translations/sqlb_it.ts @@ -16,44 +16,7 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - <html><head/><body><p>DB-Browser for SQLite è uno strumento grafico opensource e freeware usato per creare, struttutturare e modificare file database di SQLite</p><p>È rilasciato sotto la licenza Mozilla Public License Version 2, così come sotto la licenza GNU General Public License Version 3 o successive. È possibile modificarlo e redistribuirlo sotto le condizioni specificate da queste licenze.</p><p>Si veda <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> e <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> per ulteriori dettagli.</p><p>Per ulteriori dettagli riguardo questo programma visitate il nostro sito web a: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">Questo software usa GPL/LGPL QT Toolkit da </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Si veda </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> per termini di licenza e informazioni.</span></p><p><span style=" font-size:small;">Utilizza inoltre Silk-Iconset di Mark James, rilasciato sotto licenza Creative Commons Attribution 2.5 e 3.0.<br/>Si veda </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> per ulteriori dettagli.</span></p></body></html> - - - - SQLite Version - Versione SQLite - - - - SQLCipher Version %1 (based on SQLite %2) - Versione SQLCipher %1 (basata su SQLite %2) - - - - Built for %1, running on %2 - Compilato per %1, in esecuzione su %2 - - - SQLCipher Version - Versione SQLCipher - - - (based on SQLite %1) - (basato su SQLite %1) - - - - Version - Versione - - - Built for - Compilato per - - - - Qt Version - Versione Qt + <html><head/><body><p>DB-Browser for SQLite è uno strumento grafico opensource e freeware usato per creare, strutturare e modificare file database di SQLite</p><p>È rilasciato sotto la licenza Mozilla Public License Version 2, così come sotto la licenza GNU General Public License Version 3 o successive. È possibile modificarlo e redistribuirlo sotto le condizioni specificate da queste licenze.</p><p>Si veda <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> e <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> per ulteriori dettagli.</p><p>Per ulteriori dettagli riguardo questo programma visitate il nostro sito web a: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">Questo software usa GPL/LGPL QT Toolkit da </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Si veda </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> per termini di licenza e informazioni.</span></p><p><span style=" font-size:small;">Utilizza inoltre Silk-Iconset di Mark James, rilasciato sotto licenza Creative Commons Attribution 2.5 e 3.0.<br/>Si veda </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> per ulteriori dettagli.</span></p></body></html> @@ -156,93 +119,148 @@ Application - - Usage: %1 [options] [db] + + Possible command line arguments: + Possibili argomenti da linea di comando: + + + + The user settings file location is replaced with the argument value instead of the environment variable value. + + + + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + + + + + Usage: %1 [options] [<database>|<project>] - Utilizzo: %1 [opzioni] [db] - + - - Possible command line arguments: - Possibili argomenti da linea di comando: + + -h, --help Show command line options + + + + + -q, --quit Exit application after running scripts + + + + + -s, --sql <file> Execute this SQL file after opening the DB + + + + + -t, --table <table> Browse this table after opening the DB + - - -h, --help Show command line options - -h, --help Mostra opzioni della linea di comando + + -R, --read-only Open database in read-only mode + - - -q, --quit Exit application after running scripts - -q, --quit Esci dall'applicazione dopo aver eseguito gli script + + -S, --settings <settings_file> + - - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [file] Esegui questo file SQL dopo aver aperto il DB + + Run application based on this settings file + - - -t, --table [table] Browse this table after opening the DB - -t, --table [table] Esplora questa tabella dopo aver aperto il DB + + -o, --option <group>/<setting>=<value> + - - -R, --read-only Open database in read-only mode - -R, --read-only Apri il database in modalità sola lettura + + Run application with this setting temporarily set to value + - - -o, --option [group/setting=value] Run application with this setting temporarily set to value - -o, --option [group/setting=valore] Esegue l'applicazione con queste impostazioni temporaneamente modificate al valore + + -O, --save-option <group>/<setting>=<value> + - - -O, --save-option [group/setting=value] Run application saving this value for this setting - -O, --save-option [group/setting=valore] Avvia l'applicazione salvando questo valore per impostazione + + Run application saving this value for this setting + - - -v, --version Display the current version - -v, --version Mostra la versione corrente + + -v, --version Display the current version + - - [file] Open this SQLite database - [file] Apri questo database SQLite + + <database> Open this SQLite database + - - This is DB Browser for SQLite version %1. - Questo è DB Browser for SQLite versione %1. + + <project> Open this project file (*.sqbpro) + - + The -s/--sql option requires an argument L'opzione -s/--sql richiede un argomento - + The file %1 does not exist Il file %1 non esiste - + The -t/--table option requires an argument L'opzione -t/--table richiede un argomento - + + The -S/--settings option requires an argument. The option is ignored. + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value L'opzioni -o/--option e -O/--save-option richiedono un parametro nel formato gruppo/impostaizione=valore - The -o/--option option requires an argument in the form group/setting=value - L'opzione -o/--option richiede un argomento nella forma group/setting=valore + + SQLite Version + Versione SQLite + + + + SQLCipher Version %1 (based on SQLite %2) + Versione SQLCipher %1 (basata su SQLite %2) + + + + DB Browser for SQLite Version %1. + + + + + Built for %1, running on %2 + Compilato per %1, in esecuzione su %2 - + + Qt Version %1 + + + + Invalid option/non-existant file: %1 Opzione non valida/file inesistente: %1 @@ -402,51 +420,61 @@ Se una qualunque altra impostazione è stata modificata per l'inserimento d + .NET DateTime.Ticks to date + + + + Julian day to date Giorno giuliano ad oggi - + Unix epoch to date Unix epoch ad oggi - + Unix epoch to local time Unix epoch a ora locale - + Windows DATE to date Windows DATE ad oggi - + Date as dd/mm/yyyy Data come gg/mm/aaaa - + Lower case Minuscolo - + Upper case Maiuscolo - + + Binary GUID to text + + + + Custom Personalizzato - + Custom display format must contain a function call applied to %1 I formati di visualizzazione personalizzati devono contenere una chiamata a funzione applicata a %1 - + Error in custom display format. Message from database engine: %1 @@ -455,7 +483,7 @@ Se una qualunque altra impostazione è stata modificata per l'inserimento d %1 - + Custom display format must return only one column but it returned %1. Il formato di visualizzazione personalizzato deve restituire solo una colonna ma ha restituito %1. @@ -467,18 +495,6 @@ Se una qualunque altra impostazione è stata modificata per l'inserimento d Conditional Format Manager Gestore della formattazione condizionale - - &Up - Porta &su - - - &Down - Porta &giù - - - This dialog allows creating and editing conditional formats, where the cell text and background will be colored based on one or more conditions. Conditional formats can be moved up and down, where those at higher rows take precedence over those at lower. - Questa finestra permette la creazione e modifica della formattazione condizionale, dove le il testo e lo sfondo delle celle verrà colorato in base ad una o più condizioni. Le condizioni possono essere spostate su o giù, dove quelle più in alto avranno precedenza su quelle sottostanti. - This dialog allows creating and editing conditional formats. Each cell style will be selected by the first accomplished condition for that cell data. Conditional formats can be moved up and down, where those at higher rows take precedence over those at lower. Syntax for conditions is the same as for filters and an empty condition applies to all values. @@ -594,158 +610,153 @@ Se una qualunque altra impostazione è stata modificata per l'inserimento d DBBrowserDB - - This database has already been attached. Its schema name is '%1'. - Questo database è già stato collegato. Il nome del suo schema è '%1'. - - - + Please specify the database name under which you want to access the attached database Si prega di specificare il nome del database con cui si vuol accedere al database collegato - + Invalid file format Formato file non valido - + Do you really want to close this temporary database? All data will be lost. Vuoi davvero chiudere questo database temporaneo? Tutti i dati andranno persi. - + Do you want to save the changes made to the database file %1? Vuoi salvare le modifiche effettuate al database %1? - + Database didn't close correctly, probably still busy Il database non è stato chiuso correttamente; probabilmente è ancora occupato - + The database is currently busy: Il database è attualmente in uso: - + Do you want to abort that other operation? Vuoi annullare l'altra operazione? - + Exporting database to SQL file... Esportando il database in file SQL... - - + + Cancel Annulla - - + + No database file opened Nessun database aperto - + Executing SQL... Eseguendo SQL... - + Action cancelled. Azione annullata. - - + + Error in statement #%1: %2. Aborting execution%3. Errore nello statement #%1: %2. Annullo l'esecuzione %3. - - + + and rolling back e ripristino il db - + didn't receive any output from %1 non ho ricevuto alcun ouput da %1 - + could not execute command: %1 impossibile eseguire il comando: %1 - + Cannot delete this object Non posso cancellare questo oggetto - + Cannot set data on this object Non posso impostare i dati in questo oggetto - - + + A table with the name '%1' already exists in schema '%2'. Una tabella con il nome '%1' esiste già nello schema '%2'. - + No table with name '%1' exists in schema '%2'. Nessuna tabella col nome '%1' esiste nello schema '%2'. - - + + Cannot find column %1. Impossibile trovare la colonna %1. - + Creating savepoint failed. DB says: %1 Creazione del punto di salvataggio fallita. DB log: %1 - + Renaming the column failed. DB says: %1 Fallimento dell'operazione di rinomina. DB log: %1 - - + + Releasing savepoint failed. DB says: %1 Rilascio del salvataggio falitto. DB log: %1 - + Creating new table failed. DB says: %1 Creazione della nuova tabella fallita. DB log: %1 - + Copying data to new table failed. DB says: %1 Copia dei dati nella nuova tabella fallita. DB log: %1 - + Deleting old table failed. DB says: %1 Eliminazione della vecchia tabella fallita. DB log: %1 - + Error renaming table '%1' to '%2'. Message from database engine: %3 @@ -754,44 +765,12 @@ Messaggio dal DB: %3 - + could not get list of db objects: %1 non posso ottenere la listra degli oggetti db: %1 - renameColumn: cannot find column %1. - renameColumn: Impossibile trovare la colonna %1. - - - renameColumn: creating savepoint failed. DB says: %1 - renameColumn: creazione salvataggio fallita. Messaggio DB : %1 - - - renameColumn: renaming the column failed. DB says: -%1 - renameColumn: rinomino colonna fallito. Messaggio DB: -%1 - - - renameColumn: releasing savepoint failed. DB says: %1 - renameColumn: rilascio punto di salvataggio fallito. Messaggio DB: %1 - - - renameColumn: creating new table failed. DB says: %1 - renameColumn: creazione nuova tabella fallita. Messaggio DB: %1 - - - renameColumn: copying data to new table failed. DB says: -%1 - renameColumn: copia dei dati a nuova tabella fallito. Messaggio DB: -%1 - - - renameColumn: deleting old table failed. DB says: %1 - renameColumn: eliminazione vecchia tabella falita. Messaggio DB: %1 - - - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -800,49 +779,27 @@ Messaggio dal DB: - Error renaming table '%1' to '%2'.Message from database engine: -%3 - Errore nel rinominare la tabella '%1' in '%2'.Messaggio dal database engine: -%3 - - - ... <string can not be logged, contains binary data> ... - ... <la stringa non può essere loggata, contiene dati binari> ... - - - could not get list of db objects: %1, %2 - non è possibile ricavare la lista degli oggetti db: %1, %2 - - - + could not get list of databases: %1 non è possibile ricavare la lista dei database: %1 - didn't receive any output from pragma %1 - non ho ricevuto nessun output da pragma %1 - - - could not execute pragma command: %1, %2 - non è possibile eseguire il comando pragma: %1, %2 - - - + Error setting pragma %1 to %2: %3 Errore nell'impostare pragma %1 in %2: %3 - + File not found. File non trovato. - + Error loading extension: %1 Errore nel caricamento dell'estensione: %1 - + could not get column information non è possibile ricavare informazioni sulla colonna @@ -875,12 +832,12 @@ Messaggio dal DB: Database - + Browsables Navigabili - + All Tutti @@ -890,22 +847,22 @@ Messaggio dal DB: Temporaneo - + Tables (%1) Tabelle (%1) - + Indices (%1) Indici (%1) - + Views (%1) Viste (%1) - + Triggers (%1) Triggers (%1) @@ -918,64 +875,64 @@ Messaggio dal DB: Modifica la cella del database - + Mode: Modalità: - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. Questa è la lista delle modalità supportate dall'editor della cella. Scegli una modalità per vedere o modificare i dati della cella corrente. - + Text Testo - + RTL Text Testo RTL - + Binary Binario - - + + Image Immagine - + JSON JSON - + XML XML - - + + Automatically adjust the editor mode to the loaded data type Seleziona automaticamente la modalità dell'editor in base al tipo di dato caricato - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. Questo bottone spuntabile permette di abilitare o disabilitare l'adattamento automatico della modalità dell'editor. Quando una nuova cella è selezionata o sono importati nuovi dati e la modalità di adattamento automaitco è abilitata, la modalità si aggiusta al tipo di dato rilevato. Puoi cambiare in seguito la modalità dell'editor in modo manuale. Se vuoi mantenere la modalità selezionata manualmente mentre ti muovi tre le celle, togli la spunta a questo bottone. - + Auto-switch Auto-switch - + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. @@ -984,129 +941,117 @@ Errors are indicated with a red squiggle underline. Gli errori sono indicati da una sottolineatura rossa ondulata. - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. Questo editor Qt è utilizzato per le scritture da destra a sinistra, che non sono supportate dall'editor testuale standard. La presenza di caratteri da destra a sinistra è rilevata e la modalità dell'editor viene selezionata automaticamente. - + Open preview dialog for printing the data currently stored in the cell Apre una finestra d'anteprima per la stampa dei dati attualmente memorizzati nella cella - + Auto-format: pretty print on loading, compact on saving. Auto-formato: migliore stampa al caricamento, compatta in salvataggio. - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. Quando abilitato, la feature dell'auto-formato formatta i dati al caricamento, rompe il testo in righe e lo indenta per una maggiore leggibilità. Al salvataggio dei dati, la feature dell'auto-formato compatta i dati rimuovendo i fine riga, e spazi bianchi non necessari. - + Word Wrap A capo automatico - + Wrap lines on word boundaries Porta a capo le line di testo al raggiungimento del bordo - - + + Open in default application or browser Apri nell'applicazione predefinita o nel browser - + Open in application Apri nell'applicazione - + The value is interpreted as a file or URL and opened in the default application or web browser. Il valore è interpretato come file o URL e aperto nell'applicazione predefinita o nel web browser. - + Save file reference... Salva riferimento file... - + Save reference to file Salva riferimento su file - - + + Open in external application Apri in un'applicazione esterna - + Autoformat Autoformato - + &Export... &Esporta... - - + + &Import... &Importa... - - + + Import from file Importa da file - - + + Opens a file dialog used to import any kind of data to this database cell. Apri una finestra di dialogo per importare qualsiasi tipo di dato in questa cella del database. - &Import - &Importa - - - + Export to file Esporta in un file - + Opens a file dialog used to export the contents of this database cell to a file. Apri una finestra di dialogo utilizzata per esportare i contenuti di questa cella del database in un file. - &Export - &Esporta - - - + Apply data to cell Applica i dati alla cella - Set this cell to NULL - Imposta questa cella a NULL - - - + Erases the contents of the cell Cancella i contenuti di questa cella - + Set as &NULL Imposta come &NULL @@ -1116,168 +1061,125 @@ Gli errori sono indicati da una sottolineatura rossa ondulata. Quest'area mostra informazioni riguardo i dati presenti in questa cella del database - This editor mode lets you edit JSON or XML data with syntax highlighting, automatic formatting and validation before saving. - -Errors are indicated with a red squiggle underline. - Questa modalità editor permette di modificare dati JSON o XML con evidenziazione della sintassi, formattazione e validazione autmoatica prima del salvataggio. - -Gli errori sono indicati con una sottolineatura rossa ondulata. - - - + Type of data currently in cell Tipo di dato attualmente nella cella - + Size of data currently in table Dimensione dei dati attualmente in tabella - Apply data to cell [Ctrl+Return] - Applica i dati alla cella [Ctrl+Invio] - - - + This button saves the changes performed in the cell editor to the database cell. Questo bottone salva le modifiche fatte alla cella dell'editor alla cella del database. - + Apply Applica - - + Print... Stampa... - - Open preview dialog for printing displayed image - Apri la finestra di anteprima per stampare l'immagine mostrata - - - - + Ctrl+P - + Open preview dialog for printing displayed text Apri la finestra di anteprima per stampare il testo mostrato - + Copy Hex and ASCII Copia HEX e ASCII - + Copy selected hexadecimal and ASCII columns to the clipboard Copia le colonne esadecimali e ASCII selezionate negli appunti - + Ctrl+Shift+C - - + + Image data can't be viewed in this mode. I dati immagine non possono essere visualizzati in questa modalità. - - + + Try switching to Image or Binary mode. Prova a passare alla modalità Immagine o Binario. - - + + Binary data can't be viewed in this mode. I dati binari non possono essere visualizzati in questa modalità. - - + + Try switching to Binary mode. Prova a passare alla modalità Binario. - Text files (*.txt) - File di testo (*.txt) - - - JSON files (*.json) - File JSON (*.json) - - - XML files (*.xml) - File XML (*.xml) - - - - + + Image files (%1) File immagine (%1) - + Binary files (*.bin) File binario (*.bin) - All files (*) - Tutti i files (*) - - - + Choose a file to import Scegli un file da importare - + %1 Image %1 Immagine - SVG files (*.svg) - File SVG (*.svg) - - - Hex dump files (*.txt) - File esadecimale di dump (*.txt) - - - + Choose a filename to export data Scegli un nome del file per esportare i dati - + Invalid data for this mode Dati non validi per questa modalità - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? La cella continete dati %1 non validi. Ragione: %2. Sei davvero sicuro di applicare quello alla cella? - - + + Type of data currently in cell: Text / Numeric Tipo di dato attualmente nella cella: Testo / Numerico - - - + + + %n character(s) %n carattere @@ -1285,23 +1187,23 @@ Gli errori sono indicati con una sottolineatura rossa ondulata. - + Type of data currently in cell: %1 Image Tipo di dato attualmente nella cella: %1 Immagine - + %1x%2 pixel(s) %1x%2 pixel(s) - + Type of data currently in cell: NULL Tipo di dato attualmente nella cella: NULL - - + + %n byte(s) %n byte @@ -1309,19 +1211,24 @@ Gli errori sono indicati con una sottolineatura rossa ondulata. - + Type of data currently in cell: Valid JSON Tipo di dato attualmente nella cella: Valid JSON - + Type of data currently in cell: Binary Tipo di dato attualmente nella cella: Binario - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. - I dati sono stati salvati in un file temporane e sono stati aperti con l'applicazione predefinita. Ora puoi modificare il file e, quando sei pronto, applicare i nuovi dati salvati all'editor di cella o annullare ogni modifica. + + Couldn't save file: %1. + Impossibile salvare il file: %1. + + + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + @@ -1418,10 +1325,6 @@ Gli errori sono indicati con una sottolineatura rossa ondulata. Advanced Avanzate - - Database schema - Schema database - Database sche&ma @@ -1442,22 +1345,6 @@ Gli errori sono indicati con una sottolineatura rossa ondulata. Fields Campi - - Add field - Aggiungi campo - - - Remove field - Rimuovi campo - - - Move field up - Muovi campo in sù - - - Move field down - Muovi campo in giù - Add @@ -1489,223 +1376,208 @@ Gli errori sono indicati con una sottolineatura rossa ondulata. Muovi al fondo - - + + Name Nome - - + + Type Tipo - + NN NN - + Not null Non null - + PK CP - - Primary key - Chiave Primaria + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + - + AI AI - + Autoincrement Autoincremento - + U U - - - + + + Unique Univoco - + Default Default - + Default value Valore di default - - - + + + Check Controlla - + Check constraint Controlla le restrizioni - + Collation Fascicola - - - + + + Foreign Key Chiave esterna - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + Constraints Vincoli - + Add constraint Aggiungi vincolo - + Remove constraint Rimuovi vincolo - + Columns Colonne - + SQL SQL - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Attenzione: </span>C'è qualcosa in questa definizione di tabella che il nostro parser non comprende. Modificare e salvare questa tabella potrebbe creare dei problemi.</p></body></html> - - + + Primary Key Chiave primaria - + Add a primary key constraint Aggiungi un vincolo di chiave primaria - + Add a foreign key constraint Aggiungi un vincolo di chiave esterna - + Add a unique constraint Aggiungi un vincolo di unicità - + Add a check constraint Aggiungi un vincolo di controllo - Unknown - Sconosciuto - - - - + + There can only be one primary key for each table. Please modify the existing primary key instead. Puoi avere solo una chiave primaria per ogni tabella. Si prega di modificare la chiave primaria attuale. - + Error creating table. Message from database engine: %1 Error nella creazione della tabella. Messaggio dal database engine: %1 - + There already is a field with that name. Please rename it first or choose a different name for this field. Esiste già un campo con quel nome. Si prega di rinominarlo prima o scegliere un nome differente per questo campo. - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. Questa colonna è referenziata in una chiave esterna nella tabella %1 e quindi il nome non può essere modificato. - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. Esiste almeno una riga con questo campo impostato a NULL. Questo rende impossibile impostare questa opzione. Si prega prima di modificare quel dato. - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. Esiste almeno un riga con un valore non intero in questo campo. Questo rende impossibile impostare l'AI. Si prega prima di cambiare il dato. - + Column '%1' has duplicate data. La colonna '%1' ha dei dati duplicati. - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. Questo rende impossibile abilitare l'opzionie 'Univoco'. Perfavore rimuovi i dati duplicati, il che permetterà l'abilitazione dell'opzione 'Univoco'. - Column '%1' has no unique data. - - La colonna '%1' non ha dati univoci. - - - - This makes it impossible to set this flag. Please change the table data first. - Questo rende impossibile impostare questa opzione. Si prega prima di modificare il dato. - - - Modifying this column failed. Error returned from database: -%1 - La modifica di questa colonna è fallita. Errore restituito dal database: -%1 - - - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. Sei sicuro di voler eliminare il campo '%1'? Tutti i dati che sono attualmente memorizzati in questo campo andranno persi. - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled @@ -1713,18 +1585,6 @@ Tutti i dati che sono attualmente memorizzati in questo campo andranno persi. - - Setting the rowid column for the table failed. Error message: -%1 - Impostazione della colonna rowid per la tabella fallita. Messaggo di errore: -%1 - - - Changing the table schema failed. Error message: -%1 - Cambio dello schema della tabella fallito. Messaggio di errore: -%1 - ExportDataDialog @@ -1831,14 +1691,6 @@ Tutti i dati che sono attualmente memorizzati in questo campo andranno persi.exporting JSON esportando in JSON - - Text files(*.csv *.txt) - File di testo(*.csv *.txt) - - - Text files(*.json *.js *.txt) - File di testo(*.json *.js *.txt) - @@ -1933,10 +1785,6 @@ Tutti i dati che sono attualmente memorizzati in questo campo andranno persi.Choose a filename to export Scegli un nome del file per esportare - - Text files(*.sql *.txt) - File di testo(*.sql *.txt) - Export completed. @@ -1952,7 +1800,7 @@ Tutti i dati che sono attualmente memorizzati in questo campo andranno persi.ExtendedScintilla - + Ctrl+H @@ -1963,22 +1811,22 @@ Tutti i dati che sono attualmente memorizzati in questo campo andranno persi. - + Ctrl+P - + Find... Trova... - + Find and Replace... Trova e Sostituisci... - + Print... Stampa... @@ -1986,124 +1834,129 @@ Tutti i dati che sono attualmente memorizzati in questo campo andranno persi. ExtendedTableWidget - + Use as Exact Filter Usa come filtro esatto - + Containing Che contiene - + Not containing Non contenuto - + Not equal to Non uguale a - + Greater than Maggiore di - + Less than Minore di - + Greater or equal Maggiore o uguale - + Less or equal Minore o uguale - + Between this and... Tra questo e... - + Regular expression Espressione regolare - + Edit Conditional Formats... Modifica Formattazione Condizionale... - + Set to NULL Imposta a NULL - + + Cut + + + + Copy Copia - + Copy with Headers Copia con gli Headers - + Copy as SQL Copia come SQL - + Paste Incolla - + Print... Stampa... - + Use in Filter Expression Usa nell'espressione del filtro - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? Il contenuto degli appunti è più grande del range selezionato. Vuoi inserirlo comunque? - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. <p>Non tutti i dati sono stati caricati. <b>Vuoi caricare tutti i dati prima di selezionare tutte le righe?</b><p><p>Rispondere <b>No</b> significa che non verranno caricati i restanti dati e la selezione non verrà effettuata.<br/>Rispondere <b>Si</b> potrebbe richiedere del tempo per caricare i dati, ma la selezione sarà completa.</p>Attenzione: Caricare tutti i dati potrebbe richiedere un grosso quantitativo di memoria in caso di grandi tabelle. - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. Impossibile modificare la selezione in NULL. La colonna %1 ho un vincolo NOT NULL. @@ -2429,15 +2282,48 @@ x~y Intervallo: valori tra x e y - ImportCsvDialog + ImageViewer - - Import CSV file - Imoprta file CSV + + Image Viewer + - - Table na&me + + Reset the scaling to match the original size of the image. + + + + + Set the scaling to match the size of the viewport. + + + + + Print... + Stampa... + + + + Open preview dialog for printing displayed image + Apri la finestra di anteprima per stampare l'immagine mostrata + + + + Ctrl+P + + + + + ImportCsvDialog + + + Import CSV file + Imoprta file CSV + + + + Table na&me No&me tabella @@ -2462,7 +2348,7 @@ x~y Intervallo: valori tra x e y - + Tab Tab @@ -2604,10 +2490,6 @@ x~y Intervallo: valori tra x e y Match Similar Seleziona simili - - Import completed - Importazione completata - Select All @@ -2639,12 +2521,17 @@ x~y Intervallo: valori tra x e y importo il CSV - + Inserting row failed: %1 Inserimento della riga fallito: %1 - + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + + + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. Importare il file '%1' ha richiesto %2ms. Di questi %3ms sono stati spesi in funzioni di riga. @@ -2680,302 +2567,131 @@ Puoi trascinare SQL da una riga oggetto e rilasciarli dentro altri applicativi o Naviga nei dati - &Table: - &Tabella: - - - Select a table to browse data - Seleziona una tabella per navigare tra i dati - - - Use this list to select a table to be displayed in the database view - Usa questa lista per selezionare una tabella da visualizzare nella vista del database - - - Refresh the data in the selected table [F5, Ctrl+R] - Aggiorna i dati della tabella selezionata [F5, Ctrl+R] - - - This button refreshes the data in the currently selected table. - Questo pulsante aggiorna i dati della tabella selezionata. - - - Clear Filters - Pulisci Filtri - - - Clear all filters - Cancella tutti i filtri - - - This button clears all the filters set in the header input fields for the currently browsed table. - Questo pulsante pulisce tutti i filtri impostati nella riga d'intestazione per la tabella corrente. - - - Save Table As... - Salva Tabella Come... - - - Save the table as currently displayed - Salva la tabella così come visualizzata - - - <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - <html><head/><body><p>Questo menù fornisce le seguenti opzioni applicabili alla tabella filtrata e visualizzata correntemente:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Esporta in CSV: questa opzione esporta i dati della tabella così come visualizzati (con filtri, riordine delle colonne e formati) in un file CSV.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Salva come vista: questa opzione salva le impostazioni correnti della tabella visualizzata (filtri, riordine delle colonne e formati) come vista SQL che puoi successivamente visualizzare o utilizzare come statement.</li></ul></body></html> - - - ... - ... - - - Print currently browsed table data [Ctrl+P] - Stampa i dati visualizzati [Ctrl+P] - - - Print currently browsed table data. Print selection if more than one cell is selected. - Stampa i dati visualizzati. Stampa la selezione se più di una cella è selezionata. - - - Insert a new record in the current table - Inserisci un nuovo valore nella tabella corrente - - - <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - <html><head/><body><p>Questo pulsante crea una nuova riga nel database. Mantieni premuto il tasto del mouse per ottenere più opzioni:</p><ul><li><span style=" font-weight:600;">Nuova Riga</span>: inserisce una nuova riga con i valori predefiniti.</li><li><span style=" font-weight:600;">Inserisci Valori...</span>: apre una finestra per inserire i valori prima che vengano immessi nel database. Questo permette che l'immissione dei valori rispetti diversi limiti (constraints). Questa finestra si apre anche se l'opzione <span style=" font-weight:600;">Nuova Riga</span> fallisce a causa di questi limiti (constraints).</li></ul></body></html> - - - New Record - Nuova Riga - - - Delete the current record - Elimina il valore corrente - - - This button deletes the record or records currently selected in the table - Questo pulsante elimina la/e righe selezionate nella tabella - - - Delete Record - Elimina Riga - - - This is the database table view. You can do the following actions: - - Start writing for editing inline the value. - - Double-click any record to edit its contents in the cell editor window. - - Alt+Del for deleting the cell content to NULL. - - Ctrl+" for duplicating the current record. - - Ctrl+' for copying the value from the cell above. - - Standard selection and copy/paste operations. - Questa è la vista della tabella del database. Puoi eseguire le seguenti operazioni: - - Inizia a scrivere per modificare i valori. - - Doppio-click su qualsiasi valore per modificarne il contenuto nella finestra di editor della cella. - - Alt+Del per eliminare il contenuto della cella e portarlo a NULL. - - Ctrl+" per duplicare il valore corrente. - - Ctrl+' per copiare il valore dalla cella soprastante. - - Operazioni di selezione e copia/incolla. - - - <html><head/><body><p>Scroll to the beginning</p></body></html> - <html><head/><body><p>Scorri all'ìinizio</p></body></html> - - - <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - <html><head/><body><p>Cliccare questo pulsante scorre la vista all'inizio della tabella.</p></body></html> - - - |< - |< - - - Scroll one page upwards - Scorri di una pagina in su - - - <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - <html><head/><body><p>Cliccando questo pulsante la vista scorre le righe di una pagina verso l'inizio della tabella.</p></body></html> - - - < - < - - - 0 - 0 of 0 - 0 - 0 di 0 - - - Scroll one page downwards - Scorri di una pagina in giù - - - <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - <html><head/><body><p>Cliccando questo pulsante la vista scorre le righe di una pagina verso il fondo della tabella.</p></body></html> - - - > - > - - - Scroll to the end - Scorri alla fine - - - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Cliccando questo pulsante la vista scorre al fondo della tabella.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - >| - >| - - - <html><head/><body><p>Click here to jump to the specified record</p></body></html> - <html><head/><body><p>Clicca qui per saltare alla riga specificata</p></body></html> - - - <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - <html><head/><body><p>Questo pulsante è utilizzato per navigare alla riga impostata nell'area "Vai a".</p></body></html> - - - Go to: - Vai a: - - - Enter record number to browse - Inserisci il numero di riga a cui scorrere - - - Type a record number in this area and click the Go to: button to display the record in the database view - Inserisci un numero in quest'area e clicca sul pul pulsante "Vai a" per visualizzare la riga selezionata - - - 1 - 1 - - - - + + Edit Pragmas This has to be equal to the tab title in all the main tabs Modifica Pragmas - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - - - + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. Attenzione: questo pragma non è leggibile e questo valore è stato dedotto. Scrivere i pragma può sovrascrivere un LIKE ridefinito provvisto da un'estensione di SQLite. - - + + Execute SQL This has to be equal to the tab title in all the main tabs Esegui SQL - + toolBar1 - + &File &File - + &Import &Importa - + &Export &Esporta - + + Recent Files + + + + &Edit &Modifica - + &View &Visualizza - + &Help &Aiuto - + &Tools &Strumenti - + DB Toolbar Barra degli strumenti del DB - + Edit Database &Cell Modifica &cella - + SQL &Log &Log SQL - + Show S&QL submitted by Mostra l'S&QL inviato da - + User Utente - + Application Applicazione - + Error Log Registro errori - + This button clears the contents of the SQL logs Questo pulsante cancella il contenuto del log SQL - + &Clear &Pulisci - + This panel lets you examine a log of all SQL commands issued by the application or by yourself Questo pannello ti permette di esaminare il log di tutti i comandi SQL inviati dall'applicazione o da te stesso - + &Plot &Grafica - + DB Sche&ma Sche&ma DB - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. @@ -2986,1295 +2702,1133 @@ Puoi trascinare statement SQL dalla colonna Schema e rilasciarli dentro l'e - + &Remote &Remoto - - + + Project Toolbar Barra degli strumenti di progetto - + Extra DB toolbar Barra degli strumenti extra DB - - - + + + Close the current database file Chiudi il file di database corrente - + &New Database... &Nuovo Database... - - + + Create a new database file Crea un nuovo file di database - + This option is used to create a new database file. Questa opzione è utilizzata per creare un nuovo file di database. - + Ctrl+N - - + + &Open Database... &Apri Database... - - - - - + + + + + Open an existing database file Apre un file di database esistente - - - + + + This option is used to open an existing database file. Questa opzione è utilizzata per aprire un file esistente di database. - + Ctrl+O - + &Close Database &Chiudi Database - + This button closes the connection to the currently open database file Questo pulsnate chiude la connessione al file di database attualmente aperto - - + + Ctrl+W - + &Revert Changes &Ripristina le modifiche - - + + Revert database to last saved state Ripristina il database all'ultimo stato salvato - + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. Questa opzione è utilizzata per ripristinare il file di database al suo ultimo stato salvato. Tutte le modifiche fatte dall'ultima opzione di salvataggio sono perse. - + &Write Changes &Salva le modifiche - - + + Write changes to the database file Scrive le modifiche sul file di database - + This option is used to save changes to the database file. Questa opzione è utilizzata per salvare le modifiche sul file di database. - + Ctrl+S - + Compact &Database... &Compatta Database... - + Compact the database file, removing space wasted by deleted records Compatta il file di database, rimuovendo lo spazio sprecato dalle righe eliminate - - + + Compact the database file, removing space wasted by deleted records. Compatta il file di database rimuovendo lo spazio sprecato dalle righe eliminate. - + E&xit &Esci - + Ctrl+Q - + &Database from SQL file... &Database dal file SQL... - + Import data from an .sql dump text file into a new or existing database. Importa i dati da un file di testo di dump .sql all'interno di un database nuovo o esistente. - + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. Questa opzione ti permette d'importare i dati da un file di testo di dump .sql all'interno di un database nuovo o esistente. I file di dump SQL possono essere creati dalla maggiorparte dei motori SQL, inclusi MySQL e PostgreSQL. - + &Table from CSV file... &Tabella da file CSV... - + Open a wizard that lets you import data from a comma separated text file into a database table. Apre un wizard che ti permette d'importare dati da un file CSV all'interno di una tabella del database. - + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. Apre un wizard che ti permette d'importare dati da un file CSV all'interno di una tabella del database. I file CSV possono essere creati dalla maggiorparte delle applicazioni database o foglio di calcolo. - + &Database to SQL file... &Database in file SQL... - + Export a database to a .sql dump text file. Esporta un database in un file di testo di dump .sql. - + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. Questa opzione ti permette di esportare un database in un file di testo di dump .sql. Il file di dump SQL contiene tutti i dati necessari per ricreare il database sulla maggiorparte di motori di database, inclusi MySQL e PostgreSQL. - + &Table(s) as CSV file... &Tabella(e) come file CSV... - + Export a database table as a comma separated text file. Esporta la tabella del database come un file di testo CSV. - + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. Esporta la tabella del database come un file di testo CSV, pronto per essere importato in un altro database o foglio di calcolo. - + &Create Table... &Crea tabella... - + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database Apre un wizard per la creazione di una tabella, dov'è possibile definire il nome e i campi di una nuova tabella del database - + &Delete Table... &Elimina tabella... - - + + Delete Table Elimina Tabella - + Open the Delete Table wizard, where you can select a database table to be dropped. Apre un wizard per la cancellazione della tabella, da qui puoi selezionare la tabella del database da eliminare. - + &Modify Table... &Modifica Tabella... - + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. Apre un wizard per la modifica di una tabella, da qui è possibile rinominare una tabella esistente. Si può anche aggiungere o rimuovere campi da una tabella così come modificarne il nome o il tipo. - + Create &Index... Crea &Indice... - + Open the Create Index wizard, where it is possible to define a new index on an existing database table. Apre un wizard per la crazione di un indice, da qui è possibile definire un nuovo indice s'una tabella di database pre-esistente. - + &Preferences... &Preferenze... - - + + Open the preferences window. Apre la finestra delle preferenze. - + &DB Toolbar &Barra degli strumenti - + Shows or hides the Database toolbar. Mostra o nasconde la barra degli strumenti del database. - + + New &tab + + + + Ctrl+T - + + Open SQL file(s) + + + + + This button opens files containing SQL statements and loads them in new editor tabs + + + + Execute line Esegui riga - + F1 - + Sa&ve Project Sal&va Progetto - + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file - + This button lets you open a DB Browser for SQLite project file - + Ctrl+Shift+O - + Find Trova - + Find or replace Trova o sostituisci - + Print text from current SQL editor tab Stampa testo dalla scheda corrente dell'editor SQL - + Print the structure of the opened database Stampa la struttura del database aperto - + Un/comment block of SQL code De/Commenta il blocco di codice SQL - + Un/comment block De/Commenta il blocco - + Comment or uncomment current line or selected block of code Commenta o decommenta la riga corrente o il blocco selezionato di codice - + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. Commenta o decommenta le righe selezionate o la riga corrente, quando non c'è nessuna selezione. Tutti i blocchi sono modificati in accordo alla prima riga. - + Ctrl+/ - + Stop SQL execution Ferma esecuzione SQL - + Stop execution Ferma esecuzione - + Stop the currently running SQL script Ferma lo script SQL attualmente in esecuzione - + &Save Project As... &Salva Progetto Come... - - - + + + Save the project in a file selected in a dialog Salva il progetto in un file selezionato tramite una finestra di dialogo - + Save A&ll Salva T&utto - - - + + + Save DB file, project file and opened SQL files Salva il file DB, file di progetto e tutti i file SQL aperti - + Ctrl+Shift+S - + Browse Table Naviga nei dati - - W&hat's This? - Cos'è &questo? + + Close Pro&ject + - Refresh the data in the selected table - Aggiorna i dati della tabella selezionata + + Close project and database files and return to the initial state + - Print currently browsed table data - Stampa i dati della tabella attualmente in esplorazione + + Ctrl+Shift+F4 + + + + + + Detach Database + - + + + Detach database file attached to the current database connection + + + + + W&hat's This? + Cos'è &questo? + + + Shift+F1 - + &About &Informazioni - + &Recently opened &Aperti di recente - - Open &tab - Apri &scheda - - - + This button opens a new tab for the SQL editor Questo pulsante apre una nuova schede dell'editor SQL - + &Execute SQL &Esegui SQL - Execute all/selected SQL [F5, Ctrl+Return, Ctrl+R] - Esegue tutti/selezionati SQL [F5, Ctrl+Invio, Ctrl+R] - - - + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. Questo pulsante esegue gli statement SQL evidenziati. Se nessun testo è selezionato, tutti gli statement SQL vengono eseguiti. - - Open SQL file - Apri file SQL - - - - This button opens a file containing SQL statements and loads it in a new editor tab - Questo pulsante apre un file contenente statement SQL e lo carica in una nuova scheda dell'editor - - - - - + + + Save SQL file Salva file SQL - + &Load Extension... &Carica Estensioni... - - + + Execute current line Esegue la riga corrente - Execute current line [Shift+F5] - Esegue la riga corrente [Shift+F5] - - - + This button executes the SQL statement present in the current editor line Questo pulsante esegue lo statement SQL presente nella riga corrente dell'editor - + Shift+F5 - + Export as CSV file Esporta come file CSV - + Export table as comma separated values file Esporta la tabella come file CSV - + &Wiki &Wiki - + Bug &Report... Bug &Report... - + Feature Re&quest... Richiesta &Funzionalità... - + Web&site Sito &Web - + &Donate on Patreon... &Dona su Patreon... - Sa&ve Project... - Sal&va Progetto... - - - - + + Save the current session to a file Salva la sessione correte in un file - This button lets you save all the settings associated to the open DB to a DB4S project file - Questo pulsante ti permette di salvare tutte le impostazioni associate al DB aperto in un file di progetto di DB4S - - - + Open &Project... Apri &Progetto... - - + + Load a working session from a file Carica una sessione di lavoro da file - This button lets you open a DB4S project file - Questo pulsante ti permette di aprire un file di progetto DB4S - - - + &Attach Database... &Collega Database... - - + + Add another database file to the current database connection Aggiunge un altro file di database alla connessione corrente - + This button lets you add another database file to the current database connection Questo pulsante ti permette di aggiungere un altro file alla connessione corrente - + &Set Encryption... &Imposta cifratura... - - + + Save SQL file as Salva file SQL come - + This button saves the content of the current SQL editor tab to a file Questo pulsante salva il contenuto della scheda di editor SQL in un file - + &Browse Table &Naviga Tabella - + Copy Create statement Copia statement CREATE - + Copy the CREATE statement of the item to the clipboard Copia lo statement CREATE negli appunti - Edit display format - Modifica formato di visualizzazione - - - Edit the display format of the data in this column - Modifica il formato di visualizzazione dei dati in questa colonna - - - Show rowid column - Mostra colonna rowid - - - Toggle the visibility of the rowid column - Mostra/nasconde la colonna rowid - - - Set encoding - Imposta codifica - - - Change the encoding of the text in the table cells - Modifica la codifica dle testo nelle celle della tabella - - - Set encoding for all tables - Imposta la codifica per tutte le tabelle - - - Change the default encoding assumed for all tables in the database - Modifica il valore predefinito di codifica per tutte le tabelle del database - - - + SQLCipher &FAQ SLQCipher &FAQ - + Opens the SQLCipher FAQ in a browser window Apre le SQLCipher FAQ in una finestra del browser - + Table(&s) to JSON... Tabella(&e) in JSON... - + Export one or more table(s) to a JSON file Esporta una o più tabelle in un file JSON - Refresh - Aggiorna - - - + Open Data&base Read Only... Apri un Data&base in Sola Lettura... - + Open an existing database file in read only mode Apre un file databse esistente in modalità sola lettura - Unlock view editing - Sblocca la modifica della vista + + Save results + Salva risultati - This unlocks the current view for editing. However, you will need appropriate triggers for editing. - Sblocca la vista corrente per modificarla. Per poterla modificare avrai comunque bisogno degli appropriati trigger. - - - - Save results - Salva risultati - - - + Save the results view Salva i risultati della vista - + This button lets you save the results of the last executed query Questo pulsante ti permette di salvare i risultati dell'ultima query eseguita - - + + Find text in SQL editor Trova testo nell'editor SQL - Find text in SQL editor [Ctrl+F] - Trova testo nell'editor SQL [Ctrl+F] - - - + This button opens the search bar of the editor Questo pulsante apre la barra di ricerca dell'editor - + Ctrl+F - - + + Find or replace text in SQL editor Trova e/o sostituisci testo nell'editor SQL - Find or replace text in SQL editor [Ctrl+H] - Trova e/o sostituisce il testo nell'editor SQL [Ctrl+H] - - - + This button opens the find/replace dialog for the current editor tab Questo pulsante apre la finestra di ricerca/sostituzione testo per la scheda corrente dell'editor - + Ctrl+H - + Export to &CSV Esporta in &CSV - + Save as &view Salva come &vista - + Save as view Salva come vista - Hide column(s) - Nascondi colonna(e) - - - Hide selected column(s) - Nasconde la(e) colonna(e) selezionata(e) - - - Show all columns - Mostra tutte le colonne - - - Show all columns that were hidden - Mostra tutte le colonne nascoste - - - + Shows or hides the Project toolbar. Mostra o nasconde la barra degli strumenti di progetto. - + Extra DB Toolbar Barra degli strumenti DB estesa - Export the filtered data to CSV - Esporta i dati filtrati in CSV - - - This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - Questo pulsante esporta i dati della tabella così come visualizzati (applicando filtri, formati e ordine delle colonne) in un file CSV. - - - Save the current filter, sort column and display formats as a view - Salva il filtro corrente, ordine colonne e formati dati come vista - - - This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - Questo pulsante salva le impostazioni della tabella visualizzata (filtri, formati e ordine colonne) in una vista SQL che puoi successivamente navigare o utilizzare in statement SQL. - - - Insert Values... - Inserisci Valori... - - - Open a dialog for inserting values in a new record - Apre una finestra per l'inermento di valori all'interno di un nuovo record - - - Insert new record using default values in browsed table - Inserisce un nuovo record utilizzando i valori di default della tabella - - - + New In-&Memory Database Nuovo Database In &Memoria - + Drag && Drop Qualified Names Trascina && Rilascia Nomi Qualificati - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor Usa nomi qualificati (es. "Table"."Campo") quando trascini gli oggetti e li rilasci all'interno dell'editor - + Drag && Drop Enquoted Names Trascina && Rilascia Nomi Quotati - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor Usa gl'identificatori di citazione (es. "Tabella1") quando trascini e rilasci gli oggetti nell'editor - + &Integrity Check Controllo &Integrità - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. Avvia il controllo integrità (integrity check pragma) sul database aperto e riporta il risultato nella scheda "Esegui SQL". Questa operazione esegue un controllo d'integrità sull'intero database. - + &Foreign-Key Check Controlla Chiave &Esterna - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab Avvia il controllo chiavi esterne (foreign_key_check pragma) nel database aperto e riporta il risultato nella scheda "Esegui SQL" - + &Quick Integrity Check Controllo Integrità &Veloce - + Run a quick integrity check over the open DB Avvia un controllo veloce d'integrità sul DB aperto - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. Avvia un controllo veloce d'integrità (quick_check pragma) sul database e riporta il risultato nella scheda "Esegui SQL". Quest comando esegue la maggiorparte dei controlli d'integrità del controllo completo, ma in modo molto più veloce. - + &Optimize &Ottimizza - + Attempt to optimize the database Prova ad ottimizzare il database - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. Avvia l'ottimizzazione del database aperto. Questa operazione potrebbe eseguire delle ottimizzazione che miglioreranno le performance delle query future. - - + + Print Stampa - Print text from current SQL editor tab [Ctrl+P] - Stampa il testo della scheda editor SQL [Ctrl+P] - - - + Open a dialog for printing the text in the current SQL editor tab Apre una finetra per la stampa del testo nella scheda dell'editor SQL - Print the structure of the opened database [Ctrl+P] - Stampa la struttura del database aperto [Ctrl+P] - - - + Open a dialog for printing the structure of the opened database Apre una finestra per la stampa della struttura del database aperto - - + + Ctrl+P - + Ctrl+F4 - + Execute all/selected SQL Esegui tutti gli SQL o quelli selezionati - + Ctrl+Return - + Ctrl+L - + Ctrl+D - + Ctrl+I - + Ctrl+E - + Reset Window Layout Ripristina disposizione finestra - + Alt+0 - - Close current SQL tab - Chiudi il tab SQL attuale - - - + The database is currenctly busy. Il database è occupato. - + Click here to interrupt the currently running query. Clicca qui per interrompere la query in esecuzione. - + Encrypted Criptato - + Database is encrypted using SQLCipher Il database è stato criptato utilizzando SQLCipher - + Read only Sola lettura - + Database file is read only. Editing the database is disabled. Il file di database è in sola lettura. Le modifiche al database sono disabilitate. - + Database encoding Codifica Database - - + + Choose a database file Seleziona un file di database - + Could not open database file. Reason: %1 Impossibile aprire il file di database. Motivo: %1 - - - + + + Choose a filename to save under Seleziona un nome file per il salvataggio - + In-Memory database Database In-Memoria - - %n row(s) - - %n righe - - - - - , %n column(s) - - , %n colonna(e) - - - - - . Sum: %1; Average: %2; Min: %3; Max: %4 - . Somma: %1; Media: %2; Min: %3; Max: %4 - - - You are still executing SQL statements. When closing the database now the execution will be stopped. maybe leaving the database in an incosistent state. Are you sure you want to close the database? - Sto ancora eseguendo degli SQL. Se chiudi ora il database l'esecuzione verrà terminata lasciando potenzialmente il database in uno stato inconsistente. Sei sicuro di voler chiudere il database? - - - Do you want to save the changes made to the project file %1? - Vuoi salvare le modifiche fatte al file di progetto %1? - - - Error deleting record: -%1 - Errore eliminando le righe: -%1 - - - Please select a record first - Si prega di selezionare prima un record - - - determining row count... - determino il numero di righe... - - - %1 - %2 of >= %3 - %1 - %2 di >= %3 - - - %1 - %2 of %3 - %1 - %2 di %3 - - - There is no database opened. Please open or create a new database file. - Non c'è un database aperto. Si prega di aprire o creare un nuovo file di database. - - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. Sei sicuro di voler eliminare la tabella '%1'? Tutti i dati associati alla tabella andranno perduti. - + Are you sure you want to delete the view '%1'? Sei sicuro di voler eliminare la vista '%1'? - + Are you sure you want to delete the trigger '%1'? Sei sicuro di voler eliminare il trigger '%1'? - + Are you sure you want to delete the index '%1'? Sei sicuro di voler eliminare l'indice '%1'? - + Error: could not delete the table. Errore: impssibile eliminare la tabella. - + Error: could not delete the view. Errore: impossibile eliminare la vista. - + Error: could not delete the trigger. Errore: impossibile eliminare il trigger. - + Error: could not delete the index. Errore: impossibile eliminare l'indice. - + Message from database engine: %1 Messaggio dal database: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? Per modificare la tabella bisogna salvare tutte le modifiche pendenti. Sei sicuro di voler salvare il database? - + Error checking foreign keys after table modification. The changes will be reverted. Errore nel controllo delle chiavi esterne dopo le modifiche alla tabella. Le modifiche saranno eliminate. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. Questa tabella non ha passato il controllo sulle chiavi esterne.<br/>Dovresti avviare 'Strumenti | Controllo Chiavi Esterne' e correggere i problemi riportati. - + + Edit View %1 + + + + + Edit Trigger %1 + + + + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. Sto eseguendo degli SQL. Vuoi fermarli per poter eseguire invece l'SQL corrente? Nota che questo potrebbe lasciare il database in uno stato inconsistente. - + -- EXECUTING SELECTION IN '%1' -- -- ESEGUO LA SELEZIONE IN '%1' -- - + -- EXECUTING LINE IN '%1' -- -- ESEGUO LINEA IN '%1' -- - + -- EXECUTING ALL IN '%1' -- -- ESEGUO TUTTO IN '%1' -- - - + + At line %1: Alla riga %1: - + Result: %1 Risultato: %1 - + Result: %2 Risultato: %2 - + + Opened '%1' in read-only mode from recent file list + + + + + Opened '%1' from recent file list + + + + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + + + + Project saved to file '%1' Progetto salvato sul file '%1' - + + Yes. Don't ask again + + + + + This action will open a new SQL tab with the following statements for you to edit and run: + + + + Rename Tab Rinomina il Tab - + Duplicate Tab Duplica il Tab - + Close Tab Chiudi il Tab - + Opening '%1'... Apro '%1'... - + There was an error opening '%1'... Errore durante l'apertura di '%1'... - + Value is not a valid URL or filename: %1 Il valore non è un URL valida o nome file: %1 - -- At line %1: -%3 --- Result: %2 - -- Alla riga %1: -%3 --- Risultato: %2 - - - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? Impostare i valori PRAGMA o pulizia chiuderanno la transazione corrente. Sei sicuro? - + Execution finished with errors. Esecuzione completata con errori. - + Execution finished without errors. Esecuzione completata senza errori. - Extensions(*.so *.dylib *.dll);;All files(*) - Estensioni(*.so *.dylib *.dll);;Tutti i files(*) - - - Execution aborted by user - Esecuzione terminata dall'utente - - - executing query - query in esecuzione - - - + %1 rows returned in %2ms %1 righe ritornate in %2ms - , %1 rows affected - , %1 righe modificate - - - query executed successfully. Took %1ms%2 - query eseguita con successo. Impiegati %1ms%2 - - - -- At line %1: -%4 --- Result: %3 - -- Alla riga %1: -%4 --- Risultato: %3 - - - + Choose text files Seleziona i file di testo - Text files(*.csv *.txt);;All files(*) - File di testo(*.csv *.txt);;Tutti i files(*) - - - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 @@ -4283,42 +3837,42 @@ Sei sicuro? %1 - + Are you sure you want to undo all changes made to the database file '%1' since the last save? Sei sicuro di voler annullare tutte le modifiche effettuate al database '%1' dall'ultimo salvataggio? - + Choose a file to import Seleziona un file da importare - + &%1 %2%3 &%1 %2%3 - + (read only) (sola lettura) - + Open Database or Project Apri Database o Progetto - + Attach Database... Collega Database... - + Import CSV file(s)... Importa file(s) CSV... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. Seleziona l'azione da applicare al(ai) file(s) scartato(i). <br/>Nota: solo 'Importa' processa più di un file. @@ -4326,234 +3880,224 @@ Sei sicuro? - + Do you want to save the changes made to SQL tabs in the project file '%1'? Vuoi salvare le modifiche effettuate ai tabs SQL nel file di progetto '%1'? - + Text files(*.sql *.txt);;All files(*) File di testo(*.sql *.txt);;Tutti i files(*) - + Do you want to create a new database file to hold the imported data? If you answer no we will attempt to import the data in the SQL file to the current database. Vuoi creare un nuovo file di database per mantenere i dati importati? Se rispondi di no proveremo ad importare i dati del file SQL all'interno del database corrente. - + + Ctrl+Tab + + + + + Ctrl+Shift+Tab + + + + + Ctrl+PgUp + + + + + Clear List + + + + + Window Layout + + + + + Simplify Window Layout + + + + + Shift+Alt+0 + + + + + Dock Windows at Bottom + + + + + Dock Windows at Left Side + + + + + Dock Windows at Top + + + + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? Sto ancora eseguendo comandi SQL. Se chiudi il database ora non verrano eseguiti, il database potrebbe rimanere in uno stato inconsistente. Sei sicuro di voler chiudere il database? - + Do you want to save the changes made to the project file '%1'? Vuoi salvare le modifiche fatte al file di progetto '%1'? - + File %1 already exists. Please choose a different name. Il file %1 esiste già. Si prega di scegliere un nome differente. - + Error importing data: %1 Errore nell'importazione: %1 - + Import completed. Some foreign key constraints are violated. Please fix them before saving. Importaizone completata. Alcuni vincoli per le chiavi esterne non sono rispettati. Si prega di correggerli prima di salvare. - + Import completed. Import completato. - + Delete View Elimina Vista - + Modify View Modifica Vista - + Delete Trigger Elimina Trigger - + Modify Trigger Modifica Trigger - + Delete Index Elimina Indice - + Modify Index Modifica Indice - + Modify Table Modifica Tabella - &%1 %2 - &%1 %2 - - - + Setting PRAGMA values will commit your current transaction. Are you sure? Impostare i valori di PRAGMA chiuderà la transaione corrente. Sei sicuro? - + Do you want to save the changes made to SQL tabs in a new project file? Vuoi salvare le modifiche effettuate alle schede SQL in un nuovo file di progetto? - Do you want to save the changes made to SQL tabs in the project file %1? - Vuoi salvare le modifiche fatte alle schede SQL nel file di progetto %1? - - - + Do you want to save the changes made to the SQL file %1? Vuoi salvare le modifiche fatte al file SQL %1? - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? - Gli SQL in questa scheda sono ancora in esecuzione. Chiudere la scheda bloccherà l'esecuzione. Questo potrebbe lasciare il database in uno stato inconsistente. Sei sicuro di voler chiudere la scheda? - - - + Select SQL file to open Selezionare il file SQL da aprire - Couldn't read file: %1. - Impossibile leggere il file: %1. - - - Couldn't save file: %1. - Impossibile salvare il file: %1. - - - + Select file name Seleziona il nome del file - + Select extension file Seleziona l'estensione del file - Extensions(*.so *.dll);;All files(*) - Estensioni(*.so *.dll);;Tutti i files(*) - - - + Extension successfully loaded. Estensione caricata con successo. - + Error loading extension: %1 Errore nel caricamento dell'estensione: %1 - + Could not find resource file: %1 Non posso aprire il file di risorse: %1 - - + + Don't show again Non mostrare di nuovo - + New version available. Nuova versione disponibile. - + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. Una nuova versione di DB Browser for SQLite è disponibile (%1.%2.%3).<br/><br/>Si prega di scaricarla da <a href='%4'>%4</a>. - + Choose a project file to open Seleziona un file di progetto da aprire - + DB Browser for SQLite project file (*.sqbpro) File di progetto DB Browser for SQLite (*.sqbpro) - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - Questo file di progetto utilizza un vecchio formato poiché è stato creato con la versione 3.10 o antecedente. Il caricamento di questo formato è ancora supportato, ma ti suggeriamo di convertire tutti i tuoi files di progetto al nuovo formato poiché il supporto ai formati precedenti potrebbe essere eliminato in futuro. Puoi convertire i tuoi file semplicemente aprendoli e salvandoli nuovamente. - - - + Could not open project file for writing. Reason: %1 Non posso scrivere nel file di progetto. Motivo: %1 - Duplicate records - Duplica i records - - - Duplicate record - Duplica il record - - - Please choose a new encoding for all tables. - Si prega di scegliere una nuova codifica per tutte le tabelle. - - - Please choose a new encoding for this table. - Si prega di scegliere una nuova codifica per questa tabella. - - - %1 -Leave the field empty for using the database encoding. - %1 -Lasciare il campo vuoto per utilizzare la codifica del database. - - - This encoding is either not valid or not supported. - Questa codifica non è valida o non è supportata. - - - Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - Si prega d'inserire una pseudo-chiave primaria in modo da abilitare le modifiche su questa vista. Deve corrispondere al nome di una colonna univoca nella vista. - - - + Collation needed! Proceed? Necessario confronto! Procedo? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4562,55 +4106,47 @@ Se scegli di proseguire, sappi che potrebbero generarsi problemi nel tuo databas Crea un backup! - + creating collation creo confronto - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. Imposta un nuovo nome per la scheda SQL. Usa il carattere '&&' per utilizzare il carattere succesivo come scorciatoia da tastiera. - + Please specify the view name Si prega di specificare il nome della vista - + There is already an object with that name. Please choose a different name. Esiste già un oggetto con quel nome. Si prega di scegliere un nome diverso. - + View successfully created. Vista creata con successo. - + Error creating view: %1 Errore nella creazione della vista: %1 - There is no filter set for this table. View will not be created. - Non c'è filtro impostato per questa tabella. La vista non sarà creata. - - - Delete Records - Elimina i Records - - - + This action will open a new SQL tab for running: Questa azione aprirà una nuova scheda SQL per eseguire: - + Press Help for opening the corresponding SQLite reference page. Premi Aiuto per aprire la pagina di riferimento SQLite corrispondente. - + Busy (%1) Occupato (%1) @@ -4636,37 +4172,37 @@ Crea un backup! Grafico - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> <html><head/><body><p>Questo pannello mostra la lista delle colonne della tabella corrente o della query eseguita. Puoi selezionare la colonna che vuoi utilizzare come asse X o Y per il grafico sottostante. La tabella mostra i tipi d'asse rilevati. Per l'asse Y puoi selezionare solo colonne numeriche, ma per l'asse X potrai selezionare:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Data/Ora</span>: stringhe col formato &quot;aaaa-MM-gg hh:mm:ss&quot; o &quot;aaaa-MM-ggThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Data</span>: stringhe col formato &quot;aaaa-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Orario</span>: stringhe col formato &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Etichette</span>: altri formati di stringa. Selezionando queste colonne come X verrà visualizzato un grafico a barre</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeri</span>: interi or valori reali</li></ul><p>Cliccando due volte sulle celle Y potrai cambiare il colore utilizzato per il grafico.</p></body></html> - + Columns Colonne - + X - + Y1 - + Y2 - + Axis Type Tipo asse - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -4683,129 +4219,129 @@ Usa la rotella del mouse per ingrandire e trascina col mouse per cambiare l&apos Seleziona le etichette dell'asse o degli assi per trascinare o ingrandire solo in quella direzione. - + Line type: Tipo linea: - - + + None Nessuna - + Line Linea - + StepLeft Salto sinistro - + StepRight Salto destro - + StepCenter Salto centrato - + Impulse Impulso - + Point shape: Tipo punta: - + Cross Croce - + Plus Più - + Circle Cerchio - + Disc Disco - + Square Quadrato - + Diamond Rombo - + Star Stella - + Triangle Triangolo - + TriangleInverted Triangolo inverso - + CrossSquare Croce quadrato - + PlusSquare Più quadrato - + CrossCircle Croce cerchio - + PlusCircle Più cerchio - + Peace Pace - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> <html><head/><body><p>Salva il grafico corrente...</p><p>Formato file selezionato dall'estensione (png, jpg, pdf, bmp)</p></body></html> - + Save current plot... Salva il grafico corrente... - - + + Load all data and redraw plot Carica tutti i dati e ridisegna grafico @@ -4830,72 +4366,72 @@ Seleziona le etichette dell'asse o degli assi per trascinare o ingrandire s Barre impilate - + Date/Time Data/Ora - + Date Data - + Time Ora - - + + Numeric Numerico - + Label Etichetta - + Invalid Invalido - - - + + + Row # Riga # - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. Carica tutti i dati e ridisegna grafico. Attenzione: non sono ancora stati recuperati tutti i dati dalla tabella a causa del meccanismo di recupero. - + Choose an axis color Scegli il colore per l'asse - + Choose a filename to save under Scegli il nome di salvataggio - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. Ci sono delle curve in questo grafico e lo stile di line selezionato può essere applicato solo a grafici ordinati per X. Riordina la tabella o seleziona per X per rimuovere le curve o seleziona uno degli stili supportati dalle curve: Nessuno o Linea. - + Loading all remaining data for this table took %1ms. Caricare tutti i dati restanti per questa tabella ha richiesto %1ms. @@ -4934,8 +4470,8 @@ Attenzione: non sono ancora stati recuperati tutti i dati dalla tabella a causa - - + + ... @@ -5002,12 +4538,14 @@ Attenzione: non sono ancora stati recuperati tutti i dati dalla tabella a causa - - - - - - + + + + + + + + enabled abilitato @@ -5072,87 +4610,113 @@ Attenzione: non sono ancora stati recuperati tutti i dati dalla tabella a causa Stile Applicazione - + + This sets the font size for all UI elements which do not have their own font size option. + + + + + Font size + + + + + Max Recent Files + + + + + Prompt to save SQL tabs +in new project file + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + &Database - + Database &encoding &Codifica Database - + Open databases with foreign keys enabled. Apri database contenenti chiavi esterne. - + &Foreign keys Chiavi &Esterne - + Remove line breaks in schema &view Rimuovi a-capo nella &vista dello schema - + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. Quando abilitato, vengono rimossi gli a-capo nella colonna dello Schema del tab "Struttura DB", dock e stampa. - + Prefetch block si&ze &Dimensione blocco di prefetch - - Advanced - Avanzate - - - + SQ&L to execute after opening database SQ&L da eseguire dopo aver aperto il database - + Default field type Tipo di campo di default - + + Database structure font size + + + + Data &Browser - + Font - + &Font - + Font si&ze Dimensione te&sto - + Content Contenuto - + Symbol limit in cell Limite simboli nella cella - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. @@ -5163,462 +4727,538 @@ Massimo numero di indici in una selezione per calcolare somma e media. Può essere impostato a 0 per disabilitare le funzionalità. - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. Questo è il numero massimo di righe in una tabella per abilitare il completamento dei valori basandosi su quelli attualmente nella colonna. Può essere impostato a 0 per disabilitare il completamento. - Row count threshold for completion - Numero massimo di righe per l'autocompletamento - - - + Field display Visualizzazione campi - + Displayed &text &Testo visualizzato - + Binary Binario - + NULL - + Regular Normale - - - + - - + + + + Click to set this color Clicca per impostare questo colore - + Text color Colore del testo - + Background color Colore dello sfondo - + Preview only (N/A) Solo anteprima (N/A) - + Filters Filtri - + Escape character Carattere di escape - + Delay time (&ms) Ritardo (&ms) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. Imposta il tempo d'attesa prima che un nuovo filtro venga applicato. Può essere impostato a 0 per disabilitare l'attesa. - + &SQL &SQL - + Settings name Nome impostazioni - + Context Contesto - + Colour Colore - + Bold Grassetto - + Italic Corsivo - + Underline Sottolinea - + Keyword Parola chiave - + Function Funzione - + Table Tabella - + Comment Commento - + Identifier Identificatore - + String Stringa - + Current line Linea corrente - + Background Sfondo - + Foreground Primo piano - + + selected_bg + + + + + Selection background + + + + + selected_fg + + + + + Selection foreground + + + + + highlight + + + + + Highlight + + + + SQL editor &font &Font editor SQL - + SQL &editor font size Dimensione font &editor SQL - + SQL &results font size Dimensione font &risultati SQL - + Tab size Dimensione tabulazione - + &Wrap lines &A-capo automatico - + Never Mai - + At word boundaries Al limite della parola - + At character boundaries Al limite del carattere - + At whitespace boundaries Al limite del carattere vuoto - + &Quotes for identifiers Identificatori per &citazioni - + Choose the quoting mechanism used by the application for identifiers in SQL code. Scegli il tipo meccanismo di citazione utilizzato per il codice SQL. - + "Double quotes" - Standard SQL (recommended) "Doppie virgolette" - Standard SQL (raccomandato) - + `Grave accents` - Traditional MySQL quotes `Apice inverso` - Citazione tradizionale MySQL - + [Square brackets] - Traditional MS SQL Server quotes [Parentesi quadre] - Citazione tradizionale MS SQL Server - + Code co&mpletion Auto co&mpletamento - + Keywords in &UPPER CASE Parole chiave &MAIUSCOLE - + When set, the SQL keywords are completed in UPPER CASE letters. Quando impostato, le parole chiave vengono completate in MAIUSCOLO. - + Error indicators Indicatori d'errore - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background Quando impostato, le righe di codice SQL che causano errori durante l'ultima esecuzione sono evidenziate e il campo del risultato indica l'errore sullo sfondo - + Hori&zontal tiling Affianca &orizzontalmente - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. Se abilitato l'editor di codice SQL e la tabella del risultato sono mostrate una accanto all'altra anzichè una sopra l'altra. - + + Close button on tabs + + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + + + + &Extensions &Estensioni - + Select extensions to load for every database: Seleziona le estensioni da caricare per ogni database: - + Add extension Aggiungi estensione - + Remove extension Rimuovi estensione - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> <html><head/><body><p>Anche se SQLite supporta l'operatore REGEXP non implementa alcun algoritmo<br/>di espressione regolare, ma richiama l'applicativo in esecuzione. DB Browser for SQLite implementa questo<br/>algoritmo per te per permetterti di usare le REGEXP immediatamente. Ci sono però multiple implementazioni<br/>possibili e potresti voler utilizzare una o l'altra, sei libero di disabilitare l'implementazione<br/>dell'applicativo e caricare la tua utilizzando un'estensione. Richiede il riavvio dell'applicativo.</p></body></html> - + Disable Regular Expression extension Disabilita l'estensione per l'Espressione regolare - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> <html><head/><body><p>SQLite fornisce una funzione SQL per il cariamento di estensioni da una libreria dinamica condivisa. Attiva questa opzione se vuoi utilizzare la funzione<span style=" font-style:italic;">load_extension()</span> dal codice SQL.</p><p>Per motivi di sicurezza, il caricamento delle estensioni è disabilitato di default e dev'essere abilitato tramite questa impostazione. Puoi sempre caricare le estensioni attraverso l'interfaccia grafica, anche se quest'opzione è disabilitata.</p></body></html> - + Allow loading extensions from SQL code Permetti il caricamento di estensioni dal codice SQL - + Remote Remoto - + CA certificates Certificati CA - + Proxy Proxy - + Configure Configura - - + + Export Settings + + + + + Import Settings + + + + + Subject CN Soggetto CN - + Common Name Nome comune - + Subject O Soggetto O - + Organization Organizzazione - - + + Valid from Valido dal - - + + Valid to Valido al - - + + Serial number Numero di serie - + Your certificates Tuo certificato - + Threshold for completion and calculation on selection Soglia per l'autocompletamento e il calcolo sulla selezione - + Show images in cell Mostra immagini nella cella - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. Abilita questa opzione per mostrare un'anteprima dei BLOBs contenti dati immagine nella cella. Questo potrebbe impattare sulle performance. - + File File - + Subject Common Name Nome comune del soggetto - + Issuer CN CN emittente - + Issuer Common Name Nome comune emittente - + Clone databases into Clona il database in - - + + Choose a directory Seleziona una cartella - + + The language will change after you restart the application. La lingua verrà modificata dopo il riavvio dell'applicativo. - + Select extension file Seleziona il file d'estensione - Extensions(*.so *.dll);;All files(*) - Estensioni(*.so *.dll);;Tutti i files(*) - - - + Extensions(*.so *.dylib *.dll);;All files(*) Estensioni(*.so *.dylib *.dll);;Tutti i files(*) - + Import certificate file Importa il file di certificato - + No certificates found in this file. Nessun certificato trovato in questo file. - + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! Sei sicuro di voler rimuovere questo certificato? Tutti i dati del certificato saranno eliminati dalle impostazioni dell'applicativo! - + Are you sure you want to clear all the saved settings? All your preferences will be lost and default values will be used. Sei sicuro di voler pulire tutte le impostazioni salvate? Tutte le tue preferenze andranno perse e verranno utilizzati i valori predefiniti. + + + Save Settings File + + + + + + Initialization File (*.ini) + + + + + The settings file has been saved in location : + + + + + + Open Settings File + + + + + The settings file was loaded properly. + + + + + The selected settings file is not a normal settings file. +Please check again. + + ProxyDialog @@ -5713,7 +5353,7 @@ Tutte le tue preferenze andranno perse e verranno utilizzati i valori predefinit Annulla - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) File database SQLite (*.db *.sqlite *.sqlite3 *.db3) @@ -5792,6 +5432,11 @@ Tutte le tue preferenze andranno perse e verranno utilizzati i valori predefinit Extensions (*.so *.dylib *.dll) Estensioni (*.so *.dylib *.dll) + + + Initialization File (*.ini) + + Left @@ -5812,180 +5457,428 @@ Tutte le tue preferenze andranno perse e verranno utilizzati i valori predefinit Justify Giustificato + + + RemoteCommitsModel - Name - Nome + + Commit ID + - Commit - Commit + + Message + - Last modified - Ultima modifca + + Date + Data + + Author + + + + Size - Dimensione + Dimensione + + + + Authored and committed by %1 + + + + + Authored by %1, committed by %2 + RemoteDatabase - - Error when connecting to %1. -%2 - Errore nella connessione a %1. -%2 + + Error opening local databases list. +%1 + Errore nell'apertura della lista di database locale. +%1 - - Error opening remote file at %1. -%2 - Errore aprendo il file remoto a %1. -%2 + + Error creating local databases list. +%1 + Errore nella creazione della lista di database locale. +%1 + + + RemoteDock - - Error: Invalid client certificate specified. - Errore: specificato certificato invalido per il client. + + Remote + Remoto - - Please enter the passphrase for this client certificate in order to authenticate. - Si prega d'inserire la passphrase per questo certificato di client in modo da permetterne l'autenticazione. + + Identity + Identità - - Cancel - Annulla + + Push currently opened database to server + Invia il database corrente al server - - Uploading remote database to -%1 - Carico il database remoto in -%1 + + Upload + - - Downloading remote database from -%1 - Scarico il database remoto da -%1 + + DBHub.io + - - - Error: The network is not accessible. - Errore: Rete non disponibile. + + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> + - - Error: Cannot open the file for sending. - Errore:Impossibile aprire il file per l'invio. + + Local + - - Error opening local databases list. -%1 - Errore nell'apertura della lista di database locale. -%1 + + Current Database + - - Error creating local databases list. -%1 - Errore nella creazione della lista di database locale. -%1 + + Clone + + + + + User + Utente + + + + Database + Database + + + + Branch + Branch + + + + Commits + + + + + Commits for + + + + + Delete Database + + + + + Delete the local clone of this database + + + + + Open in Web Browser + + + + + Open the web page for the current database in your browser + + + + + Clone from Link + + + + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + + + + + Refresh + Aggiorna + + + + Reload all data and update the views + - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - Il database remoto è stato aggiornato dall'ultima verifica. Vuoi aggiornare la copia locale del database alla versione più recente? Nota che questo eliminerà tutte le modifiche che puoi aver effettuato localmente! Se non vuoi perdere le modifiche locali, clicca su "No" per aprire la versione locale. + + F5 + + + + + Clone Database + + + + + Open Database + + + + + Open the local copy of this database + + + + + Check out Commit + + + + + Download and open this specific commit + + + + + Check out Latest Commit + + + + + Check out the latest commit of the current branch + + + + + Save Revision to File + + + + + Saves the selected revision of the database to another file + + + + + Upload Database + + + + + Upload this database as a new commit + + + + + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> + <html><head/><body><p>Stai attulamente utilizzando un profilo interno in sola lettura. Per caricare i tuoi database, devi configurare e usare un account DBHub.io.</p><p>Non hai ancora un account DBHub.io? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Creane uno adesso</span></a> e importa il tuo certificato <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">qui</span></a> per condividere i tuoi databases.</p><p>Per aiuto online clicca <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">qui</span></a>.</p></body></html> + + + + Back + Indietro + + + + Select an identity to connect + + + + + Public + Pubblico + + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + + + + + Invalid URL: The host name does not match the host name of the current identity. + + + + + Invalid URL: No branch name specified. + + + + + Invalid URL: No commit ID specified. + + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + + + + + The database has unsaved changes. Are you sure you want to push it before saving? + + + + + The database you are trying to delete is currently opened. Please close it before deleting. + + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + - RemoteDock + RemoteLocalFilesModel - - Remote - Remoto + + Name + Nome - - Identity - Identità + + Branch + Branch + + + + Last modified + Ultima modifica + + + + Size + Dimensione + + + + Commit + Commit + + + + File + File + + + + RemoteModel + + + Name + Nome - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. - Collega al server remoto utilizzando l'identità selezionata. Il server corretto è scelto anch'esso dall'identità. + + Commit + Commit + + + + Last modified + Ultima modifica + + + + Size + Dimensione - - Go - Vai + + Size: + - - Push currently opened database to server - Invia il database corrente al server + + Last Modified: + - - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> + + Licence: - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB4S. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to create a DB4S certificate (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB4S Preferences. Click the button to add a new certificate to DB4S and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>In questo pannello si possono aggiungere a DB4S i database remoti del sitoi dbhub.io.Prima hai bisogno di un'identità:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Accedi al sito dbhub.io (usa le tue credenziali GitHub o quelle che preferisci)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Clicca il pulsante per creare un certificato DB4S (sarà la tua identità). Questo ti creerà un file di certificato (salvandolo sul tuo disco locale).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Vai al tab "Remoto" nelle preferenze di DB4S. Clicca il pulsante per aggiungere un nuovo certificato a DB4S e scegli il file di certificato appena scaricato.</li></ol><p>Ora il pannello "Remoto" mostra la tua identità e puoi aggiungere dei database remoti.</p></body></html> + + Default Branch: + + + + RemoteNetwork - - <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> - <html><head/><body><p>Stai attulamente utilizzando un profilo interno in sola lettura. Per caricare i tuoi database, devi configurare e usare un account DBHub.io.</p><p>Non hai ancora un account DBHub.io? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Creane uno adesso</span></a> e importa il tuo certificato <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">qui</span></a> per condividere i tuoi databases.</p><p>Per aiuto online clicca <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">qui</span></a>.</p></body></html> + + Choose a location to save the file + - - Back - Indietro + + Error opening remote file at %1. +%2 + Errore aprendo il file remoto a %1. +%2 - <html><head/><body><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> - <html><head/><body><p>Non hai ancora un account DBHub.io? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Creane uno adesso</span></a> e importa il tuo certificato <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">qui</span></a> per condividere i tuoi database.</p><p>Per aiuto online vai <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">qui</span></a>.</p></body></html> + + Error: Invalid client certificate specified. + Errore: specificato certificato invalido per il client. - - Public - Pubblico + + Please enter the passphrase for this client certificate in order to authenticate. + Si prega d'inserire la passphrase per questo certificato di client in modo da permetterne l'autenticazione. - - - RemoteModel - - Name - Nome + + Cancel + Annulla - - Commit - Commit + + Uploading remote database to +%1 + Carico il database remoto in +%1 - - Last modified - Ultima modifca + + Downloading remote database from +%1 + Scarico il database remoto da +%1 - - Size - Dimensione + + + Error: The network is not accessible. + Errore: Rete non disponibile. - bytes - bytes + + Error: Cannot open the file for sending. + Errore:Impossibile aprire il file per l'invio. @@ -6005,19 +5898,6 @@ Tutte le tue preferenze andranno perse e verranno utilizzati i valori predefinit Commit message Messaggio di commit - - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - Database licence @@ -6039,44 +5919,45 @@ p, li { white-space: pre-wrap; } Forza invio - + + Username + + + + Database will be public. Everyone has read access to it. Il database sarà pubblico. Chiunque potrà accedere in lettura. - + Database will be private. Only you have access to it. Il database sarà privato. Solo tu potrai accedervi. - + Use with care. This can cause remote commits to be deleted. Usa con cautela. Questo può eliminare dei commit remoti. - - Unspecified - Non specificato - RunSql - + Execution aborted by user Esecuzione terminata dall'utente - + , %1 rows affected , %1 righe modificate - + query executed successfully. Took %1ms%2 query eseguita con successo. Impiegati %1ms%2 - + executing query query in esecuzione @@ -6198,23 +6079,23 @@ p, li { white-space: pre-wrap; } Questo campo mostra i risultati e i codici di stato degli ultimi statements eseguiti. - + Couldn't read file: %1. Impossibile leggere il file: %1. - - + + Couldn't save file: %1. Impossibile salvare il file: %1. - + Your changes will be lost when reloading it! Le tue modifiche andranno perse quando ricaricherai! - + The file "%1" was modified by another program. Do you want to reload it?%2 Il file "%1" è stato modificato da un altro programma. Vuoi ricaricarlo?%2 @@ -6226,6 +6107,11 @@ p, li { white-space: pre-wrap; } Ctrl+/ + + + Ctrl+PgDown + + SqlUiLexer @@ -6271,280 +6157,285 @@ p, li { white-space: pre-wrap; } + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. () La funzione last_insert_rowid() ritorna il ROWID dell'ultima riga inserita nella connessione database che ha invocato la funzione. - + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. (X) La funzione lenght(X) ritorna per una stringa X, il numero di caratteri (non bytes) di X prima del primo carattere NUL. - + (X,Y) The like() function is used to implement the "Y LIKE X" expression. (X,Y) La funzione like(X,Y) è utilizzata per implementare l'espressione "Y LIKE X". - + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. (X,Y,Z) La funzione like(X,Y,Z) è utilizzata per implementare l'espressione "Y LIKE X ESCAPE Z". - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. (X) La funzione load_extension(X) carica l'estensione SQLite da un file di libreria condivisa di nome X. L'utilizzo di questa funzione dev'essere permesso tramite le Preferenze. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. (X,Y) La funzione load_extension(X,Y) carica un'estensione SQLite da un file di libreria condivisa di nome X utilizzando il punto d'ingresso Y. L'utilizzo di questa funzione dev'essere permesso tramite le Preferenze. - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. (X) La funzione lower(X) ritorna una copia della stringa X con tutti i caratteri ASCII convertiti in minuscolo. - + (X) ltrim(X) removes spaces from the left side of X. (X) La funzione ltrim(X) rimuove gli spazi dal lato sinistro di X. - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. (X,Y) La funzione ltrim(X,Y) ritorna una stringa formata rimuovendo tutti i caratteri che compaiono in Y dal lato sinistro di X. - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. (X,Y,...) La funzione multi-argomento max(X,Y,...) ritorna l'argomento con valore massimo o ritorna NULL se tutti gli argomenti sono NULL. - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. (X,Y,...) La funzione multi-argomento min(X,Y,...) ritorna l'argomento con valore minore o NULL se tutti gli argomenti sono NULL. - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. (X,Y) La funzione nullif(X,Y) ritorna il primo argomento se gli argomenti sono diversi e NULL se gli argomenti sono uguali. - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. (FORMAT,...) La funzione SQL printf(FORMAT,...) si comporta come la funzione del linguaggio C sqlite3_mprintf() e la funzione printf() della libreria standard C. - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. (X) La funzione quote(X) ritorna il testo di un literale SQL il cui valore può essere incluso in uno statement SQL. - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. () La funzione random() ritorna un numero intero pseudo-casuale tra -9223372036854775808 e +9223372036854775807. - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. (N) La funzione randomblob(N) ritorna un blob di N-bytes contenenti dati pseudo-casuali. - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. (X,Y,Z) La funzione replace(X,Y,Z) ritorna una striga formata sostituendo la stringa Z in ogni occorrenza della stringa Y nella stringa X. - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. (X) La funzione round(X) ritorna un valore in virgola mobile X arrotondato a 0 cifre decimali. - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. (X,Y) La funzione round(X,Y) ritorna un numero in virgola mobile X arrotondato a Y cifre decimali. - + (X) rtrim(X) removes spaces from the right side of X. (X) La funzione rtrim(X) rimuove gli spazi dalla destra di X. - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. (X,Y) La funzione rtrim(X,Y) ritorna una stringa formata rimuovendo tutti i caratteri che compaiono in Y dal lato destro di X. - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. (X) La funzione soundex(X) ritorna una stringa che rappresenta la codifica soundex della stringa X. - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. (X,Y) La funzione substr(X,Y) ritorna tutti i caratteri dalla fine della stringa X iniziando dall'Y-esimo. - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. (X,Y,Z) La funzione substr(X,Y,Z) ritorna una sotto-stringa di X che inizia dal carattere Y-esimo e lunga Z caratteri. - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. () La funzione total_changes() ritorna il numero di righe modificate da INSERT, UPDATE o DELETE dall'apertura della connessione al database. - + (X) trim(X) removes spaces from both ends of X. (X) La funzione trim(X) rimuove gli spazi da entrambi i lati di X. - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. (X,Y) La funzione trim(X,Y) ritorna una stringa formata rimuovendo tutti i caratteri che compaiono in Y da entrambi i termini di X. - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. (X) La funzione typeof(X) ritorna una stringa che indica il tipo di dato dell'espressione X. - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. (X) La funzione unicode(X) ritorna il valore numerico in unicode corrispondente al primo carattere della stringa X. - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. (X) La funzione upper(X) ritorna una copia della stringa X in cui tutti i caratteri minuscoli ASCII sono stati converiti in maiuscolo. - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. (N) La funizione zeroblob(N) ritorna un BLOB di N byte di 0x00. - + (timestring,modifier,modifier,...) (stringa data,modificatore,modificatore,...) - + (format,timestring,modifier,modifier,...) (formato,stringa data-ora,modificatore,modificatore,...) - + (X) The avg() function returns the average value of all non-NULL X within a group. (X) La funzione avg(X) ritorna il valore medio di tutti gli X non-NULL in un gruppo. - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. (X) La funzione count(X) ritorna il numero di volte che X non è NULL in un gruppo. - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. (X) La funzione group_concat(X) ritorna una stringa rappresentante la concatenazione di tutti i valori di X non-NULL. - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. (X,Y) La funzione group_concat(X,Y) ritorna una stringa rappresentate la concatenazione di tutti i valori di X non-NULL. Se il parametro Y è presente allora è utilizzato come separatore tra le istanze di X. - + (X) The max() aggregate function returns the maximum value of all values in the group. (X) La funzione aggregata max(X) ritorna il valore massimo di tutti i valori nel gruppo. - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. (X) La funzione aggregata min(X) ritorna il minore non-NULL tra tutti i valori del gruppo. - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. (X) Le funzioni aggregate sum(X) e total(X) ritornano la somma di tutti i valori non-NULL nel gruppo. - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. () Il numero di righe all'interno della partizione corrente. Le righe sono numerate partendo da 1 nell'ordine definito dalla clausula ORDER BY nella finestra definizione, o altrimenti in ordine arbitrario. - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () Il row_number() del primo peer in ogni gruppo - il rango della riga corrente con intervalli. Se non ci sono clausule ORDER BY, allora tutte le righe sono considerate peer e questa funzione ritorna 1. - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () Il numero di peer nel gruppo della riga corrente all'interno della sua partizione - il rango della riga corrente senza intervalli. Le partizioni sono numerate a partire da 1 nell'ordine definito dalla clausula ORDER BY nella finestra definizione. Se non ci sono clausule ORDER BY allora tutte le righe sono considerate peer e questa funzione ritorna 1. - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. () A dispetto del nome, questa funzione ritorna sempre un valore tra 0.0 e 1.0 uguale a (rango - 1)/(righe della partizione - 1), dove rango è il valore ritornato dalla funzione interna rank() e le "righe della partizione" sono il numero di righe nella partizione. Se la partizione contiene solo una riga, questa funzione ritorna 0.0. - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. () La distribuzione cumulativa. Calcolata come "numero di righe"/"righe della partizione", dove "numero di righe" è il valore ritornato dalla funzione row_number() per l'utimo peer nel gruppo. - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. (N) L'argomento N è gestito come valore intero. Questa funzione divide la partizione in N gruppi il più uniformemente possibile e assegna un'intero tra 1 e N ad ogni gruppo, nell'ordine definito dalla clausula ORDER BY o altrimenti in ordine arbitrario. Se necessario i gruppi più grandi compariranno per primi. Questa funzione ritorna il valore intero assegnato al gruppo di cui fa parte la riga corrente. - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. (expr) Ritorna il risultato della valutazione dell'espressione expr sulla riga precedente della partizione o, se non esiste una riga precedente (perché la riga è la prima), NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. (expr, offset) Se l'argomento offset viene fornito, allora dev'essere un intero non negativo. In questo caso il valore ritornato è il risultato della valutazione dell'espressione expr sulla riga "offset" posizioni antecedente nella partizione. Se offset è 0 allora expr viene valutata sulla riga corrente. Se non ci sono offset righe antecedenti viene ritornato NULL. - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. (expr,offset,default) Se viene fornito anche default, allora viene ritornato al posto di NULL se la riga identificata da offset non esiste. - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. (expr) Ritorna il risultato della valutazione dell'espressione expr con la riga successiva nella partizione o, se non c'è una riga successiva (perché la riga corrente è l'utlima) NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. (expr,offset) Se viene fornito l'argomento offset, dev'essere un intero non negativo. In questo caso il valore ritornato è il risultato della valutazione dell'espressione expr sulla riga "offset" posizioni successiva a quella corrente nella partizione. Se offset è 0, allora expr viene valutata sulla riga corrente. Se non c'è una riga "offset" posizioni successive, NULL viene restituito. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. (expr) Questa funzione interna calcola la cornice della finestra di ciascuna riga allo stesso modo di una funzione finestra aggregata. Ritorna il valore della valutazione di expr sulla prima riga nella cornice della finestra per ciascuna riga. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. (expr) Questa funzione interna calcola la cornice della finestra per ciascuna riga allo stesso modo della funzione finestra aggregata. Ritorna il valore dell'espressione expr valutata sull'ultima riga della cornice della finestra per ciascuna riga. - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. (expr,N) Questa funzione interna calcola la cornice della finestra per ciascuna riga allo stesso modo della funzione aggregata finestra. Ritorna il valore della valutazione dell'espressione expr sulla riga N della cornice della finestra. Le righe sono numerate dalla cornice della finestra partendo da 1 nell'ordine definito dalla clausula ORDER BY se presente o in modo arbitrario. Se non esiste la riga Nesima nella partizione, viene ritornato NULL. @@ -6552,41 +6443,42 @@ L'utilizzo di questa funzione dev'essere permesso tramite le Preferenz SqliteTableModel - + reading rows leggo le righe - + loading... caricamento... - + References %1(%2) Hold %3Shift and click to jump there Riferimenti %1(%2) Tieni premuto %3Shift e clicca per saltare lì - + Error changing data: %1 Errore nella modifica dei dati: %1 - + retrieving list of columns recupero la lista delle colonne - + Fetching data... Recupero dati... - + + Cancel Annulla @@ -6728,7 +6620,7 @@ Tieni premuto %3Shift e clicca per saltare lì - + Replace Sostituisci @@ -6743,498 +6635,496 @@ Tieni premuto %3Shift e clicca per saltare lì Sostituisci tutto - + <html><head/><body><p>Scroll to the beginning</p></body></html> <html><head/><body><p>Scorri all'ìinizio</p></body></html> - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> <html><head/><body><p>Cliccare questo pulsante scorre la vista all'inizio della tabella.</p></body></html> - + |< |< - + Scroll one page upwards Scorri di una pagina in su - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> <html><head/><body><p>Cliccando questo pulsante la vista scorre le righe di una pagina verso l'inizio della tabella.</p></body></html> - + < < - + 0 - 0 of 0 0 - 0 di 0 - + Scroll one page downwards Scorri di una pagina in giù - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> <html><head/><body><p>Cliccando questo pulsante la vista scorre le righe di una pagina verso il fondo della tabella.</p></body></html> - + > > - + Scroll to the end Scorri alla fine - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Cliccando questo pulsante la vista scorre al fondo della tabella.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> <html><head/><body><p>Cliccando questo pulsante la vista scorre al fondo della tabella.</p></body></html> - + >| >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> <html><head/><body><p>Clicca qui per saltare alla riga specificata</p></body></html> - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> <html><head/><body><p>Questo pulsante è utilizzato per navigare alla riga impostata nell'area "Vai a".</p></body></html> - + Go to: Vai a: - + Enter record number to browse Inserisci il numero di riga a cui scorrere - + Type a record number in this area and click the Go to: button to display the record in the database view Inserisci un numero in quest'area e clicca sul pul pulsante "Vai a" per visualizzare la riga selezionata - + 1 1 - + Show rowid column Mostra colonna rowid - + Toggle the visibility of the rowid column Mostra/nasconde la colonna rowid - + Unlock view editing Sblocca la modifica della vista - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. Sblocca la vista corrente per modificarla. Per poterla modificare avrai comunque bisogno degli appropriati trigger. - + Edit display format Modifica formato di visualizzazione - + Edit the display format of the data in this column Modifica il formato di visualizzazione dei dati in questa colonna - - + + New Record Nuova Riga - - + + Insert a new record in the current table Inserisci un nuovo valore nella tabella corrente - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> <html><head/><body><p>Questo pulsante crea una nuova riga nel database. Mantieni premuto il tasto del mouse per ottenere più opzioni:</p><ul><li><span style=" font-weight:600;">Nuova Riga</span>: inserisce una nuova riga con i valori predefiniti.</li><li><span style=" font-weight:600;">Inserisci Valori...</span>: apre una finestra per inserire i valori prima che vengano immessi nel database. Questo permette che l'immissione dei valori rispetti diversi limiti (constraints). Questa finestra si apre anche se l'opzione <span style=" font-weight:600;">Nuova Riga</span> fallisce a causa di questi limiti (constraints).</li></ul></body></html> - - + + Delete Record Elimina Riga - + Delete the current record Elimina il valore corrente - - + + This button deletes the record or records currently selected in the table Questo pulsante elimina la/e righe selezionate nella tabella - - + + Insert new record using default values in browsed table Inserisce un nuovo record utilizzando i valori di default della tabella - + Insert Values... Inserisci Valori... - - + + Open a dialog for inserting values in a new record Apre una finestra per l'inermento di valori all'interno di un nuovo record - + Export to &CSV Esporta in &CSV - - + + Export the filtered data to CSV Esporta i dati filtrati in CSV - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. Questo pulsante esporta i dati della tabella così come visualizzati (applicando filtri, formati e ordine delle colonne) in un file CSV. - + Save as &view Salva come &vista - - + + Save the current filter, sort column and display formats as a view Salva il filtro corrente, ordine colonne e formati dati come vista - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. Questo pulsante salva le impostazioni della tabella visualizzata (filtri, formati e ordine colonne) in una vista SQL che puoi successivamente navigare o utilizzare in statement SQL. - + Save Table As... Salva Tabella Come... - - + + Save the table as currently displayed Salva la tabella così come visualizzata - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> <html><head/><body><p>Questo menù fornisce le seguenti opzioni applicabili alla tabella filtrata e visualizzata correntemente:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Esporta in CSV: questa opzione esporta i dati della tabella così come visualizzati (con filtri, riordine delle colonne e formati) in un file CSV.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Salva come vista: questa opzione salva le impostazioni correnti della tabella visualizzata (filtri, riordine delle colonne e formati) come vista SQL che puoi successivamente visualizzare o utilizzare come statement.</li></ul></body></html> - + Hide column(s) Nascondi colonna(e) - + Hide selected column(s) Nasconde la(e) colonna(e) selezionata(e) - + Show all columns Mostra tutte le colonne - + Show all columns that were hidden Mostra tutte le colonne nascoste - - + + Set encoding Imposta codifica - + Change the encoding of the text in the table cells Modifica la codifica del testo nelle celle della tabella - + Set encoding for all tables Imposta la codifica per tutte le tabelle - + Change the default encoding assumed for all tables in the database Modifica il valore predefinito di codifica per tutte le tabelle del database - + Clear Filters Pulisci Filtri - + Clear all filters Cancella tutti i filtri - - + + This button clears all the filters set in the header input fields for the currently browsed table. Questo pulsante pulisce tutti i filtri impostati nella riga d'intestazione per la tabella corrente. - + Clear Sorting Ripristina Ordinamento - + Reset the order of rows to the default Ripristina l'ordine delle righe predefinito - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. Questo pulsante ripristina l'ordinamento delle colonne predefinito per la tabella corrente. - + Print Stampa - + Print currently browsed table data Stampa i dati della tabella attualmente in esplorazione - + Print currently browsed table data. Print selection if more than one cell is selected. Stampa i dati visualizzati. Stampa la selezione se più di una cella è selezionata. - + Ctrl+P - + Refresh Aggiorna - + Refresh the data in the selected table Aggiorna i dati della tabella selezionata - + This button refreshes the data in the currently selected table. Questo pulsante aggiorna i dati della tabella selezionata. - + F5 - + Find in cells Trova nelle celle - + Open the find tool bar which allows you to search for values in the table view below. Apre la barra di ricerca che ti permette di cercare valori nella tabella visualizzata qui sotto. - Ctrl+F - + + Freeze columns + + + + + Make all columns from the first column up to this column not move when scrolling horizontally + - - + + Bold Grassetto - + Ctrl+B - - + + Italic Corsivo - - + + Underline Sottolinea - + Ctrl+U - - + + Align Right Allinea a Destra - - + + Align Left Allinea a Sinistra - - + + Center Horizontally Centra Orizzontalmente - - + + Justify Giustifica - - + + Edit Conditional Formats... Modifica Formattazione Condizionale... - + Edit conditional formats for the current column Modifica formattazione condizionale per la colonna corrente - + Clear Format Ripristina formattazione - + Clear All Formats Ripristina Tutte le Formattazioni - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns Ripristina la formattazione di tutte le celle selezionate e tutte le formattazioni condizionali delle colonne selezionate - - + + Font Color Colore Testo - - + + Background Color Colore Sfondo - + Toggle Format Toolbar Mostra/Nascondi barra dei formati - + Show/hide format toolbar Mostra/nascondi barra dei formati - - + + This button shows or hides the formatting toolbar of the Data Browser Questo pulsante mostra o nasconde la barra dei formati per il Browser dei dati - + Select column Seleziona colonna - + Ctrl+Space - + Replace text in cells Sostituisci testo nelle celle - - Ctrl+H - - - Filter in all columns - Filtra in tutte le colonne + Filter in any column + - + Ctrl+R - + %n row(s) %n riga @@ -7242,7 +7132,7 @@ Tieni premuto %3Shift e clicca per saltare lì - + , %n column(s) , %n colonna @@ -7250,105 +7140,128 @@ Tieni premuto %3Shift e clicca per saltare lì - + . Sum: %1; Average: %2; Min: %3; Max: %4 . Somma: %1; Media: %2; Min: %3; Max: %4 - + Conditional formats for "%1" Formattazione condizionale per '%1' - + determining row count... determino il numero di righe... - + %1 - %2 of >= %3 %1 - %2 di >= %3 - + %1 - %2 of %3 %1 - %2 di %3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Si prega d'inserire una pseudo-chiave primaria in modo da abilitare le modifiche su questa vista. Deve corrispondere al nome di una colonna univoca nella vista. - + Delete Records Elimina i Records - + Duplicate records Duplica i records - + Duplicate record Duplica il record - + Ctrl+" - + Adjust rows to contents Adatta le righe al contenuto - + Error deleting record: %1 Errore eliminando le righe: %1 - + Please select a record first Si prega di selezionare prima un record - + There is no filter set for this table. View will not be created. Non c'è filtro impostato per questa tabella. La vista non sarà creata. - + Please choose a new encoding for all tables. Si prega di scegliere una nuova codifica per tutte le tabelle. - + Please choose a new encoding for this table. Si prega di scegliere una nuova codifica per questa tabella. - + %1 Leave the field empty for using the database encoding. %1 Lasciare il campo vuoto per utilizzare la codifica del database. - + This encoding is either not valid or not supported. Questa codifica non è valida o non è supportata. - + %1 replacement(s) made. %1 sostituzione(i) effettuata(e). + + TableBrowserDock + + + New Data Browser + + + + + Rename Data Browser + + + + + Close Data Browser + + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + VacuumDialog diff --git a/src/translations/sqlb_ja.ts b/src/translations/sqlb_ja.ts index a2ade747d..51032e788 100644 --- a/src/translations/sqlb_ja.ts +++ b/src/translations/sqlb_ja.ts @@ -18,43 +18,6 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> <html><head/><body><p>DB Browser for SQLite は SQLite データベースを作成、デザイン、編集できる、オープンソースで無料のヴィジュアルツールです。</p><p>このソフトウェアは Mozilla Public License Version 2 と the GNU General Public License Version 3 (もしくはそれ以降のもの) の2つでライセンスされています。あなたはこれらのライセンスの条件の下でこのソフトウェアを変更、もしくは、再配布できます。</p><p>詳細は <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> と <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> をご覧ください。</p><p>このプログラムのさらなる情報は、私たちのウェブサイトをご覧ください。: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">このソフトウェアは GPL/LGPL Qt Toolkit を使用しています。 </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>ライセンス条項や情報は </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> をご覧ください。</span></p><p><span style=" font-size:small;">また、 Mark James の Silk icon set を Creative Commons Attribution 2.5 and 3.0 license の元で使用しています。<br/>詳細は </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> をご覧ください。</span></p></body></html> - - - SQLite Version - SQLite バージョン - - - - SQLCipher Version %1 (based on SQLite %2) - - - - - Built for %1, running on %2 - - - - SQLCipher Version - SQLCipher バージョン - - - (based on SQLite %1) - (SQLite %1 がベース) - - - - Version - バージョン - - - Built for - ビルド - - - - Qt Version - Qt バージョン - AddRecordDialog @@ -156,93 +119,149 @@ Application - - Usage: %1 [options] [db] + + Possible command line arguments: + 使用可能なコマンドライン引数: + + + + The user settings file location is replaced with the argument value instead of the environment variable value. + + + + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + + + + + Usage: %1 [options] [<database>|<project>] - 使い方: %1 [オプション] [DB] + 使い方: %1 [オプション] [<DB>|<プロジェクト>] - - Possible command line arguments: - 使用可能なコマンドライン引数: + + -h, --help Show command line options + -h, --help コマンドラインのオプションを表示 + + + + -q, --quit Exit application after running scripts + -q, --quit スクリプト実行後にアプリケーションを終了 + + + + -s, --sql <file> Execute this SQL file after opening the DB + -s, --sql <ファイル> DBを開いた後、このSQLファイルを実行 + + + + -t, --table <table> Browse this table after opening the DB + -t, --table <テーブル> DBを開いた後このテーブルを閲覧 - - -h, --help Show command line options - -h, --help コマンドラインのオプションを表示 + + -R, --read-only Open database in read-only mode + -R, --read-only 読み取り専用モードでデータベースを開く - - -q, --quit Exit application after running scripts - -q, --quit スクリプト実行後にアプリケーションを終了 + + -S, --settings <settings_file> + - - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [ファイル] DBを開いた後、このSQLファイルを実行 + + Run application based on this settings file + - - -t, --table [table] Browse this table after opening the DB - -t, --table [table] DB開いた後このテーブルを閲覧 + + -o, --option <group>/<setting>=<value> + -o, --option <グループ>/<設定>=<値> - - -R, --read-only Open database in read-only mode - -R, --read-only 読み取り専用モードでデータベースを開く + + Run application with this setting temporarily set to value + 一時的にこの値を設定してアプリケーションを実行 - - -o, --option [group/setting=value] Run application with this setting temporarily set to value - -o, --option [グループ/設定=値] 一時的にこの値を設定してアプリケーションを実行 + + -O, --save-option <group>/<setting>=<value> + -O, --save-option <グループ>/<設定>=<値> - - -O, --save-option [group/setting=value] Run application saving this value for this setting - -O, --save-option [グループ/設定=値] この値の設定を保存してアプリケーションを実行 + + Run application saving this value for this setting + この値の設定を保存してアプリケーションを実行 - - -v, --version Display the current version - -v, --version 現在のバージョンを表示 + + -v, --version Display the current version + -v, --version 現在のバージョンを表示 - - [file] Open this SQLite database - [ファイル] この SQLite データベースを開く + + <database> Open this SQLite database + <データベース> このSQLiteデータベースを開く - - This is DB Browser for SQLite version %1. - これは DB Browser for SQLite バージョン %1 です. + + <project> Open this project file (*.sqbpro) + <プロジェクト> このプロジェクトファイル(*.sqbpro)を開く - + The -s/--sql option requires an argument -s/--sql オプションは引数が必要です - + The file %1 does not exist ファイル %1 が存在しません - + The -t/--table option requires an argument -t/--table オプションは引数が必要です - + + The -S/--settings option requires an argument. The option is ignored. + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value -o/--option と -O/--save-optionオプションは グループ/設定=値 の形式で引数が必要です - The -o/--option option requires an argument in the form group/setting=value - -o/--option オプションは グループ/設定=値 の形式で引数が必要です + + SQLite Version + SQLite バージョン + + + + SQLCipher Version %1 (based on SQLite %2) + SQLCipher バージョン %1 (SQLite %2 がベース) + + + + DB Browser for SQLite Version %1. + DB Browser for SQLite バージョン %1. + + + + Built for %1, running on %2 + %1 向けビルド, %2 で動作中 + + + + Qt Version %1 + Qt バージョン %1 - + Invalid option/non-existant file: %1 不正なオプション/存在しないファイルです: %1 @@ -402,51 +421,61 @@ If any of the other settings were altered for this database file you need to pro + .NET DateTime.Ticks to date + .NET DateTime.Ticks を日付に + + + Julian day to date ユリウス日を日付に - + Unix epoch to date Unix エポックを日付に - + Unix epoch to local time Unix エポックを地方時に - + Windows DATE to date Windows DATE を日付に - + Date as dd/mm/yyyy 日付(dd/mm/yyyy) - + Lower case 小文字 - + Upper case 大文字 - + + Binary GUID to text + + + + Custom カスタム - + Custom display format must contain a function call applied to %1 カスタム表示形式には、%1 に適用される関数呼び出しが含まれている必要があります - + Error in custom display format. Message from database engine: %1 @@ -455,7 +484,7 @@ If any of the other settings were altered for this database file you need to pro %1 - + Custom display format must return only one column but it returned %1. カスタム表示形式はただ1つのカラムを返す必要がありますが、%1 が返ってきました。 @@ -582,160 +611,155 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - - This database has already been attached. Its schema name is '%1'. - このデータベースには既に接続しています。このスキーマの名前は '%1' です。 - - - + Please specify the database name under which you want to access the attached database 接続したデータベースへのアクセス時に使用するデータベース名を指定してください - + Invalid file format 不正なファイルフォーマット - + Do you really want to close this temporary database? All data will be lost. 本当にこの一時データベースを閉じますか? すべてのデータは喪失します。 - + Do you want to save the changes made to the database file %1? データベースファイル '%1' への変更を保存しますか? - + Database didn't close correctly, probably still busy データベースが正常に閉じられませんでした。多分まだビジー状態です - + The database is currently busy: データベースは現在ビジー状態です: - + Do you want to abort that other operation? 他の操作を中断しますか? - + Exporting database to SQL file... データベースをSQLファイルにエクスポート... - - + + Cancel キャンセル - - + + No database file opened データベースファイルを開いていません - + Executing SQL... SQLを実行... - + Action cancelled. 操作をキャンセルしました。 - - + + Error in statement #%1: %2. Aborting execution%3. この文でエラー #%1: %2。 実行を中断%3。 - - + + and rolling back ロールバックしました - + didn't receive any output from %1 %1 から出力を得られませんでした - + could not execute command: %1 コマンド: %1 を実行できませんでした - + Cannot delete this object このオブジェクトは削除できません - + Cannot set data on this object このオブジェクトにデータ設定はできません - - + + A table with the name '%1' already exists in schema '%2'. 名前が '%1' のテーブルはスキーマ '%2' に既に存在します。 - + No table with name '%1' exists in schema '%2'. スキーマ '%2' に名前が '%1' のテーブルがありません。 - - + + Cannot find column %1. カラム %1 が見つかりません。 - + Creating savepoint failed. DB says: %1 セーブポイントの作成に失敗。DBの反応: %1 - + Renaming the column failed. DB says: %1 カラム名変更に失敗。DBの反応: %1 - - + + Releasing savepoint failed. DB says: %1 セーブポイントの解放に失敗。DBの反応: %1 - + Creating new table failed. DB says: %1 新しいテーブルの作成に失敗。DBの反応: %1 - + Copying data to new table failed. DB says: %1 新しいテーブルへのデータのコピーに失敗。DBの反応: %1 - + Deleting old table failed. DB says: %1 古いテーブルの削除に失敗。DBの反応: %1 - + Error renaming table '%1' to '%2'. Message from database engine: %3 @@ -744,33 +768,12 @@ Message from database engine: %3 - + could not get list of db objects: %1 DBオブジェクトの一覧を取得できません: %1 - renameColumn: cannot find column %1. - カラム名変更: 列 %1 が見つかりません。 - - - renameColumn: creating savepoint failed. DB says: %1 - カラム名変更: セーブポイントの作成に失敗。DBの反応: %1 - - - renameColumn: creating new table failed. DB says: %1 - カラム名変更: 新しいテーブルの作成に失敗。DBの反応: %1 - - - renameColumn: copying data to new table failed. DB says: -%1 - カラム名変更: 新しいテーブルへのデータコピーに失敗。DBの反応: %1 - - - renameColumn: deleting old table failed. DB says: %1 - カラム名変更: 古いテーブルの削除に失敗。DBの反応: %1 - - - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -780,53 +783,27 @@ Restoring some of the objects associated with this table failed. This is most li - renameColumn: releasing savepoint failed. DB says: %1 - カラム名変更: セーブポイントの開放に失敗。DBの反応: %1 - - - Error renaming table '%1' to '%2'.Message from database engine: -%3 - テーブル名を '%1' から '%2' へ変更時にエラー。データベースエンジンからのメッセージ: -%3 - - - ... <string can not be logged, contains binary data> ... - ... <文字列は記録されません。バイナリーデータを含んでいます> ... - - - could not get list of db objects: %1, %2 - DBオブジェクトの一覧を取得できません: %1, %2 - - - + could not get list of databases: %1 データベースの一覧を取得できません: %1 - didn't receive any output from pragma %1 - プラグマ %1 から出力を得られませんでした - - - could not execute pragma command: %1, %2 - プラグマを実行できませんでした: %1, %2 - - - + Error setting pragma %1 to %2: %3 プラグマ %1 を %2 に設定時にエラー: %3 - + File not found. ファイルが見つかりません。 - + Error loading extension: %1 拡張の読み込みでエラー: %1 - + could not get column information カラム情報が取得できませんでした @@ -859,12 +836,12 @@ Restoring some of the objects associated with this table failed. This is most li データベース - + Browsables 表示可能 - + All すべて @@ -874,22 +851,22 @@ Restoring some of the objects associated with this table failed. This is most li 一時 - + Tables (%1) テーブル (%1) - + Indices (%1) インデックス (%1) - + Views (%1) ビュー (%1) - + Triggers (%1) トリガー (%1) @@ -902,64 +879,64 @@ Restoring some of the objects associated with this table failed. This is most li データベースのセルを編集 - + Mode: モード: - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. これはサポートしているセル編集モードの一覧です。現在のセルデータの表示修正に使用するモードを選んでください。 - + Text テキスト - + RTL Text RTL テキスト - + Binary バイナリー - - + + Image 画像 - + JSON JSON - + XML XML - - + + Automatically adjust the editor mode to the loaded data type 編集モードを読み込んだデータ型に自動的に調整 - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. このチェックボタンは編集モードの自動切り替えを有効/無効にします。新しいセルが選択されるか新しいデータがインポートされた時に自動切り替えが有効だと、検出したデータ型にモードを調整します。その後、編集モードは手動で変更できます。セル間の移動時に手動で変更したモードを維持したいならば、このボタンをオフにします。 - + Auto-switch 自動切替 - + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. @@ -968,129 +945,117 @@ Errors are indicated with a red squiggle underline. エラーは赤い破線で示されます。 - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. このQtエディターは右書きの文章に使われます。これはデフォルトのテキストエディターではサポートされていません。右書きの文字の存在が検知されると、このエディターモードが自動的に選択されます。 - + Apply data to cell セルにデータを適用 - + Open preview dialog for printing the data currently stored in the cell 現在セルにあるデータを印刷するプレビューダイアログを開く - + Auto-format: pretty print on loading, compact on saving. 自動整形: きれいに表示、圧縮して保存。 - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. 有効にすると、自動整形機能は読み込み時にデータの可読性を高める改行とインデントを加えます。データの保存時には、改行と不要な空白を取り除きデータを圧縮します。 - + Word Wrap ワードラップ - + Wrap lines on word boundaries 単語単位でワードラップ - - + + Open in default application or browser デフォルトのアプリケーションかブラウザーで開く - + Open in application アプリケーションで開く - + The value is interpreted as a file or URL and opened in the default application or web browser. 値はファイルかURLと解釈され、デフォルトのアプリケーションかウェブブラウザで開かれます。 - + Save file reference... ファイル参照を保存... - + Save reference to file 参照をファイルに保存 - - + + Open in external application 外部のアプリケーションで開く - + Autoformat 自動整形 - + &Export... エクスポート(&E)... - - + + &Import... インポート(&I)... - - + + Import from file ファイルからインポート - - + + Opens a file dialog used to import any kind of data to this database cell. このデータベースのセルに任意の種類のデータをインポートするファイルダイアログを開きます。 - &Import - インポート(&I) - - - + Export to file ファイルへエクスポート - + Opens a file dialog used to export the contents of this database cell to a file. このデータベースのセルの内容をファイルにエクスポートするファイルダイアログを開きます。 - &Export - エクスポート(&E) - - - Set this cell to NULL - このセルをNULLに設定 - - - + Erases the contents of the cell セルの内容を削除 - + Set as &NULL NULLに設定(&N) @@ -1100,220 +1065,172 @@ Errors are indicated with a red squiggle underline. このデータベースのセルに存在するデータの情報をここに表示 - This editor mode lets you edit JSON or XML data with syntax highlighting, automatic formatting and validation before saving. - -Errors are indicated with a red squiggle underline. - この編集モードは構文強調してJSONやXMLデータを編集しやすくします。保存前に自動的に整形と検証をします。 - -エラーは赤い破線で示されます。 - - - + Type of data currently in cell 現在セルにあるデータの種類 - + Size of data currently in table 現在テーブルにあるデータのサイズ - Apply data to cell [Ctrl+Return] - セルにデータを適用 [Ctrl+Return] - - - + This button saves the changes performed in the cell editor to the database cell. このボタンはエディターで行われた変更をデータベースのセルに保存します。 - + Apply 適用 - - + Print... 印刷... - - Open preview dialog for printing displayed image - 表示された画像を印刷するプレビューダイアログを開く - - - - + Ctrl+P - + Open preview dialog for printing displayed text 表示されたテキストを印刷するプレビューダイアログを開く - + Copy Hex and ASCII 十六進数とASCIIをコピー - + Copy selected hexadecimal and ASCII columns to the clipboard 選択した十六進数とASCIIのカラムをクリップボードにコピー - + Ctrl+Shift+C - - + + Image data can't be viewed in this mode. 画像データはこのモードでは表示できません。 - - + + Try switching to Image or Binary mode. 画像/バイナリーモードに切り替えてみてください。 - - + + Binary data can't be viewed in this mode. バイナリーデータはこのモードでは表示できません。 - - + + Try switching to Binary mode. バイナリーモードに切り替えてみてください。 - Text files (*.txt) - テキストファイル (*.txt) - - - JSON files (*.json) - JSONファイル (*.json) - - - XML files (*.xml) - XMLファイル (*.xml) - - - - + + Image files (%1) 画像ファイル (%1) - + Binary files (*.bin) バイナリーファイル (*.bin) - All files (*) - すべてのファイル (*) - - - + Choose a file to import インポートするファイルを選択 - + %1 Image %1 画像 - SVG files (*.svg) - SVGファイル (*.svg) - - - Hex dump files (*.txt) - 十六進ダンプファイル (*.txt) - - - + Choose a filename to export data エクスポートデータのファイル名を選択 - + Invalid data for this mode このモードでは不正なデータ - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? セルに不正なデータ %1 があります。理由: %2。本当にセルに適用しますか? - - + + Type of data currently in cell: Text / Numeric 現在セルにあるデータの種類: テキスト / 数値 - %n char(s) - - %n 文字 - - - - - - + + + %n character(s) %n 文字 - + Type of data currently in cell: %1 Image 現在セルにあるデータの種類: %1 画像 - + %1x%2 pixel(s) %1x%2 ピクセル - + Type of data currently in cell: NULL 現在セルにあるデータの種類: NULL - - + + %n byte(s) %n バイト - + Type of data currently in cell: Valid JSON 現在セルにあるデータの種類: 正規なJSON - + Type of data currently in cell: Binary 現在セルにあるデータの種類: バイナリー - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. - データは一時ファイルに保存され、デフォルトのアプリケーションで開かれました。すぐにファイルを編集でき、準備ができたら、保存した新しいデータをセルエディターに適用するか、変更をキャンセルできます。 + + Couldn't save file: %1. + ファイルを保存できません: %1. - The data has been saved to a temporary file and has been opened with the default application.You can edit now the file and when your are ready, you can apply the saved new data to the cell editor or cancel any changes. - データは一時ファイルに保存され、デフォルトのアプリケーションで開かれました。すぐにファイルを編集でき、準備ができたら、保存した新しいデータをセルエディターに適用するか、変更をキャンセルできます。 + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + @@ -1410,10 +1327,6 @@ Errors are indicated with a red squiggle underline. Advanced 高度な設定 - - Database schema - データベーススキーマ - Without Rowid @@ -1429,22 +1342,6 @@ Errors are indicated with a red squiggle underline. Fields フィールド - - Add field - フィールドを追加 - - - Remove field - フィールドを削除 - - - Move field up - フィールドを上へ - - - Move field down - フィールドを下へ - Database sche&ma @@ -1481,209 +1378,208 @@ Errors are indicated with a red squiggle underline. 末尾へ - - + + Name 名前 - - + + Type データ型 - + NN NN - + Not null 非null - + PK PK - - Primary key - 主キー + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + - + AI AI - + Autoincrement 自動増加 - + U U - - - + + + Unique 一意 - + Default デフォルト - + Default value デフォルト値 - - - + + + Check 検査 - + Check constraint 検査制約 - + Collation 照合順序 - - - + + + Foreign Key 外部キー - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + Constraints 制約 - + Add constraint 制約を追加 - + Remove constraint 制約を削除 - + Columns カラム - + SQL SQL - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">警告: </span>テーブル定義に構文解析できないものがあります。このテーブルを変更し保存すると問題が起きるかもしれません。.</p></body></html> - - + + Primary Key 主キー - + Add a primary key constraint 主キー制約を追加 - + Add a foreign key constraint 外部キー制約を追加 - + Add a unique constraint 一意性制約を追加 - + Add a check constraint 検査誓約を追加 - - + + There can only be one primary key for each table. Please modify the existing primary key instead. 主キーは各テーブルに一つだけ存在できます。替わりに既存の主キーを変更してください。 - + Error creating table. Message from database engine: %1 テーブル作成でエラー。データベースエンジンからのメッセージ: %1 - + There already is a field with that name. Please rename it first or choose a different name for this field. この名前は既に別のフィールドに使用されています。既存のフィールド名を変更するか、別の名前を付けてください。 - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. このカラムはテーブル %1 の外部キーに参照されているので、名前を変更できません。 - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. 少なくとも1つの行でこのフィールドにNULLが設定されています。そのため、非NULLを設定するのは不可能です。先にテーブルのデータを変更してください。 - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. 少なくとも1つの行でこのフィールドにINTEGERでない値が設定されています。そのため、自動増加を設定するのは不可能です。先にテーブルのデータを変更してください。 - + Column '%1' has duplicate data. カラム '%1' に重複データがあります。 - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. 一意にするのは不可能です。重複データを削除すると、一意にできるようになります。 - Modifying this column failed. Error returned from database: -%1 - このカラムの変更に失敗。データベースからのエラー: -%1 - - - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. 本当にフィールド '%1' を削除しますか? 現在このフィールドにあるすべてのデータは失われます。 - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled @@ -1691,18 +1587,6 @@ All data currently stored in this field will be lost. - 主キーにする - 自動増加なし - - Setting the rowid column for the table failed. Error message: -%1 - テーブルへのrowidカラム設定に失敗。エラーメッセージ: -%1 - - - Changing the table schema failed. Error message: -%1 - テーブルスキーマ変更に失敗。エラーメッセージ: -%1 - ExportDataDialog @@ -1809,14 +1693,6 @@ All data currently stored in this field will be lost. exporting JSON JSONにエクスポート - - Text files(*.csv *.txt) - テキストファイル(*.csv *.txt) - - - Text files(*.json *.js *.txt) - テキストファイル(*.json *.js *.txt) - @@ -1911,10 +1787,6 @@ All data currently stored in this field will be lost. Choose a filename to export エクスポートするファイル名を選択 - - Text files(*.sql *.txt) - テキストファイル(*.sql *.txt) - Export completed. @@ -1930,7 +1802,7 @@ All data currently stored in this field will be lost. ExtendedScintilla - + Ctrl+H @@ -1941,22 +1813,22 @@ All data currently stored in this field will be lost. - + Ctrl+P - + Find... 検索... - + Find and Replace... 検索と置換... - + Print... 印刷... @@ -1964,124 +1836,129 @@ All data currently stored in this field will be lost. ExtendedTableWidget - + Use as Exact Filter 抽出フィルターに使う - + Containing 含む - + Not containing 含まない - + Not equal to 等しくない - + Greater than より大きい - + Less than 未満 - + Greater or equal 以上 - + Less or equal 以下 - + Between this and... これとの間... - + Regular expression 正規表現 - + Edit Conditional Formats... 条件付き書式を編集... - + Set to NULL NULLに設定 - + + Cut + + + + Copy コピー - + Copy with Headers ヘッダーを含めてコピー - + Copy as SQL SQLとしてコピー - + Paste 貼り付け - + Print... 印刷... - + Use in Filter Expression フィルター式を使用 - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? クリップボードの内容は選択された範囲より大きいです. それでも挿入しますか? - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. <p>読み込まれていないデータがあります。<b>すべての行を選択する前に、すべてのデータを読み込みますか?</b><p><p>答えが <b>いいえ</b> ならば、データは読み込まれず、選択は実行されません。<br/>答えが <b>はい</b> ならば、時間がかかりますが、すべてのデータを読み込み、選択が実行されます。</p>警告: 大きいテーブルにあるすべてのデータの読み込みにはかなりの記憶領域を必要とします。 - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. 選択範囲にNULLを設定できません。カラム %1 には非NULL制約があります。 @@ -2137,30 +2014,6 @@ Do you want to insert it anyway? Filter フィルター - - These input fields allow you to perform quick filters in the currently selected table. -By default, the rows containing the input text are filtered out. -The following operators are also supported: -% Wildcard -> Greater than -< Less than ->= Equal to or greater -<= Equal to or less -= Equal to: exact match -<> Unequal: exact inverse match -x~y Range: values between x and y - この入力欄は現在選択したテーブルの即席フィルターになります。 -デフォルトでは入力テキストが含まれる行が抽出されます。 -以下の演算子にも対応しています。: -% ワイルドカード -> より大きい -< 未満 ->= 以上 -<= 以下 -= 等しい: 完全に一致 -<> 等しくない: 不一致 -x~y 範囲: xとyの間 - These input fields allow you to perform quick filters in the currently selected table. @@ -2431,26 +2284,59 @@ x~y 範囲: xとyの間 - ImportCsvDialog + ImageViewer - - Import CSV file - CSVファイルをインポート + + Image Viewer + - - Table na&me - テーブル名(&M) + + Reset the scaling to match the original size of the image. + - - &Column names in first line - 先頭行をカラム名に(&C) + + Set the scaling to match the size of the viewport. + - - Field &separator - フィールド区切り(&S) + + Print... + 印刷... + + + + Open preview dialog for printing displayed image + 表示された画像を印刷するプレビューダイアログを開く + + + + Ctrl+P + + + + + ImportCsvDialog + + + Import CSV file + CSVファイルをインポート + + + + Table na&me + テーブル名(&M) + + + + &Column names in first line + 先頭行をカラム名に(&C) + + + + Field &separator + フィールド区切り(&S) @@ -2464,7 +2350,7 @@ x~y 範囲: xとyの間 - + Tab タブ @@ -2606,10 +2492,6 @@ x~y 範囲: xとyの間 Match Similar 類似に一致 - - Import completed - インポート完了 - Select All @@ -2641,12 +2523,17 @@ x~y 範囲: xとyの間 CSVのインポート - + Inserting row failed: %1 行の挿入に失敗: %1 - + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + + + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. ファイル '%1' のインポートに %2msかかりました。内 %3ms は行関数に費やされました。 @@ -2682,290 +2569,131 @@ SQL文をオブジェクト行からドラッグしほかのアプリケーシ データ閲覧 - &Table: - テーブル(&T): - - - Select a table to browse data - 閲覧するデータのテーブルを選択 - - - Use this list to select a table to be displayed in the database view - この一覧を使ってデータベースビューに表示するテーブルを選択 - - - Refresh the data in the selected table [F5, Ctrl+R] - 選択したテーブルのデータを更新 [F5, Ctrl+R] - - - This button refreshes the data in the currently selected table. - このボタンで現在選択しているテーブルのデータを更新します。 - - - Clear all filters - 全てのフィルターを消去 - - - This button clears all the filters set in the header input fields for the currently browsed table. - このボタンで現在閲覧しているテーブルのヘッダー入力欄に設定された全てのフィルターを消去します。 - - - Save the table as currently displayed - 現在表示されているものをテーブルに保存 - - - <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - <html><head/><body><p>このポップアップメニューは現在閲覧しているテーブルに適用される以下のオプションを提供します。:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">CSVにエクスポート: このオプションは閲覧中のテーブルのデータを現在の表示通り(フィルター、表示形式、カラム順番)にCSVファイルにエクスポートします。</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ビューとして保存: このオプションは閲覧中のテーブルの現在の表示設定(フィルター、表示形式、カラム順番)をSQLビューとして保存し、あとで閲覧やSQL文として使用できるようにします。</li></ul></body></html> - - - ... - ... - - - Print currently browsed table data [Ctrl+P] - 現在閲覧中のテーブルデータを印刷 [Ctrl+P] - - - Print currently browsed table data. Print selection if more than one cell is selected. - 現在閲覧中のテーブルデータを印刷します。複数のセルを選択している場合、選択範囲を印刷します。 - - - Insert a new record in the current table - 新しいレコードを現在のテーブルに挿入 - - - <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - <html><head/><body><p>このボタンは新しいレコードをデータベースに作成します。マウスボタンを押したままにすると、違うオプションのポップアップメニューが開きます:</p><ul><li><span style=" font-weight:600;">新しいレコード</span>: データベースにデフォルト値で新しいレコードを挿入します。</li><li><span style=" font-weight:600;">値を挿入...</span>: データベースに挿入する前にデータを入力するダイアログを開きます。これで他の制約を満たす値が入力できます。このダイアログは<span style=" font-weight:600;">新しいレコード</span>オプションがそれらの制約のせいで失敗したときにも開きます。</li></ul></body></html> - - - New Record - 新しいレコード - - - Delete the current record - 現在のレコードを削除 - - - This button deletes the record or records currently selected in the table - このボタンはテーブルにある現在選択中のレコードを削除します - - - Delete Record - レコードを削除 - - - This is the database table view. You can do the following actions: - - Start writing for editing inline the value. - - Double-click any record to edit its contents in the cell editor window. - - Alt+Del for deleting the cell content to NULL. - - Ctrl+" for duplicating the current record. - - Ctrl+' for copying the value from the cell above. - - Standard selection and copy/paste operations. - これはデータベーステーブルのビューです。以下の操作ができます: - - 値をインライン編集できます。 - - レコードをダブルクリックすると、セル編集ウィンドウで内容を編集できます。 - - Alt+Del でセルの内容をNULLにできます。 - - Ctrl+" で現在のレコードを複製できます。 - - Ctrl+' で上のセルの値をコピーできます。 - - 通常の操作で、選択/コピー/貼り付けができます。 - - - <html><head/><body><p>Scroll to the beginning</p></body></html> - 先頭へ - - - <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - <html><head/><body><p>このボタンをクリックすると、上のテーブルビューを先頭まで移動します。</p></body></html> - - - |< - |< - - - Scroll one page upwards - 1ページ前へ - - - <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - <html><head/><body><p>このボタンをクリックすると、上のテーブルビューを1ページ前へ移動します。</p></body></html> - - - < - < - - - 0 - 0 of 0 - 0 - 0 of 0 - - - Scroll one page downwards - 1ページ後へ - - - <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - <html><head/><body><p>このボタンをクリックすると、上のテーブルビューを1ページ後へ移動します。</p></body></html> - - - > - > - - - Scroll to the end - 末尾へ - - - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>このボタンをクリックすると、上のテーブルビューを末尾まで移動します。</p></body></html> - - - >| - >| - - - <html><head/><body><p>Click here to jump to the specified record</p></body></html> - <html><head/><body><p>ここをクリックして指定のレコードまで移動</p></body></html> - - - <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - <html><head/><body><p>このボタンは ここへ移動 の入力欄で指定された番号のレコードへ移動するために使用します。</p></body></html> - - - Go to: - ここへ移動: - - - Enter record number to browse - 閲覧するレコードの番号を入力 - - - Type a record number in this area and click the Go to: button to display the record in the database view - この欄にレコードの番号を入力し、ここへ移動ボタンをクリックすると、データベースビューにレコードが表示されます - - - 1 - 1 - - - - + + Edit Pragmas This has to be equal to the tab title in all the main tabs プラグマ編集 - + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. 警告: このプラグマは読み取り可能でなく、この値は推定です。プラグマを書き込んでも、SQLite 拡張などで上書きされるかもしれません。 - - + + Execute SQL This has to be equal to the tab title in all the main tabs SQL実行 - + toolBar1 ツールバー1 - + &File ファイル(&F) - + &Import インポート(&I) - + &Export エクスポート(&E) - + + Recent Files + + + + &Edit 編集(&E) - + &View ビュー(&V) - + &Help ヘルプ(&H) - + &Tools ツール(&T) - + DB Toolbar DBツールバー - + Edit Database &Cell データベースのセルを編集(&C) - + SQL &Log SQLログ(&L) - + Show S&QL submitted by 表示するSQLの送信元は(&Q) - + User ユーザー - + Application アプリケーション - + Error Log エラーログ - + This button clears the contents of the SQL logs このボタンでSQLログの内容を消去します - + &Clear 消去(&C) - + This panel lets you examine a log of all SQL commands issued by the application or by yourself このパネルでアプリケーションやあなたが発行した全てのSQLコマンドのログを調査できます - + &Plot プロット(&P) - + DB Sche&ma DBスキーマ(&M) - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. @@ -2976,1257 +2704,1195 @@ SQL文をスキーマカラムからSQLエディターや他のアプリケー - + &Remote リモート(&R) - - + + Project Toolbar プロジェクトツールバー - + Extra DB toolbar 追加DBツールバー - - - + + + Close the current database file 現在のデータベースファイルを閉じます - + &New Database... 新しいデータベース(&N)... - - + + Create a new database file 新しいデータベースファイルを作成します - + This option is used to create a new database file. このオプションは新しいデータベースファイルを作成するために使います。 - + Ctrl+N - - + + &Open Database... データベースを開く(&O)... - - - - - + + + + + Open an existing database file 既存のデータベースファイルを開きます - - - + + + This option is used to open an existing database file. このオプションは既存のデータベースファイルを開くために使います。 - + Ctrl+O - + &Close Database データベースを閉じる(&C) - + This button closes the connection to the currently open database file このボタンで現在開いているデータベースファイルとの接続を閉じます - + + New &tab + + + + + Open SQL file(s) + + + + + This button opens files containing SQL statements and loads them in new editor tabs + + + + Execute line 行を実行 - + Sa&ve Project プロジェクトを保存(&V) - + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file - + This button lets you open a DB Browser for SQLite project file - + Ctrl+Shift+O - + Find 検索 - + Find or replace 検索と置換 - + Print text from current SQL editor tab 現在のSQLエディタータブのテキストを印刷します - + Print the structure of the opened database 開いているデータベースの構造を印刷します - + Un/comment block of SQL code SQLコードのブロックをコメント/非コメントに - + Un/comment block ブロックをコメント/非コメント - + Comment or uncomment current line or selected block of code 現在行かコードの選択されたブロックをコメント/非コメントにします - + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. 選択された行か、選択がないならば現在行をコメント/非コメントにします。ブロック全体はその先頭行に従いコメント/非コメントされます。 - + Ctrl+/ - + Stop SQL execution SQLの実行を中止 - + Stop execution 実行を中止 - + Stop the currently running SQL script 現在実行中の SQL スクリプトを中止します - + &Save Project As... プロジェクトに名前を付けて保存(&S)... - - - + + + Save the project in a file selected in a dialog ダイアログで選択したファイルにプロジェクトを保存します - + Save A&ll すべて保存(&L) - - - + + + Save DB file, project file and opened SQL files DBファイル、プロジェクトファイル、開いているSQLファイルを保存します - + Ctrl+Shift+S - + Browse Table テーブルを閲覧 - - + + Close Pro&ject + + + + + Close project and database files and return to the initial state + + + + + Ctrl+Shift+F4 + + + + + + Detach Database + + + + + + Detach database file attached to the current database connection + + + + + Ctrl+W - + &Revert Changes 変更を取り消し(&R) - - + + Revert database to last saved state 最後に保存した状態へデータベースを戻します - + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. このオプションは現在のデータベースファイルを最後に保存した状態に戻すために使います。最後の保存の後に行われたすべての変更は失われます。 - + &Write Changes 変更を書き込み(&W) - - + + Write changes to the database file データベースファイルに変更を書き込みます - + This option is used to save changes to the database file. このオプションはデータベースファイルに変更を保存するために使います。 - + Ctrl+S - + Compact &Database... データベースを圧縮(&D)... - + Compact the database file, removing space wasted by deleted records 削除されたレコードが残っているスペースを取り除き、データベースファイルを圧縮します - - + + Compact the database file, removing space wasted by deleted records. 削除されたレコードが残っているスペースを取り除き、データベースファイルを圧縮します。 - + E&xit 終了(&X) - + Ctrl+Q - + &Database from SQL file... SQLファイルからデータベースへ(&D)... - + Import data from an .sql dump text file into a new or existing database. SQLダンプテキストファイルからデータを、新しいもしくは既存のデータベースにインポートします。 - + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. このオプションでSQLダンプテキストファイルからデータを、新しいもしくは既存のデータベースにインポートできます。SQLダンプファイルは、MySQLやPostgreSQLなど、ほとんどのデータベースエンジンで作成できます。 - + &Table from CSV file... CSVファイルからテーブルへ(&T)... - + Open a wizard that lets you import data from a comma separated text file into a database table. カンマ区切りのテキストファイルのデータをデータベースのテーブルにインポートするウィザードを開きます。 - + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. カンマ区切りのテキストファイルのデータをデータベースのテーブルにインポートするウィザードを開きます。CSVファイルはほとんどのデータベースや表計算アプリケーションで作成できます。 - + &Database to SQL file... データベースをSQLファイルへ(&D)... - + Export a database to a .sql dump text file. データベースを .sql ダンプテキストファイルにエクスポートします。 - + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. このオプションでデータベースを .sql ダンプテキストファイルにエクスポートできます。SQLダンプファイルはデータベースの再作成に必要なすべてのデータを含み、MySQLやPostgreSQLなど、ほとんどのデータベースエンジンで利用できます。 - + &Table(s) as CSV file... テーブルをCSVファイルへ(&T)... - + Export a database table as a comma separated text file. データベースのテーブルをカンマ区切りのテキストファイルにエクスポートします。 - + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. データベースのテーブルをカンマ区切りのテキストファイルにエクスポートします。他のデータベースや表計算アプリケーションでインポートできます。 - + &Create Table... テーブルを作成(&C)... - + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database データベースに新しいテーブルの名前とフィールドを定義できる、テーブル作成ウイザードを開きます - + &Delete Table... テーブルを削除(&D)... - - + + Delete Table テーブルを削除 - + Open the Delete Table wizard, where you can select a database table to be dropped. 削除するデータベーステーブルを選択できる、テーブル削除ウィザードをひらきます。 - + &Modify Table... テーブルを変更(&M)... - + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. 既存のテーブル名を変更できる、テーブル変更ウィザードを開きます。テーブルのフィールドを追加削除したり、フィールド名やデータ型の変更もできます。 - + Create &Index... インデックスの作成(&I)... - + Open the Create Index wizard, where it is possible to define a new index on an existing database table. 既存のデータベーステーブルに新しいインデックスを定義できる、インデックスウィザードを開きます。 - + &Preferences... 設定(&P)... - - + + Open the preferences window. 設定ウィンドウを開きます。 - + &DB Toolbar DBツールバー(&D) - + Shows or hides the Database toolbar. データベースツールバーを表示/非表示します。 - + Ctrl+T - + W&hat's This? これは何(&H)? - + Ctrl+F4 - + Shift+F1 - + &About DB Browser for SQLite について(&A) - + &Recently opened 最近開いたファイル(&R) - - Open &tab - タブを開く(&T) - - - + This button opens a new tab for the SQL editor このボタンでSQLエディターの新しいタブを開きます - + &Execute SQL SQLを実行(&E) - Execute all/selected SQL [F5, Ctrl+Return, Ctrl+R] - すべての/選択したSQLを実行 [F5, Ctrl+Return, Ctrl+R] - - - + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. このボタンで現在選択しているSQL文を実行します。テキストが選択されていない場合、すべてのSQL文が実行されます。 - - Open SQL file - SQLファイルを開く - - - - This button opens a file containing SQL statements and loads it in a new editor tab - このボタンでSQL文を含むファイルを新しいエディタータブに開きます - - - - - + + + Save SQL file SQLファイルを保存 - + &Load Extension... 拡張を読み込み(&L)... - - + + Execute current line 現在行を実行 - Execute current line [Shift+F5] - 現在行を実行 [Shift+F5] - - - + This button executes the SQL statement present in the current editor line このボタンは現在エディターの行にあるSQL文を実行します - + Shift+F5 - + Export as CSV file CSVファイルにエクスポート - + Export table as comma separated values file テーブルをカンマ区切りのファイルにエクスポートします - + &Wiki ウィキ(&W) - + F1 - + Bug &Report... バグレポート(&R)... - + Feature Re&quest... 機能を要求(&Q)... - + Web&site ウェブサイト(&S) - + &Donate on Patreon... Patreonで寄付(&D)... - Sa&ve Project... - プロジェクトを保存(&V)... - - - - + + Save the current session to a file 現在のセッションをファイルに保存します - This button lets you save all the settings associated to the open DB to a DB4S project file - このボタンで開いているDBに関連付けられる全ての設定をDB4Sプロジェクトファイルに保存します - - - + Open &Project... プロジェクトを開く(&P)... - - + + Load a working session from a file 作業中のセッションをファイルから読み込みます - This button lets you open a DB4S project file - このボタンでDB4Sプロジェクトファイルを開きます - - - + &Attach Database... データベースに接続(&A)... - - + + Add another database file to the current database connection 他のデータベースファイルを現在のデータベース接続に加えます - + This button lets you add another database file to the current database connection このボタンで他のデータベースファイルを現在のデータベース接続に加えます - + &Set Encryption... 暗号化を設定(&S)... - - + + Save SQL file as 名前を付けてSQLファイルを保存 - + This button saves the content of the current SQL editor tab to a file このボタンは現在のSQLエディタータブの内容をファイルに保存します - + &Browse Table テーブルを閲覧(&B) - + Copy Create statement CREATE文をコピー - + Copy the CREATE statement of the item to the clipboard このアイテムのCREATE文をクリップボードにコピーします - Edit display format - 表示書式を編集 - - - Edit the display format of the data in this column - このカラムのデータの表示書式を編集します - - - Show rowid column - rowidカラムを表示 - - - Toggle the visibility of the rowid column - rowidカラムの表示を切り替えます - - - Set encoding - エンコードの設定 - - - Change the encoding of the text in the table cells - テーブルのセルにあるテキストのエンコードを変更します - - - Set encoding for all tables - すべてのテーブルのエンコードの設定 - - - Change the default encoding assumed for all tables in the database - データベース内のすべてのテーブルのデフォルトエンコードを変更します - - - + SQLCipher &FAQ SQLCipher FAQ(&F) - + Opens the SQLCipher FAQ in a browser window SQLCipher の FAQ をブラウザで開きます - + Table(&s) to JSON... テーブルをJSONへ(&S)... - + Export one or more table(s) to a JSON file 1つ以上のテーブルをJSONファイルにエクスポートします - Refresh - 更新 - - - F5 - - - - + Open Data&base Read Only... データベースを読み取り専用で開く(&B)... - + Open an existing database file in read only mode 既存のデータベースファイルを読み取り専用モードで開きます - Unlock view editing - ビューの編集を開放 - - - This unlocks the current view for editing. However, you will need appropriate triggers for editing. - これは現在のビューで編集できるようにします。しかし、編集時のトリガーに対応する必要があります。 - - - + Save results 結果を保存 - + Save the results view 結果のビューを保存 - + This button lets you save the results of the last executed query このボタンで最後に実行したクエリーの結果を保存します - - + + Find text in SQL editor SQLエディターの文字列を検索 - Find text in SQL editor [Ctrl+F] - SQLエディターの文字列を検索 [Ctrl+F] - - - + This button opens the search bar of the editor このボタンはエディターの検索バーを開きます - + Ctrl+F - - + + Find or replace text in SQL editor SQLエディターの文字列を検索/置換します - Find or replace text in SQL editor [Ctrl+H] - SQLエディターの文字列を検索/置換します [Ctrl+H] - - - + This button opens the find/replace dialog for the current editor tab このボタンは現在のエディタータブの検索/置換ダイアログを開きます - + Ctrl+H - + Export to &CSV CSVにエクスポート(&C) - + Save as &view ビューとして保存(&V) - + Save as view ビューとして保存 - Hide column(s) - カラムを隠す - - - Hide selected column(s) - 選択したカラムを隠す - - - Show all columns - すべてのカラムを表示 - - - Show all columns that were hidden - 隠されたすべてのカラムを表示 - - - + Shows or hides the Project toolbar. プロジェクトツールバーを表示/非表示します。 - + Extra DB Toolbar 追加DBツールバー - Export the filtered data to CSV - フィルターされたデータをCSVにエクスポート - - - This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - このボタンは閲覧中のテーブルのデータを現在の表示通り(フィルター、表示形式、カラム順番)にCSVファイルにエクスポートします。 - - - Save the current filter, sort column and display formats as a view - 現在のフィルター、カラム順番、表示形式をビューに保存 - - - This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - このボタンは閲覧中のテーブルの現在の表示設定(フィルター、表示形式、カラム順番)をSQLビューとして保存し、あとで閲覧やSQL文として使用できるようにします。 - - - Insert Values... - 値を挿入... - - - Open a dialog for inserting values in a new record - 新しいレコードに値を挿入するダイアログを開きます - - - Insert new record using default values in browsed table - 閲覧中のテーブルのデフォルト値を使い新しいレコードを挿入します - - - + New In-&Memory Database 新しいインメモリーデータベース(&M) - + Drag && Drop Qualified Names 正規化名前をドラッグ&&ドロップ - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor オブジェクトをドラッグしエディターにドロップしたときに、正規化名称(例 "Table"."Field")を使います - + Drag && Drop Enquoted Names クォートされた名前をドラッグ&&ドロップ - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor オブジェクトをドラッグしエディターにドロップしたときに、エスケープされた名前(例 "Table1")を使います - + &Integrity Check 整合性検査(&I) - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. 開いているデータベースの整合性検査プラグマを実行し、結果をSQL実行タブに出力します。このプラグマはすべてのデータベースの整合性検査を行います。 - + &Foreign-Key Check 外部キー検査(&F) - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab 開いているデータベースの外部キー検査プラグマを実行し、結果をSQL実行タブに出力します - + &Quick Integrity Check 即時整合性検査(&Q) - + Run a quick integrity check over the open DB 開いているDBの高速整合性検査を実行します - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. 開いているデータベースの高速整合性検査プラグマを実行し、結果をSQL実行タブに出力します。このコマンドは(通常の)整合性検査PRAGMAの大部分を行いますが、より高速に動作します。 - + &Optimize 最適化(&O) - + Attempt to optimize the database データベースの最適化を試みます - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. 開いているデータベースの最適化プラグマを実行します。このプラグマは将来のクエリーの性能を改善させます。 - - + + Print 印刷 - Print text from current SQL editor tab [Ctrl+P] - 現在のSQLエディタータブの文字列を印刷します [Ctrl+P] - - - + Open a dialog for printing the text in the current SQL editor tab 現在のSQLエディタータブの文字列を印刷するダイアログを開きます - Print the structure of the opened database [Ctrl+P] - 開いているデータベースの構造を印刷します [Ctrl+P] - - - + Open a dialog for printing the structure of the opened database 開いているデータベースの構造を印刷するダイアログを開きます - - + + Ctrl+P - + Execute all/selected SQL すべて/選択したSQLを実行 - + Ctrl+Return - + Ctrl+L - + Ctrl+D - + Ctrl+I - + Ctrl+E - + Reset Window Layout ウィンドウレイアウトをリセット - + Alt+0 - - Close current SQL tab - 現在のSQLタブを閉じる + + Ctrl+Tab + + + + + Ctrl+Shift+Tab + + + + + Ctrl+PgUp + - + + Clear List + + + + + Window Layout + ウィンドウレイアウト + + + + Simplify Window Layout + ウィンドウレイアウトをシンプルに + + + + Shift+Alt+0 + + + + + Dock Windows at Bottom + ウィンドウを下にドッキング + + + + Dock Windows at Left Side + ウィンドウを左にドッキング + + + + Dock Windows at Top + ウィンドウを上にドッキング + + + The database is currenctly busy. データベースは現在ビジー状態です。 - + Click here to interrupt the currently running query. ここをクリックして、現在実行中のクエリーを中断します。 - + Encrypted 暗号化 - + Database is encrypted using SQLCipher データベースはSQLCipherで暗号化されています - + Read only 読み取り専用 - + Database file is read only. Editing the database is disabled. データベースは読み取り専用です。データベースの編集はできません。 - + Database encoding データベースのエンコード - - + + Choose a database file データベースファイルを選択 - + Could not open database file. Reason: %1 データベースファイルを開けません。 理由: %1 - - - + + + Choose a filename to save under セーブするファイル名を下から選択 - + In-Memory database インメモリーデータベース - + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? まだSQL文を実行中です。今、データベースを閉じると、実行が中止され、データベースに一貫性がない状態を残すかもしれません。本当にデータベースを閉じますか? - + + Edit View %1 + + + + + Edit Trigger %1 + + + + + Opened '%1' in read-only mode from recent file list + 最近使ったファイルリストから読み取り専用モードで '%1' を開きました + + + + Opened '%1' from recent file list + 最近使ったファイルリストから '%1' を開きました + + + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + + + Could not find resource file: %1 リソースファイルが見つかりません: %1 - + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + + + + Could not open project file for writing. Reason: %1 書き込むプロジェクトファイルを開くことができません。 理由: %1 - + Project saved to file '%1' プロジェクトをファイル '%1' に保存しました - + + Yes. Don't ask again + + + + + This action will open a new SQL tab with the following statements for you to edit and run: + + + + Busy (%1) ビジー (%1) - + Rename Tab タブ名を変更 - + Duplicate Tab タブを複製 - + Close Tab タブを閉じる - + Opening '%1'... '%1' を開いています... - + There was an error opening '%1'... '%1' を開くときにエラーがありました... - + Value is not a valid URL or filename: %1 値は正規のURLもしくはファイル名でありません: %1 - Error deleting record: -%1 - レコードの削除でエラー: -%1 - - - Please select a record first - 最初にレコードを選択してください - - - determining row count... - 行数を計算中... - - - %1 - %2 of >= %3 - %1 - %2 of >= %3 - - - %1 - %2 of %3 - %1 - %2 of %3 - - - There is no database opened. Please open or create a new database file. - 開いているデータベースがありません。新しいデータベースファイルを開くか作成してください。 - - - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. 本当にテーブル '%1' を削除しますか? テーブルに関連するすべてのデータは失われます。 - + Are you sure you want to delete the view '%1'? 本当にビュー '%1' を削除しますか? - + Are you sure you want to delete the trigger '%1'? 本当にトリガー '%1' を削除しますか? - + Are you sure you want to delete the index '%1'? 本当にインデックス '%1' を削除しますか? - + Error: could not delete the table. エラー: テーブルを削除できませんでした。 - + Error: could not delete the view. エラー: ビューを削除できませんでした。 - + Error: could not delete the trigger. エラー: トリガーを削除できませんでした。 - + Error: could not delete the index. エラー: インデックスを削除できませんでした。 - + Message from database engine: %1 データベースエンジンからのメッセージ。 %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? テーブルの編集には保留中のすべての変更を今保存する必要があります。 本当にデータベースを保存しますか? - + Error checking foreign keys after table modification. The changes will be reverted. デーブル変更後の外部キー検査でエラー。変更は元に戻ります。 - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. このテーブルは外部キー検査に合格しませんでした。<br/>'ツール | 外部キー検査' を実行し、報告された問題を解決します。 - + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. SQL文は既に実行中です。替わりに現在の文を実行するため、中止しますか? 注意: これはデータベースに一貫性がない状態を残すかもしれません。 - + -- EXECUTING SELECTION IN '%1' -- -- '%1 内の選択部分を実行中' -- - + -- EXECUTING LINE IN '%1' -- -- '%1 内の行を実行中' -- - + -- EXECUTING ALL IN '%1' -- -- '%1 内をすべて実行中' -- - + Result: %1 結果: %1 - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? PRAGMA 値の設定やバキュームは現在のトランザクションをコミットします。 本当に行いますか? - Execution aborted by user - 実行はユーザーにより中止されました - - - executing query - 実行クエリー - - - + %1 rows returned in %2ms %1 行が %2ms で返されました - , %1 rows affected - , %1 行に影響を与えました - - - query executed successfully. Took %1ms%2 - クエリーの実行に成功しました。 %1ms%2 かかりました - - - - + + At line %1: %1 行目: - + Result: %2 結果: %2 - + Choose text files テキストファイルを選択 - Text files(*.csv *.txt);;All files(*) - テキストファイル(*.csv *.txt);;すべてのファイル(*) - - - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 @@ -4235,277 +3901,209 @@ Are you sure? %1 - + Are you sure you want to undo all changes made to the database file '%1' since the last save? 本当にデータベースファイル '%1' への最後の保存後に行われたすべての変更を元に戻しますか? - + Choose a file to import インポートするファイルを選択 - + &%1 %2%3 &%1 %2%3 - + (read only) (読み取り専用) - + Open Database or Project データベース化プロジェクトを開く - + Attach Database... データベースに接続... - + Import CSV file(s)... CSVファイルをインポート... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. ドロップされたファイルに対して行う操作を選択してください。 <br/>注意: 'インポート' のみが複数ファイルを処理できます。 - + Do you want to save the changes made to SQL tabs in a new project file? 新しいプロジェクトファイルにSQLタブで行われた変更を保存しますか? - + Do you want to save the changes made to SQL tabs in the project file '%1'? プロジェクトファイル '%1' にSQLタブで行われた変更を保存しますか? - + Do you want to save the changes made to the SQL file %1? 変更をSQLファイル %1 に保存しますか? - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? - このタブの文はまだ実行中です。タブを閉じると実行が中止されます。これはデータベースに一貫性がない状態を残すかもしれません。本当にタブを閉じますか? - - - + Text files(*.sql *.txt);;All files(*) テキストファイル(*.sql *.txt);;すべてのファイル(*) - + Do you want to create a new database file to hold the imported data? If you answer no we will attempt to import the data in the SQL file to the current database. インポートしたデータを保持する新しいデータベースを作成しますか いいえを選択すると、SQLファイルからのデータを現在のデータベースにインポートしようとします。 - You are still executing SQL statements. When closing the database now the execution will be stopped. maybe leaving the database in an incosistent state. Are you sure you want to close the database? - まだSQL文を実行中です。今、データベースを閉じると、実行が中止され、こデータベースに一貫性がない状態を残すかもしれません。本当にデータベースを閉じますか? - - - + Do you want to save the changes made to the project file '%1'? プロジェクトファイル '%1' に変更を保存しますか? - + Execution finished with errors. エラーがありましたが、実行が終了しました。 - + Execution finished without errors. エラーなしで実行が終了しました。 - + File %1 already exists. Please choose a different name. ファイル %1 は既に存在しています。違う名前を選んでください。 - + Error importing data: %1 データのインポートでエラー: %1 - + Import completed. Some foreign key constraints are violated. Please fix them before saving. インポートが終了しました。いくつかの外部キー制約に違反があります。保存前に修正してください。 - + Import completed. インポート完了。 - + Delete View ビューを削除 - + Modify View ビューを変更 - + Delete Trigger トリガーを削除 - + Modify Trigger トリガーを変更 - + Delete Index インデックスを削除 - + Modify Index インデックスを変更 - + Modify Table テーブルを変更 - &%1 %2 - &%1 %2 - - - + Setting PRAGMA values will commit your current transaction. Are you sure? PRAGMA 値の設定は現在のトランザクションをコミットします。 本当に行いますか? - + Select SQL file to open 開くSQLファイルを選択 - Couldn't read file: %1. - ファイルを読めません: %1. - - - Couldn't save file: %1. - ファイルを保存できません: %1. - - - + Select file name ファイル名を選択 - + Select extension file 拡張ファイルを選択 - Extensions(*.so *.dylib *.dll);;All files(*) - 拡張(*.so *.dylib *.dll);;すべてのファイル(*) - - - + Extension successfully loaded. 拡張の読み込みに成功しました。 - + Error loading extension: %1 拡張の読み込みでエラー: %1 - Could not open find resource file: %1 - 検索リソースファイルが開けません: %1 - - - - + + Don't show again 二度と表示しない - + New version available. 新しいバージョンがあります。 - + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. 新しいバージョンの DB Browser for SQLite (%1.%2.%3)があります。<br/><br/><a href='%4'>%4</a>からダウンロードしてください。 - + Choose a project file to open 開くプロジェクトファイルを選択 - + DB Browser for SQLite project file (*.sqbpro) DB Browser for SQLite プロジェクトファイル (*.sqbpro) - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - このプロジェクトファイルは DB Browser for SQLite version 3.10 以下のバージョンで使われた、古いファイルフォーマットを使用しています。このファイルフォーマットの読み込みはいまだ完全にサポートされていますが、将来古いフォーマットのサポートはなくなるため、すべてのプロジェクトファイルを新しいフォーマットに変換することをおすすめします。ファイルを変換するには単純にファイルを開き再保存します。 - - - Duplicate records - レコードを複製 - - - Duplicate record - レコードを複製 - - - Ctrl+" - - - - Please choose a new encoding for all tables. - すべてのテーブルの新しいエンコードを選択してください。 - - - Please choose a new encoding for this table. - すべてのテーブルの新しいエンコードを選択してください。 - - - %1 -Leave the field empty for using the database encoding. - %1 -データベースのエンコードを使うため、フィールドを空にします。 - - - This encoding is either not valid or not supported. - このエンコードは不正かサポートされていません。 - - - Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - このビューでの編集を有効にするため、疑似主キーを入力してください。ビューに一意なカラムの名前が必要です。 - - - + Collation needed! Proceed? 照合順序が必要です!続行しますか? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4514,50 +4112,42 @@ Create a backup! バックアップを作成してください! - + creating collation 照合順序の作成中 - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. SQLタブに新しい名前を設定してください。'&&'の文字を使うと、その次の文字をキーボードショートカットにできます。 - + Please specify the view name ビューの名前を指定してください - + There is already an object with that name. Please choose a different name. その名前のオブジェクトは既に存在します。別の名前を選んでください。 - + View successfully created. ビューの作成に成功しました。 - + Error creating view: %1 ビューの作成でエラー: %1 - There is no filter set for this table. View will not be created. - このテーブルにフィルターの設定はありません。ビューは作成されません。 - - - Delete Records - レコードを削除 - - - + This action will open a new SQL tab for running: この操作は実行のため新しいSQLタブを開きます: - + Press Help for opening the corresponding SQLite reference page. ヘルプを押すと、対応する SQLite のリファレンスページを開きます。 @@ -4583,41 +4173,37 @@ Create a backup! プロット - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> <html><head/><body><p>このペインは現在閲覧中のテーブルか直前に実行したクエリーのカラムの一覧を表示します。下のプロットペインでXもしくはY軸として使用されるカラムを選択できます。表は結果のプロットに使用できる軸の種類を表示します。Y軸には数値のカラムのみ選択できますが、X軸にはこれらが選択できます:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">日時</span>: &quot;yyyy-MM-dd hh:mm:ss&quot; もしくは &quot;yyyy-MM-ddThh:mm:ss&quot; 形式の文字列</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">日付</span>: &quot;yyyy-MM-dd&quot; 形式の文字列</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">時刻</span>: &quot;hh:mm:ss&quot; 形式の文字列</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ラベル</span>: その他の形式の文字列。これをX軸に選択すると、カラムの値を棒グラフのラベルとして表示します</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">数値</span>: INTEGER か REAL の値</li></ul><p>Yのセルをダブルクリックすると、グラフに使用する色を変更できます。</p></body></html> - + Columns カラム - + X X - Y - Y - - - + Y1 - + Y2 - + Axis Type 軸のデータ型 - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -4634,129 +4220,129 @@ Select the axes or axes labels to drag and zoom only in that orientation. - + Line type: 線の種類: - - + + None なし - + Line 直線 - + StepLeft 階段(左値) - + StepRight 階段(右値) - + StepCenter 階段(最近値) - + Impulse インパルス - + Point shape: 点の形状: - + Cross × - + Plus - + Circle - + Disc - + Square - + Diamond - + Star - + Triangle - + TriangleInverted - + CrossSquare ×+□ - + PlusSquare ++□ - + CrossCircle ×+○ - + PlusCircle ++○ - + Peace 静謐 - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> <html><head/><body><p>現在のプロットを保存...</p><p>ファイルフォーマットは拡張子 (png, jpg, pdf, bmp) から選択されます</p></body></html> - + Save current plot... 現在のプロットを保存... - - + + Load all data and redraw plot すべてのデータを読み込み再描画 @@ -4781,72 +4367,72 @@ Select the axes or axes labels to drag and zoom only in that orientation.値を積み重ねる - + Date/Time 日時 - + Date 日付 - + Time 時刻 - - + + Numeric 数値 - + Label ラベル - + Invalid 不正 - - - + + + Row # 行 # - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. すべてのデータを読み込み再描画します。 警告: 部分的なフェッチ機構により、まだテーブルからすべてのデータがフェッチされているわけではありません。 - + Choose an axis color 軸の色を選択 - + Choose a filename to save under 以下を保存するファイル名を選択 - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;すべてのファイル(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. このプロットには未ソートなデータがあります。選択した線の種類はX軸でソートされたデータのみに適用できます。テーブルやクエリーをX軸でソートするか、未ソートのデータでも使用できる、 なし や 直線 形式を選択してください。 - + Loading all remaining data for this table took %1ms. このテーブルの残っているデータすべての読み込みに %1ms かかりました。 @@ -4885,8 +4471,8 @@ Warning: not all data has been fetched from the table yet due to the partial fet - - + + ... ... @@ -4953,12 +4539,14 @@ Warning: not all data has been fetched from the table yet due to the partial fet - - - - - - + + + + + + + + enabled 有効 @@ -5023,87 +4611,113 @@ Warning: not all data has been fetched from the table yet due to the partial fet アプリケーションスタイル - + + This sets the font size for all UI elements which do not have their own font size option. + これは独自のフォントサイズオプションを持たない全てのUI要素のフォントサイズを設定します。 + + + + Font size + フォントサイズ + + + + Max Recent Files + + + + + Prompt to save SQL tabs +in new project file + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + &Database データベース(&D) - + Database &encoding データベースのエンコード(&E) - + Open databases with foreign keys enabled. 外部キーを有効にしてデータベースを開く。 - + &Foreign keys 外部キー(&F) - + Remove line breaks in schema &view スキーマビューから改行を取り除く(&V) - + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. 有効にすると、DB構造タブのカラムスキーマ、ドックや印刷された出力にある改行が取り除かれます。 - + Prefetch block si&ze 先読みブロックサイズ(&Z) - - Advanced - 高度な設定 - - - + SQ&L to execute after opening database データベースを開いた後に実行するSQL(&L) - + Default field type デフォルトのフィールドデータ形式 - + + Database structure font size + データベース構造のフォントサイズ + + + Data &Browser データ閲覧(&B) - + Font フォント - + &Font フォント(&F) - + Font si&ze フォントサイズ(&Z) - + Content 内容 - + Symbol limit in cell セル内のシンボル上限 - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. @@ -5114,457 +4728,537 @@ Can be set to 0 for disabling the functionalities. 0に設定するとこの機能を無効にできます。 - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. これは現在の値を基にしたカラムの値補完を有効にしたときのテーブル内の行数の最大値です。 - Row count threshold for completion - 補完の行数閾値 - - - + Field display フィールド表示 - + Displayed &text 表示されたテキスト(&T) - + Binary バイナリー - + NULL NULL - + Regular 通常 - - - + - - + + + + Click to set this color クリックでこの色を設定 - + Text color 文字色 - + Background color 背景色 - + Preview only (N/A) 閲覧のみ(設定不可) - + Filters フィルター - + Escape character エスケープ文字 - + Delay time (&ms) 遅延時間 (ms) (&M) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. 新しいフィルターの値が適用される前の待機時間を設定します。0にすると待機しません。 - + &SQL SQL(&S) - + Settings name 設定名 - + Context 内容 - + Colour - + Bold 太字 - + Italic イタリック - + Underline 下線 - + Keyword キーワード - + Function 関数 - + Table テーブル - + Comment コメント - + Identifier 識別子 - + String 文字列 - + Current line 現在行 - + Background 背景 - + Foreground 前景 - + + selected_bg + + + + + Selection background + + + + + selected_fg + + + + + Selection foreground + + + + + highlight + + + + + Highlight + + + + SQL editor &font SQLエディターフォント(&F) - + SQL &editor font size SQLエディターフォントサイズ(&E) - + SQL &results font size SQL結果フォントサイズ(&R) - + Tab size タブサイズ - + &Wrap lines ワードラップ(&W) - + Never しない - + At word boundaries 単語で - + At character boundaries 文字で - + At whitespace boundaries 空白で - + &Quotes for identifiers 識別子のクォート(&Q) - + Choose the quoting mechanism used by the application for identifiers in SQL code. アプリケーションがSQLコード内で識別子をクォートする仕組みを選択します。 - + "Double quotes" - Standard SQL (recommended) "ダブルクォート" - 一般的な SQL (推奨) - + `Grave accents` - Traditional MySQL quotes `グレイヴアクセント` - 伝統的な MySQL のクォート - + [Square brackets] - Traditional MS SQL Server quotes [角括弧] - 伝統的な MS SQL Server のクォート - + Code co&mpletion コード補完(&M) - + Keywords in &UPPER CASE キーワードを大文字に(&U) - + When set, the SQL keywords are completed in UPPER CASE letters. 設定すると、SQLキーワードを大文字に補完します。 - + Error indicators エラー指摘 - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background 設定すると、最後の実行でエラーが起きたSQLコードの行が強調され、結果フレームがバックグラウンドでエラーを指摘します - + Hori&zontal tiling 横に並べる(&Z) - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. 有効にすると、重ねる代わりに、SQLコードエディターと結果タブビューが並んで表示されます。 - + + Close button on tabs + + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + + + + &Extensions 拡張(&E) - + Select extensions to load for every database: すべてのデータベースで読み込む拡張を選択: - + Add extension 拡張を追加 - + Remove extension 拡張を削除 - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> <html><head/><body><p>REGEXP演算子がサポートされている間、SQLite は正規表現を実装しませんが、実行中のアプリケーションをコールバックします。DB Browser for SQLite はこれを実装しているので、REGEXP をすぐに使えます。しかし、これには複数の実装があり、アプリケーションの実装を無効にし拡張を使って他の実装を読み込むことが自由にできます。アプリケーションの再起動が必要です。</p></body></html> - + Disable Regular Expression extension 正規表現拡張を無効 - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> <html><head/><body><p>SQLite は共有ライブラリファイルから拡張を読み込むSQL関数を提供します。SQLコードから<span style=" font-style:italic;">load_extension()</span>関数を使いたいならば、.これを有効にします。</p><p>セキュリティー上の理由から、拡張の読み込みはデフォルトで無効になっており、使用するにはこの設定を有効にする必要があります。このオプションが無効でも、GUIを通じて拡張を読み込むことは常にできます。</p></body></html> - + Allow loading extensions from SQL code SQLコードで拡張の読み込みを許可する - + Remote リモート - + CA certificates 認証局証明書 - + Proxy プロキシ - + Configure 設定 - - + + Export Settings + + + + + Import Settings + + + + + Subject CN 対象CN - + Common Name Common Name - + Subject O 対象O - + Organization Organization - - + + Valid from 証明開始 - - + + Valid to 証明終了 - - + + Serial number シリアル番号 - + Your certificates あなたの証明書 - + Threshold for completion and calculation on selection 補完と選択範囲内の計算の閾値 - + Show images in cell セル内に画像を表示 - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. このオプションを有効にすると、セル内の画像データを含む BLOB のプレビューができます。しかし、これはデータ閲覧の性能に影響します。 - + File ファイル - + Subject Common Name 対象Common Name - + Issuer CN 発行者CN - + Issuer Common Name 発行者Common Name - + Clone databases into ここにデータベースを複製 - - + + Choose a directory ディレクトリーを選択 - + + The language will change after you restart the application. アプリケーションを再起動すると、言語が変更されます。 - + Select extension file 拡張ファイルを選択 - + Extensions(*.so *.dylib *.dll);;All files(*) 拡張(*.so *.dylib *.dll);;すべてのファイル(*) - + Import certificate file 証明書ファイルをインポート - + No certificates found in this file. このファイルに証明書が見つかりません。 - + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! 本当にこの証明書を削除しますか? すべての証明書データはこのアプリケーション設定から削除されます! - + Are you sure you want to clear all the saved settings? All your preferences will be lost and default values will be used. 本当に保存された設定を削除しますか? すべての設定は失われ、デフォルト値が使用されます。 + + + Save Settings File + + + + + + Initialization File (*.ini) + + + + + The settings file has been saved in location : + + + + + + Open Settings File + + + + + The settings file was loaded properly. + + + + + The selected settings file is not a normal settings file. +Please check again. + + ProxyDialog @@ -5659,7 +5353,7 @@ All your preferences will be lost and default values will be used. キャンセル - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) SQLite データベースファイル (*.db *.sqlite *.sqlite3 *.db3) @@ -5759,97 +5453,65 @@ All your preferences will be lost and default values will be used. 拡張 (*.so *.dylib *.dll) - Name - 名前 - - - Commit - コミット - - - Last modified - 最終変更 - - - Size - サイズ + + Initialization File (*.ini) + - RemoteDatabase + RemoteCommitsModel - - Error when connecting to %1. -%2 - %1 への接続でエラー。 -%2 + + Commit ID + コミットID - - Error opening remote file at %1. -%2 - %1 のリモートファイルを開くときにエラー. -%2 + + Message + メッセージ - - Error: Invalid client certificate specified. - エラー: 不正なクライアント証明書が指定されました。 - - - - Please enter the passphrase for this client certificate in order to authenticate. - このクライアント証明書を確認するためパスフレーズを入力してください。 - - - - Cancel - キャンセル + + Date + 日付 - - Uploading remote database to -%1 - リモートデータベースをここにアップロード中 -%1 + + Author + 作者 - - Downloading remote database from -%1 - リモートデータベースをここからダウンロード中 -%1 + + Size + サイズ - - - Error: The network is not accessible. - エラー: ネットワークにアクセスできません。 + + Authored and committed by %1 + - - Error: Cannot open the file for sending. - エラー: 送信するファイルを開けません。 + + Authored by %1, committed by %2 + %1 が作成, %2 がコミットしました + + + RemoteDatabase - + Error opening local databases list. %1 ローカルデータベースの一覧を開くときにエラー。 %1 - + Error creating local databases list. %1 ローカルデータベースの一覧の作成でエラー。 %1 - - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - リモートデータベースが最後のチェックアウトから更新されました。ローカルのデータベースを最新バージョンに更新しますか? 注意:これはローカルで行った変更がすべて破棄されます! もし変更を失いたくなければ、いいえをクリックしてローカルのファイルを開いてください。 - RemoteDock @@ -5859,76 +5521,368 @@ All your preferences will be lost and default values will be used. リモート - + Identity アイデンティティー - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. - 現在選択されたアイデンティティーを使ってリモートサーバーに接続します。正しいサーバーもアイデンティティーから取得されます。 + + Push currently opened database to server + 現在開いているデータベースをサーバーにプッシュします - - Go - 実行 + + Upload + - - Push currently opened database to server - 現在開いているデータベースをサーバーにプッシュします + + DBHub.io + DBHub.io - + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB4S. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to create a DB4S certificate (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB4S Preferences. Click the button to add a new certificate to DB4S and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>このペインでは、dbhub.io ウェブサイトのリモートデータベースをDB4Sに追加します。最初にアイデンティティーが必要です。:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dbhub.io ウェブサイトにログインします。(GitHubかあなたが望む認証情報を使います)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ボタンをクリックしDB4S証明書を作成します(これがあなたのアイデンティティです)。 証明書ファイルが与えられます(貴方のローカルディスクに保存します)。</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> -DB4S設定のリモートタブに行き、新しい証明書をDB4Sに追加するボタンをクリックし、ダウンロードした証明書ファイルを選択します。</li></ol><p>これで、リモートパネルにあなたのアイデンティティが表示され、リモートデータベースが追加できます。</p></body></html> + + Local + ローカル + + + + Current Database + 現在のデータベース + + + + Clone + クローン + + + + User + ユーザー + + + + Database + データベース + + + + Branch + ブランチ + + + + Commits + コミット + + + + Commits for + これにコミット + + + + Delete Database + データベースを削除 + + + + Delete the local clone of this database + このデータベースのローカルクローンを削除 + + + + Open in Web Browser + ウェブブラウザーで開く + + + + Open the web page for the current database in your browser + ブラウザで現在のデータベースのウェブページを開く + + + + Clone from Link + リンクからクローン + + + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + データベースのウェブページで提供されるURLを使って、ローカル編集用のリモートデータベースをダウンロードするには、これを使います。 + + + + Refresh + 更新 + + + + Reload all data and update the views + 全てのデータを再読み込みしビューを更新する + + + + F5 + + + + + Clone Database + データベースをクローン + + + + Open Database + データベースを開く + + + + Open the local copy of this database + このデータベースのローカルコピーを開く + + + + Check out Commit + コミットをチェックアウト + + + + Download and open this specific commit + この特定のコミットをダウンロードし開く + + + + Check out Latest Commit + 最新のコミットをチェックアウト + + + + Check out the latest commit of the current branch + 現在のブランチの最新のコミットをチェックアウト - + + Save Revision to File + リヴィジョンをファイルに保存 + + + + Saves the selected revision of the database to another file + データベースの選択したリヴィジョンをほかのファイルに保存 + + + + Upload Database + データベースをアップロード + + + + Upload this database as a new commit + このデータベースを新しいコミットとしてアップロード + + + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> <html><head/><body><p>あなたは現在組み込みの読み込み専用のアイデンティティーを使用しています。あなたのデータベースをアップロードするには、あなたの DBHub.io アカウントを設定し使う必要があります。</p><p>DBHub.io のアカウントがまだない? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">今すぐアカウントを作り</span></a>、あなたの証明書を<a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">ここから</span></a>インポートしてデータベースを共有してください。</p><p>オンラインのヘルプは<a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">ここ</span></a>を見てください。</p></body></html> - - Back - 戻る + + Back + 戻る + + + + Select an identity to connect + 接続するアイデンティティーを選択 + + + + Public + 公開 + + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + これはローカル編集用にリモートサーバーからデータベースをダウンロードします。 +クローン元のURLを入力してください。このURLはデータベースの +ウェブページにある 'Clone Database in DB4S' ボタンを +クリックして生成できます。 + + + + Invalid URL: The host name does not match the host name of the current identity. + 不正なURL: ホスト名が現在のアイデンティティーのホスト名と一致しません。 + + + + Invalid URL: No branch name specified. + 不正なURL: ブランチ名が指定されていません。 + + + + Invalid URL: No commit ID specified. + 不正なURL: コミットIDが指定されていません。 + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + データベースのローカルクローンが編集されています。このコミットをフェッチするとローカルの変更が無視されます。 +本当に実行しますか? + + + + The database has unsaved changes. Are you sure you want to push it before saving? + データベースに保存されていない変更があります。本当に保存前にプッシュしますか? + + + + The database you are trying to delete is currently opened. Please close it before deleting. + 削除しようとしたデータベースは現在開かれています。削除前に閉じてください。 + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + これはこのデータベースのローカルバージョンをまだコミットしていない変更と共に削除します。本当にこのデータベースを削除しますか? + + + + RemoteLocalFilesModel + + + Name + 名前 + + + + Branch + ブランチ + + + + Last modified + 最終変更 + + + + Size + サイズ + + + + Commit + コミット + + + + File + ファイル + + + + RemoteModel + + + Name + 名前 + + + + Commit + コミット + + + + Last modified + 最終変更 + + + + Size + サイズ + + + + Size: + サイズ: + + + + Last Modified: + 最終変更: + + + + Licence: + ライセンス: + + + + Default Branch: + デフォルトブランチ: + + + + RemoteNetwork + + + Choose a location to save the file + ファイルを保存する場所を選択 + + + + Error opening remote file at %1. +%2 + %1 のリモートファイルを開くときにエラー. +%2 + + + + Error: Invalid client certificate specified. + エラー: 不正なクライアント証明書が指定されました。 - - Public - 公開 + + Please enter the passphrase for this client certificate in order to authenticate. + このクライアント証明書を確認するためパスフレーズを入力してください。 - - - RemoteModel - - Name - 名前 + + Cancel + キャンセル - - Commit - コミット + + Uploading remote database to +%1 + リモートデータベースをここにアップロード中 +%1 - - Last modified - 最終変更 + + Downloading remote database from +%1 + リモートデータベースをここからダウンロード中 +%1 - - Size - サイズ + + + Error: The network is not accessible. + エラー: ネットワークにアクセスできません。 - bytes - バイト + + Error: Cannot open the file for sending. + エラー: 送信するファイルを開けません。 @@ -5948,19 +5902,6 @@ DB4S設定のリモートタブに行き、新しい証明書をDB4Sに追加す Commit message コミットメッセージ - - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - Database licence @@ -5982,44 +5923,45 @@ p, li { white-space: pre-wrap; } 強制プッシュ - + + Username + ユーザー名 + + + Database will be public. Everyone has read access to it. データベースを公開にします。すべての人がアクセスできます。 - + Database will be private. Only you have access to it. データベースを非公開にします。あなただけがアクセスできます。 - + Use with care. This can cause remote commits to be deleted. 注意して使用してください。これはリモートコミットが削除される可能性があります。 - - Unspecified - 指定なし - RunSql - + Execution aborted by user 実行はユーザーにより中止されました - + , %1 rows affected , %1 行に影響を与えました - + query executed successfully. Took %1ms%2 クエリーの実行に成功しました。 %1ms%2 かかりました - + executing query 実行クエリー @@ -6049,10 +5991,6 @@ p, li { white-space: pre-wrap; } Find previous match [Shift+F3] 前を検索 [Shift+F3] - - Find previous match with mapping - マッピングで前を検索 - Find previous match with wrapping @@ -6145,23 +6083,23 @@ p, li { white-space: pre-wrap; } 最後に実行した文の結果 - + Couldn't read file: %1. ファイルを読めません: %1. - - + + Couldn't save file: %1. ファイルを保存できません: %1. - + Your changes will be lost when reloading it! 再読み込みすると変更が失われます! - + The file "%1" was modified by another program. Do you want to reload it?%2 ファイル "%1" は他のプログラムによって変更されました。再読み込みしますか?%2 @@ -6173,6 +6111,11 @@ p, li { white-space: pre-wrap; } Ctrl+/ + + + Ctrl+PgDown + + SqlUiLexer @@ -6218,280 +6161,285 @@ p, li { white-space: pre-wrap; } + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. () last_insert_rowid() 関数は、この関数を呼び出したデータベース接続が最後に INSERT した行の ROWID を返します。of the last row insert from the database connection which invoked the function. - + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. (X) 文字列 X に対し、length(X) 関数は、最初の NULL 文字の前にある文字数(バイト数でなく)を返します。 - + (X,Y) The like() function is used to implement the "Y LIKE X" expression. (X,Y) like() 関数は "Y LIKE X" 式と同値です。 - + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. (X,Y,Z) like() 関数は "Y LIKE X ESCAPE Z" 式と同値です。 - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. (X) load_extension(X) 関数は、名前が X の共有ライブラリからすぐに SQLite 拡張を読み込みます。. この関数の使用には、設定ダイアログからの認証が必要です。 - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. (X) load_extension(X,Y) 関数は、名前が X の共有ライブラリのエントリーポイント Y からすぐに SQLite 拡張を読み込みます。. この関数の使用には、設定ダイアログからの認証が必要です。 - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. (X) lower(X) 関数は、すべて ASCII 文字である文字列 X を、すべて小文字に変換した文字列を返します。 - + (X) ltrim(X) removes spaces from the left side of X. (X) ltrim(X) 関数は、X の左端にある空白を取り除きます。 - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. (X,Y) ltrim(X,Y)関数は、X の左端から、 Y に含まれる文字をすべて取り除いた文字列を返します。 - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. (X,Y,...) 複数の引数を持つ max() 関数は引数の最大値を返します。引数に NULL が含まれている場合は NULL を返します。 - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. (X,Y,...) 複数の引数を持つ min() 関数は引数の最小値を返します。引数に NULL が含まれている場合は NULL を返します。 - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. (X,Y) nullif(X,Y) 関数は、二つの引数が違う場合第一引数を、同じ場合は NULL を返します。 - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. (FORMAT,...) printf(FORMAT,...) SQL 関数は、C言語の sqlite3_mprintf() 関数や、標準Cライブラリーの printf() 関数のように動作します。 - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. (X) quote(X) 関数は、引数をSQL文に含めるのに適したSQLリテラルの文字にして返します。 - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. () random() 関数は、範囲が -9223372036854775808 から +9223372036854775807 の整数である疑似乱数を返します。 - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. (N) randomblob(N) 関数は、疑似乱数で構成された N バイトの BLOB を返します。function return an N-byte blob containing pseudo-random bytes. - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. (X,Y,Z) replace(X,Y,Z) 関数は、文字列 X に含まれる文字列 Y をすべて文字列 Z に置き換えて返します。 - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. (X) round(X) 関数は、浮動小数点数 X の小数点以下を四捨五入して返します。 - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. (X,Y) round(X,Y) 関数は、浮動小数点数 X を小数点第 Y 位までになるように四捨五入して返します。 - + (X) rtrim(X) removes spaces from the right side of X. (X) rtrim(X) 関数は、X の右端にある空白を取り除きます。 - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. (X,Y) rtrim(X,Y) 関数は、X の右端から、 Y に含まれる文字をすべて取り除いた文字列を返します。 - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. (X) soundex(X) 関数は、文字列 X を soundex にエンコードした文字列を返します。 - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. (X,Y) substr(X,Y) 関数は、文字列 Xの、先頭から Y 番目から末尾までの文字列を返します。 - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. (X,Y,Z) substr(X,Y,Z) 関数は、文字列 X の、先頭から Y 番目から Z 文字の文字列を返します。 - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. () total_changes() 関数は、現在開かれた接続のあるデータベースにおいて、INSERT、UPDATE、DELETEで変更された行数を返します。 returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. - + (X) trim(X) removes spaces from both ends of X. (X) trim(X) 関数は、X の両端にある空白を取り除きます。 - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. (X,Y) trim(X,Y) 関数は、X の両端から、 Y に含まれる文字をすべて取り除いた文字列を返します。 - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. (X) typeof(X) 関数は、式 X のデータ型を示す文字列を返します。 - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. (X) unicode(X) 関数は、文字列 X の最初の文字に対応する Unicode 符号位置を返します。 - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. (X) upper(X) 関数は、すべて ASCII 文字である文字列 X を、すべて大文字に変換した文字列を返します。 - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. (N) zeroblob(N) 関数は、すべて 0x00 で埋められた、N バイトの BLOB を返します。 - + (timestring,modifier,modifier,...) (時刻文字列, 修飾子, 修飾子,...) - + (format,timestring,modifier,modifier,...) (フォーマット, 時刻文字列, 修飾子, 修飾子,...) - + (X) The avg() function returns the average value of all non-NULL X within a group. (X) avg() 関数は、グループ内の非NULLな値の平均を返します。 - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. (X) count(X) 関数はグループ内にある、NULLでない X の件数を返します。 - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. (X) group_concat() 関数は、非NULLなすべての X を連結した文字列を返します。 - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. (X,Y) group_concat() 関数は、非NULLなすべての X を連結した文字列を返します。もし、引数 Y が存在するならば、X を連結するときの区切り文字として使用します。 - + (X) The max() aggregate function returns the maximum value of all values in the group. (X) max() 集計関数は、グループ内の(非NULLである)最大値を返します。 - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. (X) min() 集計関数は、グループ内の(非NULLである)最小値を返します。 - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. (X) sum() と total() 集計関数は、グループ内の非NULLな値の合計を返します。 - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. () 現在の分割内の行番号。行は、ウィンドウ定義の ORDER BY 句やそれ以外の任意の順序に従い、1 から順に番号付けされます。 - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () 各グループの順位 - 同値は同順位で、次の値は重複分だけ順位がずれます。もし、ORDER BY 句がなければ、すべての行を同順位とみなし、常に 1 を返します。 - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () 各グループの順位 - 同値は同順位で、次の値は重複に関わらず前の順位+1になります。パーティションはウィンドウ定義の ORDER BY 句やそれ以外の任意の順序に従い、1 から順に番号付けされます。もし、ORDER BY 句がなければ、すべての行を同順位とみなし、常に 1 を返します。 - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. () その名前にも関わらず、この関数は常に 0.0 から 1.0 の値を返します。この値は、(rank - 1)/(パーティション行数 - 1) です。ここで、rank は組み込みウィンドウ関数の rank()、パーティション行数はパーティション内の行の数です。もし、パーティションに1行しか含まれていなければ、この関数は 0.0 を返します。 - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. () 累積分布。(行番号)/(パーティション行数) で計算されます。ここで行番号はグループ内で row_number() で返された値、パーティション行数はパーティション内の行の数です。 - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. (N) 引数 N はINTEGERとして扱われます。この関数はパーティションを ORDER BY 句やそれ以外の任意の順序に従い N 個のグループに可能な限り等分し、それぞれのグループに 1 から N のINTEGERをつけます。必要があれば、先頭のほうにあるグループの件数を多くするように割り当てられます。この関数は現在の行が含まれるグループに割り当てられたINTEGERを返します。 - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. (expr) パーティション内の前の行に対して式 expr を評価した結果を返します。(先頭行のため)前の行がなければ、NULLを返します。 - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. (expr,offset) 引数 offset が与えられる場合、非負のINTEGERである必要があります。この場合、パーティション内の offset だけ前の行に対して式 expr を評価した結果を返します。offset が 0 ならば、現在行に対して評価します。前の行がなければ、NULLを返します。 - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. (expr,offset,default) default が与えられる場合、該当の行がなければ、NULL の代わりに defaul 値を返します。 - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. (expr) パーティション内の次の行に対して式 expr を評価した結果を返します。(最終行のため)次の行がなければ、NULLを返します。 - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. (expr,offset) 引数 offset が与えられる場合、非負のINTEGERである必要があります。この場合、パーティション内の offset だけ次の行に対して式 expr を評価した結果を返します。offset が 0 ならば、現在行に対して評価します。次の行がなければ、NULLを返します。 - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. (expr) この組み込みウィンドウ関数は、同じ集計ウィンドウ関数を使ってそれぞれの行のウィンドウフレームを計算します。各行のウィンドウフレームの最初の行に対して評価される expr の値を返します。 - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. (expr) この組み込みウィンドウ関数は、同じ集計ウィンドウ関数を使ってそれぞれの行のウィンドウフレームを計算します。各行のウィンドウフレームの最後の行に対して評価される expr の値を返します。 - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. (expr,N) この組み込みウィンドウ関数は、同じ集計ウィンドウ関数を使ってそれぞれの行のウィンドウフレームを計算します。各行のウィンドウフレームの N 番目の行に対して評価される expr の値を返します。行は、ウィンドウ定義の ORDER BY 句やそれ以外の任意の順序に従い、1 から順に番号付けされます。 N 番目の行がパーティションにない場合、NULL が返されます。 @@ -6499,41 +6447,42 @@ Use of this function must be authorized from Preferences. SqliteTableModel - + reading rows 行を読み込み中 - + loading... 読み込み中... - + References %1(%2) Hold %3Shift and click to jump there これを参照 %1(%2) %3Shift を保持しクリックでジャンプ - + Error changing data: %1 データの変更でエラー: %1 - + retrieving list of columns カラムの一覧を取得中 - + Fetching data... データを取得中... - + + Cancel キャンセル @@ -6592,10 +6541,6 @@ Hold %3Shift and click to jump there Find previous match [Shift+F3] 前を検索 [Shift+F3] - - Find previous match with mapping - マッピングで前を検索 - Find previous match with wrapping @@ -6679,7 +6624,7 @@ Hold %3Shift and click to jump there - + Replace 置換 @@ -6694,610 +6639,631 @@ Hold %3Shift and click to jump there すべて置換 - + <html><head/><body><p>Scroll to the beginning</p></body></html> 先頭へ - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> <html><head/><body><p>このボタンをクリックすると、上のテーブルビューを先頭まで移動します。</p></body></html> - + |< |< - + Scroll one page upwards 1ページ前へ - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> <html><head/><body><p>このボタンをクリックすると、上のテーブルビューを1ページ前へ移動します。</p></body></html> - + < < - + 0 - 0 of 0 0 - 0 of 0 - + Scroll one page downwards 1ページ後へ - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> <html><head/><body><p>このボタンをクリックすると、上のテーブルビューを1ページ後へ移動します。</p></body></html> - + > > - + Scroll to the end 末尾へ - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>このボタンをクリックすると、上のテーブルビューを末尾まで移動します。</p></body></html> - - - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> - + >| >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> <html><head/><body><p>ここをクリックして指定のレコードまで移動</p></body></html> - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> <html><head/><body><p>このボタンは ここへ移動 の入力欄で指定された番号のレコードへ移動するために使用します。</p></body></html> - + Go to: ここへ移動: - + Enter record number to browse 閲覧するレコードの番号を入力 - + Type a record number in this area and click the Go to: button to display the record in the database view この欄にレコードの番号を入力し、ここへ移動ボタンをクリックすると、データベースビューにレコードが表示されます - + 1 1 - + Show rowid column rowidカラムを表示 - + Toggle the visibility of the rowid column rowidカラムの表示を切り替えます - + Unlock view editing ビューの編集を開放 - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. これは現在のビューで編集できるようにします。しかし、編集時のトリガーに対応する必要があります。 - + Edit display format 表示書式を編集 - + Edit the display format of the data in this column このカラムのデータの表示書式を編集します - - + + New Record 新しいレコード - - + + Insert a new record in the current table 新しいレコードを現在のテーブルに挿入 - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> <html><head/><body><p>このボタンは新しいレコードをデータベースに作成します。マウスボタンを押したままにすると、違うオプションのポップアップメニューが開きます:</p><ul><li><span style=" font-weight:600;">新しいレコード</span>: データベースにデフォルト値で新しいレコードを挿入します。</li><li><span style=" font-weight:600;">値を挿入...</span>: データベースに挿入する前にデータを入力するダイアログを開きます。これで他の制約を満たす値が入力できます。このダイアログは<span style=" font-weight:600;">新しいレコード</span>オプションがそれらの制約のせいで失敗したときにも開きます。</li></ul></body></html> - - + + Delete Record レコードを削除 - + Delete the current record 現在のレコードを削除 - - + + This button deletes the record or records currently selected in the table このボタンはテーブルにある現在選択中のレコードを削除します - - + + Insert new record using default values in browsed table 閲覧中のテーブルのデフォルト値を使い新しいレコードを挿入します - + Insert Values... 値を挿入... - - + + Open a dialog for inserting values in a new record 新しいレコードに値を挿入するダイアログを開きます - + Export to &CSV CSVにエクスポート(&C) - - + + Export the filtered data to CSV フィルターされたデータをCSVにエクスポート - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. このボタンは閲覧中のテーブルのデータを現在の表示通り(フィルター、表示形式、カラム順番)にCSVファイルにエクスポートします。 - + Save as &view ビューとして保存(&V) - - + + Save the current filter, sort column and display formats as a view 現在のフィルター、カラム順番、表示形式をビューに保存 - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. このボタンは閲覧中のテーブルの現在の表示設定(フィルター、表示形式、カラム順番)をSQLビューとして保存し、あとで閲覧やSQL文として使用できるようにします。 - + Save Table As... テーブルに名前を付けて保存... - - + + Save the table as currently displayed 現在表示されているものをテーブルに保存 - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> <html><head/><body><p>このポップアップメニューは現在閲覧しているテーブルに適用される以下のオプションを提供します。:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">CSVにエクスポート: このオプションは閲覧中のテーブルのデータを現在の表示通り(フィルター、表示形式、カラム順番)にCSVファイルにエクスポートします。</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ビューとして保存: このオプションは閲覧中のテーブルの現在の表示設定(フィルター、表示形式、カラム順番)をSQLビューとして保存し、あとで閲覧やSQL文として使用できるようにします。</li></ul></body></html> - + Hide column(s) カラムを隠す - + Hide selected column(s) 選択したカラムを隠す - + Show all columns すべてのカラムを表示 - + Show all columns that were hidden 隠されたすべてのカラムを表示 - - + + Set encoding エンコードの設定 - + Change the encoding of the text in the table cells テーブルのセルにあるテキストのエンコードを変更します - + Set encoding for all tables すべてのテーブルのエンコードの設定 - + Change the default encoding assumed for all tables in the database データベース内のすべてのテーブルのデフォルトエンコードを変更します - + Clear Filters フィルターを削除 - + Clear all filters すべてのフィルターを消去 - - + + This button clears all the filters set in the header input fields for the currently browsed table. このボタンで現在閲覧しているテーブルのヘッダー入力欄に設定されたすべてのフィルターを消去します。 - + Clear Sorting 並べ替えを解除 - + Reset the order of rows to the default 行の順番をデフォルトにリセットします - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. このボタンは、現在閲覧中のテーブルにある並び替えたカラムをデフォルトの順番に戻します。 - + Print 印刷 - + Print currently browsed table data 現在閲覧中のテーブルデータを印刷 - + Print currently browsed table data. Print selection if more than one cell is selected. 現在閲覧中のテーブルデータを印刷します。複数のセルを選択している場合、選択範囲を印刷します。 - + Ctrl+P - + Refresh 更新 - + Refresh the data in the selected table 選択したテーブルのデータを更新 - + This button refreshes the data in the currently selected table. このボタンで現在選択しているテーブルのデータを更新します。 - + F5 - + Find in cells セル内を検索 - + Open the find tool bar which allows you to search for values in the table view below. テーブルビューの下に値を検索するための検索ツールバーを開きます。 - Ctrl+F - + + Freeze columns + + + + + Make all columns from the first column up to this column not move when scrolling horizontally + - - + + Bold 太字 - + Ctrl+B - - + + Italic イタリック - - + + Underline 下線 - + Ctrl+U - - + + Align Right 右揃え - - + + Align Left 左揃え - - + + Center Horizontally 中央揃え - - + + Justify 均等割付 - - + + Edit Conditional Formats... 条件付き書式を編集... - + Edit conditional formats for the current column 現在のカラムの条件付き書式を編集します - + Clear Format 書式を削除 - + Clear All Formats すべての書式を削除 - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns 選択したセルのすべての書式を削除し、選択したカラムのすべての条件付き書式を削除します - - + + Font Color フォント色 - - + + Background Color 背景色 - + Toggle Format Toolbar フォーマットツールバーを切り替え - + Show/hide format toolbar フォーマットツールバーを表示/非表示します - - + + This button shows or hides the formatting toolbar of the Data Browser このボタンでデータ閲覧の書式ツールバーを表示/非表示します - + Select column カラムを選択 - + Ctrl+Space - + Replace text in cells セル内のテキストを置き換え - - Ctrl+H - - - Filter in all columns - すべてのカラムをフィルター + Filter in any column + - + Ctrl+R - + %n row(s) %n 行 - + , %n column(s) , %n カラム - + . Sum: %1; Average: %2; Min: %3; Max: %4 . 合計: %1; 平均: %2; 最低: %3; 最高: %4 - + Conditional formats for "%1" "%1" の条件付き書式 - + determining row count... 行数を計算中... - + %1 - %2 of >= %3 %1 - %2 of >= %3 - + %1 - %2 of %3 %1 - %2 of %3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. このビューでの編集を有効にするため、疑似主キーを入力してください。ビューに一意なカラムの名前が必要です。 - + Delete Records レコードを削除 - + Duplicate records レコードを複製 - + Duplicate record レコードを複製 - + Ctrl+" - + Adjust rows to contents 行を内容に合わせ調整 - + Error deleting record: %1 レコードの削除でエラー: %1 - + Please select a record first 最初にレコードを選択してください - + There is no filter set for this table. View will not be created. このテーブルにフィルターの設定はありません。ビューは作成されません。 - + Please choose a new encoding for all tables. すべてのテーブルの新しいエンコードを選択してください。 - + Please choose a new encoding for this table. すべてのテーブルの新しいエンコードを選択してください。 - + %1 Leave the field empty for using the database encoding. %1 データベースのエンコードを使うため、フィールドを空にします。 - + This encoding is either not valid or not supported. このエンコードは不正かサポートされていません。 - + %1 replacement(s) made. %1 つ置き換えました。 + + TableBrowserDock + + + New Data Browser + + + + + Rename Data Browser + + + + + Close Data Browser + + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + VacuumDialog diff --git a/src/translations/sqlb_ko_KR.qph b/src/translations/sqlb_ko_KR.qph deleted file mode 100644 index 9db493f15..000000000 --- a/src/translations/sqlb_ko_KR.qph +++ /dev/null @@ -1,439 +0,0 @@ - - - - file - 파일 - - - version - 버전 - - - invalid - 잘못된 - - - option - 옵션 - - - argument - 매개변수 - - - filter - 필터 - - - import - 가져오기 - - - export - 내보내기 - - - column - 필드 - - - first - 최초, 처음 - - - line - - - - field - 필드 - - - separator - 구분자 - - - tab - - - - encoding - 인코딩 - - - trim - 앞뒤 공백제거 - - - insert - 추가하기 - - - data - 데이터 - - - cancel - 취소 - - - already - 이미 - - - table - 테이블 - - - record - 레코드 - - - row - - - - execute - 실행하다 - - - browse - 보다 - - - view - - - - index - 인덱스 - - - indice - 인덱스 - - - application - 애플리케이션 - - - order - 정렬순서 - - - unique - 유니크 - - - name - 이름 - - - create - 생성하기 - - - error - 에러 - - - pragma - pragma - - - executing - 실행중 - - - unknown - 알 수 없는 - - - object - 객체 - - - type - 타입 - - - SQL - SQL - - - action - 실행 - - - database - 데이터베이스 - - - warning - 주의 - - - compact - 용량 줄이기 - - - preferences - 환경설정 - - - enable - 사용하기 - - - language - 언어 - - - automatic - 자동 - - - update - 업데이트 - - - default - 기본 - - - default - 기본값 - - - location - 위치 - - - foreign key - 외래키 - - - colour - 색깔 - - - general - 일반 - - - open - 열다 - - - setting - 설정 - - - bold - 볼드 - - - italic - 이탤릭 - - - underline - 밑줄 - - - enabled - 사용하기 - - - setting - 설정 - - - tables - 테이블 - - - updates - 업데이트 - - - update - 업데이트 - - - browser - 보기 - - - log - 로그 - - - logs - 로그 - - - editor - 편집기 - - - font - 폰트 - - - size - 크기 - - - string - 문자열 - - - comment - 주석 - - - current - 현재 - - - identifier - 식별자 - - - function - 함수 - - - function - 기능 - - - keyword - 키워드 - - - extension - 확장기능 - - - select - 선택하다 - - - choice - 고르다 - - - disable - 사용하지않기 - - - directory - 디렉토리 - - - all files - 모든 파일 - - - information - 정보 - - - view - - - - show - 보기 - - - user - 사용자 - - - clear - 지우기 - - - edit - 편집 - - - help - 도움말 - - - columns - 필드 - - - DB Browser for SQLite - DB Browser for SQLite - - - usage - 사용법 - - - db - 데이터베이스 - - - command line - 커맨드라인 - - - arguments - 옵션 - - - argument - 옵션 - - - page - 페이지 - - - encryption - 암호화 - - - SQLCipher - SQLCipher - - - process - 작업 - - - savepoint - 세이브포인트 - - - failed - 실패했습니다 - - - aborting - 취소 - - - attache - 합치다 - - - associated - 연관된 - - - cell - 데이터 값 - - - name - 필드명 - - diff --git a/src/translations/sqlb_ko_KR.ts b/src/translations/sqlb_ko_KR.ts index 9d470def5..b9f7cab7b 100644 --- a/src/translations/sqlb_ko_KR.ts +++ b/src/translations/sqlb_ko_KR.ts @@ -17,44 +17,7 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - <html><head/><body><p>DB Browser for SQLite(줄여서 DB4S)는 오픈소스, 프리웨어로 SQLite 데이터베이스 파일들을 생성, 설계하고 수정을 하기위한 비주얼 툴입니다.</p><p>이 프로그램은 이중 라이센스로 Mozilla Public License Version 2과 GNU General Public License Version 3 또는 그 이후 버전을 따릅니다. 따라서 이 프로그램은 이 라이센스를 충족하는 범위 내에서 수정하고 재배포 할 수 있습니다.</p><p>자세한 사항은 <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a>과 <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a>를 참고하기 바랍니다. </p><p>이 프로그램에 대한 좀 더 자세한 정보는 우리 웹사이트에서 확인할 수 있습니다: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">이 소프트웨어는 GPL/LGPL Qt Toolkit을 사용합니다.</span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>라이센스 사항과 정보는 </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;">를 참고하기 바랍니다.</span></p><p><span style=" font-size:small;">또한 이 프로그램은 Mark James의 Silk icon set을 Creative Commons Attribution 2.5와 3.0 라이센스 아래에서 사용하고 있습니다.<br/> 자세한 정보는 </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;">를 참고하기 바랍니다.</span></p></body></html> - - - <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> for details.</p><p>For more information on this program please visit our website at: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - <html><head/><body><p>DB Browser for SQLite는 오픈소스, 프리웨어 시각화 툴로 SQLite 데이터베이스 파일을 생성하고, 설계하고 수정할 수 있습니다.</p><p>이 프로그램은 두 가지 라이센스를 따르는데 Mozilla Public License Version 2와 GNU General Public License Version 3 또는 그 이후 버전의 라이센스를 따릅니다. 여러분은 이 라이센스 하에서 수정하거나 재배포 할 수 있습니다.</p><p>자세한 내용은 <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> 과 <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> 를 참고하시기 바랍니다.</p><p>이 프로그램에 대한 추가 정보를 알고 싶으시면 우리 웹사이트에 방문하세요: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">이 소프트웨어는 </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;">의 GPL/LGPL Qt Toolkit을 사용합니다.</span><span style=" font-size:small;"><br/>라이센스 조건과 정보는 </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> 에서 보실 수 있습니다.</span></p><p><span style=" font-size:small;">또한 이 프로그램은 Mark James가 제작한 실크 아이콘 세트를 Creative Commons Attribution 2.5와 3.0 버전 라이센스 하에서 사용하고 있습니다.<br/>자세한 것은 </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> 를 참고하세요.</span></p></body></html> - - - (based on SQLite %1) - (SQLite %1 버전에 기반) - - - - SQLCipher Version %1 (based on SQLite %2) - SQLCipher 버전 %1 (SQLite %2 기반) - - - - Version - 버전 - - - - Built for %1, running on %2 - %1 환경을 위해 빌드됨, %2 환경에서 실행 중 - - - - Qt Version - Qt 버전 - - - SQLCipher Version - SQLCipher 버전 - - - - SQLite Version - SQLite 버전 + <html><head/><body><p>DB Browser for SQLite는 오픈소스, 프리웨어로 SQLite 데이터베이스 파일들을 생성, 설계하고 수정을 하기 위한 비주얼 툴입니다.</p><p>이 프로그램은 이중 라이센스로 Mozilla Public License Version 2과 GNU General Public License Version 3 또는 그 이후 버전을 따릅니다. 따라서 이 프로그램은 이 라이센스를 충족하는 범위 내에서 수정하고 재배포 할 수 있습니다.</p><p>자세한 사항은 <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a>과 <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a>를 참고하시기 바랍니다. </p><p>이 프로그램에 대한 좀 더 자세한 정보는 우리 웹사이트에서 확인하실 수 있습니다: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">이 소프트웨어는 GPL/LGPL Qt Toolkit을 사용합니다.</span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>라이센스 사항과 정보는 </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;">를 참고하시기 바랍니다.</span></p><p><span style=" font-size:small;">또한 이 프로그램은 Mark James의 Silk icon set를 Creative Commons Attribution 2.5와 3.0 라이센스 아래에서 사용하고 있습니다.<br/> 자세한 정보는 </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;">를 참고하시기 바랍니다.</span></p></body></html> @@ -67,7 +30,7 @@ Enter values for the new record considering constraints. Fields in bold are mandatory. - 제약 조건을 고려하여 새 레코드를 위한 값을 입력하세요. 볼드 처리된 필드는 반드시 입력해야 합니다. + 제약 조건을 고려하여 새 레코드를 위한 값을 입력하세요. 진하게 처리된 필드는 반드시 입력해야 합니다. @@ -92,7 +55,7 @@ Values to insert. Pre-filled default values are inserted automatically unless they are changed. - 추가할 값들입니다. 기본 값들이 미리 입력되어있어 수정하지 않는다면 자동적으로 들어갑니다. + 추가할 값들입니다. 기본 값들이 미리 입력되어 있어 수정하지 않는다면 자동적으로 들어갑니다. @@ -102,54 +65,54 @@ <html><head/><body><p><span style=" font-weight:600;">Save</span> will submit the shown SQL statement to the database for inserting the new record.</p><p><span style=" font-weight:600;">Restore Defaults</span> will restore the initial values in the <span style=" font-weight:600;">Value</span> column.</p><p><span style=" font-weight:600;">Cancel</span> will close this dialog without executing the query.</p></body></html> - <html><head/><body><p><span style=" font-weight:600;">저장하기</span>은 새 레코드를 데이터베이스에 추가하기 위해 작성되어 나타나 있는 SQL 구문을 반영(submit) 합니다.</p><p><span style=" font-weight:600;">초기값 복원하기</span>는 <span style=" font-weight:600;">값</span> 필드를 초기 값으로 복원합니다.</p><p><span style=" font-weight:600;">취소하기</span>는 쿼리의 실행 없이 이 창을 닫습니다.</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">저장하기</span>는 새 레코드를 데이터베이스에 추가하기 위해 작성되어 나타나 있는 SQL 구문을 반영합니다.</p><p><span style=" font-weight:600;">초기값 복원하기</span>는 <span style=" font-weight:600;">값</span> 필드를 초기 값으로 복원합니다.</p><p><span style=" font-weight:600;">취소하기</span>는 쿼리의 실행 없이 이 창을 닫습니다.</p></body></html> - + Auto-increment - 자동 증가(Auti-increment) + 자동 증가(Auto-increment) - + Unique constraint 유니크 제약 - + Check constraint: %1 제약 조건: %1 - + Foreign key: %1 외래키: %1 - + Default value: %1 기본 값: %1 - + Error adding record. Message from database engine: %1 - 레코드 추가에 에러가 발생했습니다. 데이터베이스 엔진 메시지: + 레코드 추가 도중 에러가 발생했습니다. 데이터베이스 엔진 메시지: %1 - + Are you sure you want to restore all the entered values to their defaults? 정말로 모든 입력한 값들을 초기 값으로 복원합니까? @@ -157,99 +120,269 @@ Application - - Usage: %1 [options] [db] + + Possible command line arguments: + 사용할 수 있는 명령줄 매개변수: + + + Usage: %1 [options] [<database>|<project>] - 사용법: %1 [옵션] [데이터베이스] + 사용법: %1 [옵션] [<데이터베이스>|<프로젝트>] - - Possible command line arguments: - 사용할 수 있는 커맨드라인 매개변수: + -h, --help Show command line options + -h, --help 명령줄 옵션을 보여줍니다 + + + -q, --quit Exit application after running scripts + -q, --quit 스크립트 실행 후 프로그램을 종료합니다 + + + -s, --sql <file> Execute this SQL file after opening the DB + -s, --sql <파일> DB를 연 다음 SQL 파일을 실행합니다 + + + -t, --table <table> Browse this table after opening the DB + -t, --table <table> DB를 연 다음 이 테이블을 탐색합니다 - - -h, --help Show command line options - -h, --help 커맨드라인 옵션을 보여줍니다 + -R, --read-only Open database in read-only mode + -R, --read-only 데이터베이스를 읽기 전용 모드로 열기합니다 - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [file] 데이터베이스 파일을 연 후에 SQL 파일 내용을 실행합니다 + + The user settings file location is replaced with the argument value instead of the environment variable value. + 사용자 환경설정 파일 위치는 환경 변수 값 대신 인자 값으로 대체됩니다. - - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [file] 데이터베이스 파일을 연 후 이 SQL 파일을 실행합니다 + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + 무시되는 환경변수(DB4S_SETTINGS_FILE) 값 : - - -t, --table [table] Browse this table after opening the DB - -t, --table [table] 데이터베이스 파일을 연 후 이 테이블을 봅니다 + -S, --settings <settings_file> + -S, --settings <환경설정_파일> - - -q, --quit Exit application after running scripts - -q, --quit 스크립트를 실행한 후에 애플리케이션을 종료합니다 + Run application based on this settings file + 이 환경설정 파일을 바탕으로 프로그램을 실행합니다 - - -R, --read-only Open database in read-only mode - -R, --read-only 데이터베이스를 읽기전용 모드로 엽니다 + -o, --option <group>/<setting>=<value> + -o, --option <그룹>/<설정>=<값> - - -o, --option [group/setting=value] Run application with this setting temporarily set to value - --o, --option [group/setting=value] 지정된 설정을 임시적으로 반영하여 프로그램 실행 + Run application with this setting temporarily set to value + 설정 값을 임시적으로 저장한 후 프로그램 실행합니다 - - -O, --save-option [group/setting=value] Run application saving this value for this setting - -O, --save-option [group/setting=value] 지정된 설정을 영구적으로 반영하여 프로그램 실행 + -O, --save-option <group>/<setting>=<value> + -O, --save-option <그룹>/<설정>=<값> - - -v, --version Display the current version - -v, --version 현재 버전을 표시합니다 + Run application saving this value for this setting + 설정 값을 저장하면서 프로그램을 실행합니다 - - [file] Open this SQLite database - [파일] 지정한 SQLite 데이터베이스 파일을 엽니다 + -v, --version Display the current version + -v, --version 현재 버전을 출력합니다 - - This is DB Browser for SQLite version %1. - DB Browser for SQLite 버전 %1%2. {1.?}. + <database> Open this SQLite database + <데이터베이스> 이 SQLite 데이터베이스를 엽니다 - This is DB Browser for SQLite version %1%2. - DB Browser for SQLite 버전 %1%2. + <project> Open this project file (*.sqbpro) + <프로젝트> 이 프로젝트 파일을 엽니다 (*.sqbpro) - The -s/--sql option requires an argument - -s/--sql 옵션은 실행할 SQL 파일명을 같이 지정해주어야 합니다 + -s/--sql 옵션은 실행할 SQL 파일명을 같이 지정해주어야 합니다 - + + The file %1 does not exist %1 파일이 존재하지 않습니다 - The -t/--table option requires an argument - -t/--table 옵션의 대상이되는 테이블 명을 써주세요 + -t/--table 옵션의 대상이 되는 테이블 명을 입력하세요 + + + + Usage + + + + + options + + + + + + database + + + + + + project + + + + + + csv-file + + + + + Show command line options + + + + + Exit application after running scripts + + + + + + file + + + + + Execute this SQL file after opening the DB + + + + + Import this CSV file into the passed DB or into a new DB + + + + + table + + + + + Browse this table after opening the DB + + + + + Open database in read-only mode + + + + + settings_file + + + + + Run application based on this settings file + + + + + + group + + + + + + settings + + + + + + value + + + + + Run application with this setting temporarily set to value + + + + + Run application saving this value for this setting + + + + + Display the current version + - + + Open this SQLite database + + + + + Open this project file (*.sqbpro) + + + + + Import this CSV file into an in-memory database + + + + + + + The %1 option requires an argument + + + + + The -S/--settings option requires an argument. The option is ignored. + -S/--settings 옵션은 인자 값이 필요합니다. 따라서 이 옵션은 무시됩니다. + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value -o/--option 또는 -O/--save-option 옵션은 group/setting=value 형식의 인수가 필요합니다 - + Invalid option/non-existant file: %1 - 잘못된 옵션을 사용하였거나/파일이 존재하지 않습니다: %1 + 잘못된 옵션을 사용하였거나 파일이 존재하지 않습니다: %1 + + + + SQLite Version + SQLite 버전 + + + + SQLCipher Version %1 (based on SQLite %2) + SQLCipher 버전 %1 (SQLite %2 기반) + + + + DB Browser for SQLite Version %1. + DB Browser for SQLite 버전 %1. + + + + Built for %1, running on %2 + %1 환경을 위해 빌드됨, %2 환경에서 실행 중 + + + + Qt Version %1 + Qt 버전 %1 @@ -272,7 +405,7 @@ Encr&yption settings - 암호화 설정 + 암호화 설정(&Y) @@ -322,11 +455,7 @@ Raw key - Raw key - - - Page &size - 페이지 크기(&S) + Raw 키 @@ -335,7 +464,7 @@ Note that if you change any of the other, optional, settings you'll need to Leave the password fields empty to disable the encryption. The encryption process might take some time and you should have a backup copy of your database! Unsaved changes are applied before modifying the encryption. 데이터베이스를 암호화할 때 사용할 키를 지정해주세요. -[주의] 여러분이 추가적인 세팅을 변경한다면, 데이터베이스 파일을 열 때마다 암호를 매번 입력해야합니다. +[주의] 여러분이 추가적인 설정을 변경한다면, 데이터베이스 파일을 열 때마다 암호를 매번 입력해야합니다. 그러한 불편함을 피하기 위해 암호화를 하지 않으려면 암호 필드를 비워두세요 암호화 작업은 시간이 좀 걸릴 수 있습니다. 그리고 꼭 여러분의 데이터베이스 백업본을 반드시 만들어두세요! 암호화 작업 이전에 한 저장되지 않은 변경 사항도 반영되니 주의하세요. @@ -392,40 +521,50 @@ If any of the other settings were altered for this database file you need to pro Apple NSDate to date - 애플 NSDate 날짜 + Apple NSDate 날짜 Java epoch (milliseconds) to date - 자바 시간(밀리초)를 날짜로 + Java 시간(밀리초)을 날짜로 + .NET DateTime.Ticks to date + .NET DateTime Ticks를 날짜로 + + + Julian day to date 날짜 - + Unix epoch to local time 유닉스 시간(타임스탬프)을 지역 시간으로 - + Date as dd/mm/yyyy 날짜를 dd/mm/yyyy 형태로 - + Lower case 소문자 - + + Binary GUID to text + 바이너리 GUID를 텍스트로 + + + Custom display format must contain a function call applied to %1 사용자 정의 표시 형식은 %1에 적용된 함수 호출을 포함해야 합니다 - + Error in custom display format. Message from database engine: %1 @@ -433,7 +572,7 @@ If any of the other settings were altered for this database file you need to pro %1 - + Custom display format must return only one column but it returned %1. 사용자 지정 표시 형식은 하나의 열만 반환해야 하지만 %1개를 반환했습니다. @@ -448,22 +587,22 @@ If any of the other settings were altered for this database file you need to pro 라운드 수 - + Unix epoch to date 유닉스 시간(타임스탬프)을 날짜로 - + Upper case 대문자 - + Windows DATE to date - 윈도우 날짜 + Windows 날짜 - + Custom 사용자 지정 @@ -475,18 +614,10 @@ If any of the other settings were altered for this database file you need to pro Conditional Format Manager 조건부 서식 관리자 - - &Up - 위로(&U) - - - &Down - 아래로(&D) - This dialog allows creating and editing conditional formats. Each cell style will be selected by the first accomplished condition for that cell data. Conditional formats can be moved up and down, where those at higher rows take precedence over those at lower. Syntax for conditions is the same as for filters and an empty condition applies to all values. - 이 대화상자에서는 조건부 형식을 추가하고 수정할 수 있습니다. 각 셀 스타일은 해당 셀 데이터의 첫번째 조건에 의해 지정됩니다. 조건부 서식은 위/아래로 이동할 수 있으며, 더 높은 행에 있는 형식은 더 낮은 행에 있는 형식보다 우선합니다. 조건 구문은 필터와 동일하며 빈 조건은 모든 값에 대해 적용됩니다. + 이 대화상자에서는 조건부 형식을 추가하고 수정할 수 있습니다. 각 셀 스타일은 해당 셀 데이터의 첫번째 조건에 의해 지정됩니다. 조건부 서식은 위/아래로 이동할 수 있으며, 상위 행에 있는 형식은 하위 행에 있는 형식보다 우선됩니다. 조건 구문은 필터와 동일하며 빈 조건은 모든 값에 대해 적용됩니다. @@ -531,7 +662,7 @@ If any of the other settings were altered for this database file you need to pro Foreground - + 전경색 @@ -541,7 +672,7 @@ If any of the other settings were altered for this database file you need to pro Background - 배경 + 배경색 @@ -551,7 +682,7 @@ If any of the other settings were altered for this database file you need to pro Font - 폰트 + 글꼴 @@ -598,334 +729,271 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - no error - 에러 없음 - - - + Please specify the database name under which you want to access the attached database - 데이터베이스 연결(attach)을 위해 불러올 데이터베이스의 별명을 지정해주세요 + 데이터베이스 연결을 위해 불러올 데이터베이스의 별칭을 지정해주세요 - + Invalid file format 잘못된 파일 포맷입니다 - + Do you want to save the changes made to the database file %1? %1 데이터베이스 파일을 생성하기 위해 변경사항을 저장하겠습니까? - + Exporting database to SQL file... - 데이터베이스를 SQL 파일로 내보내기 중... + 데이터베이스를 SQL 파일로 내보내는 중... - - + + Cancel 취소 - + Executing SQL... - SQL 실행중... + SQL 실행 중... - + Action cancelled. - 실행 취소되었습니다. - - - Error in statement #%1: %2. -Aborting execution. - 구문 에러 #%1: %2. -실행이 취소되었습니다. + 실행이 취소되었습니다. - renameColumn: cannot find table %1. - 필드이름 변경: %1 테이블을 발견할 수 없습니다. + + Do you really want to close this temporary database? All data will be lost. + 이 임시 데이터베이스를 닫을까요? 모든 데이터가 사라집니다. - - This database has already been attached. Its schema name is '%1'. - 이 데이터베이스는 이미 연결되어 있습니다. 스미카 이름은 '%1' 입니다. + + Database didn't close correctly, probably still busy + 데이터베이스가 제대로 닫히지 않았습니다, 아마도 아직 사용 중일 것입니다 - - Do you really want to close this temporary database? All data will be lost. - 이 임시 데이터베이스를 닫을까요? 모든 데이터가 사라집니다. + + Cannot open destination file: '%1' + 대상 파일을 열 수 없습니다.: '%1' - - Database didn't close correctly, probably still busy - + + + Cannot backup to file: '%1'. Message: %2 + 파일로 백업할 수 없습니다.: '%1'. 메시지: %2 - + The database is currently busy: - 이 데이터베이스는 현재 사용중입니다: + 이 데이터베이스는 현재 사용 중입니다: - + Do you want to abort that other operation? - 이 명령을 취소할까요? + 이 명령을 취소하시겠습니까? - - + + No database file opened - 열린 데이터베이스 파일이 없습니다. + 열린 데이터베이스 파일이 없습니다 - - + + Error in statement #%1: %2. Aborting execution%3. - #%1: %2 구문에 에러가 있어 실행을 중단했습니다%3. + #%1: %2 구문에 에러가 있어 실행이 중단되었습니다%3. - - + + and rolling back - 그리고 롤백 합니다 + 그리고 롤백합니다 - + didn't receive any output from %1 - + %1에서 아무런 출력을 받지 못했습니다 - + could not execute command: %1 - + 명령을 실행할 수 없습니다: %1 - + Cannot delete this object - 이 객체를 삭제할 수 없습니다. + 이 객체를 삭제할 수 없습니다 - + Cannot set data on this object 이 객체에는 데이터를 저장할 수 없습니다 - - + + A table with the name '%1' already exists in schema '%2'. - '%1' 이름의 테이블이 이미 스키나 '%2'에 존재합니다. + '%1' 이름의 테이블이 이미 스키마 '%2'에 존재합니다. - + No table with name '%1' exists in schema '%2'. - + 스키마 '%2'에 이름이 '%1'인 테이블이 없습니다. - - + + Cannot find column %1. - + %1 컬럼을 찾을 수 없습니다. - + Creating savepoint failed. DB says: %1 - + 세이브 포인트를 생성하지 못했습니다. DB 메시지: %1 - + Renaming the column failed. DB says: %1 - + 열 이름을 변경하지 못했습니다. DB 메시지: +%1 - - + + Releasing savepoint failed. DB says: %1 - + 세이브 포인트를 해제하지 못했습니다. DB 메시지: %1 - + Creating new table failed. DB says: %1 - + 새 테이블을 생성하지 못했습니다. DB 메시지: %1 - + Copying data to new table failed. DB says: %1 - + 새 테이블에 데이터를 복사하지 못했습니다. DB 메시지: +%1 - + Deleting old table failed. DB says: %1 - + 이전 테이블을 삭제하지 못했습니다. DB 메시지: %1 - + Error renaming table '%1' to '%2'. Message from database engine: %3 - + 테이블 '%1'의 이름을 '%2'(으)로 변경하는 동안 오류가 발생했습니다. +데이터베이스 엔진 메시지: +%3 - + could not get list of db objects: %1 - - - - renameColumn: cannot find column %1. - 필드이름 변경: %1 필드를 발견할 수 없습니다. - - - renameColumn: creating savepoint failed. DB says: %1 - 필드이름 변경: 세이브포인트를 생성하는데 실패했습니다. 데이터베이스 메시지: %1 - - - renameColumn: creating new table failed. DB says: %1 - 필드이름 변경: 새 테이블을 생성하는데 실패했습니다. 데이터베이스 메시지: %1 - - - renameColumn: copying data to new table failed. DB says: -%1 - 필드이름 변경: 새 테이블로 데이터를 복사하는데 실패했습니다. 데이터베이스 메시지: %1 - - - renameColumn: deleting old table failed. DB says: %1 - 필드이름 변경: 이전 테이블을 삭제하는데 실패했습니다. 데이터베이스 메시지: %1 + DB 개체 목록을 가져알 수 없습니다: %1 - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: - 이 테이블에 관련된 몇 개의 객체를 복원하는데 실패했습니다. 이러한 경우는 대부분 몇 개의 필드명이 변경되서 일어났을 가능성이 큽니다. 아래 SQL 구문을 참고하면 직접 수동으로 고쳐서 실행할 수 있을 것입니다: + 이 테이블에 관련된 몇 개의 객체를 복원하는데 실패했습니다. 이러한 경우는 대부분 몇 개의 필드명이 변경되어서 발생 했을 가능성이 큽니다. 아래 SQL 구문을 참고하면 직접 수동으로 고쳐서 실행할 수 있을 것입니다: - renameColumn: releasing savepoint failed. DB says: %1 - 필드이름 변경: 세이브포인트를 해제하는데 실패했습니다. 데이터베이스 메시지: %1 - - - Error renaming table '%1' to '%2'.Message from database engine: -%3 - 테이블명을 '%1'에서 '%2'로 변경하는데 에러가 발생했습니다. 데이베이스 메시지: -%3 - - - ... <string can not be logged, contains binary data> ... - ... <문자열이 바이너리 데이터를 포함하여 로깅될 수 없습니다.> ... - - - + could not get list of databases: %1 데이터베이스 목록을 가져올 수 없습니다: %1 - + Error loading extension: %1 확장기능을 불러오기 에러: %1 - + could not get column information - 컬럼(열) 정보를 가져올 수 없습니다 - - - unknown object type %1 - %1 은(는) 알 수 없는 객체 타입입니다 - - - could not get list of db objects: %1, %2 - 데이터베이스 객체 목록을 가져올 수 없습니다: %1, %2 - - - could not get types - 타입을 얻어올 수 없습니다 - - - didn't receive any output from pragma %1 - pragma %1 에서 출력결과를 받아올 수 없습니다 - - - could not execute pragma command: %1, %2 - pragma 명령을 실행할 수 없습니다: %1, %2 + 열 정보를 가져올 수 없습니다 - + Error setting pragma %1 to %2: %3 - pragma 세팅을 %1에서 %2로 변경하는데 에러: %3 + pragma 설정을 %1에서 %2로 변경하는데 에러: %3 - + File not found. - 파일이 없습니다. + 파일을 찾을 수 없습니다. DbStructureModel - + Name 이름 - + Object 객체 - + Type 타입 - + Schema 스키마 - Browsables (%1) - 찾아보기 (%1) - - - + Database 데이터베이스 - + Browsables 열기 - + All - 모두선택 + 모두 선택 - + Temporary 임시 - + Tables (%1) 테이블 (%1) - + Indices (%1) 인덱스 (%1) - + Views (%1) 뷰 (%1) - + Triggers (%1) 트리거 (%1) @@ -938,282 +1006,237 @@ Message from database engine: 데이터베이스 데이터 값을 수정하기 - + Mode: 모드: - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. - 셀 에디터에서 지원되는 모델들 목록입니다. 현재 셀의 데이터를 보거나 수정기 위한 모드를 선택하세요. + 셀 에디터에서 지원되는 모델들 목록입니다. 현재 셀의 데이터를 보거나 수정하기 위한 모드를 선택하세요. - + RTL Text RTL Text - - + + Image 이미지 - + JSON JSON - + XML XML - - + + Evaluation + + + + + Automatically adjust the editor mode to the loaded data type 불러온 데이터 타입을 에디터 모드에 자동 적용 - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. - 이 체크 버튼은 에디터 모드를 자동으로 변경한하는 기능 키거나 끕니다. 새 셀이 선택되거나 새로운 데이터가 가져와지면 자동 변경 기능이 켜져서 데이터 타입을 인식하여 적절한 모드를 적용합니다. 그 후에 여러분은 모드를 수동으로 변경할 수 있습니다. 만약 셀들을 이동할 때 모드를 직접 변경하고자 한다면, 이 버튼을 off로 변경하세요. + 이 체크 버튼은 에디터 모드를 자동으로 변경하는 기능을 키거나 끕니다. 새 셀이 선택되거나 새로운 데이터가 가져와지면 자동 변경 기능이 켜져서 데이터 타입을 인식하여 적절한 모드를 적용합니다. 그 후에 여러분은 모드를 수동으로 변경할 수 있습니다. 만약 셀들을 이동할 때 모드를 직접 변경하고자 한다면, 이 버튼을 비활성화하세요. - + Auto-switch - 자동변경 + 자동 전환 - The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. - + 텍스트 편집기 모드를 사용하면 저장하기 전에 구문 강조 표시, 자동 서식 지정 및 유효성 검사를 사용하여 JSON 또는 XML 데이터뿐만 아니라 일반 텍스트도 편집할 수 있습니다. +오류는 빨간색 물결 밑줄로 표시됩니다. - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. - + 이 Qt 편집기는 기본 텍스트 편집기에서 지원하지 않는 오른쪽에서 왼쪽으로 쓰는 스크립트에 사용됩니다. 오른쪽에서 왼쪽으로 작성되는 문자가 감지되면 이 편집기 모드가 자동으로 선택됩니다. - + Apply data to cell 셀에 데이터 적용 - + Open preview dialog for printing the data currently stored in the cell 현재 셀에 저장된 데이터에 대한 인쇄 미리보기 대화상자 열기 - + Auto-format: pretty print on loading, compact on saving. 자동포맷: 불러올 때 예쁘게 프린트되고, 저장할 때 용량을 줄입니다. - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. - 활성화되면, 자동포맷 기능이 데이터를 불러올 때 포맷을 지정하여 긴 문장을 여러 행으로 만들고 들여쓰기를 해서 가독성을 올려줍니다. 데이터를 저장할 때는 자동포맷 기능은 개행 문자를 제거하여 데이터를 줄이고 필요없는 공백을 삭제합니다. + 활성화되면, 자동포맷 기능이 데이터를 불러올 때 포맷을 지정하여 긴 문장을 여러 행으로 만들고 들여쓰기를 해서 가독성을 향상합니다. 데이터를 저장할 때는 자동포맷 기능은 개행 문자를 제거하여 데이터를 줄이고 필요 없는 공백을 삭제합니다. - + Word Wrap - 줄 바꾸기 + 개행 - + Wrap lines on word boundaries 단어 경계마다 개행 - - + + Open in default application or browser 기본 응용 프로그램 또는 브라우저에서 열기 - + Open in application 응용 프로그램에서 열기 - + The value is interpreted as a file or URL and opened in the default application or web browser. - + 값은 파일 또는 URL로 해석되며 기본 애플리케이션 또는 웹 브라우저에서 열립니다. - + Save file reference... - + 참조를 파일에 저장... - + Save reference to file - + 파일에 참조 저장 + - Open in external application 외부 프로그램에서 열기 - + Autoformat 자동포맷 - + + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. + +Errors are indicated with a red squiggle underline. + +In the Evaluation mode, entered SQLite expressions are evaluated and the result applied to the cell. + + + + &Export... 내보내기(&E)... - - + + &Import... 가져오기(&I)... - - + + Import from file - 파일로 불러오기 + 파일에서 가져오기 - - + + Opens a file dialog used to import any kind of data to this database cell. - 이 데이터베이스 셀로 데이터를 가져오기 위하여 파일창을 엽니다. + 이 데이터베이스 셀로 데이터를 가져오기 위하여 대화상자를 엽니다. - + Export to file 파일로 내보내기 - + Opens a file dialog used to export the contents of this database cell to a file. - 파일로 이 데이터베이스 셀의 내용을 내보내기 위한 파일창을 엽니다. + 이 데이터베이스 셀의 내용을 파일로 내보내는데 사용되는 대화 상자를 엽니다. - - + Print... - - Open preview dialog for printing displayed image - 표시된 이미지에 대한 인쇄 미리보기창을 엽니다 - - - - + Ctrl+P - + Open preview dialog for printing displayed text - 텍스트를 프린트하기 위한 인쇄 미리보기창을 엽니다. + 출력된 텍스트를 인쇄하기 위한 인쇄 미리보기 창을 엽니다 - + Copy Hex and ASCII Hex와 ASCII를 복사합니다 - + Copy selected hexadecimal and ASCII columns to the clipboard 선택된 16진수와 ASCII 필드를 클립보드로 복사합니다 - + Ctrl+Shift+C - Import text - 문자열 가져오기 - - - Opens a file dialog used to import text to this database cell. - 이 데이터베이스 데이터 값으로 문자열을 가져오기 위하여 파일 대화상자를 엽니다. - - - &Import - 가져오기(&I) - - - Export text - 문자열 내보내기 - - - Opens a file dialog used to export the contents of this database cell to a text file. - 이 데이터베이스 데이터 값을 문자열 파일로 내보내기 위하여 대화상자를 엽니다. - - - &Export - 내보내기(&E) - - - Set this cell to NULL - 셀을 NULL 만들기 - - - + Set as &NULL - &NULL로 만들기 - - - This editor mode lets you edit JSON or XML data with syntax highlighting, automatic formatting and validation before saving. - -Errors are indicated with a red squiggle underline. - 이 데이터 모드는 저장하기 전에 여러분이 JSON 또는 XML 데이터를 문법강조, 자동포맷팅, 검증을 할 수 있습니다. - -에러는 빨간 밑줄로 표시됩니다. - - - Apply data to cell [Ctrl+Return] - 데이터를 셀에 적용하기 [컨트롤+엔터] + NULL로 만들기(&N) - + This button saves the changes performed in the cell editor to the database cell. - 이 버튼은 데이터 셀에 셀 에디터의 변경 사항을 적용하여 저장하기 위한 버튼입니다. + 이 버튼은 데이터 셀에 셀 에디터의 변경 사항을 적용하여 저장하는 버튼입니다. - + Apply 적용 - + Text 문자열 - + Binary 바이너리 - Clear cell data - 데이터 값 지우기 - - - + Erases the contents of the cell - 데이터 값을 삭제합니다 - - - &Clear - 지우기(&C) - - - <html><head/><body><p><span style=" font-weight:600; color:#c00000;">Warning: Editing binary content in text mode may result in corrupted data!</span></p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#c00000;">주의: 텍스트 모드에서 바이너리 콘텐츠를 수정하면 데이터가 깨질 수 있습니다!</span></p></body></html> + 셀의 데이터 값을 삭제합니다 @@ -1221,185 +1244,139 @@ Errors are indicated with a red squiggle underline. 이 영역은 이 데이터베이스 데이터 값에 대한 정보를 보여줍니다 - + Type of data currently in cell - 데이터 값 크기 + 현재 셀에 있는 데이터 타입 - + Size of data currently in table - 테이블에서 현재 데이터 크기 - - - Choose a file - 파일을 선택하세요 - - - Text files(*.txt);;Image files(%1);;All files(*) - 문자열 파일(*.txt);;이미지 파일(%1);;모든 파일(*) + 현재 테이블에 있는 데이터 크기 - + Choose a filename to export data - 내보내기 할 데이터의 파일이름을 선택하세요 - - - Text files(*.txt);;All files(*) - 문자열 파일(*.txt);;모든 파일(*) - - - Image data can't be viewed with the text editor - 텍스트 편집기에서는 이미지 데이터를 볼 수 없습니다 - - - Binary data can't be viewed with the text editor - 텍스트 편집기에서는 바이너리 데이터를 볼 수 없습니다 + 내보내기 할 데이터의 파일 이름을 선택하세요 - - + + Image data can't be viewed in this mode. 이미지 데이터는 이 모드에서는 볼 수 없습니다. - - + + Try switching to Image or Binary mode. 이미지나 바이너리 모드로 바꿔보세요. - - + + Binary data can't be viewed in this mode. 바이너리 데이터는 이 모드에서 볼 수 없습니다. - - + + Try switching to Binary mode. 바이너리 모드로 바꿔보세요. - Text files (*.txt) - 텍스트 파일(*.txt) - - - JSON files (*.json) - JSON 파일(*.json) - - - XML files (*.xml) - XML 파일들(*.xml) - - - - + + Image files (%1) 이미지 파일 (%1) - + Binary files (*.bin) 바이너리 파일 (*.bin) - All files (*) - 모든 파일 (*) - - - + Choose a file to import - 가져올 파일을 고르세요 + 가져올 파일을 선택하세요 - - %1 Image - %1 이미지 + + Unsaved data in the cell editor + - SVG files (*.svg) - SVG 파일 (*.svg) + + The cell editor contains data not yet applied to the database. +Do you want to apply the edited data? + - Hex dump files (*.txt) - Hex 덤프 파일 (*.txt) + + %1 Image + %1 이미지 - + Invalid data for this mode - 이 모드에 맞지않은 데이터 + 이 모드에 맞지 않는 데이터 - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? 이 셀에는 올바르지 않은 %1 데이터를 포함하고 있습니다. 이유: %2. 이 셀을 정말로 적용할까요? - - - + + + %n character(s) %n 자 - + Type of data currently in cell: %1 Image 현재 데이터 타입: %1 이미지 - + %1x%2 pixel(s) %1x%2 픽셀 - + Type of data currently in cell: NULL 현재 데이터 타입: 널 - + Type of data currently in cell: Valid JSON - 현재 데이터 타입: 유효한(valid) JSON + 현재 데이터 타입: 유효한 JSON - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. - 현재 데이터는 임시 파일에 저장되었으며 기본 프로그램으로 열립니다. 이제 파일을 편집하고 준비되면 저장된 새 데이터를 셀 편집기에 적용하거나 변경 사항을 취소할 수 있습니다. + + Couldn't save file: %1. + 파일을 저장할 수 없습니다: %1. - Type of data currently in cell: Null - 현재 데이터 타입: 널 + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + 데이터는 임시 파일에 저장되었으며 기본 응용 프로그램으로 열렸습니다. 이제 파일을 편집할 수 있으며 작업이 완료되면 저장된 새 데이터를 셀에 적용하거나 변경사항을 취소할 수 있습니다. - - + + Type of data currently in cell: Text / Numeric 현재 데이터 타입: 문자열 / 숫자 - - %n char(s) - - %n 문자 - - - - Type of data currently in cell: Image - 현재 데이터 타입: 이미지 - - - %1x%2 pixel - %1x%2 픽셀 - - + Type of data currently in cell: Binary 현재 데이터 타입: 바이너리 - - + + %n byte(s) %n 바이트 @@ -1408,31 +1385,15 @@ Errors are indicated with a red squiggle underline. EditIndexDialog - - Create New Index - 새 인덱스 생성하기 - &Name 이름(&N) - - &Columns - 필드(&C) - - - Column - 필드 - - - Use in Index - 인덱스 사용 - Order - 정렬순서 + 정렬 순서 @@ -1457,17 +1418,17 @@ Errors are indicated with a red squiggle underline. Partial inde&x clause - 부분(Partial) 인덱스(&x) 절 + 부분(Partial) 인덱스절(&X) Colu&mns - 컬럼(&m) + 열(&M) Table column - 테이블 컬럼 + 테이블 열 @@ -1477,7 +1438,7 @@ Errors are indicated with a red squiggle underline. Add a new expression column to the index. Expression columns contain SQL expression rather than column names. - 인덱스에 새 표현식 컬럼을 추가하세요. 표현식 컬럼은 컬럼 이름 대신 SQL?표현식이 들어갑니다. + 인덱스에 새 표현식 컬럼을 추가하세요. 표현식 컬럼은 컬럼 이름 대신 SQL 표현식이 들어갑니다. @@ -1485,13 +1446,13 @@ Errors are indicated with a red squiggle underline. 인덱스 컬럼 - + Deleting the old index failed: %1 이전 인덱스를 삭제하는데 실패했습니다: %1 - + Creating the index failed: %1 인덱스 생성에 실패했습니다: @@ -1515,10 +1476,6 @@ Errors are indicated with a red squiggle underline. Advanced 고급 - - Database schema - 데이터베이스 스키마 - Make this a 'WITHOUT rowid' table. Setting this flag requires a field of type INTEGER with the primary key flag set and the auto increment flag unset. @@ -1529,35 +1486,11 @@ Errors are indicated with a red squiggle underline. Without Rowid Rowid 필드 없음 - - Set this to create a temporary table that is deleted when closing the database. - 데이터베이스를 닫을 때 삭제되는 임시 테이블을 만들기위해서는 이 값을 설정하세요. - - - Temporary table - 임시 테이블 - Fields 필드 - - Add field - 필드 추가 - - - Remove field - 필드 삭제 - - - Move field up - 필드를 위로 올리기 - - - Move field down - 필드를 아래로 내리기 - Database sche&ma @@ -1594,252 +1527,214 @@ Errors are indicated with a red squiggle underline. 최하단으로 내리기 - - + + Name 필드명 - - + + Type 타입 - + NN NN - + Not null Not null - + PK PK - - Primary key - 주 키(Primary key) + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + <html><head/><body><p><img src=":/icons/field_key"/> 기본 키</p></body></html> - + AI AI - + Autoincrement - 자동증가(Autoincrement) + 자동 증가(Autoincrement) - + U U - - - + + + Unique 유니크(Unique) - + Default 기본값 - + Default value 기본값 - - - + + + Check - 제약 + 체크 - + Check constraint 제약조건(Check constraint) - + Collation 콜레이션 - - - + + + Foreign Key 외래키 - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + <html><head/><body><p><img src=":/icons/field_fk"/> 외래 키</p></body></html> + + + Constraints 제약 조건 - + Add constraint 제약 조건 추가 - + Remove constraint 제약 조건 삭제 - + Columns 필드 - + SQL SQL - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>이 테이블 정의 중에 파서가 이해할 수 없는 부분이 있습니다. 이 테이블을 수정하거나 저장하면 문제가 생길 수 있습니다.</p></body></html> + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>이 테이블 정의 중에 파서가 해석할 수 없는 부분이 있습니다. 이 테이블을 수정하거나 저장하면 문제가 발생할 수 있습니다.</p></body></html> - - + + Primary Key 기본 키 - + Add a primary key constraint 기본 키 제약 조건 추가 - + Add a foreign key constraint 외래 키 제약 조건 추가 - + Add a unique constraint - Unique를 '고유'라고 번역할 수 있지만 주 사용자층이 일반적으로 '유니크 제약 조건'이라 표현하기에 혼동 방지를 위해 번역하지 않았습니다. - Unique 제약 조건 추가 + 유니크 제약 조건 추가 - + Add a check constraint - Check를 '점검' 또는 '확인'이라고 번역할 수 있지만 주 사용자층이 일반적으로 '체크 제약 조건'이라 표현하기에 혼동 방지를 위해 번역하지 않았습니다. - Check 제약 조건 추가 + 체크 제약 조건 추가 - + Error creating table. Message from database engine: %1 테이블 생성 에러. 데이터베이스 메시지: %1 - + There already is a field with that name. Please rename it first or choose a different name for this field. - 이미 다른 필드에서 사용중인 이름입니다. 다른 이름을 사용하거나 사용중인 필드 이름을 바꾸세요. - - - This column is referenced in a foreign key in table %1, column %2 and thus its name cannot be changed. - 이 컬럼은 %1 테이블에서 외래키로 사용중이므로 이름을 변경할 수 없습니다. + 이미 다른 필드에서 사용중인 이름입니다. 다른 이름을 사용하거나 사용 중인 필드 이름을 바꾸세요. - - + + There can only be one primary key for each table. Please modify the existing primary key instead. 각 테이블마다 하나의 기본 키만 있을 수 있습니다. 기존 기본 키를 대신 수정하세요. - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. 이 필드는 테이블 %1 에 있는 외래키에 참조되어 있기 때문에 이름을 변경할 수 없습니다. - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. - 이 필드 값이 NULL로 되어있는는 레코드가 최소한 하나 이상 존재합니다. 이러한 상태에서는 변경이 불가능하니 테이블의 데이터를 먼저 수정해서 NULL 값을 삭제주세요. + 이 필드 값이 NULL로 되어 있는 레코드가 최소한 하나 이상 존재합니다. 이러한 상태에서는 변경이 불가능하니 테이블의 데이터를 먼저 수정해서 NULL 값을 삭제주세요. - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. - 이 필드 값이 숫자가 아닌 값으로 되어있는는 레코드가 최소한 하나 이상 존재합니다. 이러한 상태에서는 변경이 불가능하니 테이블의 데이터 값을 먼저 변경해주세요. + 이 필드 값이 숫자가 아닌 값으로 되어 있는 레코드가 최소 하나 이상 존재합니다. 이러한 상태에서는 변경이 불가능하니 테이블의 데이터 값을 먼저 변경해주세요. - + Column '%1' has duplicate data. %1 열에 중복된 데이터가 있습니다. - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. 이로 인해 유니크 플래그를 설정할 수 없습니다. 중복 데이터를 제거하여야 유니크 플래그를 설정할 수 있습니다. - Column '%1' has no unique data. - - 컬럼 '%1'은(는) 유니크 데이터가 없습니다. - - - Setting the rowid column for the table failed. Error message: -%1 - 테이블의 rowid 필드를 지정하는데 실패했습니다. 에러 메시지: - - - Changing the table schema failed. Error message: -%1 - 테이블 스키마 변경에 실패했습니다. 에러 메시지: -%1 - - - Setting the temporary flag for the table failed. Error message: -%1 - 테이블에 임시 플래그를 지정하는데 실패했습니다. 에러 메시지: - - - Column `%1` has no unique data. - - 필드 '%1'이(가) 중복되는 값을 가지고 있어 유니크로 변경할 수 없습니다. - - - - This makes it impossible to set this flag. Please change the table data first. - 이러한 상태에서는 변경이 불가능하니 테이블의 데이터 값을 먼저 변경해주세요. - - - Modifying this column failed. Error returned from database: -%1 - 이 필드를 수정하는데 실패했습니다. 데이터베이스가 반환된 에러: -%1 - - - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. - 정말로 '%1' 필드를 삭제하시려는 건가요? + 정말로 '%1' 필드를 삭제하시겠습니까? 이 필드에 저장된 모든 데이터가 같이 삭제됩니다. - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled 'rowid 사용하지 않음'을 사용하기 위해서는 아래 두 가지 사항을 만족시키는 필드를 추가해주세요: - - 주 키(Primary Key) 사용 - - 자동증가(Auto Increment) 사용하지 않음 + - 기본 키(Primary Key) 사용 + - 자동 증가(Auto Increment) 사용하지 않음 @@ -1849,18 +1744,6 @@ All data currently stored in this field will be lost. Export data as CSV 데이터를 CSV 파일로 내보내기 - - &Table(s) - 테이블(&T) - - - &Column names in first line - 첫 행에 필드명 포함(&C) - - - Field &separator - 필드 구분자(&S) - Tab&le(s) @@ -1869,7 +1752,7 @@ All data currently stored in this field will be lost. Colu&mn names in first line - 첫 행이 필드이름입니다.(&m) + 첫 행이 필드 이름(&M) @@ -1926,65 +1809,57 @@ All data currently stored in this field will be lost. Windows: CR+LF (\r\n) - 윈도우: CR+LF (\r\n) + Windows: CR+LF (\r\n) Unix: LF (\n) - 유닉스: LF (\n) + Unix: LF (\n) Pretty print - 프린트하기 좋은 스타일 + 인쇄하기 좋은 스타일 - - + + Could not open output file: %1 내보낸 파일을 열 수 없습니다: %1 - - + + Choose a filename to export data 데이터를 내보낼 파일 이름을 정하세요 - Text files(*.csv *.txt) - 문자열 파일(*.csv *.txt) - - - + Export data as JSON JSON으로 내보내기 - + exporting CSV CSV로 내보내기 - + exporting JSON JSON으로 내보내기 - Text files(*.json *.js *.txt) - 텍스트 파일(*.json *.js *.txt) - - - + Please select at least 1 table. 최소한 테이블 1개는 선택하세요. - + Choose a directory - 디렉토리를 선택하세요 + 디렉터리를 선택하세요 - + Export completed. 내보내기가 완료되었습니다. @@ -1996,10 +1871,6 @@ All data currently stored in this field will be lost. Export SQL... SQL로 내보내기... - - &Table(s) - 테이블(&T) - Tab&le(s) @@ -2043,47 +1914,35 @@ All data currently stored in this field will be lost. Keep old schema (CREATE TABLE IF NOT EXISTS) - 이전 스키마 유지하기 (CREATE TABLE IF NOT EXISTS)) + 이전 스키마 유지하기 (CREATE TABLE IF NOT EXISTS) Overwrite old schema (DROP TABLE, then CREATE TABLE) 이전 스키마 덮어쓰기 (DROP TABLE, then CREATE TABLE) - - New INSERT INTO syntax (multiple rows in VALUES) - 새 INSERT INTO 문법 사용(VALUES에서 다중 행 사용) - Export schema only 스키마만 내보내기 - Please select at least 1 table. - 최소한 1 개의 테이블을 . - - - + Please select at least one table. 최소한 한 개의 테이블을 선택해주세요. - + Choose a filename to export 내보내기 할 파일명을 고르세요 - Text files(*.sql *.txt) - 텍스트 파일(*.sql *.txt) - - - + Export completed. 내보내기가 완료되었습니다. - + Export cancelled or failed. 내보내기가 취소되었거나 실패했습니다. @@ -2092,7 +1951,7 @@ All data currently stored in this field will be lost. ExtendedScintilla - + Ctrl+H @@ -2103,22 +1962,22 @@ All data currently stored in this field will be lost. - + Ctrl+P - + Find... 찾기... - + Find and Replace... 검색과 바꾸기... - + Print... 인쇄하기... @@ -2126,139 +1985,132 @@ All data currently stored in this field will be lost. ExtendedTableWidget - The content of clipboard is bigger than the range selected. -Do you want to insert it anyway? - 클립보드의 내용이 선택범위보다 큽니다. 그래도 추가하시겠습니까? - - - + Use as Exact Filter 정확한 필터로 적용하기 - + Containing 포함하는 - + Not containing 포함하지 않는 - + Not equal to 같지 않은 - + Greater than 초과 - + Less than 미만 - + Greater or equal 이상 - + Less or equal 이하 - + Between this and... - 이 값과 사이에(between)... + 이 값과 사이에... - + Regular expression 정규 표현식 - + Edit Conditional Formats... 조건부 서식 편집... - + Set to NULL NULL로 변경하기 - + + Cut + 잘라내기 + + + Copy 복사하기 - + Copy with Headers 헤더 포함 복사하기 - + Copy as SQL SQL로 복사하기 - + Paste 붙여넣기 - + Print... 인쇄하기... - + Use in Filter Expression 필터 표현식 적용하기 - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? 클립보드의 내용이 선택한 범위보다 큽니다. 어쨌든 추가할까요? - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. - + <p>모든 데이터가 로드되지 않았습니다. <b>모든 행을 선택하기 전에 모든 데이터를 로드하시겠습니까?</b><p><p><b> 아니요</b>를 선택하면 더 이상 데이터가 로드되지 않고 선택이 수행되지 않습니다.<br/><b>예</b> 를 선택하면 데이터가 로드되는 동안 시간이 다소 걸릴 수 있지만 선택이 완료됩니다.</p>경고: 모든 데이터를 로드하려면 큰 테이블을 위해 많은 양의 메모리가 필요할 수 있습니다. - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. 선택 사항을 NULL로 설정할 수 없습니다. 열 %1에 NOT NULL 제약 조건이 있습니다. - - FileDialog - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - SQLite 데이터베이스 파일(*.db *.sqlite *.sqlite3 *.db3);;모든 파일 (*) - - FileExtensionManager @@ -2310,30 +2162,6 @@ Do you want to insert it anyway? Filter 필터 - - These input fields allow you to perform quick filters in the currently selected table. -By default, the rows containing the input text are filtered out. -The following operators are also supported: -% Wildcard -> Greater than -< Less than ->= Equal to or greater -<= Equal to or less -= Equal to: exact match -<> Unequal: exact inverse match -x~y Range: values between x and y - 이 입력 필드는 현재 선택된 테이블에 빠르게 필터를 적용할 수 있게 해줍니다. -기본적으로 입력 박스에 들어가있는 조건에 맞는 행들이 표시됩니다. -아래와 같은 연산자들을 사용할 수 있습니다: -% 와일드카드 -> 초과 -< 미만 ->= 이상 -<= 이하 -= 같음: 정확히 일치 -<> 같지않음: 정확히 불일치 -x~y 범위: x와 y값 사이 값 - These input fields allow you to perform quick filters in the currently selected table. @@ -2384,7 +2212,7 @@ x~y 범위: x와 y값 사이 값 What's This? - 이 프로그램은? + 이건 무엇인가요? @@ -2457,7 +2285,7 @@ x~y 범위: x와 y값 사이 값 Find and Replace - 검색과 바꾸기 + 찾기와 바꾸기 @@ -2482,27 +2310,27 @@ x~y 범위: x와 y값 사이 값 When enabled, the search continues from the other end when it reaches one end of the page - + 활성화되면 페이지의 한쪽 끝에 도달했을 때 다른 쪽 끝에서 검색이 계속됩니다 &Wrap around - + 전체 페이지 검색(&W) When set, the search goes backwards from cursor position, otherwise it goes forward - 선택하면 커서 위치 뒤로 검색합니다. 그렇지 않으면 앞으로 검색합니다 + 활성화되면 커서 위치 뒤로 검색합니다. 그렇지 않으면 앞으로 검색합니다 Search &backwards - 뒤로 검색(&B) + 뒤로 찾기(&B) <html><head/><body><p>When checked, the pattern to find is searched only in the current selection.</p></body></html> - <html><head/><body><p>선택하면 현재 선택 항목에서만 찾습니다.</p></body></html> + <html><head/><body><p>할성화되면 현재 선택 항목에서만 찾습니다.</p></body></html> @@ -2512,7 +2340,7 @@ x~y 범위: x와 y값 사이 값 <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> - <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> + <html><head/><body><p>선택하면 찾을 패턴이 UNIX 정규 표현식으로 해석됩니다. <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>를 참고하십시오.</p></body></html> @@ -2522,7 +2350,7 @@ x~y 범위: x와 y값 사이 값 Find the next occurrence from the cursor position and in the direction set by "Search backwards" - 커서 위치에서 "뒤로 검색"에서 설정한 방향에 맞추어 다음 항목을 찾습니다 + 커서 위치에서 "뒤로 찾기"에서 설정한 방향에 따라 다음 항목을 찾습니다 @@ -2603,6 +2431,39 @@ x~y 범위: x와 y값 사이 값 외부 키(ON UPDATE, ON DELETE 등.) + + ImageViewer + + + Image Viewer + 이미지 뷰어 + + + + Reset the scaling to match the original size of the image. + 이미지의 원래 크기와 일치하도록 배율을 재설정합니다. + + + + Set the scaling to match the size of the viewport. + 뷰포트(Viewport)의 크기와 일치하도록 배열을 설정합니다. + + + + Print... + 인쇄... + + + + Open preview dialog for printing displayed image + 표시된 이미지에 대한 인쇄 미리보기 창을 엽니다 + + + + Ctrl+P + + + ImportCsvDialog @@ -2610,14 +2471,10 @@ x~y 범위: x와 y값 사이 값 Import CSV file CSV 파일 가져오기 - - &Table name - 테이블 이름(&T) - Table na&me - 테이블 이름(&m) + 테이블 이름(&M) @@ -2641,7 +2498,7 @@ x~y 범위: x와 y값 사이 값 - + Tab @@ -2705,7 +2562,7 @@ x~y 범위: x와 y값 사이 값 Trim fields? - 필드 앞뒤 공백 제거(트림)? + 필드 앞뒤 공백 제거? @@ -2720,17 +2577,17 @@ x~y 범위: x와 y값 사이 값 When importing an empty value from the CSV file into an existing table with a default value for this column, that default value is inserted. Activate this option to insert an empty value instead. - 필드에 기본 값이 지정되어 있는 기존에 존재하는 테이블에 CSV 파일에서 빈 값을 가져온다면 기본 값이 대신 들어갑니다. 빈 값 대신에 기본 값을 집어넣으려면 이 옵션을 활성화하세요. + CSV 파일의 빈 값을 이 열의 기본 값이 있는 기존 테이블로 가져올 때 해당 기본값이 삽입됩니다. 대신 빈 값을 삽입하려면 이 옵션을 활성화하세요. Ignore default &values - 기본 값(&v)을 무시 + 기본 값을 무시(&V) Activate this option to stop the import when trying to import an empty value into a NOT NULL column without a default value. - 빈 값을 기본 값이 없는 NOT NLL 필드로 가져오기를 할 때 이 옵션을 활성화하세요. + 기본 값 없이 비어 있는 값을 NOT NULL 열로 가져오려고 할 때 가져오기를 중단하려면 이 옵션을 활성화하세요. @@ -2749,101 +2606,92 @@ x~y 범위: x와 y값 사이 값 - When importing into an existing table with a primary key, unique constraints or a unique index there is a chance for a conflict. This option allows you to select a strategy for that case: By default the import is aborted and rolled back but you can also choose to ignore and not import conflicting rows or to replace the existing row in the table. + Use local number conventions + + + + + Use decimal and thousands separators according to the system locale. - + + When importing into an existing table with a primary key, unique constraints or a unique index there is a chance for a conflict. This option allows you to select a strategy for that case: By default the import is aborted and rolled back but you can also choose to ignore and not import conflicting rows or to replace the existing row in the table. + 기본 키, 고유 제약 조건 또는 고유 인덱스를 사용하여 기존 테이블로 가져올 때 충돌 가능성이 있습니다. 이 옵션을 사용하면 해당 경우에 대한 대처 방안을 선택할 수 있습니다. 기본적으로는 가져오기가 중단되고 롤백되지만 충돌하는 행을 무시하고 가져오지 않거나 테이블의 기존 행을 바꾸도록 선택할 수도 있습니다. + + + Abort import 가져오기 취소 - + Ignore row 열 무시 - + Replace existing row 기존 행 바꾸기 - + Conflict strategy 충돌 발생 시 - - + + Deselect All - 모두선택 해제 + 모두 선택 해제 - + Match Similar 비슷한거 찾기 - + Select All 모두 선택 - Inserting data... - 데이터 추가하는 중... - - - Cancel - 취소 - - - There is already a table of that name and an import into an existing table is only possible if the number of columns match. - 가져오려는 테이블의 이름이 같고 필드의 수가 같은 경우에만 가능합니다. - - - There is already a table of that name. Do you want to import the data into it? - 같은 이름의 테이블이 이미 존재합니다. 데이터만이라도 가져올까요? - - - Import completed - 가져오기가 완료되었습니다 - - - + There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. 이미 '%1'이라는 이름을 가진 테이블이 존재하며 기존 테이블로 데이터를 가져오는 것은 필드의 수가 같을 때만 가능합니다. - + There is already a table named '%1'. Do you want to import the data into it? 이미 '%1'라는 이름의 테이블이 존재합니다. 데이터를 이 테이블로 가져올까요? - + Creating restore point failed: %1 복원 포인트를 생성하는데 실패했습니다: %1 - + Creating the table failed: %1 테이블 생성에 실패했습니다: %1 - + importing CSV CSV 가져오기 - - Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. - 파일 '%1' 가져오는데 %2ms가 걸렸습니다. 이 중에서 행 기능을 적용하는데 %3ms가 걸렸습니다. + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + 예기치 않은 파일의 끝(EOF)입니다. 올바른 따옴표를 구성했는지, 파일 형식이 잘못되지 않았는지 확인하세요. - Missing field for record %1 - 레코드에 %1 필드가 빠져있습니다 + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. + 파일 '%1' 가져오는데 %2ms가 걸렸습니다. 이 중에서 행 기능을 적용하는데 %3ms가 걸렸습니다. - + Inserting row failed: %1 행 추가에 실패했습니다: %1 @@ -2856,970 +2704,413 @@ x~y 범위: x와 y값 사이 값 DB Browser for SQLite - Database &Structure - 데이터베이스 구조(&S) - - - + toolBar1 toolBar1 - &Browse Data - 데이터 보기(&B) + + Opens the SQLCipher FAQ in a browser window + SQLCipher FAQ를 봅니다 - Table: - 테이블: + + Export one or more table(s) to a JSON file + 테이블을 JSON 파일로 내보냅니다 - Select a table to browse data - 보려는 데이터가 있는 테이블을 선택하세요 + + Find + 찾기 - Use this list to select a table to be displayed in the database view - 리스트에서 테이블을 선택하면 데이터베이스 뷰에서 볼 수 있습니다 + + Find or replace + 검색과 바꾸기 - Refresh the data in the selected table. - 선택된 테이블의 데이터를 다시 불러옵니다. + + Print text from current SQL editor tab + 현재 SQL 편집기 탭의 텍스트 인쇄 - This button refreshes the data in the currently selected table. - 이 버튼은 현재 선택된 테이블의 데이터를 다시 불러옵니다. + + Print the structure of the opened database + 현재 열려 있는 데이터베이스의 구조 인쇄 - Scroll one page upwards - 한 페이지 위로 스크롤합니다. + + Un/comment block of SQL code + SQL 코드 블럭 주석 처리/해제 - <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - <html><head/><body><p>위 테이블 뷰에서 레코드를 한 페이지 앞으로 가려면 이 버튼을 클릭하세요.</p></body></html> - - - Scroll one page downwards - 한 페이지 아래로 스크롤합니다. - - - <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - <html><head/><body><p>위 테이블 뷰에서 레코드를 한 페이지 뒤로 가려면 이 버튼을 클릭하세요.</p></body></html> - - - SQLCipher &FAQ... - SQLCipher &FAQ... - - - - Opens the SQLCipher FAQ in a browser window - SQLCipher FAQ를 봅니다 - - - Table(s) to JSON... - 테이블을 JSON으로 내보내기... - - - - Export one or more table(s) to a JSON file - 테이블을 JSON 파일로 내보냅니다 - - - Save to Remote - 원격 저장하기 - - - Refresh - 새로고침 - - - F5 - - - - - Find - 찾기 - - - - Find or replace - 검색과 바꾸기 - - - - Print text from current SQL editor tab - 현재 SQL 편집기 탭의 텍스트 인쇄 - - - - Print the structure of the opened database - 현재 열려 있는 데이터베이스의 구조 인쇄 - - - - Un/comment block of SQL code - - - - + Un/comment block - + 블럭 주석 처리/해제 - + Comment or uncomment current line or selected block of code 현재 줄 또는 선택된 블럭을 주석 처리 또는 해제합니다 - + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. 선택된 줄을 주석 처리 또는 해제합니다. 선택 항목이 없는 경우 현재 줄을 처리합니다. 모든 블럭은 첫번째 줄을 통해 토글 할 수 있습니다. - + Ctrl+/ - + Stop SQL execution SQL 실행 중단 - + Stop execution 실행 중단 - + Stop the currently running SQL script 현재 실행 중인 SQL 스크립트 중단 - Clear all filters - 모든 필터 지우기 - - - &Table: - 테이블(&T): - - - + Execute all/selected SQL 전체 또는 선택한 SQL 실행 - Insert a new record in the current table - 현재 테이블에 새 레코드를 추가합니다 - - - This button creates a new, empty record in the database - 이 버튼은 새로운 비어있는 레코드를 데이터베이스에 생성합니다 - - - New Record - 새 레코드 - - - Delete the current record - 현재 레코드 삭제하기 - - - This button deletes the record currently selected in the database - 이 버튼은 데이터베이스에서 현재 선택되어있는 레코드를 삭제합니다 - - - Delete Record - 레코드 삭제 - - - This is the database view. You can double-click any record to edit its contents in the cell editor window. - 여기는 데이터베이스 뷰입니다. 레코드를 더블클릭하면 편집기창에서 값을 수정할 수 있습니다. - - - <html><head/><body><p>Scroll to the beginning</p></body></html> - <html><head/><body><p>첫 페이지로 갑니다.</p></body></html> - - - <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - <html><head/><body><p>테이블 뷰 맨 위로 가기 위해서는 버튼을 클릭하세요.</p></body></html> - - - |< - |< - - - Scroll 100 records upwards - <html><head/><body><p>100 레코드 스크롤 올리기</p></body></html> - - - <html><head/><body><p>Clicking this button navigates 100 records upwards in the table view above.</p></body></html> - <html><head/><body><p>테이블 뷰에서 100 레코드 위로 스크롤하려면 이 버튼을 클릭하세요.</p></body></html> - - - < - < - - - 0 - 0 of 0 - 0 - 0 of 0 - - - <html><head/><body><p>Scroll 100 records downwards</p></body></html> - <html><head/><body><p>100 레코드 스크롤 내리기</p></body></html> - - - <html><head/><body><p>Clicking this button navigates 100 records downwards in the table view above.</p></body></html> - <html><head/><body><p>테이블뷰에서 100 레코드 아래로 스크롤하려면 이 버튼을 클릭하세요.</p></body></html> - - - > - > - - - Scroll to the end - <html><head/><body><p>마지막 페이지로 갑니다.</p></body></html> - - - <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> - <html><head/><body><p>테이블 뷰 맨 아래로 가기 위해서는 이 버튼을 클릭하세요.</p></body></html> - - - >| - >| - - - <html><head/><body><p>Click here to jump to the specified record</p></body></html> - <html><head/><body><p>특정 레코드로 점프하려면 여기를 클릭하세요</p></body></html> - - - <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - <html><head/><body><p>이 버튼은 특정 위치의 레코드 넘버로 가기 위해서 사용합니다.</p></body></html> - - - Go to: - 특정 레코드 행으로 가기: - - - Enter record number to browse - 레코드 행 번호를 입력하세요 - - - Type a record number in this area and click the Go to: button to display the record in the database view - 레코드 행번호를 입력하고 '특정 레코드 행으로 가기:' 버튼을 클릭하면 데이터베이스 뷰에 레코드가 표시됩니다 - - - 1 - 1 - - - Edit &Pragmas - 프라그마 수정(&P) - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">자동 정리(Auto Vacuum)</span></a></p></body></html> - - - None - 사용하지 않음 - - - Full - 모두(Vacuum Full) - - - Incremental - 증분(Incremental) - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">자동 인덱스</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">체크포인트 Full FSYNC</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Foreign Keys</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">외래키</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">제약조건 무시</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">저널 모드</span></a></p></body></html> - - - Delete - 삭제 - - - Truncate - 비우기 - - - Persist - Persist - - - Memory - 메모리 - - - WAL - WAL - - - Off - 사용안함 - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">저널 크기 제한</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Locking Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">잠금(Locking) 모드</span></a></p></body></html> - - - Normal - 일반 - - - Exclusive - 독점(Exclusive) - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">최대 페이지 수</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">페이지 크기</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">재귀 트리거</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">보안(Secure) 삭제</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">동기화(Synchronous)</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">임시 저장소(Temp Store)</span></a></p></body></html> - - - Default - 기본 - - - File - 파일 - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">사용자 버전</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL Auto Checkpoint</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL 자동 체크포인트</span></a></p></body></html> - - - &Open Database Read Only... - 읽기 전용으로 데이터베이스 열기(&O)... - - - + Open an existing database file in read only mode 읽기 전용 모드로 존재하는 데이터베이스 파일을 엽니다 - Unlock view editing - 뷰 수정 락 해제하기 - - - This unlocks the current view for editing. However, you will need appropriate triggers for editing. - 수정을 위하여 현재 뷰의 락을 해제합니다. 하지만 수정을 위해서는 적절한 트리거가 필요할 것입니다. - - - E&xecute SQL - SQL 실행하기(&X) - - - + &File 파일(&F) - - &Import - 가져오기(&I) - - - - &Export - 내보내기(&E) - - - Remote - 원격 - - - - &Edit - 편집(&E) - - - - &View - 뷰(&V) - - - - &Help - 도움말(&H) - - - - &Tools - 도구(&T) - - - - DB Toolbar - DB 툴바 - - - - Edit Database &Cell - 데이터베이스 셀 수정하기(&C) - - - - Error Log - 에러 로그 - - - - This button clears the contents of the SQL logs - 이 버튼은 SQL 로그 내용을 지웁니다 - - - - This panel lets you examine a log of all SQL commands issued by the application or by yourself - 이 패널에서 응용 프로그램 또는 사용자가 실행한 모든 SQL 명령의 기록을 확인할 수 있습니다 - - - - DB Sche&ma - DB 스키마 - - - - This is the structure of the opened database. -You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. -You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. - - - - - - &Remote - 원격 - - - Execute SQL [F5, Ctrl+Return, Ctrl+R] - SQL 실행하기 [F5, Ctrl+Return, Ctrl+R] - - - &Load extension - 확장기능 불러오기(&L) - - - Execute current line [Shift+F5] - 현재 행 실행하기 [Shift+F5] - - - - This button executes the SQL statement present in the current editor line - - - - - Shift+F5 - - - - - Sa&ve Project - 프로젝트 저장하기(&V) - - - Open &Project - 프로젝트 열기(&P) - - - &Set Encryption - 암호화하기(&S) - - - Edit display format - 표시 형식 변경하기 - - - Edit the display format of the data in this column - 이 컬럼에 있는 데이터의 표시 형식을 수정합니다 - - - Show rowid column - 컬럼의 rowid 표시하기 - - - Toggle the visibility of the rowid column - rowid 컬럼을 표시하거나 감춥니다 - - - Set encoding - 인코딩 지정하기 - - - Change the encoding of the text in the table cells - 테이블 셀 안의 텍스트 인코딩을 변경합니다 - - - Set encoding for all tables - 모든 테이블의 인코딩 지정하기 - - - Change the default encoding assumed for all tables in the database - 데이터베이스 안에 있는 모든 테이블의 기본 인코딩을 변경합니다 - - - Duplicate record - 레코드 복제하기 - - - SQL Log - SQL 로그 - - - &Show SQL submitted by - SQL 보기(&S) by - - - - User - 사용자 - - - - Application - 애플리케이션 - - - - &Clear - 지우기(&C) - - - Plot - 플롯 - - - Columns - 필드 - - - X - X - - - Y - Y - - - _ - _ - - - Line type: - 행 타입: - - - Line - - - - StepLeft - 왼쪽으로 - - - StepRight - 오른쪽으로 - - - StepCenter - 중앙으로 - - - Impulse - 임펄스 + + &Import + 가져오기(&I) - Point shape: - 포인트 모양: + + &Export + 내보내기(&E) - Cross - 십자가 + + &Edit + 편집(&E) - Plus - 더하기 + + &View + 보기(&V) - Circle - + + &Help + 도움말(&H) - Disc - 디스크 + + &Tools + 도구(&T) - Square - 정사각형 + + DB Toolbar + DB 툴바 - Diamond - 마름모 + + Edit Database &Cell + 데이터베이스 셀 수정하기(&C) - Star - + + Error Log + 에러 로그 - Triangle - 삼각형 + + This button clears the contents of the SQL logs + 이 버튼은 SQL 로그 내용을 지웁니다 - TriangleInverted - 역삼각형 + + This panel lets you examine a log of all SQL commands issued by the application or by yourself + 이 패널에서 응용 프로그램 또는 사용자가 실행한 모든 SQL 명령의 기록을 확인할 수 있습니다 - CrossSquare - 크로스스퀘어 + + DB Sche&ma + DB 스키마(&M) - PlusSquare - 플러스스퀘어 + + This is the structure of the opened database. +You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. +You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. + + 이것은 열린 데이터베이스의 구조입니다. +이름 열에서 여러 개체 이름을 끌어서 SQL 편집기에 놓을 수 있으며 컨텍스트 메뉴를 사용하여 끌어서 놓은 이름의 속성을 변경할 수 있습니다. +이것은 SQL 문을 작성하는데 도움이 됩니다. +스키마 열에서 SQL 문을 끌어서 SQL 편집기나 다른 응용 프로그램에 놓을 수도 있습니다. + - CrossCircle - 크로스써클 + + &Remote + 원격(&R) - PlusCircle - 플러스써클 + + This button executes the SQL statement present in the current editor line + 이 버튼은 현재 편집기 행에 있는 SQL 문을 실행합니다 - Peace - 피스 + + Shift+F5 + - <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - <html><head/><body><p>현재 플롯 저장하기...</p><p>파일 포맷 확장자를 고르세요 (png, jpg, pdf, bmp)</p></body></html> + + Sa&ve Project + 프로젝트 저장하기(&V) - Save current plot... - 현재 플롯 저장하기... + + User + 사용자 - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - 모든 데이터를 불러옵니다. 이 기능은 부분만 가져오는 메카니즘으로 인하여 테이블에서 모든 데이터가 가져오지 않았을 때에만 작동합니다. + + Application + 애플리케이션 - DB Schema - DB 스키마 + + &Clear + 지우기(&C) - + &New Database... 새 데이터베이스(&N)... - - + + Create a new database file 새 데이터베이스 파일을 생성합니다 - + This option is used to create a new database file. 이 옵션은 새 데이터베이스 파일을 생성하려고 할 때 사용합니다. - + Ctrl+N - - + + &Open Database... 데이터베이스 열기(&O)... - - - - - + + + + + Open an existing database file 기존 데이터베이스 파일을 엽니다 - - - + + + This option is used to open an existing database file. 이 옵션은 기존 데이터베이스 파일을 열 때 사용합니다. - + Ctrl+O - + &Close Database 데이터베이스 닫기(&C) - + This button closes the connection to the currently open database file - + 이 버튼은 현재 열려 있는 데이터베이스 파일에 대한 연결을 닫습니다 - - + + Ctrl+W - Revert Changes - 변경사항 되돌리기 - - - - + + Revert database to last saved state 마지막 저장된 상태로 데이터베이스를 되돌립니다 - + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. 이 옵션은 현재 데이터베이스를 마지막 저장된 상태로 되돌릴 때 사용합니다. 저장 이후에 이루어진 모든 변경 사항을 되돌립니다. - Write Changes - 변경사항 반영하기 - - - - + + Write changes to the database file 변경 사항을 데이터베이스 파일에 반영합니다 - + This option is used to save changes to the database file. 이 옵션은 데이터베이스 파일에 변경 사항을 저장하기 위해 사용됩니다. - + Ctrl+S - Compact Database - 데이터베이스 크기 줄이기 - - - + Compact the database file, removing space wasted by deleted records - 삭제된 레코드 등 낭비된 공간을 삭제하여 데이터베이스 파일 크기를 줄입니다 + 삭제된 레코드로 낭비되는 공간을 제거하여 데이터베이스 파일 압축 - - + + Compact the database file, removing space wasted by deleted records. - 삭제된 레코드 등 낭비된 공간을 삭제하여 데이터베이스 파일 크기를 줄입니다. + 삭제된 레코드로 낭비되는 공간을 제거하여 데이터베이스 파일 압축. - + E&xit 종료(&X) - + Ctrl+Q - Database from SQL file... - SQL 파일에서 데이터베이스 가져오기... - - - + Import data from an .sql dump text file into a new or existing database. .sql 덤프 문자열 파일에서 데이터를 새 데이터베이스나 기존 데이터베이스로 가져옵니다. - + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. 이 옵션은 .sql 덤프 문자열 파일에서 데이터를 새 데이터베이스나 기존 데이터베이스로 가져옵니다. SQL 덤프 파일은 MySQL이나 PostgreSQL 등 대부분의 데이터베이스 엔진에서 생성할 수 있습니다. - Table from CSV file... - 테이블을 CSV 파일로 저장하기... - - - + Open a wizard that lets you import data from a comma separated text file into a database table. - 마법사를 사용하여 CSV 파일(콤마로 필드가 나누어진 문자열 파일)에서 데이터베이스 테이블로 데이터를 가져올 수 있습니다. + 마법사를 사용하여 CSV 파일(쉼로 필드가 나누어진 문자열 파일)에서 데이터베이스 테이블로 데이터를 가져올 수 있습니다. - + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. - 마법사를 사용하여 CSV 파일(콤마로 필드가 나누어진 문자열 파일)에서 데이터베이스 테이블로 데이터를 가져올 수 있습니다. CSV 파일은 대부분의 데이터베이스와 스프래드시트 애플리케이션(엑셀 등)에서 생성할 수 있습니다. - - - Database to SQL file... - 데이터베이스를 SQL 파일로 저장하기... + 마법사를 사용하여 CSV 파일(쉼표로 필드가 나누어진 문자열 파일)에서 데이터베이스 테이블로 데이터를 가져올 수 있습니다. CSV 파일은 대부분의 데이터베이스와 스프레드시트 애플리케이션에서 생성할 수 있습니다. - + Export a database to a .sql dump text file. 데이터베이스를 .sql 덤프 문자열 파일로 내보내기. - + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. - 이 옵션은 데이터베이스를 .sql 덤프 문자열 파일로 내부낼 수 있습니다. SQL 덤프 파일은 MySQL과 PostgreSQL 등 대부분의 데이터베이스 엔진에서 데이터베이스를 재생성하기 위한 모든 필요한 데이터를 포함하고 있습니다. - - - Table(s) as CSV file... - 테이블을 CSV 파일로 저장하기... + 이 옵션은 데이터베이스를 .sql 덤프 문자열 파일로 내보낼 수 있습니다. SQL 덤프 파일은 MySQL과 PostgreSQL 등 대부분의 데이터베이스 엔진에서 데이터베이스를 재생성하기 위한 모든 필요한 데이터를 포함하고 있습니다. - + Export a database table as a comma separated text file. - 데이터베이스 테이블을 CSV(콤마로 분리된 문자열 파일)로 내보내기. + 데이터베이스 테이블을 CSV(쉼표로 분리된 문자열 파일)로 내보내기. - + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. - 데이터베이스 테이블을 CSV(콤마로 분리된 문자열 파일)로 내보내기. 다른 데이터베이스나 스프래드시트 애플리케이션(엑셀 등)에서 가져와서 사용할 수 있습니다. - - - Create Table... - 테이블 생성... + 데이터베이스 테이블을 CSV(쉼표로 분리된 문자열 파일)로 내보내기. 다른 데이터베이스나 스프레드시트 애플리케이션에서 가져와서 사용할 수 있습니다. - + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database 테이블 생성 마법사를 사용하여 데이터베이스에서 새 테이블을 위한 이름과 필드를 정의할 수 있습니다 - Delete Table... - 테이블을 삭제... - - - - + + Delete Table 테이블 삭제하기 - + Open the Delete Table wizard, where you can select a database table to be dropped. 테이블 삭제 마법사를 사용하여 선택한 데이터베이스 테이블을 삭제할 수 있습니다. - Modify Table... - 테이블을 수정... - - - + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. 테이블 편집 마법사를 사용하여 기존 테이블의 이름을 변경하거나 테이블의 필드를 추가, 삭제, 필드명 변경 및 타입 변경을 할 수 있습니다. - Create Index... - 인덱스 생성하기... - - - + Open the Create Index wizard, where it is possible to define a new index on an existing database table. 인덱스 생성 마법사를 사용하여 기존 데이터베이스 테이블에 새 인덱스를 정의할 수 있습니다. - + &Preferences... 환경설정(&P)... - - + + Open the preferences window. - 환경설정창을 엽니다. + 환경설정 창을 엽니다. - + &DB Toolbar - DB 툴바 + DB 툴바(&D) - + Shows or hides the Database toolbar. 데이터베이스 툴바를 보이거나 숨깁니다. - What's This? - 이 프로그램은? - - - + Shift+F1 - &About... - 정보(&A)... - - - + &Recently opened 최근 열었던 파일들(&R) - - Open &tab - 탭 열기(&T) - - - + Ctrl+T @@ -3835,7 +3126,9 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed This is the structure of the opened database. You can drag SQL statements from an object row and drop them into other applications or into another instance of 'DB Browser for SQLite'. - + 이것은 열려있는 데이터베이스의 구조입니다. +개체 행에서 SQL 문을 끌어서 다른 응용 프로그램이나 'DB Browser for SQLite'의 다른 인스턴스에 놓을 수 있습니다. + @@ -3845,989 +3138,975 @@ You can drag SQL statements from an object row and drop them into other applicat 데이터 보기 - ... - ... - - - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;테이블 뷰의 끝으로 갈려면 버튼을 클릭하세요.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - - + + Edit Pragmas This has to be equal to the tab title in all the main tabs Pragma 수정 - + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. - 경고: 이 프라그마는 읽기전용이 아니며 이 값은 추측된 값입니다. pragma를 작성하면 SQLite에서 제공하는 재정의 된 LIKE를 덮어 쓸 수 있습니다. + 경고: 이 pragma는 읽기 전용이 아니며 이 값은 추측된 값입니다. pragma를 작성하면 SQLite에서 제공하는 재정의 된 LIKE를 덮어 쓸 수 있습니다. - - + + Execute SQL This has to be equal to the tab title in all the main tabs SQL 실행 - + + &Recent Files + 최근 파일 열기(&R) + + + + Ctrl+F4 - + Compact &Database... - 데이터베이스 크기 줄이기(&D)... + 데이터베이스 압축(&D)... - + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. 이 버튼은 현재 선택되어 있는 SQL 명령문을 실행합니다. 만약 선택 항목이 없으면 모든 SQL 명령문이 실행됩니다. - + &Load Extension... 확장도구 불러오기(&L)... - + Execute line 줄 실행 - + &Wiki 위키(&W) - + F1 - + Bug &Report... 버그 보고(&R)... - + Feature Re&quest... 기능 제안(&Q)... - + Web&site - 웹사이트(&S) + 웹 사이트(&S) - + &Donate on Patreon... 후원하기(&D)... - + Open &Project... 프로젝트 열기(&P)... - + &Attach Database... 데이터베이스 연결(&A)... - - + + Add another database file to the current database connection - 현재 데이터베이스 연결에 다른 데이터베이스를 추가합니다 + 현재 데이터베이스 연결에 다른 데이터베이스 연결을 추가합니다 - + This button lets you add another database file to the current database connection - + 이 버튼을 사용하면 현재 데이터베이스 연결에 다른 데이터베이스 파일을 추가할 수 있습니다 - + &Set Encryption... 암호화 설정(&S)... - + SQLCipher &FAQ - SQLCipher &FAQ + SQLCipher FAQ(&F) - + Table(&s) to JSON... 테이블을 JSON으로 내보내기(&S)... - + Browse Table 테이블 탐색 - + Open Data&base Read Only... 읽기 전용으로 데이터베이스 열기(&B)... - + Recent Files + 최근 연 파일 + + + + New &tab + 새 탭(&T) + + + + Open SQL file(s) + SQL 파일 열기 + + + + This button opens files containing SQL statements and loads them in new editor tabs + 이 버튼은 SQL 문이 포함된 파일을 열고 새 편집기 탭에 로드합니다 + + + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file - + 이 버튼을 사용하면 열린 DB와 관련된 모든 설정을 DB Browser for SQLite 프로젝트 파일로 저장할 수 있습니다 - + This button lets you open a DB Browser for SQLite project file - + 이 버튼을 사용하면 DB Browser for SQLite 프로젝트 파일을 열 수 있습니다 - + Ctrl+Shift+O - + Save results 결과 저장 - + Save the results view 결과 뷰 저장 - + This button lets you save the results of the last executed query 이 버튼은 마지막으로 실행한 쿼리의 결과값을 저장합니다 - - + + Find text in SQL editor SQL 편집기에서 텍스트 찾기 - + This button opens the search bar of the editor 이 버튼은 편집기의 검색창을 엽니다 - + Ctrl+F - - + + Find or replace text in SQL editor SQL 편집기에서 텍스트 찾아 바꾸기 - + This button opens the find/replace dialog for the current editor tab 이 버튼은 현재 열려 있는 편집기의 찾기 바꾸기 대화상자를 엽니다 - + Ctrl+H - + Export to &CSV CSV로 내보내기(&C) - + + Export to &JSON + &JSON으로 내보내기 + + + Save as &view 뷰로 저장하기(&V) - + Save as view 다른 이름의 뷰로 저장하기 - + Shows or hides the Project toolbar. 프로젝트 툴바를 표시하거나 숨깁니다. - + Extra DB Toolbar - + 확장 DB 툴바 - + New In-&Memory Database In-Memory 데이터베이스 생성(&M) - + Drag && Drop Qualified Names - + 정규화된 이름을 끌어서 놓기 - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor - + 개체를 끌어서 편집기에 놓을 때 정규화된 이름(예: "Table", "Field")을 사용합니다 - + Drag && Drop Enquoted Names - + 인용된 이름을 끌어서 놓기 - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - + 개체를 끌어서 편집기에 놓을 때 이스케이프된 식별자(예: "Table1")을 사용합니다 - + &Integrity Check 무결성 검사(&I) - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. - + 열린 데이터베이스에 대해 integrity_check pragma를 실행하고 SQL 실행 탭에 결과를 반환합니다. 이 pragma는 전체 데이터베이스의 무결성 검사를 수행합니다. - + &Foreign-Key Check 외래키 검사(&F) - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - + 열린 데이터베이스에 대해 foreign_key_check pragma를 실행하고 SQL 실행 탭에 결과를 반환합니다 - + &Quick Integrity Check 빠른 무결성 검사(&Q) - + Run a quick integrity check over the open DB 열린 데이터베이스 대해 빠른 무결성 검사 실행 - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. - + 열린 데이터베이스에 대해 quick_check pragma를 실행하고 SQL 실행 탭에 결과를 반환합니다. 이 명령은 대부분의 PRAGMA integrity_check 검사를 수행하지만 훨씬 빠르게 실행됩니다. - + &Optimize 최적화(&O) - + Attempt to optimize the database 데이터베이스 최적화 - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. - + 열린 데이터베이스에 대해 최적화 pragma를 실행합니다. 이 pragma는 향후 쿼리의 성능을 향상시키는 최적화를 수행할 수 있습니다. - - + + Print 인쇄하기 - + &Save Project As... 다른 이름으로 프로젝트 저장(&S)... - - - + + + Save the project in a file selected in a dialog - + 대화상자에서 선택한 파일에 프로젝트 저장 - + Save A&ll 모두 저장(&l) - - - + + + Save DB file, project file and opened SQL files - + DB 파일, 프로젝트 파일 및 열린 SQL 파일 저장 - + Ctrl+Shift+S - - Open a dialog for printing the text in the current SQL editor tab - + + Close Pro&ject + 프로젝트 닫기(&J) - - Open a dialog for printing the structure of the opened database + + + Close project and database files and return to the initial state + 프로젝트 및 프로젝트 파일을 닫고 초기 상태로 돌아갑니다 + + + + + Ctrl+Shift+W - Edit Database Cell - 데이터베이스 셀 수정 + + Table from CSV data in Clipboard... + 클립보드에 저장된 CSV 데이터에서 테이블 가져오기... + + + + This treats the current clipboard contents as a CSV file and opens the same import wizard that is used for importing CSV data from a file. + 현재 클립보드에 저장된 내용을 CSV파일로 간주하여 파일로부터 CSV데이터를 불러올때 사용되는 불러오기 마법사를 엽니다. + + + + Show &Row Counts + 행 개수 보기 (&R) + + + + This shows the number of rows for each table and view in the database. + 데이터베이스의 각 테이블과 뷰에 저장된 행의 개수를 표시합니다. + + + + Save Database &As... + 다른 이름으로 저장하기...(&A) + + + + Save the current database as a different file + 현재 데이터베이스를 다른 파일로 저장하기 + + + + Ctrl+Shift+F4 + + + + + + Detach Database + 데이터베이스 분리 + + + + + Detach database file attached to the current database connection + 현재 데이터베이스 연결에 연결되어 있는 데이터베이스 파일 분리 + + + + Open a dialog for printing the text in the current SQL editor tab + 현재 SQL 편집기 탭에서 텍스트를 인쇄하기 위한 대화상자를 엽니다 + + + + Open a dialog for printing the structure of the opened database + 열린 데이터베이스의 구조를 인쇄하기 위한 대화상자를 엽니다 - + SQL &Log - SQL 로그 + SQL 로그(&L) - + Show S&QL submitted by - 실행된 SQL 보기(&) by + ~에 의해 실행된 SQL 보기(&Q) - + &Plot - 플롯 + 플롯(&P) - - + + Project Toolbar 프로젝트 툴바 - + Extra DB toolbar - + 확장 DB 툴바 - - - + + + Close the current database file 현재 데이터베이스 파일 닫기 - + &Revert Changes 변경사항 취소하기(&R) - + &Write Changes 변경사항 저장하기(&W) - Compact &Database - 데이터베이스 용량 줄이기(&D) - - - + &Database from SQL file... SQL 파일로부터 데이터베이스 가져오기(&D)... - + &Table from CSV file... CSV 파일에서 테이블 가져오기(&T)... - + &Database to SQL file... 데이터베이스를 SQL로 내보내기(&D)... - + &Table(s) as CSV file... 테이블을 CSV 파일로 내보내기(&T)... - + &Create Table... 테이블 생성하기(&C)... - + &Delete Table... 테이블 삭제하기(&D)... - + &Modify Table... 테이블 수정하기(&M)... - + Create &Index... 인덱스 생성하기(&I)... - + W&hat's This? - 이건 무엇인가요? + 이건 무엇인가요?(&H) - + &About 정보(&A) - + This button opens a new tab for the SQL editor 이 버튼은 SQL 편집기의 새로운 탭을 엽니다 - + &Execute SQL SQL 실행하기(&E) - Execute SQL [F5, Ctrl+Return] - SQL 실행하기 [F5, Ctrl+엔터] - - - - Open SQL file - SQL 파일 열기 - - - - This button opens a file containing SQL statements and loads it in a new editor tab - - - - - - + + + Save SQL file SQL 파일 저장하기 - Load extension - 확장기능 불러오기 - - - - + + Execute current line 현재 행 실행하기 - Execute current line [Ctrl+E] - 현재 행 실행하기 [Ctrl+E] - - - + Ctrl+E - + Export as CSV file CSV 파일로 내보내기 - + Export table as comma separated values file 테이블을 CSV 파일로 내보내기 - &Wiki... - 위키(&W)... - - - Bug &report... - 버그 신고(&R)... - - - Web&site... - 웹사이트(&S)... - - - Save Project - 프로젝트 저장하기 - - - - + + Save the current session to a file 현재 세션을 파일로 저장하기 - Open Project - 프로젝트 열기 - - - - + + Load a working session from a file 파일에서 작업 세션 불러오기 - &Attach Database - 데이터베이스 연결하기(&Attach) - - - Set Encryption - 암호화 - - - - + + Save SQL file as - SQL 파일 다름이름으로 저장하기 + SQL 파일 다름 이름으로 저장하기 - + This button saves the content of the current SQL editor tab to a file 이 버튼은 현재 SQL 편집기의 내용을 파일로 저장합니다 - + &Browse Table 테이블 보기(&B) - + Copy Create statement 생성 구문 복사하기 - + Copy the CREATE statement of the item to the clipboard 항목의 생성 구문을 클립보드에 복사합니다 - + Ctrl+Return - + Ctrl+L - - + + Ctrl+P - + Ctrl+D - + Ctrl+I - + Encrypted 암호화됨 - + Read only - 읽기전용 + 읽기 전용 - + Database file is read only. Editing the database is disabled. - 데이터베이스 파일이 읽기 전용입니다. 데이터베이스 수정기능을 사용할 수 없습니다. + 데이터베이스 파일이 읽기 전용입니다. 데이터베이스 수정 기능이 비활성화됩니다. - + Database encoding 데이터베이스 인코딩 - + Database is encrypted using SQLCipher - 데이터베이스는 SQLCipher를 사용해서 암호화됩니다 + 데이터베이스는 SQLCipher를 통해 암호화됩니다 - - + + Choose a database file 데이터베이스 파일을 선택하세요 - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - SQLite 데이터베이스 파일(*.db *.sqlite *.sqlite3 *.db3);;모든 파일 (*) - - - Invalid file format. - 올바르지 않은 파일 포맷입니다. - - - - - + + + Choose a filename to save under - 저장하려는 파일명을 고르세요 - - - Error adding record: - - 레코드 추가 에러: - - - Error deleting record: -%1 - 레코드 추가 에러: -%1 - - - Please select a record first - 레코드를 먼저 선택하세요 - - - %1 - %2 of %3 - %1 - %2 of %3 - - - There is no database opened. Please open or create a new database file. - 데이터베이스가 열려있지 않습니다. 데이터베이스를 열던가 새 데이터베이스 파일을 생성하세요. - - - Are you sure you want to delete the %1 '%2'? -All data associated with the %1 will be lost. - %1 '%2'를 정말로 삭제하나요? -%1와 관련된 모든 데이터가 삭제됩니다. - - - Error: could not delete the %1. Message from database engine: -%2 - 에러: %1을(를) 삭제할 수 없습니다. 메시지: -%2 - - - There is no database opened. - 열려있는 데이터베이스가 없습니다. - - - %1 Rows returned from: %3 (took %2ms) - %3에서 %1 행이 리턴되었습니다.(%2ms 걸림) - - - Error executing query: %1 - 쿼리 실행 에러: %1 - - - Query executed successfully: %1 (took %2ms) - 쿼리가 성공적으로 실행되었습니다: %1 (%2ms 걸림) - - - %1 rows returned in %2ms from: %3 - %3에서 %2ms의 시간이 걸려서 %1 행이 리턴되었습니다 - - - , %1 rows affected - , %1 행이 영향받았습니다 - - - Query executed successfully: %1 (took %2ms%3) - 질의가 성공적으로 실행되었습니다: %1 (%2ms%3 걸렸습니다.) - - - Choose a text file - 문자열 파일을 고르세요 - - - Text files(*.csv *.txt);;All files(*) - 문자열 파일(*.csv *.txt);;모든 파일(*) - - - Import completed - 가져오기가 완료되었습니다 + 저장하려는 파일명을 선택하세요 - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 - 데이터베이스 파일을 저장할 때 에러가 발생했습니다. 이 말은 모든 변경사항들이 데이터베이스에 저장되지 못했음을 의미합니다. 다음에 나오는 에러를 먼저 해결하기 바랍니다. - + 데이터베이스 파일을 저장하던 중 에러가 발생했습니다. 이 말은 모든 변경사항들이 데이터베이스에 저장되지 못했음을 의미합니다. 다음에 나오는 에러를 먼저 해결하세요. %1 - + Are you sure you want to undo all changes made to the database file '%1' since the last save? 정말로 데이터베이스 파일 '%1'의 모든 변경 사항을 마지막 저장된 상태로 되돌립니까? - + Choose a file to import - 가져올 파일을 고르세요 + 가져올 파일을 선택하세요 - + &%1 %2%3 &%1 %2%3 - + (read only) (읽기 전용) - + Open Database or Project 데이터베이스 또는 프로젝트 열기 - + Attach Database... 데이터베이스 연결... - + Import CSV file(s)... CSV 파일 가져오기... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. - + 드롭된 파일에 적용할 작업을 선택합니다. <br/>참고: '가져오기'만 두 개 이상의 파일을 처리합니다. - + Do you want to save the changes made to SQL tabs in the project file '%1'? '%1' 프로젝트 파일에 SQL 탭을 추가하기 위해 변경사항을 저장하시겠습니까? - + Text files(*.sql *.txt);;All files(*) 문자열 파일(*.sql *.txt);;모든 파일(*) - + Do you want to create a new database file to hold the imported data? If you answer no we will attempt to import the data in the SQL file to the current database. - 데이터를 가져와서 새 데이터베이스 파일을 생성하고 싶은가요? + 데이터를 가져와서 새 데이터베이스 파일을 생성하고 싶은신가요? 아니라면 SQL 파일의 데이터를 현재 데이터베이스로 가져오기를 할 것입니다. - - Close current SQL tab - 현재 SQL 탭 닫기 - - - + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? 아직 SQL 명령문이 실행되는 중입니다. 데이터베이스를 닫으면 실행이 중단되어 데이터베이스가 일관성이 없어질 수 있습니다. 정말로 데이터베이스를 닫으시겠습니까? - + Do you want to save the changes made to the project file '%1'? %1 데이터베이스 파일을 생성하기 위해 변경사항을 저장하시겠습니까? - + File %1 already exists. Please choose a different name. - 파일 %1이 이미 존재합니다. 다른 파일명을 고르세요. + 파일 %1이 이미 존재합니다. 다른 파일명을 선택하세요. - + Error importing data: %1 데이터 가져오기 에러: %1 - + Import completed. 가져오기가 완료되었습니다. - + Delete View 뷰 삭제하기 - + Modify View 뷰 수정하기 - + Delete Trigger 트리거 삭제하기 - + Modify Trigger 트리거 수정하기 - + Delete Index 인덱스 삭제하기 - + Modify Index 인덱스 수정하기 - + Modify Table 테이블 수정하기 - &%1 %2 - &%1 %2 - - - + Do you want to save the changes made to SQL tabs in a new project file? 새 프로젝트 파일에 SQL 탭을 추가하기 위해 변경사항을 저장하시겠습니까? - + Do you want to save the changes made to the SQL file %1? %1 SQL 파일을 생성하기 위해 변경사항을 저장하시겠습니까? - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? - 이 탭의 명령문은 아직 실행되는 중입니다. 탭을 닫으면 실행이 중단되어 데이터베이스가 일관성이 없어질 수 있습니다. 정말로 탭을 닫으시겠습니까? - - - + Could not find resource file: %1 리소스 파일을 찾을 수 없습니다: %1 - + Choose a project file to open 불러올 프로젝트 파일을 선택하세요 - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - 이 프로젝트 파일은 DB Browser for SQLite 3.10 이하 버전을 사용하여 작성되었기 때문에 이전 파일 형식을 사용하고 있습니다. 이 파일 형식을 불러오는 것은 아직은 완벽하게 지원되지만 나중에 이전 형식에 대한 지원이 중단될 수 있으므로 당신의 모든 프로젝트 파일을 새 파일 형식으로 변환하는 것을 권장합니다. 파일을 열고 다시 저장하여 파일을 변환할 수 있습니다. - - - + Could not open project file for writing. Reason: %1 - 작성 모드로 프로젝트 파일을 열 수 없습니다. + 쓰기 모드로 프로젝트 파일을 열 수 없습니다. 원인: %1 - Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - 이 뷰에서 수정을 활성화하기 위하여 pseudo-primary key를 입력하시기 바랍니다. 이것은 뷰에서 유일한 이름이어야 합니다. - - - + Busy (%1) - + 사용 중 (%1) - + Setting PRAGMA values will commit your current transaction. Are you sure? PRAGMA 설정을 변경하려면 여러분의 현재 트랜잭션을 커밋해야합니다. 동의하십니까? - + + Ctrl+Tab + + + + + Ctrl+Shift+Tab + + + + + Ctrl+PgUp + + + + + Clear List + 목록 지우기 + + + + Window Layout + 창 레이아웃 + + + Reset Window Layout 창 레이아웃 초기화 - + Alt+0 - + + Simplify Window Layout + 창 레이아웃 단순화 + + + + Shift+Alt+0 + + + + + Dock Windows at Bottom + 하단에 창 고정 + + + + Dock Windows at Left Side + 좌측에 창 고정 + + + + Dock Windows at Top + 상단에 창 고정 + + + The database is currenctly busy. 이 데이터베이스는 현재 사용 중입니다. - + Click here to interrupt the currently running query. 여기를 눌러 현재 실행 중인 쿼리를 강제 중단합니다. - + + Ctrl+Alt+W + + + + Could not open database file. Reason: %1 데이터베이스 파일을 열 수 없습니다. 원인: %1 - + In-Memory database In-Memory 데이터베이스 - + + Choose a database file to save under + 저장하려는 파일명을 선택하세요 + + + + Error while saving the database to the new file. + 데이터베이스를 새 파일에 저장할 때 오류가 발생했습니다. + + + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. 정말로 테이블 '%1'을 삭제하시겠습니까? 테이블의 모든 데이터가 삭제됩니다. - + Are you sure you want to delete the view '%1'? 정말로 '%1' 뷰를 삭제할까요? - + Are you sure you want to delete the trigger '%1'? 정말로 '%1' 트리거를 삭제할까요? - + Are you sure you want to delete the index '%1'? 정말로 '%1' 인덱스를 삭제할까요? - + Error: could not delete the table. 에러: 테이블을 삭제할 수 없습니다. - + Error: could not delete the view. 에러: 뷰를 삭제할 수 없습니다. - + Error: could not delete the trigger. 에러: 트리거를 삭제할 수 없습니다. - + Error: could not delete the index. 에러: 인덱스를 삭제할 수 없습니다. - + Message from database engine: %1 데이터베이스 엔진 메시지: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? 'pending'의 뜻이 보류입니다만, 여기서는 작업 중이던이 더 맞다고 판단했습니다. @@ -4835,285 +4114,273 @@ Are you sure you want to save the database? 데이터베이스를 저장하시겠습니까? - + + Edit View %1 + 뷰 편집 %1 + + + + Edit Trigger %1 + 트리거 편집 %1 + + + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. 이미 SQL 명령문을 실행하였습니다. 현재 명령문을 대신 실행하기 위해 기존 실행을 중단하시겠습니까? 이로 인해 데이터베이스가 일관성이 없는 상태가 될 수 있습니다. - + -- EXECUTING SELECTION IN '%1' -- -- '%1의 선택 항목 실행 -- - + -- EXECUTING LINE IN '%1' -- - + --'%1'에서 라인 실행 중 +-- - + -- EXECUTING ALL IN '%1' -- -- '%1'로부터 전체 실행 -- - - + + At line %1: %1번째 줄: - + Result: %1 결과: %1 - + Result: %2 결과: %2 - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? - PRAGMA 값을 지정하지 않으면 현재 트랜잭션에 DB파일 축소작업(Vacuum)이 커밋됩니다. 진행할까요? + PRAGMA 값을 지정하지 않으면 현재 트랜잭션에 DB 파일 청소 작업(Vacuum)이 커밋됩니다. 진행할까요? + + + + Opened '%1' in read-only mode from recent file list + 최근 파일 목록에서 읽기 전용 모드로 '%1'을(를) 열었습니다 + + + + Opened '%1' from recent file list + 최근 파일 목록에서 '%1'을(를) 열었습니다 + + + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + %1 탭의 문이 여전히 실행 중입니다. 탭을 닫으면 실행이 중단됩니다. 이로 인해 데이터베이스가 일관성이 없는 상태가 될 수 있습니다. 정말로 탭을 닫으시겠습니까? + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + 이 프로젝트 파일은 DB Browser for SQLite 버전 3.10 이하를 사용하여 생성되었기 때문에 이전 파일 형식을 사용하고 있습니다. 이 파일 형식을 로드하는 것은 더 이상 완전히 지원되지 않습니다. 완벽하게 로드하려면 DB Browser for SQLite 버전 3.12를 사용하여 새 파일 형식으로 변환하세요. + + + + Yes. Don't ask again + 예. 다시 묻지 않습니다 + + + + This action will open a new SQL tab with the following statements for you to edit and run: + 이 작업을 수행하면 편집하거나 실행할 수 있는 다음 명령문이 포함된 새 SQL 탭이 열립니다: - + Rename Tab 탭 이름 변경 - + Duplicate Tab 탭 복제 - + Close Tab 탭 닫기 - + Opening '%1'... '%1' 여는 중... - + There was an error opening '%1'... '%1'을 여는 중 에러가 발생했습니다... - + Value is not a valid URL or filename: %1 올바른 URL 또는 파일 이름이 아닙니다: %1 - Execution aborted by user - 사용자에 의해서 실행이 취소되었습니다 - - - + %1 rows returned in %2ms - %2ms의 시간이 걸려서 %1 행이 리턴되었습니다 + %2ms의 시간이 걸려서 %1 행이 반환되었습니다 - + Choose text files 텍스트 파일 선택 - + Import completed. Some foreign key constraints are violated. Please fix them before saving. - 불러오기가 완료되었습니다. 일부 외래 키의 제약 조건이 위반되었습니다. 저장 하기 전에 수정하십시오. + 가져오기가 완료되었습니다. 일부 외래 키의 제약 조건이 위반되었습니다. 저장 하기 전에 수정하십시오. - + Select SQL file to open 열 SQL 파일을 선택하세요 - Couldn't read file: %1. - 파일을 읽을 수 없습니다: %1. - - - Couldn't save file: %1. - 파일을 저장할 수 없습니다: %1. - - - + Select file name 파일 이름을 선택하세요 - + Select extension file 파일 확장자를 선택하세요 - Extensions(*.so *.dll);;All files(*) - 확장기능 파일들(*.so *.dll);;모든 파일(*) - - - + Extension successfully loaded. 확장기능을 성공적으로 불러왔습니다. - + Error loading extension: %1 - 확장기능을 불러오기 에러: %1 + 확장기능 불러오기 에러: %1 - - + + Don't show again 다시 보지 않기 - + New version available. 이용 가능한 새 버전이 있습니다. - + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. 이용 가능한 새 버전이 있습니다 (%1.%2.%3).<br/><br/><a href='%4'>%4</a>에서 다운로드하세요. - + Project saved to file '%1' '%1' 파일로 프로젝트가 저장되었습니다 - + Collation needed! Proceed? 콜레이션이 필요합니다! 진행할까요? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! - 이 데이터베이스의 테이블은 이 애플리케이션에서 잘 알지못하는 특별한 함수 '%1'가 필요합니다. + 이 데이터베이스의 테이블은 이 애플리케이션에서 잘 알지 못하는 특별한 함수 '%1'가 필요합니다. 이대로 계속 진행할 수는 있습니다만 여러분의 데이터베이스에 나쁜 영향이 갈 수도 있습니다. 백업을 생성하세요! - + creating collation 콜레이션 생성 - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. - + SQL 탭의 새 이름을 설정하세요. '&&' 문자를 사용하여 다음에 따라오는 문자를 키보드 단축키로서 사용할 수 있습니다. - + Please specify the view name 뷰 이름을 지정해주세요 - + There is already an object with that name. Please choose a different name. 이미 같은 이름의 객체가 존재합니다. 다른 이름을 고르세요. - + View successfully created. 뷰가 성공적으로 생성되었습니다. - + Error creating view: %1 뷰 생성 에러: %1 - + This action will open a new SQL tab for running: - + 이 작업은 다음을 실행하는 새 SQL 탭을 엽니다: - + Press Help for opening the corresponding SQLite reference page. - - - - Choose a axis color - 축의 색깔을 고르세요 + 해당 SQLite 참조 페이지를 열려면 도움말을 누르십시오. - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;모든 파일(*) - - - Please enter the URL of the database file to save. - 데이터베이스 파일을 저장하기 위한 URL을 입력해주세요. - - - Choose a file to open - 불러올 파일을 선택하세요 - - - + DB Browser for SQLite project file (*.sqbpro) DB Browser for SQLite 프로젝트 파일 (*.sqbpro) - Please choose a new encoding for this table. - 이 테이블에 적용할 새 인코딩을 선택하세요 - - - Please choose a new encoding for all tables. - 모든 테이블에 설정 할 새 인코딩을 선택하세요 - - - + Error checking foreign keys after table modification. The changes will be reverted. 테이블 수정 후 외래 키를 확인하는 중 오류가 발생하였습니다. 변경 사항이 되돌려집니다. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. 이 테이블은 외래 키 검사를 통과하지 못했습니다.<br/>'도구 -> 외래 키 검사'를 실행하여 보고된 문제를 해결하십시오. - + Execution finished with errors. 에러가 발생하여 실행 중단됨. - + Execution finished without errors. 에러 없이 실행 완료. - - %1 -Leave the field empty for using the database encoding. - 데이터베이스 인코딩을 사용하기위해 필드를 비워둡니다 - - - This encoding is either not valid or not supported. - 이 인코딩은 올바르지 않거나 지원되지 않습니다. - - - Cancel - 취소 - NullLineEdit - + Set to NULL NULL로 변경하기 - + Alt+Del @@ -5126,45 +4393,37 @@ Leave the field empty for using the database encoding. 플롯 - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> - <html><head/><body><p>이 화면은 현재 보고 있는 테이블 또는 방금 실행한 쿼리의 필드 목록을 보여줍니다. 아래 플롯 화면에 X축 또는 Y축으로 사용할 필드를 선택할 수 있습니다. 이 표는 결과 플롯에 영향을 줄 수 있다고 인식된 축의 종류를 보여줍니다. Y축은 숫자 타입 필드만 선택할 수 있지만 X 축은 다음과 같은 필드 타입을 선택할 수 있습니다:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">날짜</span>: 문자열 포맷 &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">시간</span>: 문자열 포맷 &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">라벨</span>: 이 필드를 X 축으로 선택하면 필드 값이 막대의 레이블로 표시된 막대 그래프가 생성됩니다.</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">숫자</span>: 정수 도는 실수</li></ul><p>Y 셀을 더블-클릭하면 그래프에 사용된 색을 변경할 수 있습니다.</p></body></html> + <html><head/><body><p>이 화면은 현재 보고 있는 테이블 또는 방금 실행한 쿼리의 필드 목록을 보여줍니다. 아래 플롯 화면에 X축 또는 Y축으로 사용할 필드를 선택할 수 있습니다. 이 표는 결과 플롯에 영향을 줄 수 있다고 인식된 축의 종류를 보여줍니다. Y축은 숫자 타입 필드만 선택할 수 있지만 X축은 다음과 같은 필드 타입을 선택할 수 있습니다:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">날짜</span>: 문자열 포맷 &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">시간</span>: 문자열 포맷 &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">라벨</span>: 이 필드를 X축으로 선택하면 필드 값이 막대의 레이블로 표시된 막대 그래프가 생성됩니다.</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">숫자</span>: 정수 또는 실수</li></ul><p>Y 셀을 더블 클릭하면 그래프에 사용된 색을 변경할 수 있습니다.</p></body></html> - + Columns 필드 - + X X - Y - Y - - - _ - _ - - - + Y1 Y1 - + Y2 Y2 - + Axis Type 축 타입 - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -5174,245 +4433,234 @@ Use mouse-wheel for zooming and mouse drag for changing the axis range. Select the axes or axes labels to drag and zoom only in that orientation. 위에서 x와 y 값을 선택하면 여기에 플롯이 그려집니다. -플롯과 테이블에서 항목을 클릭하면 선택됩니다.여러 범위의 항목을 선택하려면 컨트롤+클릭을 하세요. +플롯과 테이블에서 항목을 클릭하면 선택됩니다. 여러 범위의 항목을 선택하려면 Control+클릭을 하세요. -확대축소를 하려면 마우스 휠을 이용하고 축 범위를 바꾸려면 마우스를 드래그하세요. +확대/축소를 하려면 마우스 휠을 이용하고 축 범위를 바꾸려면 마우스를 드래그하세요. -한 방향으로만 드래그 또는 확대축소를 하고 싶다면 축 또는 축 라벨을 선택하세요. +한 방향으로만 드래그 또는 확대/축소를 하고 싶다면 축 또는 축 라벨을 선택하세요. - + Line type: 행 타입: - - + + None 사용하지 않음 - + Line - + StepLeft 왼쪽으로 - + StepRight 오른쪽으로 - + StepCenter 중앙으로 - + Impulse - 임펄스 + 임펄스(Impulse) - + Point shape: 포인트 모양: - + Cross 십자가 - + Plus 더하기 - + Circle - + Disc - 디스크 + 디스크(Disc) - + Square 정사각형 - + Diamond 마름모 - + Star - + Triangle 삼각형 - + TriangleInverted 역삼각형 - + CrossSquare CrossSquare - + PlusSquare PlusSquare - + CrossCircle CrossCircle - + PlusCircle PlusCircle - + Peace Peace - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - <html><head/><body><p>현재 플롯 저장하기...</p><p>파일 포맷 확장자를 고르세요 (png, jpg, pdf, bmp)</p></body></html> + <html><head/><body><p>현재 플롯 저장하기...</p><p>파일 포맷 확장자를 선택하세요 (png, jpg, pdf, bmp)</p></body></html> - + Save current plot... 현재 플롯 저장하기... - - + + Load all data and redraw plot 모든 데이터를 불러와서 플롯을 다시 그립니다 - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - 모든 데이터를 불러옵니다. 이 기능은 부분만 가져오는 메카니즘으로 인하여 테이블에서 모든 데이터가 가져오지 않았을 때에만 작동합니다. - - - - - + + + Row # 행 # - Choose a axis color - 축의 색깔을 고르세요 - - - + Copy 복사 - + Print... 인쇄하기... - + Show legend 범례 표시 - + Stacked bars 누적 막대 - + + Fixed number format + + + + Date/Time 날짜/시간 - + Date 날짜 - + Time 시간 - - + + Numeric 숫자 - + Label 레이블 - + Invalid 올바르지 않음 - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. 모든 데이터를 불러와서 플롯을 다시 그립니다. -주의: 이 기능은 부분만 가져오는 메카니즘으로 인하여 테이블에서 모든 데이터가 가져와지지는 않습니다. +주의: 이 기능은 부분만 가져오는 메커니즘으로 인하여 테이블에서 모든 데이터가 가져와지지는 않습니다. - + Choose an axis color - 축 색깔을 고르세요 + 축 색깔을 선택하세요 - + Choose a filename to save under - 저장하려는 파일명을 고르세요 + 저장하려는 파일명을 선택하세요 - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;모든 파일(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. - 플롯에 있는 곡선들 중에 X축으로 정렬된 그래프만 선택한 선의 스타일을 변경할 수 있습니다. X로 표 또는 쿼리를 정렬하여 곡선을 제거하려면 None을, 곡선이 지원하는 스타일 중 하나를 선택하려면 Line을 선택하세요. + 플롯에 있는 곡선들 중에 X축으로 정렬된 그래프만 선택한 선의 스타일을 변경할 수 있습니다. X로 표 또는 쿼리를 정렬하여 곡선을 제거하려면 '사용하지 않음'을, 곡선이 지원하는 스타일 중 하나를 선택하려면 '행'을 선택하세요. - + Loading all remaining data for this table took %1ms. 테이블의 나머지 데이터를 불러오는데 %1ms가 소요되었습니다. - - Fetching all data... - 모든 데이터 가져오는 중... - - - Cancel - 취소 - PreferencesDialog @@ -5443,8 +4691,8 @@ Warning: not all data has been fetched from the table yet due to the partial fet - - + + ... ... @@ -5466,12 +4714,14 @@ Warning: not all data has been fetched from the table yet due to the partial fet - - - - - - + + + + + + + + enabled 사용하기 @@ -5481,137 +4731,92 @@ Warning: not all data has been fetched from the table yet due to the partial fet 원격 옵션 보기 - + &Database 데이터베이스(&D) - + Database &encoding 데이터베이스 인코딩(&E) - + Open databases with foreign keys enabled. 외래키 기능을 사용하며 데이터베이스를 엽니다. - + &Foreign keys 외래키(&F) - Remove line breaks in schema view - 스키마 뷰에서 행 나눔 삭제하기 - - - &Prefetch block size - 프리패치(&Prefetch) 블록 사이즈 - - - + Data &Browser 데이터 보기(&B) - NULL fields - NULL 필드 - - - Text &colour - 글자색(&C) - - - &Text - 문자열(&T) - - - Bac&kground colour - 배경색(&K) - - - + Remove line breaks in schema &view 스키마 뷰에서 개행을 제거합니다(&V) - + Prefetch block si&ze 프리패치 할 블럭 크기(&Z) - - Advanced - 고급 - - - SQL to execute after opening database - 데이터베이스 파일을 연 후에 실행 할 SQL - - - + SQ&L to execute after opening database 데이터베이스를 연 후 SQL을 실행(&L) - + Default field type 기본 필드 타입 - + Font - 폰트 + 글꼴 - + &Font - 폰트(&F) - - - Font si&ze: - 폰트 크기(&Z) + 글꼴(&F) - + Content 내용 - + Symbol limit in cell 셀 안 심볼 한계 - Field colors - 폰트 색깔 - - - + NULL NULL - + Regular 보통 - Text - 문자열 - - - + Binary 바이너리 - + Background 배경색 - + Filters 필터 @@ -5703,7 +4908,7 @@ Warning: not all data has been fetched from the table yet due to the partial fet When this value is changed, all the other color preferences are also set to matching colors. - + 이 값이 변경되면 다른 모든 색상들도 이에 일치하는 색상으로 설정됩니다. @@ -5721,469 +4926,566 @@ Warning: not all data has been fetched from the table yet due to the partial fet 애플리케이션 스타일 - - When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. + + This sets the font size for all UI elements which do not have their own font size option. + 개별 글꼴 크기 옵션이 없는 모든 UI 요소의 글꼴 크기를 설정합니다. + + + + Font size + 글꼴 크기 + + + + Prompt to save SQL tabs +in new project file - + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + 이 기능을 켜면 SQL편집기 탭을 닫을 때 코드 변경사항을 프로젝트에 저장할 지 물어봅니다. + + + + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. + 활성화되면 DB 구조 탭의 스키마 열에서 줄 바꿈, 독 및 인쇄된 출력이 제거됩니다. + + + + Database structure font size + 데이터베이스 구조 글꼴 크기 + + + Font si&ze - 글자 크기(*Z) + 글꼴 크기(&Z) - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. Can be set to 0 for disabling the functionalities. - + 연산이 많이 걸리는 일부 기능을 활성화하는데 허용되는 최대 항목 수입니다. +열의 현재 값을 기반으로 값 완성을 활성화하기 위한 테이블의 최대 행의 갯수입니다. +합계 및 평균을 계산하려는 선택 항목의 최대 인덱스 수입니다. +기능 비활성화하려면 0으로 설정하세요. - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. - + 열의 현재 값을 기반으로 값 완성을 활성화하기 위한 테이블의 최대 행 수입니다. +비활성화하려면 0으로 설정하세요. + + + + Close button on tabs + 탭에 닫기 버튼 - + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + 활성화되면 SQL 편집기 탭에 닫기 버튼이 생깁니다. 어떤 경우든 컨텍스트 메뉴나 키보드 단축기를 사용하여 닫을 수 있습니다. + + + Proxy 프록시 - + Configure 설정 - + Field display - + 필드 출력 - + + Max Recent Files + 최근 연 파일 목록 최대값 + + + Displayed &text - + 출력 텍스트(&T) - - - + - - + + + + Click to set this color 선택하여 이 색상을 선택하세요 - + Text color 글자색 - + Background color 배경색 - + Preview only (N/A) - + 미리보기만 출력 (N/A) - + Escape character 이스케이프 문자 - + Delay time (&ms) - 대기 시간 + 대기 시간 (&ms) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. 새로운 필터 값을 적용하기 전에 대기할 시간을 설정하세요. 대기 시간을 0으로 하면 대기하지 않습니다. - + &SQL - &SQL + SQL(&S) - + Settings name 설정 이름 - + Context 내용 - + Colour 색깔 - + Bold - 볼드 + 진하게 - + Italic - 이탤릭 + 기울게 - + Underline 밑줄 - + Keyword 키워드 - function - 기능 - - - + Function 함수 - + Table 테이블 - + Comment 주석 - + Identifier 식별자 - + String 문자열 - currentline - 현재행 - - - + Current line 현재 행 - - SQL &editor font size - SQL 에디터 폰트 크기(&E) + + selected_bg + 선택된 배경색 + + + + Selection background + 선택된 배경색 - SQL &log font size - SQL 로그 폰트 크기(&E) + + selected_fg + 선택된 전경색 + Selection foreground + 선택된 전경색 + + + + highlight + 강조 + + + + Highlight + 강조 + + + + SQL &editor font size + SQL 에디터 글꼴 크기(&E) + + + Tab size 탭 크기 - + &Wrap lines - + 줄 바꿈(&W) - + Never 사용 안 함 - + At word boundaries 단어 경계에서 - + At character boundaries 문자 경계에서 - + At whitespace boundaries 공백에서 - + &Quotes for identifiers 식별자 구분 기호(&Q) - + Choose the quoting mechanism used by the application for identifiers in SQL code. - + SQL 코드의 식별자에 대해 응용 프로그램에서 사용하는 기호를 선택합니다. - + "Double quotes" - Standard SQL (recommended) "큰 따옴표" - SQL 표준 (권장됨) - + `Grave accents` - Traditional MySQL quotes '작은 따옴표' - MySQL 전통 인용 부호 - + [Square brackets] - Traditional MS SQL Server quotes [대괄호] - MS SQL 전통 인용 부호 - + Keywords in &UPPER CASE 키워드에 대해 대문자(&U) - + When set, the SQL keywords are completed in UPPER CASE letters. - 선택하면 SQL 키워드가 대문자로 완성됩니다. + 활성화되면 SQL 키워드가 대문자로 완성됩니다. - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background - + 활성화되면 마지막 실행 중에 오류를 일으킨 SQL 코드 줄이 강조 표시되고 결과 프레임은 백그라운드에 오류를 나타냅니다 - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> - + <html><head/><body><p>SQLite는 공유 라이브러리 파일에서 확장을 로드하기 위한 SQL 함수를 제공합니다. SQL 코드에서 <span style=" font-style:italic;">load_extension()</span> 함수를 사용하려면 이 기능을 활성화하십시오.</p><p>보안 상의 이유로 확장 로드는 기본적으로 비활성화되어 있으며 설정을 통해 활성화해야 합니다. 이 옵션이 비활성화되어 있더라도 항상 GUI를 통해 확장을 로드할 수 있습니다.</p></body></html> - + Allow loading extensions from SQL code SQL 코드에서 확장기능을 불러오는 것을 허용 - + Remote 원격 - + CA certificates - CA 증명서 + CA 인증서 - - + + Subject CN 제목 CN - + Common Name 일반 이름 - + Subject O 제목 O - + Organization 기관 - - + + Valid from 유효날짜(시작) - - + + Valid to 유효날짜(끝) - - + + Serial number 시리얼 넘버 - + Your certificates - 당신의 증명서 + 당신의 인증서 - + File 파일 - + Subject Common Name 주제 일반 이름 - + Issuer CN 이슈 등록자 CN - + Issuer Common Name 이슈 등록자 일반 이름 - + Clone databases into 데이터베이스 복제하기 - Tab size: - 탭 크기: - - - + SQL editor &font - SQL 편집기 폰트(&F) + SQL 편집기 글꼴(&F) - + Error indicators 에러 표시 - Enabling error indicators highlights the SQL code lines that caused errors during the last execution - 에러 표시를 사용하면 가장 최근에 실행하여 에러가 난 SQL 코드 행을 하이라이트 해줍니다 - - - + Hori&zontal tiling 화면 수평 나누기(&Z) - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. - SQL 코드 에디터와 결과 테이블 뷰가 나란히 표시됩니다. + 활성화되면 SQL 코드 편집기와 결과 테이블 뷰가 나란히 표시됩니다. - + Code co&mpletion 코드 완성(&M) - + Threshold for completion and calculation on selection - + 선택에 대한 완료 및 연산 임계 값 - + Show images in cell 셀에 이미지 표시 - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. - + 셀에 이미지 데이터가 포함된 BLOB의 미리보기를 표시하려면 이 옵션을 활성화합니다. 그러나 이는 데이터 브라우저의 성능에 영향을 끼칠 수 있습니다. - + Foreground - + 전경색 - + SQL &results font size - SQL 결과 폰트 크기(&R) + SQL 결과 글꼴 크기(&R) - + &Extensions 확장기능(&E) - + Select extensions to load for every database: 불러올 확장기능을 선택하세요(확장기능은 모든 데이터베이스에 반영됩니다): - + Add extension 확장기능 추가 - + Remove extension 확장기능 제거 - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> - <html><head/><body><p>SQLite에서는 기본적으로 정규표현식 기능을 제공하지 않습니다만 애플리케이션을 실행하여 호출하는 것은 가능합니다. DB Browser for SQLite에서는 이 알고리즘을 박스 밖에서도 정규표현식을 사용할 수 있도록 이 알고리즘을 구현해줍니다. 하지만 확장기능을 사용하여 외부에서 만든 알고리즘 구현을 사용하고자 한다면 DB Browser for SQLite에서 제공하는 구현 사용을 자유롭게 끌 수 있습니다. 이 기능은 애플리케이션을 재시작해야 합니다.</p></body></html> + <html><head/><body><p>SQLite에서는 기본적으로 정규 표현식 기능을 제공하지 않습니다만 애플리케이션을 실행하여 호출하는 것은 가능합니다. DB Browser for SQLite에서는 이 알고리즘을 박스 밖에서도 정규 표현식을 사용할 수 있도록 이 알고리즘을 구현해줍니다. 하지만 확장기능을 사용하여 외부에서 만든 알고리즘 구현을 사용하고자 한다면 DB Browser for SQLite에서 제공하는 구현 사용을 자유롭게 끌 수 있습니다. 이 기능은 애플리케이션을 재시작해야 합니다.</p></body></html> - + Disable Regular Expression extension - 정규식표현식 확장기능 끄기 + 정규 표현식 확장기능 비활성화 + + + + Export Settings + 환경설정 내보내기 + + + + Import Settings + 환경설정 불러오기 - - + + Choose a directory - 디렉토리를 정하세요 + 디렉터리를 선택하세요 - + + The language will change after you restart the application. 언어 변경은 애플리케이션을 재시작해야 반영됩니다. - + Select extension file 확장기능 파일을 선택하세요 - Extensions(*.so *.dll);;All files(*) - 확장기능파일(*.so *.dll);;모든 파일(*) - - - + Extensions(*.so *.dylib *.dll);;All files(*) 확장기능(*.so *.dylib *dll);;모든 파일(*) - + Import certificate file 인증서 파일 가져오기 - - No certificates found in this file. - 이 파일에는 인증서가 없습니다. + + No certificates found in this file. + 이 파일에는 인증서가 없습니다. + + + + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! + 정말로 이 인증서를 삭제하겠습니까? 애플리케이션 설정에서 모든 증명 데이터가 삭제될 것입니다! + + + + Are you sure you want to clear all the saved settings? +All your preferences will be lost and default values will be used. + 저장된 모든 설정을 정말로 초기화하시겠습니까? +모든 설정이 초기화되고 기본값으로 대체됩니다. + + + + Save Settings File + 환경설정을 내보낼 파일을 선택하세요 + + + + + Initialization File (*.ini) + 환경설정 파일 (*.ini) + + + + The settings file has been saved in location : + + 환경설정 파일이 다음 경로에 저장되었습니다 : + + + + + Open Settings File + 가져오려는 환경설정 파일을 선택하세요 - - Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! - 정말로 이 인증서를 삭제하겠습니까? 애플리케이션 설정에서 모든 증명 데이터가 삭제될 것입니다! + + The settings file was loaded properly. + 환경설정 파일을 정상적으로 불러 왔습니다. - - Are you sure you want to clear all the saved settings? -All your preferences will be lost and default values will be used. - 저장된 모든 설정을 정말로 초기화하시겠습니까? -모든 설정이 초기화되고 기본값이 사용됩니다. + + The selected settings file is not a normal settings file. +Please check again. + 선택하신 환경설정 파일은 정상적인 환경설정 파일이 아닙니다. +다시 확인해주세요. @@ -6247,59 +5549,39 @@ All your preferences will be lost and default values will be used. QObject - + Error importing data 데이터 가져오기 에러 - + from record number %1 - 레코드 넘버: %1 + 레코드 넘버: %1 - + . %1 . %1 - + Importing CSV file... CSV 파일 가져오기... - Decoding CSV file... - CSV 파일 디코딩중... - - - + Cancel 취소 - - Collation needed! Proceed? - 콜레이션이 필요합니다! 진행할까요? - - - A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. -If you choose to proceed, be aware bad things can happen to your database. -Create a backup! - 이 데이터베이스의 테이블은 이 애플리케이션에서 잘 알지못하는 특별한 함수 '%1'가 필요합니다. -이대로 계속 진행할 수는 있습니다만 여러분의 데이터베이스에 나쁜 영향이 갈 수도 있습니다. -백업을 생성하세요! - - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - SQLite 데이터베이스 파일(*.db *.sqlite *.sqlite3 *.db3);;모든 파일 (*) - All files (*) 모든 파일(*) - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) SQLite 데이터베이스 파일(*.db *.sqlite *.sqlite3 *.db3) @@ -6321,7 +5603,7 @@ Create a backup! Justify - + 정렬 @@ -6366,7 +5648,7 @@ Create a backup! Concordance DAT files (*.dat) - + Concordance DAT 파일 (*.dat) @@ -6399,190 +5681,439 @@ Create a backup! 확장기능 (*.so *.dylib *.dll) - Commit - 커밋 + + Initialization File (*.ini) + 환경설정 파일 (*.ini) + + + RemoteCommitsModel - Last modified - 마지막 수정 + + Commit ID + 커밋 ID + + Message + 메시지 + + + + Date + 날짜 + + + + Author + 저자 + + + Size - 크기 + 크기 + + + + Authored and committed by %1 + %1에 의해 작성되고 커밋됨 + + + + Authored by %1, committed by %2 + %1에 의해 작성되고, %2에 의해 커밋됨 RemoteDatabase - - Error when connecting to %1. -%2 - %1 에 연결할 때 에러가 발생했습니다. -%2 + + Error opening local databases list. +%1 + 로컬 데이터베이스 목록을 열던 중 에러가 발생했습니다. %1 - - Error opening remote file at %1. -%2 - %1 에 있는 원격 파일을 열 때 에러가 발생했습니다. -%2 + + Error creating local databases list. +%1 + 로컬 데이터베이스 목록을 생성하던 중 에러가 발생했습니다. %1 + + + RemoteDock - - Error: Invalid client certificate specified. - 에러: 올바르지 않은 클라이언트 인증서입니다. + + Remote + 원격 - - Please enter the passphrase for this client certificate in order to authenticate. - 인증을 위한 클라이언트 인증서 암호를 입력해주세요. + + Local + 로컬 - - Cancel - 취소 + + Identity + 신원 - - Uploading remote database to -%1 - %1로 -원격 데이터베이스를 업로드 중입니다. + + Push currently opened database to server + 현재 열린 데이베이스를 서버로 반영합니다 - - Downloading remote database from -%1 - %1 에서 원격 데이터베이스를 다운로드 중입니다. {1?} + + Upload + 업로드 - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - 이 원격 데이터베이스는 마지막 체크아웃 한 때를 기준으로 업데이트 되었습니다. 지역 데이터베이스를 최신 버전으로 업데이트 할까요? 그럴 경우 원격에 반영하지 않은 변경 사항들을 모두 사라질 수 있으니 주의하세요! 만약 어떠한 지역 변경 사항을 잃고싶지 않다면 지역 버전을 열지 마세요. + + DBHub.io + DBHub.io - Uploading remote database to -%1. - %2 로 원격 데이터베이스 업로드 중입니다. + + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> + <html><head/><body><p>이 창에서는 DBHub.io 웹 사이트의 원격 데이터베이스를 DB Browser for SQLite에 추가할 수 있습니다.</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">DBHub.io 웹 사이트에 로그인(원하시면 GitHub 자격 증명을 사용할 수 있습니다)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">버튼을 클릭하여 &quot;클라이언트 인증서 생성&quot; (당신의 신원 정보). 그러면 인증서 파일이 제공됩니다(로컬 디스크에 저장)</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">DB Browser for SQLite 설정의 원격 탭으로 이동합니다. 버튼을 클릭하여 DB Browser for SQLite에 새 인증서를 추가하고 방금 다운로드한 인증서 파일을 선택합니다.</li></ol><p>이제 원격 패널에 ID가 표시되고 원격 데이터베이스를 추가할 수 있습니다.</p></body></html> - Downloading remote database from -%1. - %1 에서 원격 데이터베이스 다운로드 중입니다. + + Current Database + 현재 데이터베이스 - - - Error: The network is not accessible. - 에러: 네트워크가 접근할 수 없습니다. + + Clone + 복제 - - Error: Cannot open the file for sending. - 에러: 보낼 파일을 열 수 없습니다. + User + 사용자 - - Error opening local databases list. -%1 - 지역 데이터베이스 목록을 열 때 에러가 발생했습니다. %1 + Database + 데이터베이스 - - Error creating local databases list. -%1 - 지역 데이터베이스 목록을 생성할 때 에러가 발생했습니다. %1 + + Branch + 브랜치 - - - RemoteDock - - Remote - 원격 + + Commits + 커밋 - B&rowse - 찾아보기(&r) + + Commits for + 커밋 조회할 브랜치 - Local - 지역 + + Delete Database + 데이터베이스 삭제 - - Identity - 아이디 + + Delete the local clone of this database + 이 데이터베이스의 로컬 복제본 삭제 - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. - 현재 선택한 아이디를 사용해서해당 아이디로 연결된 원격 서버에 접속합니다. + + Open in Web Browser + 웹 브라우저에서 열기 - - Go - 접속하기 + + Open the web page for the current database in your browser + 브라우저에서 현재 데이터베이스의 웹 페이지를 엽니다 - - Push currently opened database to server - 현재 열린 데이베이스를 서버로 반영(Push)합니다 + + Clone from Link + 주소로부터 복제 - - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + 이를 사용하여 로컬 편집을 위해 데이터베이스의 웹 페이지에서 제공된 URL을 사용하여 원격 데이터베이스를 다운로드 합니다. + + + + Refresh + 새로고침 + + + + Reload all data and update the views + 모든 데이터를 다시 로드하고 뷰를 업데이트합니다 + + + + F5 + + + + + Clone Database + 데이터베이스 복제 + + + + Open Database + 데이터베이스 열기 + + + + Open the local copy of this database + 이 데이터베이스의 로컬 복제본을 엽니다 + + + + Check out Commit + 커밋 체크아웃 + + + + Download and open this specific commit + 이 특정 커밋을 다운로드하여 엽니다 + + + + Check out Latest Commit + 최신 커밋 확인 + + + + Check out the latest commit of the current branch + 이 브랜치의 최신 커밋 확인 + + + + Save Revision to File + 리비전을 파일에 저장 + + + + Saves the selected revision of the database to another file + 데이터베이스의 선택한 리비전을 다른 파일에 저장합니다 + + + + Upload Database + 데이터베이스 업로드 - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB4S. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to create a DB4S certificate (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB4S Preferences. Click the button to add a new certificate to DB4S and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>이 화면에서는 dbhub.io 웹사이트의 원격 데이터베이스를 DB4S에 추가할 수 있습니다. 그러기 위해서는 먼저 아이디를 추가해야 합니다.:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">여러분의 깃허브, 구글 계정 등 소셜 로그인 등을 사용해서 dbhub.io 웹사이트에 로그인한 후</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">DB4S 인증서 생성 버튼을 누르세요. (네, 이게 바로 여러분의 아이디입니다.) 거기서 여러분의 인증서 파일을 받을 수 있습니다.(사용하려는 컴퓨터 하드에 저장하세요).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">DB4S 환경설정의 원격 탭으로 가셔서 DB4S를 위한 새 인증서 추가하기 버튼을 눌러 방금 다운받은 인증서 파일을 추가하세요.</li></ol><p>이제 원격 화면에서 여러분의 아이디를 볼 수 있고 원격 데이터베이스를 추가할 수 있습니다..</p></body></html> + + Upload this database as a new commit + 이 데이터베이스를 새 커밋으로 업로드 - + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> - + <html><head/><body><p>현재 기본으로 제공되는 읽기 전용 ID를 사용하고 있습니다. 데이터베이스를 업로드하려면 DBHub.io 계정을 구성하고 사용해야 합니다.</p><p>아직 DBHub.io 계정이 없으십니까? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">지금 만들어</span></a> 인증서를 가져옵니다. <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">여기</span></a>에서 데이터베이스를 공유하세요.</p><p>온라인 도움말을 보려면 <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">여기</span></a>를 방문하세요.</p></body></html> + + + + &User + 사용자(&U) + + + + &Database + 데이터베이스(&D) - + Back 뒤로가기 - + + Select an identity to connect + 연결할 ID를 선택하세요 + + + Public 공개 + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + 로컬 편집을 위해 원격 서버에서 데이터베이스를 다운로드합니다. +복제하려는 URL을 입력하세요. 데이터베이스의 웹 페이지에서 +'DB4S에서 데이터베이스 복제' 버튼을 클릭하여 +이러한 URL을 생성할 수 있습니다. + + + + Invalid URL: The host name does not match the host name of the current identity. + 잘못된 URL: 호스트 이름이 현재 ID의 호스트 이름과 일치하지 않습니다. + + + + Invalid URL: No branch name specified. + 잘못된 URL: 지정된 브랜치 이름이 없습니다. + + + + Invalid URL: No commit ID specified. + 잘못된 URL: 커밋 ID가 지정되지 않았습니다. + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + 데이터베이스의 로컬 복제본을 수정했습니다. 이 커밋을 가져오면 이러한 로컬 변경 사항이 무시됩니다. +계속하시겠습니까? + + + + The database has unsaved changes. Are you sure you want to push it before saving? + 데이터베이스에 저장되지 않은 변경 사항이 있습니다. 저장하기 전에 푸시하시겠습니까? + + + + The database you are trying to delete is currently opened. Please close it before deleting. + 삭제하려는 데이터베이스가 현재 열려있습니다. 삭제하기 전에 닫으십시오. + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + 이렇게하면 아직 커밋하지 않은 모든 변경 사항과 함께 이 데이터베이스의 로컬 버전이 삭제됩니다. 정말로 데이터베이스를 삭제하시겠습니까? + - RemoteModel + RemoteLocalFilesModel - + Name 이름 - Version - 버전 + + Branch + 브랜치 + + + + Last modified + 마지막 수정일 + + + + Size + 크기 + + + + Commit + 커밋 + + + + File + 파일 + + + + RemoteModel + + + Name + 이름 - + Last modified 마지막 수정 - + Size 크기 - + Commit 커밋 - bytes - 바이트 + + Size: + 크기: + + + + Last Modified: + 마지막 수정: + + + + Licence: + 라이센스: + + + + Default Branch: + 기본 브랜치: + + + + RemoteNetwork + + + Choose a location to save the file + 파일을 저장할 위치를 선택하세요 + + + + Error opening remote file at %1. +%2 + %1 에 있는 원격 파일을 열던 중 에러가 발생했습니다. +%2 + + + + Error: Invalid client certificate specified. + 에러: 올바르지 않은 클라이언트 인증서입니다. + + + + Please enter the passphrase for this client certificate in order to authenticate. + 인증을 위한 클라이언트 인증서 암호를 입력해주세요. + + + + Cancel + 취소 + + + + Uploading remote database to +%1 + %1로 +원격 데이터베이스를 업로드 중입니다 + + + + Downloading remote database from +%1 + %1 에서 원격 데이터베이스를 다운로드 중입니다. {1?} + + + Error: The network is not accessible. + 에러: 네트워크에 접근할 수 없습니다. + + + + Error: Cannot open the file for sending. + 에러: 보내려는 파일을 열 수 없습니다. @@ -6595,26 +6126,13 @@ Create a backup! Database na&me to push to - 푸시할 데이터베이스 이름 + 푸시할 데이터베이스 이름(&M) Commit message 커밋 메시지 - - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - Database licence @@ -6633,47 +6151,48 @@ p, li { white-space: pre-wrap; } Force push - 강제 푸쉬 + 강제 푸시 + + + + Username + 사용자명 - + Database will be public. Everyone has read access to it. 공개 데이터베이스로 지정합니다. 누구나 읽기 접근이 가능합니다. - + Database will be private. Only you have access to it. 비공개 데이터베이스로 지정합니다. 당신만 접근할 수 있습니다. - + Use with care. This can cause remote commits to be deleted. 주의해서 사용하세요. 원격 커밋을 삭제하는 결과를 초래할 수 있습니다. - - Unspecified - 미지정 - RunSql - + Execution aborted by user 사용자에 의해서 실행이 취소되었습니다 - + , %1 rows affected , %1 행이 영향 받았습니다 - + query executed successfully. Took %1ms%2 %2 데이터베이스에 쿼리가 성공적으로 실행되었습니다. %1ms 걸렸습니다 - + executing query 쿼리 실행 중 @@ -6701,12 +6220,12 @@ p, li { white-space: pre-wrap; } Find previous match [Shift+F3] - 이전 찾기 [쉬프트+F3] + 이전 찾기 [Shift+F3] Find previous match with wrapping - 맵핑된 이전 일치내역 검색하기 + 랩핑(Wrapping)된 이전 일치내역 검색하기 @@ -6746,12 +6265,12 @@ p, li { white-space: pre-wrap; } Find next match [Enter, F3] - 다음 찾기 [엔터,F3] + 다음 찾기 [Enter,F3] Find next match with wrapping - 랩핑으로 다음 찾기 + 랩핑(Wrapping)으로 다음 찾기 @@ -6761,17 +6280,17 @@ p, li { white-space: pre-wrap; } Interpret search pattern as a regular expression - 검색패턴 정규식 사용 + 검색 패턴 정규 표현식 사용 <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> - <html><head/><body><p>체크하면패턴을 UNIX 정규표현식으로 처리합니다. 정규표현식에 대해서는 <a href="https://en.wikibooks.org/wiki/Regular_Expressions">위키북스의 정규표현식(영문)</a>을 참고하세요.</p></body></html> + <html><head/><body><p>선택하면 찾을 패턴이 UNIX 정규 표현식으로 해석됩니다. <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>를 참고하십시오.</p></body></html> Regular Expression - 정규표현식 + 정규 표현식 @@ -6782,7 +6301,7 @@ p, li { white-space: pre-wrap; } <html><head/><body><p>Results of the last executed statements.</p><p>You may want to collapse this panel and use the <span style=" font-style:italic;">SQL Log</span> dock with <span style=" font-style:italic;">User</span> selection instead.</p></body></html> - + <html><head/><body><p>마지막으로 실행된 명령문의 결과입니다.</p><p>이 패널을 축소하고 대신 <span style=" font-style:italic;">사용자</span> 선택과 함께 <span style=" font-style:italic;">SQL 로그</span> 독을 사용할 수 있습니다.</p></body></html> @@ -6790,58 +6309,45 @@ p, li { white-space: pre-wrap; } 가장 최근 실행 구문 결과 - - This field shows the results and status codes of the last executed statements. - 이 필드는 가장 최근이 실행된 구문의 결과와 상태 코드를 보여줍니다. - - - Export to &CSV - CSV로 내보내기(&C) - - - Save as &view - 뷰로 저장하기(&V) - - - Save as view - 뷰로 저장하기 - - - Please specify the view name - 뷰 이름을 지정해주세요 - - - There is already an object with that name. Please choose a different name. - 이지 같은 이름의 객체가 존재합니다. 다른 이름을 고르세요. - - - View successfully created. - 뷰 생성 성공. - - - Error creating view: %1 - 뷰 생성 에러: %1 + + This field shows the results and status codes of the last executed statements. + 이 필드는 가장 최근에 실행된 구문의 결과와 상태 코드를 보여줍니다. - + Couldn't read file: %1. 파일을 읽을 수 없습니다: %1. - - + + Couldn't save file: %1. 파일을 저장할 수 없습니다: %1. - + Your changes will be lost when reloading it! 다시 불러오면 변경 사항을 잃습니다! - + The file "%1" was modified by another program. Do you want to reload it?%2 - "%1" 파일이 다른 프로그램에 의해 수정되었습니다. 새로 고침하시겠습니까?%2 + "%1" 파일이 다른 프로그램에 의해 수정되었습니다. 다시 불러오겠습니까?%2 + + + + Answer "Yes to All" to reload the file on any external update without further prompting. + 외부 갱신이 있을때 물어보지 않고 파일을 다시 불러게 하려면 "모두 예"를 누르세요. + + + + Answer "No to All" to ignore any external update without further prompting. + + + + + Modifying and saving the file will restore prompting. + @@ -6851,28 +6357,33 @@ p, li { white-space: pre-wrap; } Ctrl+/ + + + Ctrl+PgDown + + SqlUiLexer (X) The abs(X) function returns the absolute value of the numeric argument X. - (X) abs(X) 함수는 숫자 매개변수 X의 절대값을 리턴합니다. + (X) abs(X) 함수는 숫자 매개변수 X의 절대값을 반환합니다. () The changes() function returns the number of database rows that were changed or inserted or deleted by the most recently completed INSERT, DELETE, or UPDATE statement. - () changes() 함수는 가장 최근에 실행된 INSERT, DELETE, UPDATE 구문에서 데이터베이스에서 변경되거나 추가되거나 삭제된 행 수를 리턴합니다. + () changes() 함수는 가장 최근에 실행된 INSERT, DELETE, UPDATE 구문에서 데이터베이스에서 변경되거나 추가되거나 삭제된 행 수를 반환합니다. (X1,X2,...) The char(X1,X2,...,XN) function returns a string composed of characters having the unicode code point values of integers X1 through XN, respectively. - (X1,X2,...) char(X1,X2,...,XN) 함수는 각각의 X1에서 XN 숫자 값의 유니코드 포인트 값을 가진 문자들로 구성된 문자열을 리턴합니다. + (X1,X2,...) char(X1,X2,...,XN) 함수는 각각의 X1에서 XN 숫자 값의 유니코드 포인트 값을 가진 문자들로 구성된 문자열을 반환합니다. (X,Y,...) The coalesce() function returns a copy of its first non-NULL argument, or NULL if all arguments are NULL - (X,Y,...) coalesce() 함수는 첫번째 NULL이 아닌 인자값의 사본을 리턴합니다. 만약 인자값이 모두 NULL이라면 NULL을 리턴합니다 + (X,Y,...) coalesce() 함수는 첫번째 NULL이 아닌 인자 값의 사본을 반환합니다. 만약 인자 값이 모두 NULL이라면 NULL을 반환합니다 @@ -6882,351 +6393,344 @@ p, li { white-space: pre-wrap; } (X,Y) The ifnull() function returns a copy of its first non-NULL argument, or NULL if both arguments are NULL. - (X,Y) ifnull() 함수는 첫번째 NULL이 아닌 인자값의 사본을 리턴합니다. 만약 인자값 둘 다 NULL이라면 NULL을 리턴합니다. + (X,Y) ifnull() 함수는 첫번째 NULL이 아닌 인자 값의 사본을 반환합니다. 만약 인자값 둘 다 NULL이라면 NULL을 반환합니다. (X,Y) The instr(X,Y) function finds the first occurrence of string Y within string X and returns the number of prior characters plus 1, or 0 if Y is nowhere found within X. - (X,Y) instr(X,Y) 함수는 문자열 X에서 문자열 Y가 있다면 첫 글자 위치 + 1 값을 리턴합니다. 만약 문자열 X에서 문자열 Y가 발견되지 않는다면 0을 리턴합니다. + (X,Y) instr(X,Y) 함수는 문자열 X에서 문자열 Y가 있다면 첫 글자 위치 + 1 값을 리턴합니다. 만약 문자열 X에서 문자열 Y가 발견되지 않는다면 0을 반환합니다. (X) The hex() function interprets its argument as a BLOB and returns a string which is the upper-case hexadecimal rendering of the content of that blob. - (X) hex() 함수는 매개변수를 BLOB으로 변환한 후 blob의 내용을 대문자 16진수 문자열로 변환하여 리턴합니다. + (X) hex() 함수는 매개변수를 BLOB으로 변환한 후 blob의 내용을 대문자 16진수 문자열로 변환하여 반환합니다. - () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. - () last_insert_rowid() 함수는 함수가 호출된 데이터베이스 연결에서 가장 최근이 추가된 행의 ROWID를 리턴합니다. + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + (X,Y,Z) The iif(X,Y,Z) 함수는 X가 참이면 Y 값을 반환하고, 그렇지 않으면 Z를 반환합니다. - (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. - (X) 문자열 변수 X를 위한 것으로 length(X) 함수는 첫 번째 NUL 문자를 만날 때 까지의 (바이트 수가 아닌)문자 수를 리턴합니다. + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. + () last_insert_rowid() 함수는 함수가 호출된 데이터베이스 연결에서 가장 최근에 추가된 행의 ROWID를 반환합니다. - (X,Y) The like() function is used to implement the "Y LIKE X" expression. - (X,Y) like() 함수는 "Y LIKE X" 표현식을 구현하기위해 사용합니다. + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. + (X) 문자열 변수 X를 위한 것으로 length(X) 함수는 첫 번째 NUL 문자를 만날 때까지의 (바이트 수가 아닌)문자 수를 반환합니다. - (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. - (X,Y,Z) like() 함수는 "Y LIKE X ESCAPE Z" 표현식을 구현하기위해 사용합니다. - - - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - (X) load_extention(X) 함수는 SQLite 확장기능을 사용하기 위하여 X라 이름지어진 공유라이브러리 파일을 외부에서 불러올 때 사용합니다. + (X,Y) The like() function is used to implement the "Y LIKE X" expression. + (X,Y) like() 함수는 "Y LIKE X" 표현식을 구현하기위해 사용합니다. - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - (X, Y) load_extention(X) 함수는 SQLite 확장기능을 사용하기 위하여 X라 이름지어진 공유라이브러리 파일을 엔트리 포인트 Y를 사용하여 외부에서 불러올 때 사용합니다. + + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. + (X,Y,Z) like() 함수는 "Y LIKE X ESCAPE Z" 표현식을 구현하기 위해 사용합니다. - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. - + (X) load_extension(X) 함수는 X라는 공유 라이브러리 파일에서 SQLite 확장을 로드합니다. +이 기능의 사용은 환경설정에서 승인하여야 합니다. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. - + (X,Y) The load_extension(X) 함수는 진입점 Y를 사용하여 X라는 공유 라이브러리 파일에서 SQLite 확장을 로드합니다. +이 기능의 사용은 환경설정에서 승인되어야 합니다. - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. - (X) lower(X) 함수는 문자열 X에서 모든 ASCII 문자를 소문자로 변경한 문자열 사본을 리턴합니다. + (X) lower(X) 함수는 문자열 X에서 모든 ASCII 문자를 소문자로 변경한 문자열 사본을 반환합니다. - + (X) ltrim(X) removes spaces from the left side of X. - (X) ltrim(X) 함수는 X의 좌측의 공백여백을 제거합니다. + (X) ltrim(X) 함수는 X의 좌측의 공백 여백을 제거합니다. - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. - (X,Y) ltrim(X,Y) 함수는 X의 좌측에서 Y에 있는 모든 문자를 제거한 문자열을 리턴합니다. + (X,Y) ltrim(X,Y) 함수는 X의 좌측에서 Y에 있는 모든 문자를 제거한 문자열을 반환합니다. - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. - (X,Y,...) 다중 인자를 제공하는 max() 함수는 주어진 인자값 중에서 가장 큰 값을 리턴합니다. 만약 주어진 인자 중에 NULL이 하나라도 있으면 NULL을 리턴합니다. + (X,Y,...) 다중 인자를 제공하는 max() 함수는 주어진 인자 값 중에서 가장 큰 값을 반환합니다. 만약 주어진 인자 중에 NULL 값이 하나라도 있으면 NULL을 반환합니다. - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. - (X,Y,...) 다중 인자를 제공하는 min() 함수는 주어진 인자값 중에서 가장 작은 값을 리턴합니다. + (X,Y,...) 다중 인자를 제공하는 min() 함수는 주어진 인자 값 중에서 가장 작은 값을 반환합니다. - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. - Y) nullif(X,Y) 함수는 두 인자값이 서로 다르면 X를 리턴하고 두 인자값이 같으면 NULL을 리턴합니다. + Y) nullif(X,Y) 함수는 두 인자 값이 서로 다르면 X를 반환하고 두 인자 값이 같으면 NULL을 반환합니다. - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. (FORMAT,...) printf(FORMAT,...) SQL 함수는 sqlite3_mprintf() C-언어 함수와 표준 C 라이브러리에서의 printf() 함수처럼 동작합니다. - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. - (X) quote(X) 함수는 X를 SQL문 안에 포함되기에 적절하도록 SQL 리터럴 문자열로 리턴합니다. + (X) quote(X) 함수는 X를 SQL문 안에 포함되기에 적절하도록 SQL 리터럴 문자열로 반환합니다. - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. - () random() 함수는 -9223372036854775808와 +9223372036854775807 사이의 pseudo-랜덤 정수를 리턴합니다. + () random() 함수는 -9223372036854775808와 +9223372036854775807 사이의 pseudo-랜덤 정수를 반환합니다. - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. - (N) randomblob(N) 함수는 psedo-랜덤 바이트를 포함한 N-바이트 blob을 리턴합니다. + (N) randomblob(N) 함수는 psedo-랜덤 바이트를 포함한 N-바이트 blob을 반환합니다. - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. - (X,Y,Z) replace(X,Y,Z) 함수는 문자열 X에 있는 모든 문자열 Y를 Z로 치환한 문자열을 리턴합니다. + (X,Y,Z) replace(X,Y,Z) 함수는 문자열 X에 있는 모든 문자열 Y를 Z로 치환한 문자열을 반환합니다. - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. - (X) round(X) 함수는 부동소수점 값 X를 0의 자리에서 반올림한 값을 리턴합니다. + (X) round(X) 함수는 부동소수점 값 X를 0의 자리에서 반올림한 값을 반환합니다. - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. - (X,Y) round(X,Y) 함수는 부동소수점 값 X를 소수점 우측에서 Y자리에서 반올림한 값을 리턴합니다. + (X,Y) round(X,Y) 함수는 부동소수점 값 X를 소수점 우측에서 Y자리에서 반올림한 값을 반환합니다. - + (X) rtrim(X) removes spaces from the right side of X. (X) rtrim(X)은 X의 우측 공백을 제거합니다. - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. - (X,Y) rtrim(X,Y) 함수는 X의 우측에서 Y에 있는 모든 문자를 삭제한 문자열을 리턴합니다. + (X,Y) rtrim(X,Y) 함수는 X의 우측에서 Y에 있는 모든 문자를 삭제한 문자열을 반환합니다. - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. - (X) soundex(X) 함수는 문자열 X의 사운덱스 인코딩 문자열을 리턴합니다. + (X) soundex(X) 함수는 문자열 X의 사운덱스(Soundex) 인코딩 문자열을 반환합니다. - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. - (X,Y) substr(X,Y) 함수는 문자열 X에서 Y번째부터 끝까지 모든 문자열을 리턴합니다. + (X,Y) substr(X,Y) 함수는 문자열 X에서 Y번째부터 끝까지 모든 문자열을 반환합니다. - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. - (X,Y,Z) substr(X,Y,Z) 함수는 문자열 X에서 Y번째 문자부터 Z문자 수만큼 리턴합니다. + (X,Y,Z) substr(X,Y,Z) 함수는 문자열 X에서 Y번째 문자부터 Z문자 수만큼 반환합니다. - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. - () total_changes() 함수는 현재 데이터베이스 연결이 열린 후 INSERT, UPDATE, DELETE 구문에 의해서 변경된 레코드 행 수를 리턴합니다. + () total_changes() 함수는 현재 데이터베이스 연결이 열린 후 INSERT, UPDATE, DELETE 구문에 의해서 변경된 레코드 행 수를 반환합니다. - + (X) trim(X) removes spaces from both ends of X. (X) trim(X) 함수는 X의 양쪽 공백을 제거합니다. - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. - (X,Y) trim(X,Y) 함수는 X의 양끝에서 Y에 해당하는 문자들을 삭제한 문자열을 리턴합니다. + (X,Y) trim(X,Y) 함수는 X의 양끝에서 Y에 해당하는 문자들을 삭제한 문자열을 반환합니다. - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. - (X) typeof(X) 함수는 표현식 X의 데이터타입을 나타내는 문자열을 리턴합니다. + (X) typeof(X) 함수는 표현식 X의 데이터 타입을 나타내는 문자열을 반환합니다. - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. - (X) unicode(X) 함수는 문자열 X의 첫 글자에 해당하는 숫자 유니코드 포인트를 리턴합니다. + (X) unicode(X) 함수는 문자열 X의 첫 글자에 해당하는 숫자 유니코드 포인트를 반환합니다. - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. - (X) upper(X) 함수는 입력 문자열 X에서 ASCII 문자에 해당하는 글자를 대문자로 변경한 문자열 사본을 리턴합니다. + (X) upper(X) 함수는 입력 문자열 X에서 ASCII 문자에 해당하는 글자를 대문자로 변경한 문자열 사본을 반환합니다. - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. - (N) zeroblob(N) 함수는 N 바이트의 0x00으로 이루어진 BLOB을 구성하여 리턴합니다. + (N) zeroblob(N) 함수는 N 바이트의 0x00으로 이루어진 BLOB을 구성하여 반환합니다. - + (timestring,modifier,modifier,...) (timestring,modifier,modifier,...) - + (format,timestring,modifier,modifier,...) (format,timestring,modifier,modifier,...) - + (X) The avg() function returns the average value of all non-NULL X within a group. - (X) avg() 함수는 그룹에서 모든 NULL이 아닌 X의 값의 평균을 리턴합니다. + (X) avg() 함수는 그룹에서 모든 NULL이 아닌 X의 값의 평균을 반환합니다. - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. - (X) count(X) 함수는 그룹에서 NULL이 아닌 개수를 세어 리턴합니다. + (X) count(X) 함수는 그룹에서 NULL이 아닌 개수를 세어 반환합니다. - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. - (X) group_concat() 함수는 X의 모든 NULL이 아닌 값들의 문자열로 합쳐서 리턴합니다. + (X) group_concat() 함수는 X의 모든 NULL이 아닌 값들의 문자열로 합쳐서 반환합니다. - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. - (X,Y) group_concat() 함수는 X의 모든 NULL이 아닌 값들의 문자열로 합쳐서 리턴합니다. 만약 매개변수 Y가 있다면 값들을 문자열로 합칠 때 구분자로 사용합니다. + (X,Y) group_concat() 함수는 X의 모든 NULL이 아닌 값들의 문자열로 합쳐서 반환합니다. 만약 매개변수 Y가 있다면 값들을 문자열로 합칠 때 구분자로 사용합니다. - + (X) The max() aggregate function returns the maximum value of all values in the group. - (X) max() 집계 함수는 그룹에서 모든 값들 중 가장 큰 값을 리턴합니다. + (X) max() 집계 함수는 그룹에서 모든 값들 중 가장 큰 값을 반환합니다. - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. - (X) min() 집계 함수는 그룹에서 NULL이 아 닌모든 값들 중 가장 작은 값을 리턴합니다. + (X) min() 집계 함수는 그룹에서 NULL이 아닌 모든 값들 중 가장 작은 값을 반환합니다. - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. - (X) sum(x)과 total() 집계 함수는 그룹의 모든 NULL이 아닌 값들의 합을 리턴합니다. + (X) sum(x)과 total() 집계 함수는 그룹의 모든 NULL이 아닌 값들의 합을 반환합니다. - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. - + () 현재 파티션 내의 행 번호입니다. 행은 창 정의의 ORDER BY 절에 정의된 순서대로 1부터 시작하거나 임의의 순서로 번호가 지정됩니다. - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () 각 그룹의 첫 번째 피어의 row_number ()-간격이 있는 현재 행의 순위. ORDER BY 절이 없으면 모든 행이 피어로 간주되고 이 함수는 항상 1을 반환합니다. - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () 파티션 내 현재 행의 피어 그룹 번호 - 간격이 없는 현재 행의 순위, 파티션은 창 정의의 ORDER BY절에 정의된 순서대로 1부터 시작됩니다. ORDER BY 절이 없으면 모든 행이 피어로 간주되어 이 함수는 항상 1을 반환합니다. - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. - + () 이름에도 불구하고 이 함수는 항상 (rank - 1)/(partition-rows - 1)과 같은 0.0에서 1.0 사이의 값을 반환합니다. 여기서 rank는 내장 창 함수 rank() 및 partition에서 반환한 값입니다. rows는 파티션의 총 행 수 입니다. 파티션에 행이 하나만 포함된 경우 이 함수는 0.0을 반환합니다. - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. - + () 누적 분포. row-number/partition-rows로 계산됩니다. 여기서 row-number는 그룹의 마지막 피어에 대해 row_number()에서 반환한 값이고 partition-rows는 파티션의 행 수입니다. - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. - (N) 인자 N은 정수로 취급됩니다. 이 함수는 ORDER BY 구문이 있다면 그 순서대로, 없다면 임의의 순서로 가능하면 균등하게 N개의 그룹으로 나누고 각 그룹에 1부터 N 사이의 정수를 할당합니다. 필요한 경우 큰 그룹이 먼저 나옵니다. 이 함수는 현재 행이 속해있는 그룹이 할당된 정수를 리턴합니다. + (N) 인자 N은 정수로 취급됩니다. 이 함수는 ORDER BY 구문이 있다면 그 순서대로, 없다면 임의의 순서로 가능하면 균등하게 N개의 그룹으로 나누고 각 그룹에 1부터 N 사이의 정수를 할당합니다. 필요한 경우 큰 그룹이 먼저 나옵니다. 이 함수는 현재 행이 속해있는 그룹이 할당된 정수를 반환합니다. - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. - + (expr) 파티션의 이전 행에 대해 expr 표현식을 평가한 결과를 반환합니다. 또는 이전 행이 없는 경우(현재 행이 첫번째일 때) NULL 반환됩니다. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. - + (expr,offset) offset 인수가 제공되면 음이 아닌 정수여야합니다. 이 경우 반환된 값은 파티션 내의 현재 행 이전에 행 오프셋 행에 대해 expr를 평가한 결과입니다. 오프셋이 0이면 expr이 현재 행에 대해 평가됩니다. 현재 행 앞에 행 오프셋 행이 없으면 NULL이 반환됩니다. - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. - + (expr,offset,default) default도 제공되면 offset으로 식별된 행이 존재하지 않았을 때 NULL 대신 반환됩니다. - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. - + (expr) 파티션의 다음 행에 대해 expr 표현식을 평가한 결과를 반환합니다. 또는 다음 행이 없는 경우(현재 행이 마지막 행일 때) NULL이 반환됩니다. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. - + (expr,offset) offset 인수가 제공되면 음이 아닌 정수여야 합니다. 이 경우 반환된 값은 파티션 내에서 현재 행 뒤에 있는 행 오프셋 행에 대해 expr을 평가한 결과입니다. 오프셋이 0이면 expr이 현재 행에 대해 평가됩니다. 현재 행 뒤에 행 오프셋 행이 없으면 NULL이 반환됩니다. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. - + (expr)이 내장 창 함수는 집계 창 함수와 동일한 방식으로 각 행의 창 프레임을 계산합니다. 각 행의 창 프레임에서 첫 번째 행에 대해 평가된 expr의 값을 리턴합니다. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. - + (expr)이 내장 창 함수는 집계 창 함수와 동일한 방식으로 각 행의 창 프레임을 계산합니다. 각 행의 창 프레임에서 마지막 행에 대해 평가 된 expr의 값을 리턴합니다. - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. - + (expr,N)이 내장 창 함수는 집계 창 함수와 동일한 방식으로 각 행의 창 프레임을 계산합니다. 창 프레임의 N 행에 대해 평가 된 expr의 값을 리턴합니다. 행은 ORDER BY 절에 정의 된 순서대로 1부터 시작하여 창 프레임 내에서 번호가 매겨집니다. 그렇지 않으면 임의의 순서로 번호가 매겨집니다. 파티션에 N 번째 행이 없으면 NULL이 반환됩니다. SqliteTableModel - References %1(%2) -Hold Ctrl+Shift and click to jump there - 참조 %1(%2) -Ctrl+Shift를 누른 상태에서 점프하고자 하는 곳을 클릭하세요 - - - + reading rows - 행을 읽는 중 - + 행을 읽는 중 - + loading... 로딩 중... - + References %1(%2) Hold %3Shift and click to jump there 참조 %1(%2) -%3Shift를 누른 상태에서 점프하고자 하는 곳을 클릭하세요 +%3Shift를 누른 상태에서 이동하고자 하는 곳을 클릭하세요 - + Error changing data: %1 데이터 수정 에러: %1 - + retrieving list of columns 컬럼은 필드로 표현합니다. - 필드들의 모든 가져오기 + 필드 목록 가져오기 - + Fetching data... 데이터를 가져오는 중입니다... - + + Cancel 취소 @@ -7251,7 +6755,7 @@ Hold %3Shift and click to jump there Use this list to select a table to be displayed in the database view - 리스트에서 테이블을 선택하면 데이터베이스 뷰에서 볼 수 있습니다 + 리스트에서 테이블을 선택하면 데이터베이스 뷰에서 볼 수 있습니다 @@ -7262,12 +6766,18 @@ Hold %3Shift and click to jump there - Ctrl+" for duplicating the current record. - Ctrl+' for copying the value from the cell above. - Standard selection and copy/paste operations. - + 이것은 데이터베이스의 테이블 뷰입니다. 다음 작업을 수행할 수 있습니다: + - 값을 인라인으로 편집하기 위한 작성을 시작합니다. + - 셀 편집기 창에서 내용을 편집하려면 레코드를 더블 클릭합니다. + - 셀 내용을 NULL 값으로 삭제하려면 Alt+Del + - Ctrl + "는 현재 레코드를 복제합니다. + - 위의 셀에서 값을 복사하려면 Ctrl + ' + - 표준 선택 및 복사 / 붙여넣기 작업. Text pattern to find considering the checks in this frame - 이 프레임 안에서 확인하기 위해 검색하고자 하는 문자열 패턴 + 이 프레임 안에서 확인하기 위해 검색하고자 하는 문자열 패턴 @@ -7282,7 +6792,7 @@ Hold %3Shift and click to jump there Find previous match with wrapping - 맵핑된 이전 일치내역 검색하기 + 랩핑된 이전 일치내역 검색하기 @@ -7292,12 +6802,12 @@ Hold %3Shift and click to jump there Find next match [Enter, F3] - 다음 찾기 [엔터,F3] + 다음 찾기 [Enter, F3] Find next match with wrapping - 랩핑으로 다음 찾기 + 랩핑(Wrapping)으로 다음 찾기 @@ -7317,22 +6827,22 @@ Hold %3Shift and click to jump there The found pattern must be a whole word - 온전한 낱말 일치 검색패턴 + 온전한 낱말 일치 검색패턴 Whole Cell - + 전체 셀 Interpret search pattern as a regular expression - 검색패턴 정규식 사용 + 검색 패턴을 정규 표현식으로 해석 <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> - + <html><head/><body><p>선택하면 찾으려는 패턴이 UNIX 정규식으로 해석됩니다. <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>을 참고하세요.</p></body></html> @@ -7362,14 +6872,14 @@ Hold %3Shift and click to jump there - + Replace 바꾸기 Replace all matches - 일치하는 모든 텍스트 바꾸기 + 일치하는 모든 텍스트 바꾸기 @@ -7377,604 +6887,629 @@ Hold %3Shift and click to jump there 모두 바꾸기 - + <html><head/><body><p>Scroll to the beginning</p></body></html> - <html><head/><body><p>첫 페이지로 갑니다.</p></body></html> + <html><head/><body><p>첫 페이지로 갑니다.</p></body></html> - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - <html><head/><body><p>테이블 뷰 맨 위로 가기 위해서는 버튼을 클릭하세요.</p></body></html> + <html><head/><body><p>테이블 뷰 맨 위로 가기 위해서는 이 버튼을 클릭하세요.</p></body></html> - + |< - |< + |< - + Scroll one page upwards 한 페이지 위로 스크롤합니다 - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - <html><head/><body><p>위 테이블 뷰에서 레코드를 한 페이지 앞으로 가려면 이 버튼을 클릭하세요.</p></body></html> + <html><head/><body><p>위 테이블 뷰에서 레코드를 한 페이지 앞으로 가려면 이 버튼을 클릭하세요.</p></body></html> - + < - < + < - + 0 - 0 of 0 - 0 - 0 of 0 + 0 - 0 of 0 - + Scroll one page downwards 한 페이지 아래로 스크롤합니다 - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - <html><head/><body><p>위 테이블 뷰에서 레코드를 한 페이지 뒤로 가려면 이 버튼을 클릭하세요.</p></body></html> + <html><head/><body><p>위 테이블 뷰에서 레코드를 한 페이지 뒤로 가려면 이 버튼을 클릭하세요.</p></body></html> - + > - > + > - + Scroll to the end 마지막 페이지로 이동 - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;테이블 뷰의 끝으로 갈려면 버튼을 클릭하세요.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> - <html><head/><body><p>테이블 뷰 맨 아래로 가기 위해서는 이 버튼을 클릭하세요.</p></body></html> + <html><head/><body><p>테이블 뷰 맨 아래로 가기 위해서는 이 버튼을 클릭하세요.</p></body></html> - + >| - >| + >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> - <html><head/><body><p>특정 레코드로 점프하려면 여기를 클릭하세요</p></body></html> + <html><head/><body><p>특정 레코드로 이동하려면 여기를 클릭하세요</p></body></html> - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - <html><head/><body><p>이 버튼은 특정 위치의 레코드 넘버로 가기 위해서 사용합니다.</p></body></html> + <html><head/><body><p>이 버튼은 특정 위치의 레코드 넘버로 가기 위해서 사용합니다.</p></body></html> - + Go to: 특정 레코드 행으로 가기: - + Enter record number to browse 찾을 레코드 행 번호를 입력하세요 - + Type a record number in this area and click the Go to: button to display the record in the database view - 레코드 행번호를 입력하고 '특정 레코드 행으로 가기:' 버튼을 클릭하면 데이터베이스 뷰에 레코드가 표시됩니다 + 레코드 행 번호를 입력하고 '특정 레코드 행으로 가기:' 버튼을 클릭하면 데이터베이스 뷰에 레코드가 표시됩니다 - + 1 - 1 + 1 - + Show rowid column - 컬럼의 rowid 표시하기 + 컬럼의 rowid 표시하기 - + Toggle the visibility of the rowid column - rowid 컬럼을 표시하거나 감춥니다 + rowid 컬럼을 표시하거나 숨깁니다 - + Unlock view editing - 뷰 수정 락 해제하기 + 뷰 수정 잠금 해제하기 - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. - 수정을 위하여 현재 뷰의 락을 해제합니다. 하지만 수정을 위해서는 적절한 트리거가 필요할 것입니다. + 수정을 위하여 현재 뷰의 잠금을 해제합니다. 하지만 수정을 위해서는 적절한 트리거가 필요할 것입니다. - + Edit display format 표시 형식 변경 - + Edit the display format of the data in this column - 이 컬럼에 있는 데이터의 표시 형식을 수정합니다 + 이 컬럼에 있는 데이터의 표시 형식을 수정합니다 - - + + New Record 새 레코드 - - + + Insert a new record in the current table - 현재 테이블에 새 레코드를 추가합니다 + 현재 테이블에 새 레코드를 추가합니다 - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - + <html><head/><body><p>이 버튼은 데이터베이스에 새 레코드를 생성합니다.</p><ul><li><span style=" font-weight:600;">새 레코드</span>: 데이터베이스의 기본값으로 새 레코드를 생성합니다.</li><li><span style=" font-weight:600;">값 삽입...</span>: 데이터베이스에 값을 삽입하기 전에 값을 입력할 수 있는 대화상자를 엽니다. 이를 통해 다양한 제약 조건에 충족하는 값을 입력할 수 있습니다. 이러한 제약으로 인해 <span style=" font-weight:600;">새 레코드</span> 옵션이 실패한 경우에도 이 대화상자가 열립니다.</li></ul></body></html> - - + + Delete Record 레코드 삭제 - + Delete the current record 현재 레코드 삭제하기 - - + + This button deletes the record or records currently selected in the table - + 이 버튼은 테이블에서 현재 선택된 레코드를 삭제합니다 - - + + Insert new record using default values in browsed table 현재 탐색한 테이블의 기본값을 사용하여 새 레코드 삽입 - + Insert Values... 값 추가... - - + + Open a dialog for inserting values in a new record 새 레코드의 값을 삽입하기 위한 대화상자를 엽니다 - + Export to &CSV CSV로 내보내기(&C) - - + + Export the filtered data to CSV 필러링된 데이터를 CSV로 내보내기 - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - + 이 버튼은 현재 표시된대로(필터, 표시 형식 및 열 순서) 탐색된 테이블의 데이터를 CSV 파일로 내보냅니다. - + Save as &view - 뷰로 저장하기(&V) + 뷰로 저장하기(&V) - - + + Save the current filter, sort column and display formats as a view - + 현재 필터, 열 정렬 및 표시 형식을 뷰로 저장 - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - + 이 버튼은 검색된 테이블의 현재 설정(필터, 표시 형식 및 열 순서)을 나중에 SQL 문에서 검색하거나 사용할 수 있는 SQL 뷰로 저장합니다. - + Save Table As... 다른 이름으로 테이블 저장... - - + + Save the table as currently displayed 현재 출력된 형태로 테이블 저장 - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - + <html><head/><body><p>이 팝업 메뉴는 현재 탐색 및 필터링된 표에 적용되는 다음 옵션을 제공합니다.</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">CSV로 내보내기: 이 옵션은 현재 표시된대로(필터, 표시 형식 및 열 순서) 탐색된 테이블의 데이터를 CSV 파일로 내보냅니다.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">뷰로 저장: 이 옵션은 검색된 테이블의 현재 설정(필터, 표시 형식 및 열 순서)을 나중에 SQL 문에서 검색하거나 사용할 수 있는 SQL 뷰로 저장합니다.</li></ul></body></html> - + Hide column(s) 컬럼(들) 숨기기 - + Hide selected column(s) 선택한 컬럼(들)을 숨기기 - + Show all columns 전체 컬럼 보기 - + Show all columns that were hidden 숨겨진 전체 컬럼 보기 - - + + Set encoding 인코딩 지정하기 - + Change the encoding of the text in the table cells 테이블 셀 안의 텍스트 인코딩을 변경합니다 - + Set encoding for all tables 모든 테이블의 인코딩 지정하기 - + Change the default encoding assumed for all tables in the database 데이터베이스 안에 있는 모든 테이블의 기본 인코딩을 변경합니다 - + Clear Filters 필터 지우기 - + Clear all filters 모든 필터 지우기 - - + + This button clears all the filters set in the header input fields for the currently browsed table. - + 이 버튼은 현재 탐색된 테이블의 헤더 입력 필드에 설정된 모든 필터를 지웁니다. - + Clear Sorting 정렬 초기화 - + Reset the order of rows to the default 행 순서를 기본값으로 재설정 - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. - + 이 버튼은 현재 검색된 테이블에 지정된 열 정렬을 지우고 기본 순서로 돌아갑니다. - + Print 인쇄하기 - + Print currently browsed table data 현재 탐색한 테이블 데이터를 인쇄합니다 - + Print currently browsed table data. Print selection if more than one cell is selected. - + 현재 찾아본 테이블 데이터를 인쇄합니다. 둘 이상의 셀이 선택된 경우 선택 항목만 인쇄합니다. - + Ctrl+P - + Refresh - 새로고침 + 새로고침 - + Refresh the data in the selected table 선택한 테이블의 데이터 새로고치기 - + This button refreshes the data in the currently selected table. - 이 버튼은 현재 선택된 테이블의 데이터를 다시 불러옵니다. + 이 버튼은 현재 선택된 테이블의 데이터를 새로고칩니다. - + F5 - + Find in cells 셀에서 찾기 - + Open the find tool bar which allows you to search for values in the table view below. - + 아래 표 보기에서 값을 검색할 수 있는 도구 모음을 엽니다. - - + + Bold 진하게 - + Ctrl+B - - + + Italic 기울임 - - + + Underline 밑줄 - + Ctrl+U - - + + Align Right 우측으로 정렬 - - + + Align Left 좌측으로 정렬 - - + + Center Horizontally 가운데 정렬 - - + + Justify - + 정렬 - - + + Edit Conditional Formats... 조건부 서식 편집... - + Edit conditional formats for the current column 이 컬럼의 조건부 서식 편집 - + Clear Format - 형식 지우기 + 서식 지우기 - + Clear All Formats 모든 필터 지우기 - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns - + 선택한 셀의 모든 셀 서식과 선택한 열의 모든 조건부 서식 지우기 - - + + Font Color 글자색 - - + + Background Color 배경색 - + Toggle Format Toolbar 서식 툴바 토글 - + Show/hide format toolbar 서식 툴바 표시/숨기기 - - + + This button shows or hides the formatting toolbar of the Data Browser - + 이 버튼은 데이터 브라우저의 서식 도구 모음을 표시하거나 숨깁니다 - + Select column 컬럼 선택 - + Ctrl+Space - + Replace text in cells 셀의 텍스트 바꾸기 - Ctrl+H - + + Freeze columns + 컬럼 잠그기(Freeze) + + + + Make all columns from the first column up to this column not move when scrolling horizontally + 가로로 스크롤할 때 첫번째 열부터 이 열까지의 모든 열이 이동하지 않도록 합니다 - Filter in all columns - 전체 컬럼에 대한 필터 + Filter in any column + 모든 열에서 필터링 - + Ctrl+R - + %n row(s) %n 열(들) - + , %n column(s) , %n 컬럼(들) - + . Sum: %1; Average: %2; Min: %3; Max: %4 . 합계: %1, 평균: %2, 최소값: %3, 최대값: %4 - + Conditional formats for "%1" "%1"에 대한 조건부 서식 - + determining row count... 행 개수 결정 중... - + %1 - %2 of >= %3 - + %1 - %2 of >= %3 - + %1 - %2 of %3 - %1 - %2 of %3 + %1 - %2 of %3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - 이 뷰에서 수정을 활성화하기 위하여 pseudo-primary key를 입력하시기 바랍니다. 이것은 뷰에서 유일한 이름이어야 합니다. + 이 뷰에서 수정을 활성화하기 위하여 pseudo-primary key를 입력하시기 바랍니다. 이것은 뷰에서 유일한 이름이어야 합니다. - + Delete Records 레코드 삭제 - + Duplicate records 레코드 복제하기 - + Duplicate record 레코드 복제하기 - + Ctrl+" - + Adjust rows to contents 내용에 맞게 행 크기 조절 - + Error deleting record: %1 레코드 추가 에러: %1 - + Please select a record first 레코드를 먼저 선택하세요 - + There is no filter set for this table. View will not be created. 이 테이블을 위한 필터가 설정되지 않았습니다. 뷰가 생성되지 않습니다. - + Please choose a new encoding for all tables. 모든 테이블에 설정할 새 인코딩을 선택하세요. - + Please choose a new encoding for this table. 이 테이블에 적용할 새 인코딩을 선택하세요. - + %1 Leave the field empty for using the database encoding. %1 데이터베이스 인코딩을 사용하기 위해 필드를 비워둡니다. - + This encoding is either not valid or not supported. - 이 인코딩은 올바르지 않거나 지원되지 않습니다. + 이 인코딩은 올바르지 않거나 지원되지 않습니다. - + %1 replacement(s) made. - + %1개의 교체가 이루어졌습니다. + + + + TableBrowserDock + + + New Data Browser + 새 데이터 탐색기 + + + + Rename Data Browser + 데이터 탐색기 이름 변경 + + + + Close Data Browser + 데이터 탐색기 닫기 + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + 데이터 브라우저의 새 이름을 설정하세요. '&&' 문자를 사용하여 다음에 따라오는 문자를 키보드 단축키로서 사용할 수 있습니다. @@ -7992,15 +7527,7 @@ Leave the field empty for using the database encoding. Please select the databases to co&mpact: - 크기를 줄일 데이터베이스를 선택하세요(&m): - - - Warning: Compacting the database will commit all changes you made. - 주의: 데이터베이스 크기 줄이기를 하면 저장되지 않은 모든 수정사항이 반영됩니다. - - - Please select the objects to compact: - 크기를 줄일 객체를 선택하세요: + 크기를 줄일 데이터베이스를 선택하세요(&M): diff --git a/src/translations/sqlb_nl.ts b/src/translations/sqlb_nl.ts new file mode 100644 index 000000000..21f511b13 --- /dev/null +++ b/src/translations/sqlb_nl.ts @@ -0,0 +1,7345 @@ + + + + + AboutDialog + + + About DB Browser for SQLite + Over DB-browser voor SQLite + + + + Version + Versie + + + + <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> + <html><head/><body><p>DB-browser voor SQLite is een open source en freeware visuele tool om SQLite databasebestanden mee te creëren, te ontwerpen en te bewerken.</p><p>Het is uitgebracht onder een duolicentie: Mozilla Public License versie 2 en GNU General Public License versie 3 of hoger. Je mag het aanpassen en herdistribueren onder de voorwaarden van deze licenties.</p><p>Zie <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> en <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> voor de details.</p><p>Bezoek onze website op <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a> voor meer informatie over dit programma.</p><p><span style=" font-size:small;">Deze software maakt gebruik van de GPL/LGPL Qt Toolkit van </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Zie </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> voor de licentievoorwaarden en informatie.</span></p><p><span style=" font-size:small;">Het maakt tevens gebruik van de Silk iconenset van Mark James, uitgebracht onder de Creative Commons Attribution 2.5 en 3.0 licenties.<br/>Zie </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> voor de details.</span></p></body></html> + + + + AddRecordDialog + + + Add New Record + Nieuw record toevoegen + + + + Enter values for the new record considering constraints. Fields in bold are mandatory. + Voer waarden in voor het nieuwe record, rekening houdend met beperkingen. Vette velden zijn verplicht. + + + + In the Value column you can specify the value for the field identified in the Name column. The Type column indicates the type of the field. Default values are displayed in the same style as NULL values. + In de Waarde-kolom kun je de waarde opgegeven voor het veld geïdentificeerd in de Naam-kolom. De Type-kolom geeft het type van het veld aan. Standaardwaarden worden in dezelfde stijl getoond als NULL-waarden. + + + + Name + Naam + + + + Type + Type + + + + Value + Waarde + + + + Values to insert. Pre-filled default values are inserted automatically unless they are changed. + In te voeren waarden. Vooringevulde standaardwaarden worden automatisch ingevoerd, tenzij ze aanpast worden. + + + + When you edit the values in the upper frame, the SQL query for inserting this new record is shown here. You can edit manually the query before saving. + Wanneer je waarden in het kader hierboven bewerkt, dan wordt de SQL-opdracht voor het invoegen van een nieuw record hier getoond. Je kunt de opdracht dan nog bewerken, voordat je deze opslaat. + + + + <html><head/><body><p><span style=" font-weight:600;">Save</span> will submit the shown SQL statement to the database for inserting the new record.</p><p><span style=" font-weight:600;">Restore Defaults</span> will restore the initial values in the <span style=" font-weight:600;">Value</span> column.</p><p><span style=" font-weight:600;">Cancel</span> will close this dialog without executing the query.</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">Opslaan</span> verstuurt de SQL-instructie voor het invoeren van een nieuw record naar de database.</p><p><span style=" font-weight:600;">Standaardwaarden herstellen</span> herstelt de initiële waarden van de <span style=" font-weight:600;">Value</span>-kolom.</p><p><span style=" font-weight:600;">Annuleren</span> sluit dit venster zonder de opdracht uit te voeren.</p></body></html> + + + + Auto-increment + + Automatisch ophogen + + + + + Unique constraint + + Uniciteitsbeperking + + + + + Check constraint: %1 + + Controlebeperking: %1 + + + + + Foreign key: %1 + + Vreemde sleutel: %1 + + + + + Default value: %1 + + Standaardwaarde: %1 + + + + + Error adding record. Message from database engine: + +%1 + Fout bij toevoegen record. Melding van de database: + +%1 + + + + Are you sure you want to restore all the entered values to their defaults? + Weet je zeker dat je alle ingevoerde waarden wilt herstellen naar hun standaardwaarden? + + + + Application + + + The user settings file location is replaced with the argument value instead of the environment variable value. + De bestandslocatie van de gebruikersinstellingen is vervangen door de argumentwaarde in plaats van door de waarde van de omgevingsvariabele. + + + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + Negeerde de waarde van de omgevingsvariabele(DB4S_SETTINGS_FILE): + + + + Usage: %1 [options] [<database>|<project>] + + Gebruik: %1 [opties] [<database>|<project>] + + + + + Possible command line arguments: + Mogelijke opdrachtregelargumenten: + + + + -h, --help Show command line options + -h, --help Toon opdrachtregelargumenten + + + + -q, --quit Exit application after running scripts + -q, --quit Sluit applicatie nadat scripts uitgevoerd zijn + + + + -s, --sql <file> Execute this SQL file after opening the DB + -s, --sql <bestand> Voer dit SQL-bestand uit nadat de database geopend is + + + + -t, --table <table> Browse this table after opening the DB + -t, --table <tabel> Blader door deze tabel nadat de database geopend is + + + + -R, --read-only Open database in read-only mode + -R, --read-only Open database in alleen-lezenmodus + + + + -S, --settings <settings_file> + -S, --settings <instellingenbestand> + + + + Run application based on this settings file + Applicatie uitvoeren op basis van dit instellingenbestand + + + + -o, --option <group>/<setting>=<value> + -o, --option <groep>/<instelling>=<waarde> + + + + Run application with this setting temporarily set to value + Applicatie uitvoeren met tijdelijke waarde voor deze instelling + + + + -O, --save-option <group>/<setting>=<value> + -O, --save-option <groep>/<instelling>=<waarde> + + + + Run application saving this value for this setting + Applicatie uitvoeren met waarde voor deze instelling permanent opgeslagen + + + + -v, --version Display the current version + -v, --version Toon de huidige versie + + + + <database> Open this SQLite database + <database> Open deze SQLite-database + + + + <project> Open this project file (*.sqbpro) + <project> Open dit projectbestand (*.sqbpro) + + + + The -s/--sql option requires an argument + De -s/--sql optie vereist een argument + + + + The file %1 does not exist + Het bestand %1 bestaat niet + + + + The -t/--table option requires an argument + De -t/--table optie vereist een argument + + + + The -S/--settings option requires an argument. The option is ignored. + De -S/--settings optie vereist een argument. De optie wordt genegeerd. + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value + De -o/--option and -O/--save-option opties vereisen een argument in de vorm van groep/instelling=waarde + + + + Invalid option/non-existant file: %1 + Ongeldige optie of niet bestaand bestand: %1 + + + + SQLite Version + SQLite-versie + + + + SQLCipher Version %1 (based on SQLite %2) + SQLCipher-versie %1 (gebaseerd op SQLite %2) + + + + DB Browser for SQLite Version %1. + DB-browser voor SQLite versie %1. + + + + Built for %1, running on %2 + Gebouwd voor %1, draaiend op %2 + + + + Qt Version %1 + Qt-versie %1 + + + + CipherDialog + + + SQLCipher encryption + SQLCipher encryptie + + + + &Password + &Wachtwoord + + + + &Reenter password + Wa&chtwoord herhalen + + + + Passphrase + Toegangsfrase + + + + Raw key + Onbewerkte sleutel + + + + Encr&yption settings + Encr&yptie-instellingen + + + + SQLCipher &3 defaults + SQLCipher &3 standaardwaarden + + + + SQLCipher &4 defaults + SQLCipher &4 standaardwaarden + + + + Custo&m + &Aangepast + + + + Page si&ze + &Paginagrootte + + + + &KDF iterations + KDF &iteraties + + + + HMAC algorithm + &HMAC-algoritme + + + + KDF algorithm + &KDF-algoritme + + + + Plaintext Header Size + Platte-&tekstheadergrootte + + + + Please set a key to encrypt the database. +Note that if you change any of the other, optional, settings you'll need to re-enter them as well every time you open the database file. +Leave the password fields empty to disable the encryption. +The encryption process might take some time and you should have a backup copy of your database! Unsaved changes are applied before modifying the encryption. + Geef een sleutel op om de database mee te versleutelen. +Wees je ervan bewust dat als je een van de andere, optionele, opties wijzigt, je die iedere keer opnieuw moet invoeren als je het databasebestand wilt openen. +Laat wachtwoordvelden leeg om de versleuteling uit te schakelen. +Versleuteling kan wat tijd in beslag nemen en je doet er tevens verstandig aan een backup van je database te hebben! Onopgeslagen wijzigingen worden toegepast voordat de versleuteling aangepast wordt. + + + + Please enter the key used to encrypt the database. +If any of the other settings were altered for this database file you need to provide this information as well. + Voer de sleutel in waarmee database is versleuteld. +Indien enige andere opties voor dit databasebestand gewijzigd waren dan dien je die gegevens hier nu ook opnieuw in te voeren. + + + + ColumnDisplayFormatDialog + + + Choose display format + Kies een opmaak + + + + Display format + Opmaak + + + + Choose a display format for the column '%1' which is applied to each value prior to showing it. + Kies een opmaak voor de kolom '%1' die op iedere waarde wordt toegepast voordat deze getoond wordt. + + + + Default + Standaard + + + + Decimal number + Decimaal getal + + + + Exponent notation + Wetenschappelijke E-notatie + + + + Hex blob + Hexadecimale blob + + + + Hex number + Hexadecimaal getal + + + + Octal number + Octaal getal + + + + Round number + Afgerond getal + + + + Apple NSDate to date + Apple NSDate naar datum + + + + Java epoch (milliseconds) to date + Java-epoch (milliseconden) naar datum + + + + .NET DateTime.Ticks to date + .NET DateTime.Ticks naar datum + + + + Julian day to date + Juliaanse dag naar datum + + + + Unix epoch to date + Unix-epoch naar datum + + + + Unix epoch to local time + Unix-epoch naar lokale tijd + + + + Windows DATE to date + Windows DATE naar datum + + + + Date as dd/mm/yyyy + Datum als dd/mm/jjjj + + + + Lower case + onderkast + + + + Upper case + BOVENKAST + + + + Binary GUID to text + Binair GUID naar datum + + + + Custom + Aangepast + + + + Custom display format must contain a function call applied to %1 + Aangepaste opmaak moet bestaan uit een functie-aanroep die toegepast wordt op %1 + + + + Error in custom display format. Message from database engine: + +%1 + Fout in de aangepaste opmaak. Melding van de database: + +%1 + + + + Custom display format must return only one column but it returned %1. + Aangepaste opmaak moet slechts één kolom retourneren, maar retourneerde er %1. + + + + CondFormatManager + + + Conditional Format Manager + Voorwaardelijke-opmaakbeheerder + + + + This dialog allows creating and editing conditional formats. Each cell style will be selected by the first accomplished condition for that cell data. Conditional formats can be moved up and down, where those at higher rows take precedence over those at lower. Syntax for conditions is the same as for filters and an empty condition applies to all values. + Dit dialoogvenster stelt je in staat om voorwaardelijke opmaakregels te creëren en te bewerken. Iedere celstijl zal worden geselecteerd op basis van de eerst vervulde voorwaarde voor diens celwaarde. De voorwaardelijke opmaakregels kunnen omhoog en omlaag verplaatst worden. Hoger geplaatste regels hebben hogere prioriteit. De syntaxis voor de voorwaarden in dezelfde als voor filters en een lege voorwaarde wordt toegepast op alle waarden. + + + + Add new conditional format + Nieuwe voorwaardelijke-opmaakregel toevoegen + + + + &Add + &Toevoegen + + + + Remove selected conditional format + Verwijder de geselecteerde voorwaardelijke-opmaakregel + + + + &Remove + &Verwijderen + + + + Move selected conditional format up + Verplaats de geselecteerde voorwaardelijke-opmaakregel omhoog + + + + Move &up + Om&hoog verplaatsen + + + + Move selected conditional format down + Verplaats de geselecteerde voorwaardelijke-opmaakregel omlaag + + + + Move &down + Om&laag verplaatsen + + + + Foreground + Voorgrond + + + + Text color + Tekstkleur + + + + Background + Achtergrond + + + + Background color + Achtergrondkleur + + + + Font + Lettertype + + + + Size + Grootte + + + + Bold + Vet + + + + Italic + Cursief + + + + Underline + Onderstreept + + + + Alignment + Uitlijning + + + + Condition + Voorwaarde + + + + + Click to select color + Klik om een kleur te selecteren + + + + Are you sure you want to clear all the conditional formats of this field? + Weet je zeker dat je alle voorwaardelijke-opmaakregels voor dit veld wilt verwijderen? + + + + DBBrowserDB + + + Please specify the database name under which you want to access the attached database + Geef de databasenaam zoals je de gekoppelde database wilt benaderen + + + + Invalid file format + Ongeldig bestandsformaat + + + + Do you really want to close this temporary database? All data will be lost. + Weet je zeker dat je deze tijdelijke database wilt sluiten? Alle gegevens zullen verloren gaan. + + + + Do you want to save the changes made to the database file %1? + Wil je de wijzigingen opslaan die je de gemaakt hebt voor database %1? + + + + Database didn't close correctly, probably still busy + Database is niet goed afgesloten; waarschijnlijk nog steeds bezig + + + + The database is currently busy: + De database is momenteel bezig: + + + + Do you want to abort that other operation? + Wil je die andere handeling afbreken? + + + + Exporting database to SQL file... + Database wordt geëxporteerd naar SQL-bestand... + + + + + Cancel + Annuleren + + + + + No database file opened + Er is geen databasebestand open + + + + Executing SQL... + SQL wordt uitgevoerd... + + + + Action cancelled. + Handeling geannuleerd. + + + + + Error in statement #%1: %2. +Aborting execution%3. + Fout in instructie #%1: %2. +Uitvoering wordt afgebroken%3. + + + + + and rolling back + en teruggedraaid + + + + didn't receive any output from %1 + Geen uitvoer ontvangen van %1 + + + + could not execute command: %1 + kon opdracht niet uitvoeren: %1 + + + + Cannot delete this object + Kan dit object niet verwijderen + + + + Cannot set data on this object + Kan de gegevens niet toepassen op dit object + + + + + A table with the name '%1' already exists in schema '%2'. + Er bestaat al een tabel met de naam '%1' in schema '%2'. + + + + No table with name '%1' exists in schema '%2'. + Er bestaat geen tabel met de naam '%1' in schema '%2'. + + + + + Cannot find column %1. + Kan kolom %1 niet vinden. + + + + Creating savepoint failed. DB says: %1 + Het maken van een herstelpunt is niet gelukt. Melding van de database: %1 + + + + Renaming the column failed. DB says: +%1 + Het hernoemen van de kolom is niet gelukt. Melding van de database: %1 + + + + + Releasing savepoint failed. DB says: %1 + Het opheffen van een herstelpunt is niet gelukt. Melding van de database: %1 + + + + Creating new table failed. DB says: %1 + Het maken van de nieuwe tabel is niet gelukt. Melding van de database: %1 + + + + Copying data to new table failed. DB says: +%1 + Het kopiëren van de gegevens naar de nieuwe tabel is niet gelukt. Melding van de database: %1 + + + + Deleting old table failed. DB says: %1 + Het verwijderen van de oude tabel is niet gelukt. Melding van de database: %1 + + + + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: + + + Fout bij het het herstellen van sommige objecten die met deze tabel geassocieerd zijn. Dit gebeurde hoogstwaarschijnlijk omdat kolomnamen gewijzigd zijn. Dit is de SQL-instructie die je wellicht aan wilt passen om het nogmaals mee te proberen: + + + + + + Error renaming table '%1' to '%2'. +Message from database engine: +%3 + Fout bij het hernoemen van tabel '%1' naar '%2'. +Melding van de database: +%3 + + + + could not get list of db objects: %1 + Fout bij het verkrijgen van lijst met database-objecten: %1 + + + + could not get list of databases: %1 + Fout bij het verkrijgen van lijst met databases: %1 + + + + Error setting pragma %1 to %2: %3 + Fout bij het omzetten van pragma %1 naar %2: %3 + + + + File not found. + Bestand niet gevonden. + + + + Error loading extension: %1 + Fout bij het laden van extensie: %1 + + + + could not get column information + Fout bij het verkrijgen van kolominformatie + + + + DbStructureModel + + + Name + Naam + + + + Object + Object + + + + Type + Type + + + + Schema + Schema + + + + Database + Database + + + + Browsables + Doorbladerbare + + + + All + Alle + + + + Temporary + Tijdelijke + + + + Tables (%1) + Tabellen (%1) + + + + Indices (%1) + Indices (%1) + + + + Views (%1) + Views (%1) + + + + Triggers (%1) + Triggers (%1) + + + + EditDialog + + + Edit database cell + Databasecel bewerken + + + + This area displays information about the data present in this database cell + Dit gebied toont informatie over de aanwezige gegevens in de databasecel + + + + Mode: + Modus: + + + + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. + Dit is de lijst van ondersteunde modi voor de celbewerker. Kies een modus om de gegevens van de huidige cel te bekijken of te bewerken. + + + + Text + Tekst + + + + RTL Text + Rechts-naar-linkstekst + + + + Binary + Binair + + + + + Image + Afbeelding + + + + JSON + JSON + + + + XML + XML + + + + + Automatically adjust the editor mode to the loaded data type + De bewerker automatisch aanpassen aan het geladen gegevenstype + + + + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. + Deze aanvinkbare knop zet het automatisch wisselen van de bewerkingsmodus aan of uit. Wanneer een nieuwe cel wordt geselecteerd of nieuwe gegevens worden geïmporteerd en automatisch wisselen aangevinkt is, dan verandert de modus naar het gedetecteerde gegevenstype. Je kunt de bewerkingsmodus dan alsnog handmatig aanpassen. Vink de knop uit als je handmatig wisselen wilt gebruiken tijdens het navigeren door de cellen. + + + + Auto-switch + Automatisch wisselen + + + + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. + +Errors are indicated with a red squiggle underline. + De tekstbewerkingsmodi stellen je in staat om platte tekst te bewerken, maar ook JSON en XML met syntaxiskleuring en automatisch formatteren en validatie voordat je het opslaat. + +Fouten worden aangegeven met rode kronkelige onderstreping. + + + + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. + Deze Qt-bewerker wordt voor rechts-naar-linksteksten gebruikt, omdat dit niet ondersteund wordt door de standaard tekstbewerker. Er werden rechts-naar-linkstekens gedetecteerd en daarom is deze bewerkingsmodus automatisch geselecteerd. + + + + Type of data currently in cell + Het gegevenstype van de huidige gegevens in de cel + + + + Size of data currently in table + De grootte van de huidige gegevens in de tabel + + + + Apply data to cell + Gegevens toepassen op cel + + + + This button saves the changes performed in the cell editor to the database cell. + Deze knop slaat de wijzigingen die aangebracht zijn in de celbewerker op in de cel. + + + + Apply + Toepassen + + + + Print... + Afdrukken... + + + + Open preview dialog for printing displayed text + Open voorvertoningsdialoogvenster om getoonde tekst af te drukken + + + + Open preview dialog for printing the data currently stored in the cell + Opent een voorvertoningsdialoogvenster voor het afdrukken van de de huidige gegevens in de cel + + + + Ctrl+P + + + + + Copy Hex and ASCII + HEX en ASCII kopiëren + + + + Copy selected hexadecimal and ASCII columns to the clipboard + De geselecteerde hexadecimale en ASCII kolommen kopiëren naar het klembord + + + + Ctrl+Shift+C + + + + + Autoformat + Auto-opmaak + + + + Auto-format: pretty print on loading, compact on saving. + Auto-opmaak: mooi opmaken bij het laden, comprimeren bij het opslaan. + + + + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. + Indien geselecteerd zal de auto-opmaakfunctie de gegevens bij het laden mooi opmaken, door de tekst op te delen in regels en deze dan in te laten springen. Bij het opslaan zal de auto-opmaakfunctie de gegevens comprimeren door regeleinden en onnodige witruimte te verwijderen. + + + + &Export... + &Exporteren... + + + + Export to file + Naar bestand exporteren + + + + Opens a file dialog used to export the contents of this database cell to a file. + Opent een bestandsdialoogvenster om de inhoud van deze databasecel naar een bestand te exporteren. + + + + + &Import... + &Importeren... + + + + + Import from file + Uit bestand importeren + + + + + Opens a file dialog used to import any kind of data to this database cell. + Opent een bestandsdialoogvenster om gegevens van een willekeurig gegevenstype naar deze databasecel te importeren. + + + + Set as &NULL + Omzetten naar &NULL + + + + Erases the contents of the cell + Wist de inhoud van de cel + + + + Word Wrap + Woordterugloop + + + + Wrap lines on word boundaries + Past regelterugloop toe op woordbegrenzingen + + + + + Open in default application or browser + In standaard applicatie of browser openen + + + + Open in application + In applicatie openen + + + + The value is interpreted as a file or URL and opened in the default application or web browser. + De waarde wordt geïnterpreteerd als bestand of URL en wordt geopend in de standaard applicatie of webbrower. + + + + Save file reference... + Bestandsreferentie opslaan... + + + + Save reference to file + Referentie in bestand opslaan + + + + + Open in external application + In externe applicatie openen + + + + + Image data can't be viewed in this mode. + Afbeeldingsgegevens kunnen niet worden getoond in deze modus. + + + + + Try switching to Image or Binary mode. + Probeer te wisselen naar Afbeeldings- of Binaire modus. + + + + + Binary data can't be viewed in this mode. + Binaire gegevens kunnen niet worden getoond in deze modus. + + + + + Try switching to Binary mode. + Probeer te wisselen naar Binaire modus. + + + + + Image files (%1) + Afbeeldingbestanden (%1) + + + + Choose a file to import + Kies een bestand om te importeren + + + + %1 Image + %1 Afbeelding + + + + Binary files (*.bin) + Binaire bestanden (*.bin) + + + + Choose a filename to export data + Kies een bestandsnaam om naar te exporteren + + + + Invalid data for this mode + Ongeldige gegevens voor deze modus + + + + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? + De cel bevat ongeldige %1 gegevens. Reden: %2. Weet je zeker dat je het op de cel wilt toepassen? + + + + + Type of data currently in cell: Text / Numeric + Gegevenstype van de huidige gegevens in de cel: tekst / numeriek + + + + + + %n character(s) + + %n teken + %n tekens + + + + + Type of data currently in cell: %1 Image + Gegevenstype van de huidige gegevens in de cel: %1 afbeelding + + + + %1x%2 pixel(s) + %1x%2 pixel(s) + + + + Type of data currently in cell: NULL + Gegevenstype van de huidige gegevens in de cel: NULL + + + + + %n byte(s) + + %n byte + %n bytes + + + + + Type of data currently in cell: Valid JSON + Gegevenstype van de huidige gegevens in de cel: geldige JSON + + + + Type of data currently in cell: Binary + Gegevenstype van de huidige gegevens in de cel: binair + + + + Couldn't save file: %1. + Kon het bestand niet opslaan: %1. + + + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + De gegevens zijn in een tijdelijk bestand opgeslagen en is geopend in de standaard applicatie. Je kunt het bestand nu bewerken en, wanneer je klaar bent, de opgeslagen nieuwe gegevens toepassen op de cel of de wijzingen annuleren. + + + + EditIndexDialog + + + Edit Index Schema + Schema-index bewerken + + + + &Name + &Naam + + + + &Table + &Tabel + + + + &Unique + &Uniek + + + + For restricting the index to only a part of the table you can specify a WHERE clause here that selects the part of the table that should be indexed + Om de index slechts op een gedeelte van de tabel toe te passen kun je hier een WHERE clausule opgeven die slechts dát gedeelte van de tabel selecteert dat geïndexeerd dient te worden + + + + Partial inde&x clause + Gedeeltelijke inde&x-clausule + + + + Colu&mns + &Kolommen + + + + Table column + Tabelkolom + + + + Type + Type + + + + Add a new expression column to the index. Expression columns contain SQL expression rather than column names. + Voeg een nieuwe expressiekolom toe aan de index. Expressiekolommen bevatten SQL-expressies in plaats van kolomnamen. + + + + Index column + Indexkolom + + + + Order + Sortering + + + + Deleting the old index failed: +%1 + Het verwijderen van de oude index is mislukt: +%1 + + + + Creating the index failed: +%1 + Het maken van de index is mislukt: +%1 + + + + EditTableDialog + + + Edit table definition + Tabeldefinitie bewerken + + + + Table + Tabel + + + + Advanced + Geavanceerd + + + + Database sche&ma + Database&schema + + + + Without Rowid + Zonder &rowid + + + + Make this a 'WITHOUT rowid' table. Setting this flag requires a field of type INTEGER with the primary key flag set and the auto increment flag unset. + Maak van deze tabel een 'WITHOUT rowid'-tabel. Om deze optie toe te kunnen passen is een primair sleutelveld van het type INTEGER nodig, waarop geen automatische ophoging wordt toegepast. + + + + Fields + Velden + + + + Add + Toevoegen + + + + Remove + Verwijderen + + + + Move to top + Bovenaan plaatsen + + + + Move up + Omhoog verplaatsen + + + + Move down + Omlaag verplaatsen + + + + Move to bottom + Onderaan plaatsen + + + + + Name + Naam + + + + + Type + Type + + + + NN + NN + + + + Not null + Niet NULL + + + + PK + PS + + + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + <html><head/><body><p><img src=":/icons/field_key"/> Primaire sleutel</p></body></html> + + + + AI + AO + + + + Autoincrement + Automatisch ophogen + + + + U + U + + + + + + Unique + Uniek + + + + Default + Standaard + + + + Default value + Standaardwaarde + + + + + + Check + Controle + + + + Check constraint + Controlebeperking + + + + Collation + Collatie + + + + + + Foreign Key + Vreemde sleutel + + + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + <html><head/><body><p><img src=":/icons/field_fk"/> Vreemde sleutel</p></body></html> + + + + Constraints + Beperkingen + + + + Add constraint + Beperking toevoegen + + + + Remove constraint + Beperking verwijderen + + + + Columns + Kolommen + + + + SQL + SQL + + + + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Waarschuwing: </span>Er is iets aan deze tabeldefinitie dat onze parser niet volledig begrijpt. Het aanpassen en opslaan van deze tabel kan problemen opleveren.</p></body></html> + + + + + Primary Key + Primaire sleutel + + + + Add a primary key constraint + Voeg een primaire sleutelbeperking toe + + + + Add a foreign key constraint + Voeg een vreemde sleutelbeperking toe + + + + Add a unique constraint + Voeg een uniciteitsbeperking toe + + + + Add a check constraint + Voeg een controlebeperking toe + + + + + There can only be one primary key for each table. Please modify the existing primary key instead. + Er kan maar een primairesleutel per tabel bestaan. Pas in plaats daarvan de al bestaande primaire sleutel aan. + + + + Error creating table. Message from database engine: +%1 + Fout bij maken van de tabel. Melding van de database: +%1 + + + + There already is a field with that name. Please rename it first or choose a different name for this field. + Er bestaat al een veld met die naam. Hernoem dat veld eerst of kies een andere naam voor dit veld. + + + + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. + Naar deze kolom wordt verwezen in een vreemde sleutel in tabel %1 en kan daarom niet aangepast worden. + + + + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. + Er is tenminste een record waarin de waarde van dit veld NULL is. Dit maakt het onmogelijk om deze optie toe te passen. Pas de tabelgegevens eerst aan. + + + + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. + Er is tenminste een record waarin de waarde van dit veld geen geheel getal is. Dit maakt het onmogelijk om de AO-optie toe te passen. Pas de tabelgegevens eerst aan. + + + + Column '%1' has duplicate data. + + Kolom '%1' heeft gedupliceerde waarden. + + + + + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. + Dit maakt het onmogelijk om de Uniek-optie toe te passen. Verwijder eerst de gedupliceerde waarden, zodat de Uniek-optie toe kan worden gepast. + + + + Are you sure you want to delete the field '%1'? +All data currently stored in this field will be lost. + Weet je zeker dat je het veld '%1' wilt verwijderen? +Alle waarden die momenteel opgeslagen zijn in dit veld zullen verloren gaan. + + + + Please add a field which meets the following criteria before setting the without rowid flag: + - Primary key flag set + - Auto increment disabled + Voeg eerste een veld toe dat aan de volgende criteria voldoet, voordat je de 'Zonder rowid' optie toepast: + - Primaire sleutel ingeschakeld + - Automatisch ophogen uitgeschakeld + + + + ExportDataDialog + + + Export data as CSV + Gegevens exporteren als CSV + + + + Tab&le(s) + &Tabel(-len) + + + + Colu&mn names in first line + &Kolomnamen op eerste regel + + + + Fie&ld separator + &Veldscheidingsteken + + + + , + , + + + + ; + ; + + + + Tab + Tab + + + + | + | + + + + + + Other + Anders + + + + &Quote character + &Scheidingsteken tekenreeks + + + + " + " + + + + ' + ' + + + + New line characters + Nieuwe-regeltekens + + + + Windows: CR+LF (\r\n) + Windows: CR+LF (\r\n) + + + + Unix: LF (\n) + Unix: LF (\n) + + + + Pretty print + Mooi opmaken + + + + Export data as JSON + Exporteer de gegevens als JSON + + + + exporting CSV + CSV wordt geëxporteerd + + + + + Could not open output file: %1 + Kon het uitvoerbestand niet openen: %1 + + + + exporting JSON + JSON wordt geëxporteerd + + + + + Choose a filename to export data + Kies een bestandsnaam om naar te exporteren + + + + Please select at least 1 table. + Selecteerd tenminste één tabel. + + + + Choose a directory + Kies een map + + + + Export completed. + Het exporteren is voltooid. + + + + ExportSqlDialog + + + Export SQL... + SQL exporteren... + + + + Tab&le(s) + &Tabel(-len) + + + + Select All + Alles selecteren + + + + Deselect All + Alles deselecteren + + + + &Options + &Opties + + + + Keep column names in INSERT INTO + Kolomnamen behouden in INSERT INTO + + + + Multiple rows (VALUES) per INSERT statement + Meervoudige records (VALUES) per INSERT-instructie + + + + Export everything + Alles exporteren + + + + Export schema only + Alleen het schema exporteren + + + + Export data only + Alleen de gegevens exporteren + + + + Keep old schema (CREATE TABLE IF NOT EXISTS) + Ouder schema behouden (CREATE TABLE IF NOT EXISTS) + + + + Overwrite old schema (DROP TABLE, then CREATE TABLE) + Ouder schema overschrijven (DROP TABLE, daarna CREATE TABLE) + + + + Please select at least one table. + Selecteer tenminste één tabel. + + + + Choose a filename to export + Kies een bestandsnaam om naar te exporteren + + + + Export completed. + Het exporteren is voltooid. + + + + Export cancelled or failed. + Het exporteren is geannuleerd of niet gelukt. + + + + ExtendedScintilla + + + + Ctrl+H + + + + + Ctrl+F + + + + + + Ctrl+P + + + + + Find... + Zoeken... + + + + Find and Replace... + Zoeken en Vervangen... + + + + Print... + Afdrukken... + + + + ExtendedTableWidget + + + Use as Exact Filter + Als exact filter gebruiken + + + + Containing + Bevat + + + + Not containing + Bevat niet + + + + Not equal to + Niet gelijk aan + + + + Greater than + Groter dan + + + + Less than + Kleiner dan + + + + Greater or equal + Groter dan of gelijk aan + + + + Less or equal + Kleiner dan of gelijk aan + + + + Between this and... + Binnen het bereik van dit en... + + + + Regular expression + Als reguliere expressie + + + + Edit Conditional Formats... + Voorwaardelijke opmaakregels bewerken... + + + + Set to NULL + Omzetten naar NULL + + + + Cut + Knippen + + + + Copy + Kopiëren + + + + Copy with Headers + Kopiëren met kolomnamen + + + + Copy as SQL + Kopiëren als SQL + + + + Paste + Plakken + + + + Print... + Afdrukken... + + + + Use in Filter Expression + Gebruiken in filterexpressie + + + + Alt+Del + + + + + Ctrl+Shift+C + + + + + Ctrl+Alt+C + + + + + The content of the clipboard is bigger than the range selected. +Do you want to insert it anyway? + De inhoud van het klembord is groter dan het geselecteerde bereik. +Wil je het desondanks invoegen? + + + + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. + <p>Niet alle gegevens zijn geladen. <b>Wil je alle gegevens laden voordat alle records geselecteerd worden?</b><p><p> <b>Nee</b> betekent dat gegevens laden gestopt wordt en de selectie niet toegepast zal worden.<br/> <b>Ja</b> betekent dat het een tijd kan duren totdat alle gegevens geladen zijn, maar de selectie wel toegepast zal worden.</p>Waarschuwing: Alle gegevens laden kan een grote hoeveelheid werkgeheugen vereisen voor grote tabellen. + + + + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. + Kan de selectie niet omzetten naar NULL. Kolom %1 heeft een NIET NULL-beperking. + + + + FileExtensionManager + + + File Extension Manager + Bestandsextensiebeheerder + + + + &Up + Om&hoog + + + + &Down + Om&laag + + + + &Add + &Toevoegen + + + + &Remove + &Verwijderen + + + + + Description + Omschrijving + + + + Extensions + Extensies + + + + *.extension + *.extensie + + + + FilterLineEdit + + + Filter + Filter + + + + These input fields allow you to perform quick filters in the currently selected table. +By default, the rows containing the input text are filtered out. +The following operators are also supported: +% Wildcard +> Greater than +< Less than +>= Equal to or greater +<= Equal to or less += Equal to: exact match +<> Unequal: exact inverse match +x~y Range: values between x and y +/regexp/ Values matching the regular expression + Deze invoervelden stellen je in staat om snelfilters toe te passen op de huidig geselecteerde tabel. +Gewoonlijk worden records die de ingevoerde tekst bevatten gefilterd. +De volgende operatoren worden ook ondersteund: +% Jokerteken +> Groter dan +< Kleiner dan +>= Groter dan of gelijk aan +<= Kleiner dan of gelijk aan += Gelijk aan: exacte overeenkomst +<> Niet gelijk aan: inverse van exacte overeenkomst +x~y Bereik: waarden tussen x en y +/regexp/ Waarden die voldoen aan de reguliere expressie + + + + Set Filter Expression + Filterexpressie toepassen + + + + What's This? + Wat is dit? + + + + Is NULL + Is NULL + + + + Is not NULL + Is niet NULL + + + + Is empty + Is leeg + + + + Is not empty + Is niet leeg + + + + Not containing... + Bevat niet... + + + + Equal to... + Gelijk aan... + + + + Not equal to... + Niet gelijk aan... + + + + Greater than... + Groter dan... + + + + Less than... + Kleiner dan... + + + + Greater or equal... + Groter dan of gelijk aan... + + + + Less or equal... + Kleiner dan of gelijk aan... + + + + In range... + Binnen het bereik... + + + + Regular expression... + Reguliere expressie... + + + + Clear All Conditional Formats + Verwijder alle voorwaardelijke opmaakregels + + + + Use for Conditional Format + Gebruiken voor voorwaardelijke opmaak + + + + Edit Conditional Formats... + Voorwaardelijke opmaakregels bewerken... + + + + FindReplaceDialog + + + Find and Replace + Zoeken en vervangen + + + + Fi&nd text: + Zoek &tekst: + + + + Re&place with: + Vervang &door: + + + + Match &exact case + Identieke onder-/boven&kast + + + + Match &only whole words + Alleen &hele woorden + + + + When enabled, the search continues from the other end when it reaches one end of the page + Indien geselecteerd zal het zoeken aan het andere einde doorgaan zodra een einde bereikt is + + + + &Wrap around + Door&gaan na einde + + + + When set, the search goes backwards from cursor position, otherwise it goes forward + Indien geselecteerd zal, ten opzichte van de cursorpositie, achteruit in plaats van vooruit gezocht worden + + + + Search &backwards + &Omgekeerd zoeken + + + + <html><head/><body><p>When checked, the pattern to find is searched only in the current selection.</p></body></html> + <html><head/><body><p>Indien geselecteerd wordt alleen gezocht in de huidige selectie.</p></body></html> + + + + &Selection only + Alleen in &selectie + + + + <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> + <html><head/><body><p>Indien geselecteerd wordt de zoekterm geïnterpreteerd als een UNIX reguliere expressie. Zie hiervoor <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Reguliere Expressies in Wikibooks (Engels)</a>.</p></body></html> + + + + Use regular e&xpressions + Gebruik reguliere e&xpressies + + + + Find the next occurrence from the cursor position and in the direction set by "Search backwards" + Zoek de eerstvolgende overeenkomst vanaf de cursorpositie, in de richting aangegeven door de optie "Omgekeerd zoeken" + + + + &Find Next + Volgende &zoeken + + + + F3 + + + + + &Replace + &Vervangen + + + + Highlight all the occurrences of the text in the page + Markeer alle overeenkomsten met de tekst in de pagina + + + + F&ind All + Alles z&oeken + + + + Replace all the occurrences of the text in the page + Vervang alle overeenkomsten met de tekst in de pagina + + + + Replace &All + Alles v&ervangen + + + + The searched text was not found + De gezochte tekst is niet gevonden + + + + The searched text was not found. + De gezochte tekst is niet gevonden. + + + + The searched text was replaced one time. + De gezochte tekst is één keer vervangen. + + + + The searched text was found one time. + De gezochte tekst is één keer gevonden. + + + + The searched text was replaced %1 times. + De gezochte tekst is %1 keer vervangen. + + + + The searched text was found %1 times. + De gezochte tekst is %1 keer gevonden. + + + + ForeignKeyEditor + + + &Reset + &Herstellen + + + + Foreign key clauses (ON UPDATE, ON DELETE etc.) + Vreemde-sleutelclausules (ON UPDATE, ON DELETE, etc.) + + + + ImageViewer + + + Image Viewer + Afbeeldingenbekijker + + + + Reset the scaling to match the original size of the image. + Schaal de afbeelding terug naar diens oorspronkelijke grootte. + + + + Set the scaling to match the size of the viewport. + Schaal de afbeelding naar de grootte van het venster. + + + + Print... + Afdrukken... + + + + Open preview dialog for printing displayed image + Open voorvertoningsdialoogvenster om getoonde afbeelding af te drukken + + + + Ctrl+P + + + + + ImportCsvDialog + + + Import CSV file + CSV-bestand importeren + + + + Table na&me + &Tabelnaam + + + + &Column names in first line + &Kolomnamen op eerste regel + + + + Field &separator + &Veldscheidingsteken + + + + , + , + + + + ; + ; + + + + + Tab + Tab + + + + | + | + + + + + Other (printable) + Anders (afdrukbaar) + + + + + Other (code) + Anders (code) + + + + &Quote character + &Scheidingsteken tekenreeks + + + + " + " + + + + ' + ' + + + + &Encoding + &Encodering + + + + UTF-8 + UTF-8 + + + + UTF-16 + UTF-16 + + + + ISO-8859-1 + ISO-8859-1 + + + + Other + Anders + + + + Trim fields? + Velden trimmen? + + + + Separate tables + Tabellen scheiden + + + + Advanced + Geavanceerd + + + + When importing an empty value from the CSV file into an existing table with a default value for this column, that default value is inserted. Activate this option to insert an empty value instead. + Indien geselecteerd dan wordt een lege waarde in plaats van de standaardwaarde ingevoerd voor bestaande tabellen die een standaardwaarde hebben voor deze kolom. + + + + Ignore default &values + &Negeer standaardwaarden + + + + Activate this option to stop the import when trying to import an empty value into a NOT NULL column without a default value. + Indien geselecteerd dan wordt het importeren afgebroken zodra een lege waarde wordt geprobeerd in te voeren in een NIET NULL veld die geen standaardwaarde kent. + + + + Fail on missing values + Afbreken bij afwezige waarden + + + + Disable data type detection + Gegevenstypedetectie uitschakelen + + + + Disable the automatic data type detection when creating a new table. + Schakel automatische gegevenstypedetectie uit als een nieuwe tabel wordt gemaakt. + + + + When importing into an existing table with a primary key, unique constraints or a unique index there is a chance for a conflict. This option allows you to select a strategy for that case: By default the import is aborted and rolled back but you can also choose to ignore and not import conflicting rows or to replace the existing row in the table. + Tijdens het importeren in bestaande tabellen kunnen er conflicten optreden met primaire sleutels, unieke beperkingen en unieke indices. Deze instelling geeft je de keuze om daar een strategie voor te kiezen: standaard wordt het importeren afgebroken en teruggedraaid, maar je kunt ook kiezen om conflicterende records te negeren en dus niet te importeren, of om bestaande records te laten overschrijven door geïmporteerde records. + + + + Abort import + Importeren afbreken + + + + Ignore row + Record negeren + + + + Replace existing row + Bestaand record vervangen + + + + Conflict strategy + Conflictstrategie + + + + + Deselect All + Alles deselecteren + + + + Match Similar + Overeenkomende selecteren + + + + Select All + Alles selecteren + + + + There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. + Er bestaat al een tabel met de naam '%1' en importeren in een al bestaande tabel is alleen mogelijk als het aantal kolommen overeenkomt. + + + + There is already a table named '%1'. Do you want to import the data into it? + Er bestaat al een tabel met de naam '%1'. Wil je de gegevens hierin importeren? + + + + Creating restore point failed: %1 + Maken van een herstelpunt is mislukt: %1 + + + + Creating the table failed: %1 + Maken van de tabel is mislukt: %1 + + + + importing CSV + CSV wordt geïmporteerd + + + + Inserting row failed: %1 + Invoegen van record is mislukt: %1 + + + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + Onverwachts einde van bestand bereikt. Verzeker je ervan dat je de juiste aanhalingstekens ingesteld hebt en dat de bestandsinhoud goed geformuleerd is. + + + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. + Het importeren van het bestand '%1' duurde %2ms. Hiervan werd %3ms gebruikt voor de rijfunctie. + + + + MainWindow + + + DB Browser for SQLite + DB-browser voor SQLite + + + + + Database Structure + This has to be equal to the tab title in all the main tabs + Databasestructuur + + + + This is the structure of the opened database. +You can drag SQL statements from an object row and drop them into other applications or into another instance of 'DB Browser for SQLite'. + + Dit is de structuur van de geopende database. +Je kunt SQL-instructies vanuit een objectrij naar andere applicaties of andere vensters van 'DB-browser voor SQLite' verslepen. + + + + + + Browse Data + This has to be equal to the tab title in all the main tabs + Gegevensbrowser + + + + + Edit Pragmas + This has to be equal to the tab title in all the main tabs + Pragma's bewerken + + + + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. + Waarschuwing: dit pragma kan niet uitgelezen worden en de waarde is daarom afgeleid. Dit pragma wijzigen kan ervoor zorgen dat een door een SQLite-extensie hergedefinieerde LIKE overschreven wordt. + + + + + Execute SQL + This has to be equal to the tab title in all the main tabs + SQL uitvoeren + + + + toolBar1 + werkbalk1 + + + + &File + &Bestand + + + + &Import + &Importeren + + + + &Export + &Exporteren + + + + Recent Files + Recente bestanden + + + + &Edit + Be&werken + + + + &View + Bee&ld + + + + &Help + &Help + + + + &Tools + E&xtra + + + + DB Toolbar + Databasewerkbalk + + + + Edit Database &Cell + Database&cel bewerken + + + + SQL &Log + SQL-&log + + + + Show S&QL submitted by + Toon S&QL van + + + + User + Gebruiker + + + + Application + Applicatie + + + + Error Log + Foutenlog + + + + This button clears the contents of the SQL logs + Deze knop leegt de inhoud van de SQL-logs + + + + &Clear + &Legen + + + + This panel lets you examine a log of all SQL commands issued by the application or by yourself + In dit kader kun je de logs inspecteren van alle SQL-opdrachten die door de applicatie of door jezelf zijn uitgevoerd + + + + &Plot + &Plot + + + + DB Sche&ma + Databasesche&ma + + + + This is the structure of the opened database. +You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. +You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. + + Dit is de structuur van de geopende database. +Je kunt meerdere objectnamen vanuit de Naam-kolom naar de SQL-bewerker verslepen en je kunt hun eigenschappen dan bewerken met behulp van contextmenu's. Dit vergemakkelijkt het opstellen van SQL-instructies. +Je kunt SQL-instructies vanuit de Schema-kolom naar de SQL-bewerker of naar andere applicaties verslepen. + + + + + &Remote + Toegang op &afstand + + + + + Project Toolbar + Projectwerkbalk + + + + Extra DB toolbar + Werkbalk voor gekoppelde databases + + + + + + Close the current database file + Sluit het huidige databasebestand + + + + &New Database... + &Nieuwe database... + + + + + Create a new database file + Maak een nieuw databasebestand + + + + This option is used to create a new database file. + Deze optie wordt gebruikt om een nieuw databasebestand te maken. + + + + Ctrl+N + + + + + + &Open Database... + &Database openen... + + + + + + + + Open an existing database file + Een bestaand databasebestand openen + + + + + + This option is used to open an existing database file. + Deze optie wordt gebruikt om een bestaand databasebestand te openen. + + + + Ctrl+O + + + + + &Close Database + Database &sluiten + + + + This button closes the connection to the currently open database file + Deze knop verbreekt de verbinding met het huidig geopende databasebestand + + + + Ctrl+F4 + + + + + &Revert Changes + Wijzigingen &terugdraaien + + + + + Revert database to last saved state + Database terugdraaien naar de laatst opgeslagen staat + + + + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. + Deze optie wordt gebruikt om het huidig geopende databasebestand terug te draaien naar de laatst opgeslagen staat. Alle wijzigingen die gemaakt zijn sinds de laatste opslag gaan verloren. + + + + &Write Changes + &Wijzigingen opslaan + + + + + Write changes to the database file + Wijzigingen opslaan in het databasebestand + + + + This option is used to save changes to the database file. + Deze optie wordt gebruikt om wijzigingen op te slaan in het databasebestand. + + + + Ctrl+S + + + + + Compact &Database... + &Database comprimeren... + + + + Compact the database file, removing space wasted by deleted records + Comprimeer het databasebestand door lege ruimte van verwijderde records te op te schonen + + + + + Compact the database file, removing space wasted by deleted records. + Comprimeer het databasebestand door lege ruimte van verwijderde records te op te schonen. + + + + E&xit + A&fsluiten + + + + Ctrl+Q + + + + + &Database from SQL file... + &Database vanuit SQL-bestand... + + + + Import data from an .sql dump text file into a new or existing database. + Importeer gegevens vanuit een .sql dump tekstbestand naar een nieuwe of bestaande database. + + + + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. + Deze optie stelt je in staat om gegevens vanuit een .sql dump tekstbestand te importeren naar een nieuwe of bestaande database. De meeste databaseprogramma's kunnen SQL-dumpbestanden maken, waaronder MySQL en PostgreSQL. + + + + &Table from CSV file... + &Tabel vanuit CSV-bestand... + + + + Open a wizard that lets you import data from a comma separated text file into a database table. + Open een assistent om gegevens uit een kommagescheiden tekstbestand te importeren naar een databasetabel. + + + + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. + Open een assistent om gegevens uit een kommagescheiden tekstbestand (CSV) te importeren naar een databasetabel. De meeste database- en spreadsheetprogramma's kunnen CSV-bestanden maken. + + + + &Database to SQL file... + &Database naar SQL-bestand... + + + + Export a database to a .sql dump text file. + Exporteer een database naar een .sql dump tekstbestand. + + + + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. + Deze optie stelt je in staat om een database te exporteren naar een .sql dump tekstbestand. SQL-dumpbestanden bevatten de benodigde gegevens om de database opnieuw te maken in de meeste databaseprogramma's, waaronder MySQL en PostgreSQL. + + + + &Table(s) as CSV file... + &Tabel(-len) naar CSV-bestand... + + + + Export a database table as a comma separated text file. + Exporteer een databasetabel naar een kommagescheiden tekstbestand. + + + + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. + Exporteer een databasetabel naar een kommagescheiden tekstbestand, om deze te kunnen importeren in ander database- of spreadsheetprogramma. + + + + &Create Table... + Tabel &maken... + + + + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database + Open de tabel-makenassistent, waarin je namen en velden voor een nieuwe databasetabel kunt definiëren + + + + &Delete Table... + Tabel &verwijderen... + + + + + Delete Table + Tabel verwijderen + + + + Open the Delete Table wizard, where you can select a database table to be dropped. + Open de tabel-verwijderassistent, waarin je databasetabellen kunt selecteren om te verwijderen. + + + + &Modify Table... + Tabel &wijzigen... + + + + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. + Open de tabel-wijzigingenassistent, waarin je een databasetabel kunt hernoemen. Het is hierin ook mogelijk om velden toe te voegen en te verwijderen en om veldnamen en -typen te wijzigen. + + + + Create &Index... + &Index maken... + + + + Open the Create Index wizard, where it is possible to define a new index on an existing database table. + Open de index-makenassistent, waarin je een nieuwe index voor een bestaande databasetabel kunt definiëren. + + + + &Preferences... + I&nstellingen... + + + + + Open the preferences window. + Open het instellingenvenster. + + + + &DB Toolbar + &Databasewerkbalk + + + + Shows or hides the Database toolbar. + Toont of verbergt de databasewerkbalk. + + + + W&hat's This? + W&at is dit? + + + + Shift+F1 + + + + + &About + &Over + + + + &Recently opened + &Recent geopend + + + + New &tab + Nieuw &tabblad + + + + This button opens a new tab for the SQL editor + Deze knop opent een nieuw tabblad in de SQL-bewerker + + + + Ctrl+T + + + + + &Execute SQL + SQL &uitvoeren + + + + Execute all/selected SQL + Voer alle of de geselecteerde SQL uit + + + + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. + Deze knop voert de huidig geselecteerde SQL-instructies uit. Indien geen tekst geselecteerd is worden alle SQL-instructies uitgevoerd. + + + + Ctrl+Return + + + + + Open SQL file(s) + SQL-bestand(-en) openen + + + + This button opens files containing SQL statements and loads them in new editor tabs + Deze knop opent bestanden die SQL-instructies bevatten en laadt deze in nieuwe bewerkerstabbladen + + + + + + Save SQL file + SQL-bestand opslaan + + + + &Load Extension... + Extensie &laden... + + + + + Execute current line + Huidige regel uitvoeren + + + + Execute line + Regel uitvoeren + + + + This button executes the SQL statement present in the current editor line + Deze knop voert de SQL-instructies uit die zich op de huidige bewerkingsregel bevindt + + + + Shift+F5 + + + + + Export as CSV file + Exporteren als CSV-bestand + + + + Export table as comma separated values file + Tabel exporteren als bestand met kommagescheiden waarden + + + + &Wiki + &Wiki + + + + F1 + + + + + Bug &Report... + Bugs &rapporteren... + + + + Feature Re&quest... + Functionaliteit &verzoeken... + + + + Web&site + Web&site + + + + &Donate on Patreon... + &Doneren op Patreon... + + + + Sa&ve Project + P&roject opslaan + + + + + Save the current session to a file + De huidige sessie oplaan in een bestand + + + + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file + Deze knop stelt je in staat om alle instellingen met betrekking tot de geopende database op te slaan in een DB-browser voor SQLite-projectbestand + + + + Open &Project... + &Project openen... + + + + + Load a working session from a file + Een sessie laden vanuit een bestand + + + + This button lets you open a DB Browser for SQLite project file + Deze knop stelt je in staat om DB-browser voor SQLite-projectbestand te openen + + + + &Attach Database... + Database &koppelen... + + + + + Add another database file to the current database connection + Koppel nog een databasebestand aan de huidige databaseverbinding + + + + This button lets you add another database file to the current database connection + Deze knop stelt je in staat om nog een databasebestand aan de huidige databaseverbinding te koppelen + + + + &Set Encryption... + Encr&yptie instellen... + + + + + Save SQL file as + SQL-bestand opslaan als + + + + This button saves the content of the current SQL editor tab to a file + Deze knop slaat de inhoud van het huidige SQL-bewerkingstabblad op in een bestand + + + + &Browse Table + &Bladeren door tabel + + + + Copy Create statement + CREATE-instructie kopiëren + + + + Copy the CREATE statement of the item to the clipboard + De CREATE-instructie van het item kopiëren naar het klembord + + + + SQLCipher &FAQ + SQLCipher &FAQ + + + + Opens the SQLCipher FAQ in a browser window + Opent de SQLCipher FAQ in een browservenster + + + + Table(&s) to JSON... + Tabel(-&len) naar JSON-bestand... + + + + Export one or more table(s) to a JSON file + Exporteer een of meerdere tabel(-len) naar een JSON-bestand + + + + Open Data&base Read Only... + Database als &alleen-lezen openen... + + + + Open an existing database file in read only mode + Een bestaand databasebestand openen in alleen-lezenmodus + + + + Ctrl+Shift+O + + + + + Save results + Resultaten opslaan + + + + Save the results view + Het resultatenoverzicht opslaan + + + + This button lets you save the results of the last executed query + Deze knop stelt je in staat om de resultaten van de laatst uitgevoerde opdracht op te slaan + + + + + Find text in SQL editor + Tekst zoeken in de SQL-bewerker + + + + Find + Zoeken + + + + This button opens the search bar of the editor + Deze knop opent de zoekbalk van de bewerker + + + + Ctrl+F + + + + + + Find or replace text in SQL editor + Tekst zoeken of vervangen in de SQL-bewerker + + + + Find or replace + Zoeken of vervangen + + + + This button opens the find/replace dialog for the current editor tab + Deze knop opent het zoek-en-vervangdialoogvenster voor het huidige bewerkerstabblad + + + + Ctrl+H + + + + + Export to &CSV + Exporteren naar &CSV + + + + Save as &view + Opslaan als &view + + + + Save as view + Opslaan als view + + + + Shows or hides the Project toolbar. + Toont of verbergt de projectwerkbalk. + + + + Extra DB Toolbar + Gekoppelde-databaseswerkbalk + + + + New In-&Memory Database + Nieuwe werk&geheugendatabase + + + + Drag && Drop Qualified Names + Gekwalificeerde namen verslepen + + + + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor + Gebruik gekwalificeerde namen (bijv. "Tabel"."Veld") wanneer ik objecten versleep naar de bewerker + + + + Drag && Drop Enquoted Names + Aangehaalde namen verslepen + + + + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor + Gebruik aangehaalde entiteitsnamen (bijv. "Tabel1") wanneer ik objecten versleep naar de bewerker + + + + &Integrity Check + &Integriteit controleren + + + + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. + Voert het pragma integrity_check uit op de geopende database en toont de resultaten in het tabblad SQL uitvoeren. Dit pragma doet een integriteitscontrole over de gehele database. + + + + &Foreign-Key Check + &Vreemde sleutels controleren + + + + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab + Voert het pragma foreign_key_check uit op de geopende database en toont de resultaten in het tabblad SQL uitvoeren + + + + &Quick Integrity Check + Integriteit &snel controleren + + + + Run a quick integrity check over the open DB + Voert een snelle integriteitscontrole uit op de geopende database + + + + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. + Voert het pragma quick_check uit op de geopende database en toont de resultaten in het tabblad SQL uitvoeren. Dit commando voert veel van de controles uit die het pragma integrity_check ook uitvoert, maar verloopt veel sneller. + + + + &Optimize + &Optimaliseren + + + + Attempt to optimize the database + Probeert de database te optimaliseren + + + + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. + Voert het pragma optimize uit op de geopende database. Dit pragma kan optimalisaties uitvoeren die de prestaties van toekomstige SQL-opdrachten mogelijk verbeteren. + + + + + Print + Afdrukken + + + + Print text from current SQL editor tab + Tekst uit het huidige SQL-bewerkerstabblad afdrukken + + + + Open a dialog for printing the text in the current SQL editor tab + Opent een dialoogvenster voor het afdrukken van tekst uit het huidige SQL-bewerkerstabblad + + + + + Ctrl+P + + + + + Print the structure of the opened database + De structuur van de geopende database afdrukken + + + + Open a dialog for printing the structure of the opened database + Opent een dialoogvenster voor het afdrukken van de structuur van de geopende database + + + + Un/comment block of SQL code + Blok SQL-code wel/niet commentaar + + + + Un/comment block + Blok wel/niet commentaar + + + + Comment or uncomment current line or selected block of code + De huidige regel of het geselecteerde codeblok wel/niet markeren als commentaar + + + + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. + Markeert het geselecteerde codeblok, of de huidige regel indien er geen selectie is, wel/niet als commentaar. Het gehele blok wordt omgezet op basis van de eerste regel. + + + + Ctrl+/ + + + + + Stop SQL execution + SQL uitvoeren stoppen + + + + Stop execution + Uitvoeren stoppen + + + + Stop the currently running SQL script + Stop het SQL script dat nu uitgevoerd wordt + + + + &Save Project As... + Pr&oject opslaan als... + + + + + + Save the project in a file selected in a dialog + Het project opslaan in een bestand dat je selecteert in een dialoogvenster + + + + Save A&ll + A&lles opslaan + + + + + + Save DB file, project file and opened SQL files + Het databasebestand, projectbestand en alle geopende SQL-bestanden opslaan + + + + Ctrl+Shift+S + + + + + Browse Table + Bladeren door tabel + + + + Close Pro&ject + Pro&ject sluiten + + + + Close project and database files and return to the initial state + Het project en databasebestanden sluiten en terugkeren naar de oorspronkelijke staat + + + + Ctrl+Shift+F4 + + + + + + Detach Database + Database ontkoppelen + + + + + Detach database file attached to the current database connection + Ontkoppel het databasebestand dat aan de huidige databaseverbinding gekoppeld is + + + + + Ctrl+W + + + + + Ctrl+Tab + + + + + Ctrl+Shift+Tab + + + + + Ctrl+PgUp + + + + + Clear List + Lijst legen + + + + Ctrl+L + + + + + Ctrl+D + + + + + Ctrl+I + + + + + Ctrl+E + + + + + Window Layout + Vensterindeling + + + + Reset Window Layout + Vensterindeling herstellen + + + + Alt+0 + + + + + Simplify Window Layout + Vensterindeling versimpelen + + + + Shift+Alt+0 + + + + + Dock Windows at Bottom + Vensters dokken aan onderzijde + + + + Dock Windows at Left Side + Vensters dokken aan de linkerzijde + + + + Dock Windows at Top + Vensters dokken aan de bovenzijde + + + + The database is currenctly busy. + De database is momenteel bezig. + + + + Click here to interrupt the currently running query. + Klik hier om het SQL script dat nu uitgevoerd wordt te onderbreken. + + + + Encrypted + Versleuteld + + + + Database is encrypted using SQLCipher + Database is versleuteld met SQLCipher + + + + Read only + Aleen-lezen + + + + Database file is read only. Editing the database is disabled. + Het databasebestand is alleen-lezen. Het bewerken van de database is uitgeschakeld. + + + + Database encoding + Databasecodering + + + + + Choose a database file + Kies een databasebestand + + + + Could not open database file. +Reason: %1 + Kon het databasebestand niet openen. +Reden: %1 + + + + + + Choose a filename to save under + Kies een bestandsnaam om in op te slaan + + + + In-Memory database + Werkgeheugendatabase + + + + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? + Je voert nog steeds SQL-instructies uit. Het sluiten van de database zal het uitvoeren stoppen en de database daarmee mogelijk inconsistent maken. Weet je zeker dat je de database wilt sluiten? + + + + Do you want to save the changes made to the project file '%1'? + Wil je de wijzigingen opslaan die je de gemaakt hebt voor projectbestand %1? + + + + Are you sure you want to delete the table '%1'? +All data associated with the table will be lost. + Weet je zeker dat je de tabel '%1' wilt verwijderen? +Alle gegevens die met deze tabel geassocieerd worden zullen verloren gaan. + + + + Are you sure you want to delete the view '%1'? + Weet je zeker dat je de view '%1' wilt verwijderen? + + + + Are you sure you want to delete the trigger '%1'? + Weet je zeker dat je de trigger '%1' wilt verwijderen? + + + + Are you sure you want to delete the index '%1'? + Weet je zeker dat je de index '%1' wilt verwijderen? + + + + Error: could not delete the table. + Fout: kon de tabel niet verwijderen. + + + + Error: could not delete the view. + Fout: kon de view niet verwijderen. + + + + Error: could not delete the trigger. + Fout: kon de trigger niet verwijderen. + + + + Error: could not delete the index. + Fout: kon de index niet verwijderen. + + + + Message from database engine: +%1 + Melding van de database: +%1 + + + + Editing the table requires to save all pending changes now. +Are you sure you want to save the database? + Het bewerken van de tabel vereist dat niet-opgeslagen wijzigingen nu opgeslagen worden. +Weet je zeker dat de database op wilt slaan? + + + + Error checking foreign keys after table modification. The changes will be reverted. + Fout bij het controleren van vreemde sleutels na tabelwijzigingen. De wijzigingen zullen teruggedraaid worden. + + + + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. + Deze tabel kwam niet door de vreemde-sleutelscontrole.<br/>Voer 'Extra | Vreemde sleutels controleren' uit en repareer de gerapporteerde problemen. + + + + Edit View %1 + View %1 bewerken + + + + Edit Trigger %1 + Trigger %1 bewerken + + + + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. + Je voert momenteel al SQL-instructies uit. Wil je deze stoppen en in plaats daarvan de huidige instructies uitvoeren? Wees je ervan bewust dat dit ervoor kan zorgen dat de database inconsistent wordt. + + + + -- EXECUTING SELECTION IN '%1' +-- + -- SELECTIE WORDT UITGEVOERD IN '%1' +-- + + + + -- EXECUTING LINE IN '%1' +-- + -- REGEL WORDT UITGEVOERD IN '%1' +-- + + + + -- EXECUTING ALL IN '%1' +-- + -- ALLES WORDT UITGEVOERD IN '%1' +-- + + + + + At line %1: + In regel %1: + + + + Result: %1 + Resultaat: %1 + + + + Result: %2 + Resultaat: %2 + + + + %1 rows returned in %2ms + %1 records geretourneerd in %2ms + + + + Setting PRAGMA values or vacuuming will commit your current transaction. +Are you sure? + Vacuümeren of pragma's omzetten zal jouw huidige transactie committeren. +Weet je het zeker? + + + + Execution finished with errors. + Uitvoering voltooid met fouten. + + + + Execution finished without errors. + Uitvoering voltooid zonder fouten. + + + + Choose text files + Kies tekstbestanden + + + + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. + +%1 + Er zijn fouten opgetreden tijdens het opslaan van het databasebestand. Daarom zijn niet alle wijzigingen opgeslagen. Je dient de volgende fouten eerst op te lossen: + +%1 + + + + Are you sure you want to undo all changes made to the database file '%1' since the last save? + Weet je zeker dat je alle wijzigingen die je gemaakt hebt in databasebestand '%1', nadat je deze voor het laatst opgeslagen hebt, ongedaan wilt maken? + + + + Choose a file to import + Kies een bestand om te importeren + + + + Do you want to create a new database file to hold the imported data? +If you answer no we will attempt to import the data in the SQL file to the current database. + Wil je een nieuw databasebestand aanmaken om de geïmporteerde gegevens in te bewaren? +Als je nee antwoordt, wordt geprobeerd om de gegevens uit het SQL-bestand te importeren in de huidige database. + + + + File %1 already exists. Please choose a different name. + Bestand %1 bestaat al. Kies een andere naam. + + + + Error importing data: %1 + Fout bij het importeren van de gegevens: %1 + + + + Import completed. Some foreign key constraints are violated. Please fix them before saving. + Importeren voltooid. Sommige vreemde-sleutelbeperkingen werden echter geschonden. Repareer deze voordat je opslaat. + + + + Import completed. + Importeren voltooid. + + + + Delete View + View verwijderen + + + + Modify View + View wijzigen + + + + Delete Trigger + Trigger verwijderen + + + + Modify Trigger + Trigger wijzigen + + + + Delete Index + Index verwijderen + + + + Modify Index + Index wijzigen + + + + Modify Table + Tabel wijzigen + + + + Opened '%1' in read-only mode from recent file list + '%1' geopend vanuit recent-geopende-bestandenlijst in alleen-lezenmodus + + + + Opened '%1' from recent file list + '%1' geopend vanuit recent-geopende-bestandenlijst + + + + &%1 %2%3 + &%1 %2%3 + + + + (read only) + (alleen-lezen) + + + + Open Database or Project + Database of project openen + + + + Attach Database... + Database koppelen... + + + + Import CSV file(s)... + CSV-bestand(-en) importeren... + + + + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. + + Selecteer de handeling die toegepast moet worden op het gesleepte bestand. <br/>Let op: alleen 'Importeren' kan op meerdere bestanden tegelijk toegepast worden. + Selecteer de handeling die toegepast moet worden op de gesleepte bestanden). <br/>Let op: alleen 'Importeren' kan op meerdere bestanden tegelijk toegepast worden. + + + + + Setting PRAGMA values will commit your current transaction. +Are you sure? + Pragma's omzetten zal jouw huidige transactie committeren. +Weet je het zeker? + + + + Do you want to save the changes made to SQL tabs in a new project file? + Wil je de wijzigingen die je in de SQL-tabbladen gemaakt hebt opslaan in een nieuw projectbestand? + + + + Do you want to save the changes made to SQL tabs in the project file '%1'? + Wil je de wijzigingen die je in de SQL-tabbladen gemaakt hebt opslaan in het projectbestand '%1'? + + + + Do you want to save the changes made to the SQL file %1? + Wil je de wijzigingen die je in SQL-bestand %1 gemaakt hebt opslaan? + + + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + De instructies in tabblad '%1' worden nog steeds uitgevoerd. Het sluiten van het tabblad zal het uitvoeren stoppen en de database daarmee mogelijk inconsistent maken. Weet je zeker dat je het tabblad wilt sluiten? + + + + Select SQL file to open + Selecteer SQL-bestanden om te openen + + + + Text files(*.sql *.txt);;All files(*) + Tekstbestanden(*.sql *.txt);;Alle bestanden(*) + + + + Select file name + Selecteer bestandsnaam + + + + Select extension file + Selecteer extensiebestand + + + + Extension successfully loaded. + Extensie laden gelukt. + + + + Error loading extension: %1 + Fout bij het laden van extensie: %1 + + + + Could not find resource file: %1 + Kon het bronbestand niet vinden: %1 + + + + + Don't show again + Toon dit niet nogmaals + + + + New version available. + Nieuwe versie beschikbaar. + + + + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. + Er is een nieuwe versie van DB-browser voor SQLite beschikbaar (%1.%2.%3).<br/><br/>Je kunt deze downloaden op <a href='%4'>%4</a>. + + + + Choose a project file to open + Kies een projectbestand om te openen + + + + DB Browser for SQLite project file (*.sqbpro) + DB-browser voor SQLite-projectbestanden (*.sqbpro) + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + Dit projectbestand gebruikt een oud bestandsformaat omdat het gemaakt is met versie 3.10 of lager van DB-browser voor SQLite. Dit bestandsformaat wordt niet meer volledig ondersteund. Als je het volledig wilt kunnen laden, gebruik dan versie 3.12 van DB-browser voor SQLite om het om te zetten naar het nieuwe bestandsformaat. + + + + Could not open project file for writing. +Reason: %1 + Kon het projectbestand niet openen om naar te schrijven. +Reden: %1 + + + + Project saved to file '%1' + Project opgeslagen in bestand '%1' + + + + Yes. Don't ask again + Ja. Niet nogmaals vragen + + + + Collation needed! Proceed? + Collatie vereist! Doorgaan? + + + + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. +If you choose to proceed, be aware bad things can happen to your database. +Create a backup! + Een table in deze database vereist een speciale collatiefunctie '%1' die deze applicatie niet kan bieden zonder extra informatie. +Wees je er bewust van dat als je doorgaat er slechte dingen kunnen gebeuren met jouw database. +Maak een backup! + + + + creating collation + collatie aan het maken + + + + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. + Geef een nieuwe naam voor het SQL-tabblad. Gebruik het '&&'-teken om de een van de volgende tekens als sneltoets in te stellen. + + + + Please specify the view name + Geef de viewnaam op + + + + There is already an object with that name. Please choose a different name. + Er bestaat al een object met die naam. Kies een andere naam. + + + + View successfully created. + View maken gelukt. + + + + Error creating view: %1 + Fout bij het maken van view: %1 + + + + This action will open a new SQL tab for running: + Deze handeling opent een nieuw SQL-tabblad om het volgende uit te voeren: + + + + This action will open a new SQL tab with the following statements for you to edit and run: + Deze handeling opent een nieuw SQL-tabblad met volgende instructies die je zodoende kunt bewerken en uitvoeren: + + + + Press Help for opening the corresponding SQLite reference page. + Druk op Help om de bijbehorende SQLlite-referentiepagina te openen. + + + + Busy (%1) + Bezig (%1) + + + + Rename Tab + Tabblad hernoemen + + + + Duplicate Tab + Tabblad dupliceren + + + + Close Tab + Tabblad sluiten + + + + Opening '%1'... + Opent '%1'... + + + + There was an error opening '%1'... + Fout bij het openen van '%1'... + + + + Value is not a valid URL or filename: %1 + Waarde is geen geldige URL of bestandsnaam: %1 + + + + NullLineEdit + + + Set to NULL + Omzetten naar NULL + + + + Alt+Del + + + + + PlotDock + + + Plot + Plot + + + + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> + <html><head/><body><p>Dit paneel toont de lijst van kolommen van de tabel die nu doorgebladerd wordt of van de zojuist uitgevoerde SQL-opdracht. Je kunt de kolommen selecteren die je wilt gebruiken als X- of Y-assen in de plot hieronder. De tabel toont gedetecteerde astypen die de plot zullen beïnvloeden. Voor de Y-as kun je alleen numerieke kolommen gebruiken, maar voor de X-as kun je de volgende gegevenstypen selecteren:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Datum/Tijd</span>: tekenreeksen volgens het formaat &quot;yyyy-MM-dd hh:mm:ss&quot; of &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Datum</span>: tekenreeksen volgens het formaat &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tijd</span>: tekenreeksen volgens het formaat &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: andersoortige tekenreeksformaten. Als je dit selecteert voor de X-as dan wordt een staafdiagram geplot met de kolomwaarden als labels voor de staven</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeriek</span>: gehele of reële getallen</li></ul><p>Door dubbel te klikken op de Y-cellen kun je de kleur voor die grafiek aanpassen.</p></body></html> + + + + Columns + Kolommen + + + + X + X + + + + Y1 + Y1 + + + + Y2 + Y2 + + + + Axis Type + Astype + + + + Here is a plot drawn when you select the x and y values above. + +Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. + +Use mouse-wheel for zooming and mouse drag for changing the axis range. + +Select the axes or axes labels to drag and zoom only in that orientation. + Hier wordt de plot getekend zodra je hierboven x- en y-waarden selecteert. + +Klik op punten om deze in de plot en in de tabel te selecteren. Ctrl+klik om meerdere punten te selecteren. + +Gebruik het muiswiel om te zoomen en sleep met de muis om het asbereik te veranderen. + +Selecteer de as of aslabels om alleen in die richting te slepen en te zoomen. + + + + Line type: + Lijntype: + + + + + None + Geen + + + + Line + Lijn + + + + StepLeft + Stap links + + + + StepRight + Stap rechts + + + + StepCenter + Stap gecentreerd + + + + Impulse + Impuls + + + + Point shape: + Puntvorm: + + + + Cross + Kruis + + + + Plus + Plus + + + + Circle + Cirkel + + + + Disc + Discus + + + + Square + Vierkant + + + + Diamond + Diamant + + + + Star + Ster + + + + Triangle + Driehoek + + + + TriangleInverted + Geïnverteerde driehoek + + + + CrossSquare + Vierkant met kruis + + + + PlusSquare + Vierkant met plus + + + + CrossCircle + Cirkel met kruis + + + + PlusCircle + Cirkel met plus + + + + Peace + Vredesteken + + + + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> + <html><head/><body><p>Huidige plot opslaan...</p><p>Bestandsformaat volgens extensie (png, jpg, pdf, bmp)</p></body></html> + + + + Save current plot... + Huidige plot opslaan... + + + + + Load all data and redraw plot + Laad alle gegevens en teken plot opnieuw + + + + Copy + Kopiëren + + + + Print... + Afdrukken... + + + + Show legend + Legenda tonen + + + + Stacked bars + Gestapelde staven + + + + Date/Time + Datum/Tijd + + + + Date + Datum + + + + Time + Tijd + + + + + Numeric + Numeriek + + + + Label + Label + + + + Invalid + Ongeldig + + + + + + Row # + Record # + + + + Load all data and redraw plot. +Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. + Laad alle gegevens en teken plot opnieuw. +Waarschuwing: door het partiële laadmechanisme zijn nog niet alle gegevens zijn uit de tabel opgehaald. + + + + Choose an axis color + Kies een askleur + + + + Choose a filename to save under + Kies een bestandsnaam om in op te slaan + + + + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Alle bestanden(*) + + + + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. + Dit plot bevat curves, maar de geselecteerde lijnstijl kan alleen toegepast worden op diagrammen die gesorteerd worden op X. Sorteer daarom de tabel of SQL-opdracht op X of selecteer een stijl die curves ondersteunt: Geen of Lijn. + + + + Loading all remaining data for this table took %1ms. + Het laden van alle overgebleven gegevens voor deze tabel duurde %1ms. + + + + PreferencesDialog + + + Preferences + Voorkeuren + + + + &General + &Algemeen + + + + Default &location + Standaard&locatie + + + + Remember last location + Onthoud laatste locatie + + + + Always use this location + Gebruik altijd deze locatie + + + + Remember last location for session only + Onthoud laatste locatie alleen gedurende sessie + + + + + + ... + ... + + + + Lan&guage + &Taal + + + + Toolbar style + Werkbalkstijl + + + + + + + + Only display the icon + Toon alleen het icoon + + + + + + + + Only display the text + Toon alleen de tekst + + + + + + + + The text appears beside the icon + Toon de tekst naast het icoon + + + + + + + + The text appears under the icon + Toon de tekst onder het icoon + + + + + + + + Follow the style + Volg de stijl + + + + Show remote options + Toon 'Toegang op afstand'-opties + + + + + + + + + + + + + enabled + inschakelen + + + + Automatic &updates + Automatische &updates + + + + DB file extensions + Databasebestandsextensies + + + + Manage + Beheren + + + + Main Window + Hoofdvenster + + + + Database Structure + Databasestructuur + + + + Browse Data + Gegevensbrowser + + + + Execute SQL + SQL uitvoeren + + + + Edit Database Cell + Databasecel bewerken + + + + When this value is changed, all the other color preferences are also set to matching colors. + Indien deze waarde aangepast wordt, dan worden alle andere kleurvoorkeuren ook aangepast naar die stijl. + + + + Follow the desktop style + Volg de desktopstijl + + + + Dark style + Donkere stijl + + + + Application style + Applicatiestijl + + + + This sets the font size for all UI elements which do not have their own font size option. + Dit bepaalt het lettertypegrootte voor gebruikersinterface-elementen die geen eigen lettertypegrootte-instelling hebben. + + + + Font size + Lettertypegrootte + + + + Max Recent Files + Grootte recente bestandenlijst + + + + Prompt to save SQL tabs +in new project file + Vraag om SQL-tabbladen op te +slaan in nieuw projectbestand + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + Indien ingeschakeld toont de SQL-bewerker een dialoogvenster om het opslaan van het project mee te bevestigen zodra het SQL-bewerkingtabblad gesloten wordt. + + + + &Database + &Database + + + + Database &encoding + Database&codering + + + + Open databases with foreign keys enabled. + Databases openen met vreemde-sleutelondersteuning ingeschakeld. + + + + &Foreign keys + &Vreemde sleutels + + + + Remove line breaks in schema &view + Verwijder regeleinden in schema&weergave + + + + Prefetch block si&ze + Prefetch-&blokgrootte + + + + Default field type + Standaard veldgegevenstype + + + + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. + Indien geselecteerd worden de regeleinden verwijderd uit de schemakolom van het databasestructuurtabblad, -dock en uit geprinte afdrukken. + + + + Database structure font size + Lettertypegrootte databasestructuur + + + + SQ&L to execute after opening database + S&QL uitvoeren na het openen van database + + + + Data &Browser + Gegevens&browser + + + + Font + Lettertype + + + + &Font + &Lettertype + + + + Font si&ze + Lettertype&grootte + + + + Content + Inhoud + + + + Symbol limit in cell + Symboollimiet in cel + + + + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: +Maximum number of rows in a table for enabling the value completion based on current values in the column. +Maximum number of indexes in a selection for calculating sum and average. +Can be set to 0 for disabling the functionalities. + Dit bepaalt het maximum aantal items dat voor sommige functionaliteiten met intensieve berekeningen toegestaan is: +Het maximum aantal records in een tabel om waarde-aanvulling in te schakelen aan de hand van de huidige invoer in de kolom. +Het maximaal aantal indices in een selectie om sommen en gemiddelden berekenen in te schakelen. +Voer 0 in om deze functionaliteiten uit te schakelen. + + + + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. +Can be set to 0 for disabling completion. + Dit bepaalt het maximum aantal records in een tabel om waarde-aanvulling in te schakelen aan de hand van de huidige invoer in de kolom. +Voer 0 in om waarde-aanvulling uit te schakelen. + + + + Threshold for completion and calculation on selection + Drempelwaarde voor aanvullingen en berekeningen op selecties + + + + Show images in cell + Toon afbeeldingen in cel + + + + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. + Indien geselecteerd wordt in de cellen een voorvertoning getoond van BLOBs die afbeeldingsgegevens bevatten. Dit kan de prestaties van de gegevensbrowser echter beïnvloeden. + + + + Field display + Veldweergave + + + + Displayed &text + Weergegeven &tekst + + + + Binary + Binair + + + + NULL + NULL + + + + Regular + Gewoon + + + + + + + + + Click to set this color + Klik om een kleur te selecteren + + + + Text color + Tekstkleur + + + + Background color + Achtergrondkleur + + + + Preview only (N/A) + Enkel voorvertoning (N/B) + + + + Filters + Filters + + + + Escape character + Escape-teken + + + + Delay time (&ms) + Vertragingstijd (&ms) + + + + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. + Bepaalt de tijd die gewacht wordt voordat een nieuw filter wordt toegepast. Voer 0 in om wachten uit te schakelen. + + + + &SQL + &SQL + + + + Settings name + Instellingsnaam + + + + Context + Context + + + + Colour + Kleur + + + + Bold + Vet + + + + Italic + Cursief + + + + Underline + Onderstreept + + + + Keyword + Sleutelwoord + + + + Function + Functie + + + + Table + Tabel + + + + Comment + Commentaar + + + + Identifier + Entiteitsnaam + + + + String + Tekenreeks + + + + Current line + Huidige regel + + + + Background + Achtergrond + + + + Foreground + Voorgrond + + + + selected_bg + selected_bg + + + + Selection background + Selectie-achtergrond + + + + selected_fg + selected_fg + + + + Selection foreground + Selectie-voorgrond + + + + highlight + highlight + + + + Highlight + Markering + + + + SQL editor &font + &Lettertype SQL-bewerker + + + + SQL &editor font size + Lettertypegrootte SQL-b&ewerker + + + + SQL &results font size + Lettertypegrootte SQL-&resultaten + + + + Tab size + Tabbreedte + + + + &Wrap lines + Regelteru&gloop toepassen + + + + Never + Nooit + + + + At word boundaries + Op woordbegrenzingen + + + + At character boundaries + Op letterbegrenzingen + + + + At whitespace boundaries + Op witruimtebegrenzingen + + + + &Quotes for identifiers + &Aanhalingstekens voor entiteitsnamen + + + + Choose the quoting mechanism used by the application for identifiers in SQL code. + Kies het aanhalingstekensbeleid van de applicatie voor het demarceren van entiteitsnamen in SQL-code. + + + + "Double quotes" - Standard SQL (recommended) + "Dubbele aanhalingstekens" - Standaard SQL (aanbevolen) + + + + `Grave accents` - Traditional MySQL quotes + `Accent graves` - Traditionele MySQL aanhalingstekens + + + + [Square brackets] - Traditional MS SQL Server quotes + [Rechte haakjes] - Traditionele MS SQL-Server aanhalingstekens + + + + Code co&mpletion + Code-aan&vulling + + + + Keywords in &UPPER CASE + Sleutelwoorden in &BOVENKAST + + + + When set, the SQL keywords are completed in UPPER CASE letters. + Indien geselecteerd worden SQL-sleutelwoorden voltooid in BOVENKAST-letters. + + + + Error indicators + Foutindicatoren + + + + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background + Indien geselecteerd dan worden de SQL-coderegels die de fouten tijdens de laatste uitvoering veroorzaakten gemarkeerd en het resultatenkader toont de fout op de achtergrond + + + + Hori&zontal tiling + Hori&zontaal tegelen + + + + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. + Indien geselecteerd worden de SQL-bewerker en de resultatenweergavetabel naast elkaar, in plaats van over elkaar heen, getoond. + + + + Close button on tabs + Sluitknoppen op tabbladen + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + Indien geselecteerd krijgen SQL-bewerkingstabbladen een sluitknop. Je kunt echter ook altijd het contextmenu of sneltoetsen gebruiken om ze te sluiten. + + + + &Extensions + &Extensies + + + + Select extensions to load for every database: + Selecteer extensies die voor iedere database geladen dienen te worden: + + + + Add extension + Extensie toevoegen + + + + Remove extension + Extensie verwijderen + + + + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> + <html><head/><body><p>Hoewel SQLite de REGEXP operator ondersteunt heeft ze geen reguliere-expressiesalgoritme<br/>geïmplementeerd, maar doet ze hiervoor een beroep op de hostapplicatie. DB-browser voor SQLite<br/>implementeert dit algoritme voor jou, zodat je REGEXP direct kunt gebruiken.<br/>Omdat er echter meerdere implementaties mogelijk zijn en je mogelijk een andere implementatie<br/>wilt gebruiken, staat het je vrij om onze implementatie uit te schakelen en je eigen implementatie te laden<br/>via een extensie. Hiervoor is een herstart van de applicatie nodig.</p></body></html> + + + + Disable Regular Expression extension + Schakel extensie voor reguliere expressies uit + + + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + <html><head/><body><p>SQLite biedt een SQL-functie om extensies te laden vanuit een gedeelde bibliotheek. Activeer deze optie als je de <span style=" font-style:italic;">load_extension()</span> functie vanuit SQL-code wilt aanroepen.</p><p>Om veiligheidsredenen is deze manier van extensies laden standaard uitgeschakeld en dient via deze optie in te worden geschakeld. Je kunt extensies echter altijd laden via de gebruikersinterface, zelfs als deze optie uitgeschakeld is.</p></body></html> + + + + Allow loading extensions from SQL code + Extensies laden vanuit SQL-code toestaan + + + + Remote + Toegang op afstand + + + + Your certificates + Jouw certificaten + + + + File + Bestand + + + + + Subject CN + Subject GN + + + + Subject Common Name + Subject Gebruikelijk Naam + + + + Issuer CN + Verstrekker GN + + + + Issuer Common Name + Verstrekker Gebruikelijke Naam + + + + + Valid from + Geldig vanaf + + + + + Valid to + Geldig tot + + + + + Serial number + Serienummer + + + + CA certificates + CA-certificaten + + + + Common Name + Gebruikelijke naam + + + + Subject O + Subject O + + + + Organization + Organisatie + + + + Clone databases into + Database klonen naar + + + + Proxy + Proxy + + + + Configure + Instellen + + + + Export Settings + Instellingen exporteren + + + + Import Settings + Instellingen importeren + + + + + Choose a directory + Kies een map + + + + + The language will change after you restart the application. + De taal verandert nadat je de applicatie opnieuw hebt opgestart. + + + + Select extension file + Selecteer extensiebestand + + + + Extensions(*.so *.dylib *.dll);;All files(*) + Extensies(*.so *.dylib *.dll);;Alle bestanden(*) + + + + Import certificate file + Certificaatbestand importeren + + + + No certificates found in this file. + Geen certificaten gevonden in dit bestand. + + + + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! + Weet je zeker dat je dit certificaat wilt verwijderen? Alle certificaatgegevens zullen worden verwijderd uit de applicatie-instellingen! + + + + Are you sure you want to clear all the saved settings? +All your preferences will be lost and default values will be used. + Weet je zeker dat je alle opgeslagen instellingen wilt verwijderen? +Al jouw instellingen zullen worden verwijderd en de standaardinstellingen zullen worden gebruikt. + + + + Save Settings File + Instellingenbestand opslaan + + + + + Initialization File (*.ini) + Initialisatiebestand (*.ini) + + + + The settings file has been saved in location : + + Het instellingenbestand is opgeslagen in: + + + + + Open Settings File + Instellingenbestand openen + + + + The settings file was loaded properly. + Het instellingenbestand is correct geladen. + + + + The selected settings file is not a normal settings file. +Please check again. + Het gekozen instellingenbestand is geen normaal instellingenbestand. Controleer het nogmaals. + + + + ProxyDialog + + + Proxy Configuration + Proxy-instellingen + + + + Pro&xy Type + Pro&xytype + + + + Host Na&me + &Hostnaam + + + + Port + &Poort + + + + Authentication Re&quired + &Authenticatie vereist + + + + &User Name + &Gebruikersnaam + + + + Password + &Wachtwoord + + + + None + Geen + + + + System settings + Systeeminstellingen + + + + HTTP + HTTP + + + + Socks v5 + Socks v5 + + + + QObject + + + Left + Links + + + + Right + Rechts + + + + Center + Gecentreerd + + + + Justify + Uitgevuld + + + + All files (*) + Alle bestanden (*) + + + + SQLite Database Files (*.db *.sqlite *.sqlite3 *.db3) + SQLite-databasebestanden (*.db *.sqlite *.sqlite3 *.db3) + + + + DB Browser for SQLite Project Files (*.sqbpro) + DB-browser voor SQLite-projectbestanden (*.sqbpro) + + + + SQL Files (*.sql) + SQL-bestanden (*.sql) + + + + All Files (*) + Alle bestanden (*) + + + + Text Files (*.txt) + Tekstbestanden (*.txt) + + + + Comma-Separated Values Files (*.csv) + Kommagescheiden bestanden (*.csv) + + + + Tab-Separated Values Files (*.tsv) + Tabgescheiden bestanden (*.tsv) + + + + Delimiter-Separated Values Files (*.dsv) + Scheidingstekengescheiden bestanden (*.dsv) + + + + Concordance DAT files (*.dat) + Concordance-DAT-bestanden (*.dat) + + + + JSON Files (*.json *.js) + JSON-bestanden (*.json *.js) + + + + XML Files (*.xml) + XML-bestanden (*.xml) + + + + Binary Files (*.bin *.dat) + Binaire bestanden (*.bin *.dat) + + + + SVG Files (*.svg) + SVG-bestanden (*.svg) + + + + Hex Dump Files (*.dat *.bin) + Hexdump-bestand (*.dat *.bin) + + + + Extensions (*.so *.dylib *.dll) + Extensies (*.so *.dylib *.dll) + + + + Initialization File (*.ini) + Initialisatiebestand (*.ini) + + + + Error importing data + Fout bij het importeren van de gegevens + + + + from record number %1 + van recordnummer %1 + + + + . +%1 + . +%1 + + + + Importing CSV file... + CSV-bestand importeren... + + + + Cancel + Annuleren + + + + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) + SQLite-databasebestanden (*.db *.sqlite *.sqlite3 *.db3) + + + + RemoteCommitsModel + + + Commit ID + Commit ID + + + + Message + Bericht + + + + Date + Datum + + + + Author + Auteur + + + + Size + Grootte + + + + Authored and committed by %1 + Geautoriseerd en gecommitteerd door %1 + + + + Authored by %1, committed by %2 + Geautoriseerd door %1, gecommitteerd door %2 + + + + RemoteDatabase + + + Error opening local databases list. +%1 + Fout bij het openen van lijst met lokale databases. +%1 + + + + Error creating local databases list. +%1 + Fout bij het maken van lijst met lokale databases. +%1 + + + + RemoteDock + + + Remote + Toegang op afstand + + + + Identity + Identiteit + + + + Push currently opened database to server + Push huidig geopende database naar server + + + + Upload + Uploaden + + + + DBHub.io + DBHub.io + + + + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> + <html><head/><body><p>In dit paneel kun je externe databases van de dbhub.io website toevoegen aan DB-browser voor SQLite. Allereerst heb je een identiteit nodig:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Log in op de dbhub.io website (gebruik bijvoorbeeld jouw GitHub account of wat je maar wilt)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Klik de knop &quot;Generate client certificate&quot; (dat is jouw identiteit). Daarmee krijg je een certificaatbestand (sla deze op, op jouw lokale schijf).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ga vervolgens naar het tabblad 'Toegang op afstand', in het instellingenvenster van DB-browser voor SQLite. Klik op de knop om een nieuw certificaat toe te voegen aan DB-browser for SQLite en kies dan het zojuist gedownloade certificaatbestand.</li></ol><p>Nu toont het paneel 'Toegang op afstand' jouw identiteit en kun je externe databases toevoegen.</p></body></html> + + + + Local + Lokaal + + + + Current Database + Huidige database + + + + Clone + Klonen + + + + User + Gebruiker + + + + Database + Database + + + + Branch + Tak + + + + Commits + Commits + + + + Commits for + Commits voor + + + + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> + <html><head/><body><p>Je gebruikt momenteel een ingebouwde, alleen-lezenindentiteit. Om jouw database te uploaden dien je jouw DBHub.io-account in te stellen en te gebruiken.</p><p>Nog geen DBHub.io account? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Maak er nu een aan</span></a> en importeer jouw certificaat <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">hier</span></a> om jouw databases te delen.</p><p>Bezoek <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">deze link</span></a> voor online hulp.</p></body></html> + + + + Back + Terug + + + + Delete Database + Database verwijderen + + + + Delete the local clone of this database + De lokale kloon van deze database verwijderen + + + + Open in Web Browser + In webbrowser openen + + + + Open the web page for the current database in your browser + De webpagina van de huidige database openen in je browser + + + + Clone from Link + Van link klonen + + + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + Hiermee download je een externe database om lokaal te bewerken aan de hand van de URL die verstrekt werd op de webpagina van de database. + + + + Refresh + Verversen + + + + Reload all data and update the views + Alle gegevens herladen en de views updaten + + + + F5 + + + + + Clone Database + Database klonen + + + + Open Database + Database openen + + + + Open the local copy of this database + Lokale kopie van deze database openen + + + + Check out Commit + Commit inladen + + + + Download and open this specific commit + Deze specifieke downloaden en openen + + + + Check out Latest Commit + Laatste commit inladen + + + + Check out the latest commit of the current branch + De laatste commit van de huidige tak inladen + + + + Save Revision to File + Revisie opslaan in bestand + + + + Saves the selected revision of the database to another file + Slaat de geselecteerde revisie van de database op in een ander bestand + + + + Upload Database + Database uploaden + + + + Upload this database as a new commit + Deze database uploaden als een nieuwe commit + + + + Select an identity to connect + Selecteer een identiteit om te verbinden + + + + Public + Openbaar + + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + Dit downloadt een database van een externe server om lokaal te bewerken. +Voer een URL in van waaruit gekloond moet worden. Je kunt deze URL +genereren door te klikken op de 'Clone Database in DB4S'-knop op de +webpagina van de database. + + + + Invalid URL: The host name does not match the host name of the current identity. + Ongeldige URL: De hostnaam komt niet overeen met de hostnaam van de huidige identiteit. + + + + Invalid URL: No branch name specified. + Ongeldige URL: Geen taknaam opgegeven. + + + + Invalid URL: No commit ID specified. + Ongeldige URL: Geen commit-ID opgegeven. + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + Je hebt de lokale kloon van de database aangepast. Als je deze commit inlaadt overschrijft dit lokale wijzigingen. +Weet je zeker dat je door wilt gaan? + + + + The database has unsaved changes. Are you sure you want to push it before saving? + De database heeft niet-opgeslagen wijzigingen. Weet je zeker dat je wilt pushen voordat je opslaat? + + + + The database you are trying to delete is currently opened. Please close it before deleting. + De database die je probeert te verwijderen is op het ogenblik geopend. Sluit deze voordat je deze verwijdert. + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + Dit verwijdert de lokale database met alle wijzigingen die je nog niet gecommitteerd hebt. Weet je zeker dat je deze database wilt verwijderen? + + + + RemoteLocalFilesModel + + + Name + Naam + + + + Branch + Tak + + + + Last modified + Laatst gewijzigd + + + + Size + Grootte + + + + Commit + Commit + + + + File + Bestand + + + + RemoteModel + + + Name + Naam + + + + Last modified + Laatst gewijzigd + + + + Size + Grootte + + + + Commit + Commit + + + + Size: + Grootte: + + + + Last Modified: + Laatst gewijzigd: + + + + Licence: + Licentie: + + + + Default Branch: + Standaardtak: + + + + RemoteNetwork + + + Choose a location to save the file + Kies een locatie om het bestand in op te slaan + + + + Error opening remote file at %1. +%2 + Fout bij het openen van extern bestand %1. +%2 + + + + Error: Invalid client certificate specified. + Fout: ongeldig certificaatbestand opgegeven. + + + + Please enter the passphrase for this client certificate in order to authenticate. + Geef de toegangsfrase voor dit client-certificaat op om te authenticeren. + + + + Cancel + Annuleren + + + + Uploading remote database to +%1 + Externe database wordt geüploadt naar +%1 + + + + Downloading remote database from +%1 + Externe database wordt gedownload vanaf +%1 + + + + + Error: The network is not accessible. + Fout: het netwerk is niet toegankelijk. + + + + Error: Cannot open the file for sending. + Fout: kan het te verzenden bestand niet openen. + + + + RemotePushDialog + + + Push database + Database pushen + + + + Database na&me to push to + Database&naam om naar te pushen + + + + Commit message + Commitbericht + + + + Database licence + Databaselicentie + + + + Public + Openbaar + + + + Branch + Tak + + + + Force push + Push forceren + + + + Username + Gebruikersnaam + + + + Database will be public. Everyone has read access to it. + Database wordt openbaar. Iedereen zal leestoegang hebben. + + + + Database will be private. Only you have access to it. + Database wordt privé. Alleen jij zal leestoegang hebben. + + + + Use with care. This can cause remote commits to be deleted. + Wees hier voorzichtig mee; dit kan ervoor zorgen dat externe commits verwijderd worden. + + + + RunSql + + + Execution aborted by user + Uitvoering afgebroken door gebruiker + + + + , %1 rows affected + , %1 records getroffen + + + + query executed successfully. Took %1ms%2 + Opdracht succesvol uitgevoerd. Duurde %1ms%2 + + + + executing query + opdracht wordt uitgevoerd + + + + SelectItemsPopup + + + A&vailable + Beschi&kbaar + + + + Sele&cted + Gese&lecteerd + + + + SqlExecutionArea + + + Form + Formulier + + + + Find previous match [Shift+F3] + Vorige overeenkomst zoeken [Shift+F3] + + + + Find previous match with wrapping + Vorige overeenkomst zoeken met terugloop + + + + Shift+F3 + + + + + The found pattern must be a whole word + Het gevonden patroon moet een heel woord zijn + + + + Whole Words + Hele woorden + + + + Text pattern to find considering the checks in this frame + Zoekterm die gezocht moet worden met de geselecteerde opties in dit kader + + + + Find in editor + Zoek in bewerker + + + + The found pattern must match in letter case + De gevonden overeenkomst moet identiek zijn in onder- en bovenkast + + + + Case Sensitive + Identieke onder-/bovenkast + + + + Find next match [Enter, F3] + Volgende overeenkomst zoeken [Enter, F3] + + + + Find next match with wrapping + Volgende overeenkomst zoeken met terugloop + + + + F3 + + + + + Interpret search pattern as a regular expression + Interpreteer zoekterm als reguliere expressie + + + + <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> + <html><head/><body><p>Indien geselecteerd wordt de zoekterm geïnterpreteerd als een UNIX reguliere expressie. Zie hiervoor <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Reguliere Expressies in Wikibooks (Engels)</a>.</p></body></html> + + + + Regular Expression + Reguliere expressie + + + + + Close Find Bar + Zoekbalk sluiten + + + + <html><head/><body><p>Results of the last executed statements.</p><p>You may want to collapse this panel and use the <span style=" font-style:italic;">SQL Log</span> dock with <span style=" font-style:italic;">User</span> selection instead.</p></body></html> + <html><head/><body><p>Resultaten van de laatst uitgevoerde opdrachten.</p><p>Je kunt dit paneel ook inklappen en in plaats daarvan het <span style=" font-style:italic;">SQL-log</span>dock gebruiken met <span style=" font-style:italic;">Gebruiker</span> geselecteerd.</p></body></html> + + + + This field shows the results and status codes of the last executed statements. + Dit veld toont de resultaten en statuscodes van de laatst uitgevoerde opdrachten. + + + + Results of the last executed statements + Resultaten van de laatst uitgevoerde opdrachten + + + + Couldn't read file: %1. + Kon het bestand niet lezen: %1. + + + + + Couldn't save file: %1. + Kon het bestand niet opslaan: %1. + + + + Your changes will be lost when reloading it! + Jouw wijzigingen zullen verloren gaan als je het opnieuw laadt! + + + + The file "%1" was modified by another program. Do you want to reload it?%2 + Het bestand '%1' is aangepast door een ander programma. Wil je het herladen?%2 + + + + SqlTextEdit + + + Ctrl+/ + + + + + Ctrl+PgDown + + + + + SqlUiLexer + + + (X) The abs(X) function returns the absolute value of the numeric argument X. + (X) De abs(X) functie retourneert de absolute waarde van het numerieke argument X. + + + + () The changes() function returns the number of database rows that were changed or inserted or deleted by the most recently completed INSERT, DELETE, or UPDATE statement. + () De changes() functie retourneert het aantal databaserecords dat gewijzigd, ingevoegd +of verwijderd is door de meest recent voltooide INSERT-, DELETE- of UPDATE-instructie. + + + + (X1,X2,...) The char(X1,X2,...,XN) function returns a string composed of characters having the unicode code point values of integers X1 through XN, respectively. + (X1,X2,...) De char(X1,X2,...,XN) functie retourneert een tekenreeks bestaande uit tekens +met de respectievelijke unicode-codepuntwaarden van de gehele getallen X1 tot en met XN. + + + + (X,Y,...) The coalesce() function returns a copy of its first non-NULL argument, or NULL if all arguments are NULL + (X,Y,...) De coalesce(X,Y,...) functie retourneert een kopie van het eerste niet-NULL argument, of NULL als alle argument NULL zijn + + + + (X,Y) The glob(X,Y) function is equivalent to the expression "Y GLOB X". + (X,Y) De glob(X,Y) functie is het equivalent van de expressie "Y GLOB X". + + + + (X,Y) The ifnull() function returns a copy of its first non-NULL argument, or NULL if both arguments are NULL. + (X,Y) De ifnull(X,Y) functie retourneert een kopie van het eerste niet-NULL argument, of NULL als beide argumenten NULL zijn. + + + + (X,Y) The instr(X,Y) function finds the first occurrence of string Y within string X and returns the number of prior characters plus 1, or 0 if Y is nowhere found within X. + (X,Y) De instr(X,Y) functie zoekt het eerste voorkomen van tekenreeks Y in tekenreeks X +en retourneert het aantal voorgaande tekens plus 1, of 0 als Y niet voorkomt in X. + + + + (X) The hex() function interprets its argument as a BLOB and returns a string which is the upper-case hexadecimal rendering of the content of that blob. + (X) De hex(X) functie interpreteert het argument als een BLOB en retourneert de +hexadecimale voorstelling van de BLOB-inhoud als tekenreeks in bovenkast. + + + + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + (X,Y,Z) De iif(X,Y,Z) functie retourneert de waarde Y als X waar is, en anders Z. + + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. + () De last_insert_rowid() functie retourneert het ROWID van het laatste record dat +door de databaseverbinding die de functie aanriep is ingevoegd. + + + + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. + (X) Voor een tekenreeks X, retourneert de length(X) functie het aantal tekens (en niet bytes) in X voor het eerste NUL-teken. + + + + (X,Y) The like() function is used to implement the "Y LIKE X" expression. + (X,Y) De like(X,Y) functie wordt gebruikt als implementatie voor de expressie "Y LIKE X". + + + + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. + (X,Y,Z) De like(X,Y,Z) functie wordt gebruikt als implementatie voor de expressie "Y LIKE X ESCAPE Z". + + + + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. + (X) De load_extension(X) functie laadt SQLite extensies uit een gedeeld biblitheekbestand genaamd X. +Voor het gebruik van deze functie is autorisatie vanuit Instellingen nodig. + + + + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. + (X,Y) De load_extension(X,Y) functie laadt SQLite extensies uit een gedeeld biblitheekbestand +genaamd X gebruikmakend van toegangspunt Y. +Voor het gebruik van deze functie is autorisatie vanuit Instellingen nodig. + + + + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. + (X) De lower(X) functie retourneert een kopie van de tekenreeks X waarbij alle ASCII-tekens omgezet worden naar onderkast. + + + + (X) ltrim(X) removes spaces from the left side of X. + (X) ltrim(X) verwijdert alle spaties aan de linkerkant van X. + + + + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. + (X,Y) De ltrim(X,Y) functie retourneert een tekenreeks die gevormd wordt door alle +tekens die in Y voorkomen te verwijderen van de linkerkant van X. + + + + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. + (X,Y,...) De max(X,Y,...) functie accepteert een variabel aantal argumenten en +retourneert het argument met de hoogste waarde, of NULL als enig argument NULL is. + + + + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. + (X,Y,...) De min(X,Y,...) functie accepteert een variabel aantal argumenten en retourneert het argument met de laagste waarde. + + + + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. + (X,Y) De nullif(X,Y) functie retourneert het eerste argument als de argumenten +verschillend zijn en NULL als de argumenten hetzelfde zijn. + + + + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. + (FORMAT,...) De printf(FORMAT,...) SQL functie werkt zoals de sqlite3_mprintf() functie +in de C-taal en de printf() functie uit de standaard C-bibliotheek. + + + + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. + (X) De quote(X) functie retourneert de tekst van een SQL literaal met de waarde van +het argument, geschikt om in te sluiten in een SQL-instructie. + + + + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. + () De random() functie retourneert een pseudowillekeurig geheel getal tussen -9223372036854775808 en +9223372036854775807. + + + + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. + (N) De randomblob(N) functie retourneert een N-byte blob met pseudowillekeurige bytes. + + + + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. + (X,Y,Z) De replace(X,Y,Z) functie retourneert een tekenreeks samengesteld door alle +voorvallen van tekenreeks Y in tekenreeks X te vervangen door tekenreeks Z. + + + + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. + (X) De round(X) functie retourneert het zwevendekommagetal X afgerond naar nul cijfers achter de komma. + + + + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. + (X,Y) De round(X,Y) functie retourneert het zwevendekommagetal X afgerond naar Y cijfers achter de komma. + + + + (X) rtrim(X) removes spaces from the right side of X. + (X) rtrim(X) verwijdert alle spaties aan de rechterkant van X. + + + + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. + (X,Y) De rtrim(X,Y) functie retourneert een tekenreeks die gevormd wordt door alle +tekens die in Y voorkomen te verwijderen van de rechterkant van X. + + + + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. + (X) De soundex(X) functie retourneert de soundex-codering van tekenreeks X als tekenreeks. + + + + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. + (X,Y) substr(X,Y) retourneert alle tekens van de tekenreeks X, van het Y-ste teken tot en met het laatste. + + + + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. + (X,Y,Z) De substr(X,Y,Z) functie retourneert het deel van de tekenreeks X, vanaf het Y-ste teken, en met lengte Z. + + + + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. + () De total_changes() functie retourneert het aantal databaserecords dat gewijzigd is +door INSERT-, DELETE- of UPDATE-instructies sinds de databaseconnectie geopend werd. + + + + (X) trim(X) removes spaces from both ends of X. + (X) trim(X) verwijdert alle spaties aan beide kanten van X. + + + + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. + (X,Y) De trim(X,Y) functie retourneert een tekenreeks die gevormd wordt door alle tekens +die in Y voorkomen te verwijderen van beide kanten van X. + + + + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. + (X) De typeof(X) functie retourneert een tekenreeks die aangeeft wat het gegevenstype van expressie X is. + + + + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. + (X) De unicode(X) functie retourneert het numerieke unicode-codepunt van het eerste teken in de tekenreeks X. + + + + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. + (X) De upper(X) functie retourneert een kopie van de tekenreeks X waarbij alle +onderkast ASCII-tekens omgezet worden naar hun bovenkast equivalent. + + + + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. + (N) De zeroblob(N) functie retourneert een blob met N 0x00 bytes. + + + + + + + (timestring,modifier,modifier,...) + (tijdtekenreeks,modificator,modificator,...) + + + + (format,timestring,modifier,modifier,...) + (formaat,tijdtekenreeks,modificator,modificator,...) + + + + (X) The avg() function returns the average value of all non-NULL X within a group. + (X) De avg() functie retourneert de gemiddelde waarde van alle niet-NULL X in een groep. + + + + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. + (X) De count(X) functie retourneert het aantal maal dat X niet NULL is in een groep. + + + + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. + (X) De group_concat(X) functie retourneert een tekenreeks die de aaneenschakeling is van alle niet-NULL waarden van X. + + + + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. + (X,Y) De group_concat(X,Y) functie retourneert een tekenreeks die de aaneenschakeling +is van alle niet-NULL waarden van X, met Y als scheidingsteken(-reeks). + + + + (X) The max() aggregate function returns the maximum value of all values in the group. + (X) De max(X) aggregaatfunctie retourneert de hoogste waarde van alle waarden in de groep. + + + + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. + (X) De min(X) aggregaatfunctie retourneert de laagste niet-NULL waarde van alle waarden in de groep. + + + + + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. + (X) De sum(X) en total(X) aggregaatfuncties retourneren de opsomming van alle niet-NULL waarden in de groep. + + + + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. + () Het nummer van de rij binnen de huidige partitie. Rijen worden genummerd vanaf 1 +in de volgorde zoals gedefinieerd door de ORDER BY clausule in de vensterdefinitie, +of anders in arbitraire volgorde. + + + + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. + () Het row_number() van de eerste peer in elke groep - de rang van de huidige rij +met hiaten. Als er geen ORDER BY clausule is, dan worden alle rijen als peer +beschouwd en retourneert deze functie altijd 1. + + + + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. + () Het nummer van de peergroep van de huidige rij, binnen diens partitie - de rang +van de huidige rij zonder hiaten. Partities worden genummerd vanaf 1 in de volgorde +zoals gedefinieerd door de ORDER BY clausule in de vensterdefinitie. Als er geen +ORDER BY clausule is, dan worden alle rijen als peer beschouwd en retourneert deze functie altijd 1. + + + + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. + () Ondanks de naam retourneert deze functie altijd een waarde tussen 0,0 en 1,0 +gelijk aan (rang - 1)/(partitierijen - 1), waarbij rang de waarde is die geretourneerd +wordt door de ingebouwde vensterfunctie rank() en partitierijen het totaal aantal +rijen in de partitie is. Wanneer de partitie maar een rij bevat dan retourneert deze functie 0,0. + + + + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. + () De cumulatieve distributie. Berekend als rijnummer/partitierijen, waarbij rijnummer +de waarde is die geretourneerd wordt door row_number() voor de laatste peer in de +groep en partitierijen het aantal rijen in de partitie is. + + + + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. + (N) Argument N wordt behandeld als geheel getal. Deze functie deelt de partitie zo +evenredig als mogelijk op in N groepen en kent aan elke groep een getal tussen +1 en N toe , in de volgorde zoals gedefinieerd door de ORDER BY clausule, indien +aanwezig, en anders in arbitraire volgorde.. Indien nodig komen grote groepen eerst. +Deze functie retourneert het gehele getal dat toegekend is aan de groep waar de +huidige rij deel van uit maakt. + + + + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. + (expr) Evalueert de expressie expr tegen de vorige rij in de partitie en retourneert +het resultaat. Of NULL, indien er geen vorige rij bestaat (omdat de huidige rij de eerste is). + + + + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. + (expr,verschuiving) Indien het argument verschuiving wordt meegegeven dan dient +deze een niet-negatief geheel getal te zijn. In dat geval wordt de expressie expr tegen +de rij met afstand verschuiving voor de huidige rij in de partitie geëvalueerd en het +resultaat retourneerd. Als verschuiving 0 is dan wordt tegen de huidige rij geëvalueerd. +Indien er geen rij met afstand verschuiving voor de huidige rij bestaat, wordt NULL geretourneerd. + + + + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. + (expr,verschuiving,standaardwaarde) Retourneert standaardwaarde als deze meegegeven +is of anders NULL wanneer de rij volgens de verschuiving niet bestaat. + + + + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. + (expr) Evalueert de expressie expr tegen de volgende rij in de partitie en retourneert +het resultaat. Of NULL, indien er geen volgende rij bestaat (omdat de huidige rij de laatste is). + + + + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. + (expr,verschuiving) Indien het argument verschuiving wordt meegegeven dan +dient deze een niet-negatief geheel getal te zijn. In dat geval wordt de expressie +expr tegen de rij met afstand verschuiving na de huidige rij in de partitie +geëvalueerd en het resultaat retourneerd. Als verschuiving 0 is dan wordt tegen +de huidige rij geëvalueerd. Indien er geen rij met afstand verschuiving na de +huidige rij bestaat, wordt NULL geretourneerd. + + + + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. + (expr) Deze ingebouwde vensterfunctie berekent het vensterkader voor elke rij, +op dezelfde manier als een geaggregeerde vensterfunctie. Evalueert voor elke rij +de expressie expr tegen de eerste rij in het vensterkader en retourneert de waarde. + + + + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. + (expr) Deze ingebouwde vensterfunctie berekent het vensterkader voor elke rij, +op dezelfde manier als een geaggregeerde vensterfunctie. Evalueert voor elke rij +de expressie expr tegen de laatste rij in het vensterkader en retourneert de waarde. + + + + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. + (expr,N) Deze ingebouwde vensterfunctie berekent het vensterkader voor elke rij, +op dezelfde manier als een geaggregeerde vensterfunctie. Evalueert de expressie +expr tegen rij N van het vensterkader en retourneert de waarde. Rijen worden binnen +het vensterkader genummerd vanaf 1 in de volgorde zoals gedefinieerd door de +ORDER BY clausule,indien aanwezig, en anders in arbitraire volgorde. Als rij N niet +bestaat in de partitie dan wordt NULL geretourneerd. + + + + SqliteTableModel + + + reading rows + records lezen + + + + loading... + aan het laden... + + + + References %1(%2) +Hold %3Shift and click to jump there + Verwijst naar %1(%2) +Houdt %3Shift ingedrukt terwijl je klikt om er naartoe te springen + + + + Error changing data: +%1 + Fout bij het aanpassen van gegevens: +%1 + + + + retrieving list of columns + lijst met kolommen aan het ophalen + + + + Fetching data... + Gegevens aan het ophalen... + + + + + Cancel + Annuleren + + + + TableBrowser + + + Browse Data + Gegevensbrowser + + + + &Table: + &Tabel: + + + + Select a table to browse data + Selecteer een tabel om door gegevens te bladeren + + + + Use this list to select a table to be displayed in the database view + Gebruik deze lijst om een tabel te selecteren die getoond zal worden in de gegevensbrowser + + + + This is the database table view. You can do the following actions: + - Start writing for editing inline the value. + - Double-click any record to edit its contents in the cell editor window. + - Alt+Del for deleting the cell content to NULL. + - Ctrl+" for duplicating the current record. + - Ctrl+' for copying the value from the cell above. + - Standard selection and copy/paste operations. + Dit is het databasetabeloverzicht: Je kunt hier de volgende handelingen uitvoeren: + - Beginnen met typen om waarden in de regel te bewerken. + - Dubbelklikken op een willekeurig record om diens inhoud te bewerken in het celbewerkingsvenster. + - Alt-Del om de celinhoud om te zetten naar NULL. + - Ctrl+" om het huidige record te dupliceren. + - Ctrl+' om de celwaarde boven te kopiëren. + - Gebruikelijke kopiëren/plakken handelingen. + + + + Text pattern to find considering the checks in this frame + Zoekterm die gezocht moet worden met de geselecteerde opties in dit kader + + + + Find in table + Zoek in tabel + + + + Find previous match [Shift+F3] + Vorige overeenkomst zoeken [Shift+F3] + + + + Find previous match with wrapping + Vorige overeenkomst zoeken met terugloop + + + + Shift+F3 + + + + + Find next match [Enter, F3] + Volgende overeenkomst zoeken [Enter, F3] + + + + Find next match with wrapping + Volgende overeenkomst zoeken met terugloop + + + + F3 + + + + + The found pattern must match in letter case + De gevonden overeenkomst moet identiek zijn in onder-/bovenkast + + + + Case Sensitive + Identieke onder-/bovenkast + + + + The found pattern must be a whole word + Het gevonden patroon moet een heel woord zijn + + + + Whole Cell + Gehele cel + + + + Interpret search pattern as a regular expression + Interpreteer zoekterm als reguliere expressie + + + + <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> + <html><head/><body><p>Indien geselecteerd wordt de zoekterm geïnterpreteerd als een UNIX reguliere expressie. Zie hiervoor <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Reguliere Expressies in Wikibooks (Engels)</a>.</p></body></html> + + + + Regular Expression + Reguliere expressie + + + + + Close Find Bar + Zoekbalk sluiten + + + + Text to replace with + Tekst om mee te vervangen + + + + Replace with + Vervangen met + + + + Replace next match + Vervang volgende overeenkomst + + + + + Replace + Vervangen + + + + Replace all matches + Alle overeenkomsten vervangen + + + + Replace all + Alles vervangen + + + + <html><head/><body><p>Scroll to the beginning</p></body></html> + <html><head/><body><p>Blader naar het begin</p></body></html> + + + + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> + <html><head/><body><p>Klikken op deze knop brengt je naar het begin van het hierboven getoonde tabeloverzicht.</p></body></html> + + + + |< + |< + + + + Scroll one page upwards + Blader één pagina omhoog + + + + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> + <html><head/><body><p>Klikken op deze knop bladert één pagina omhoog in het hierboven getoonde tabeloverzicht.</p></body></html> + + + + < + < + + + + 0 - 0 of 0 + 0 - 0 van 0 + + + + Scroll one page downwards + Blader één pagina omlaag + + + + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> + <html><head/><body><p>Klikken op deze knop bladert één pagina omlaag in het hierboven getoonde tabeloverzicht.</p></body></html> + + + + > + > + + + + Scroll to the end + Blader naar het einde + + + + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> + <html><head/><body><p>Klikken op deze knop brengt je naar het einde van het hierboven getoonde tabeloverzicht.</p></body></html> + + + + >| + >| + + + + <html><head/><body><p>Click here to jump to the specified record</p></body></html> + <html><head/><body><p>Klik op deze knop om naar een specifiek record te springen</p></body></html> + + + + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> + <html><head/><body><p>Deze knop wordt gebruikt om naar het specifieke record van het Ga-naar-veld te springen.</p></body></html> + + + + Go to: + Ga naar: + + + + Enter record number to browse + Voer een recordnummer in om te browsen + + + + Type a record number in this area and click the Go to: button to display the record in the database view + Voer een specifiek recordnummer in dit veld in en klik op de Ga naar-knop, om het record in het tabeloverzicht te tonen + + + + 1 + 1 + + + + Show rowid column + De rowid-kolom tonen + + + + Toggle the visibility of the rowid column + De zichtbaarheid van de rowid-kolom omschakelen + + + + Unlock view editing + Viewbewerking ontgrendelen + + + + This unlocks the current view for editing. However, you will need appropriate triggers for editing. + Dit ontgrendelt de huidige view om deze te bewerken. Je hebt echter de juiste triggers nodig om te kunnen bewerken. + + + + Edit display format + Opmaak bewerken + + + + Edit the display format of the data in this column + De opmaak van de gegevens in deze kolom bewerken + + + + + New Record + Nieuw record + + + + + Insert a new record in the current table + Een nieuw record in de huidige tabel invoegen + + + + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> + <html><head/><body><p>Deze knop maakt een nieuw record aan in de database. Houd de muis ingedrukt om een popupmenu met opties te openen:</p><ul><li><span style=" font-weight:600;">Nieuw record</span>: een nieuw record met standaardwaarden invoegen.</li><li><span style=" font-weight:600;">Waarden invoeren...</span>: opent een dialoogvenster om waarden in te voeren voordat ze in de database worden ingevoegd. Hiermee kun je waarden invoeren die aan de beperkingen voldoen. Dit dialoogvenster wordt tevens geopend als <span style=" font-weight:600;">Nieuw record</span> mislukte door deze beperkingen.</li></ul></body></html> + + + + + Delete Record + Record verwijderen + + + + Delete the current record + Het huidige record verwijderen + + + + + This button deletes the record or records currently selected in the table + Deze knop verwijdert huidig in de tabel geselecteerde records + + + + + Insert new record using default values in browsed table + Nieuw record invoegen met de standaardwaarden die gelden voor de getoonde tabel + + + + Insert Values... + Waarden invoeren... + + + + + Open a dialog for inserting values in a new record + Open een dialoogvenster om waarden voor een nieuw record in te voeren + + + + Export to &CSV + Exporteren als &CSV + + + + + Export the filtered data to CSV + De gefilterde gegevens exporteren naar CSV + + + + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. + Deze knop exporteert de gegevens van de tabel zoals deze nu getoond worden (door filters, opmaak en kolomsorteringen) naar een CSV-bestand. + + + + Save as &view + Opslaan als &view + + + + + Save the current filter, sort column and display formats as a view + De huidige filters, kolomsorteringen en opmaak opslaan als view + + + + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. + Deze knop slaat de gegevens van de tabel zoals deze nu getoond worden (door filters, opmaak en kolomsorteringen) op als SQL-view zodat je er later doorheen kunt bladeren of deze in SQL-instructies kunt gebruiken. + + + + Save Table As... + Tabel opslaan als... + + + + + Save the table as currently displayed + Tabel opslaan zoals deze op het ogenblik wordt getoond + + + + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> + <html><head/><body><p>Dit popupmenu biedt de volgende opties om toe te passen op de huidig getoonde en gefilterde tabel:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Exporteren naar CSV: Deze optie exporteert de gegevens van de tabel zoals deze nu getoond worden (door filters, opmaak en kolomsorteringen) naar een CSV-bestand.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Opslaan als view: Deze optie slaat de gegevens van de tabel zoals deze nu getoond worden (door filters, opmaak en kolomsorteringen) op als SQL-view zodat je er later doorheen kunt bladeren of deze in SQL-instructies kunt gebruiken.</li></ul></body></html> + + + + Hide column(s) + Kolom(-men) verbergen + + + + Hide selected column(s) + Geselecteerde kolom(-men) verbergen + + + + Show all columns + Alle kolommen tonen + + + + Show all columns that were hidden + Alle kolommen tonen die verborgen waren + + + + + Set encoding + Encodering aanpassen + + + + Change the encoding of the text in the table cells + Encodering van de tekst in de tabelcellen aanpassen + + + + Set encoding for all tables + Encodering van alle tabellen aanpassen + + + + Change the default encoding assumed for all tables in the database + De standaard veronderstelde encodering voor alle tabellen aanpassen + + + + Clear Filters + Filters wissen + + + + Clear all filters + Alle filters wissen + + + + + This button clears all the filters set in the header input fields for the currently browsed table. + Deze knop wist alle filters onder de kolomkoppen voor de huidig getoonde tabel. + + + + Clear Sorting + Sortering opheffen + + + + Reset the order of rows to the default + Herstelt de sortering van de records naar de standaardsortering + + + + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. + Deze knop heft alle sorteringen voor de huidig getoonde tabel op en zet deze terug naar de standaardsortering. + + + + Print + Afdrukken + + + + Print currently browsed table data + De huidig getoonde tabelgegevens afdrukken + + + + Print currently browsed table data. Print selection if more than one cell is selected. + De huidig getoonde tabelgegevens afdrukken. Drukt selectie af als meer dan één cel geselecteerd is. + + + + Ctrl+P + + + + + Refresh + Verversen + + + + Refresh the data in the selected table + Ververs de gegevens van de huidig geselecteerde tabel + + + + This button refreshes the data in the currently selected table. + Deze knop ververst de gegevens van de huidig geselecteerde tabel. + + + + F5 + + + + + Find in cells + In cellen zoeken + + + + Open the find tool bar which allows you to search for values in the table view below. + Open de zoekwerkbalk die je in staat stelt waarden te zoeken in het hieronder getoonde overzicht. + + + + + Bold + Vet + + + + Ctrl+B + + + + + + Italic + Cursief + + + + + Underline + Onderstreept + + + + Ctrl+U + + + + + + Align Right + Rechts uitlijnen + + + + + Align Left + Links uitlijnen + + + + + Center Horizontally + Horizontaal centreren + + + + + Justify + Uitvullen + + + + + Edit Conditional Formats... + Voorwaardelijke opmaakregels bewerken... + + + + Edit conditional formats for the current column + Voorwaardelijke opmaakregels voor de huidige kolom bewerken + + + + Clear Format + Opmaak wissen + + + + Clear All Formats + Alle opmaak wissen + + + + + Clear all cell formatting from selected cells and all conditional formats from selected columns + Wis alle celopmaak van geselecteerde cellen en wis alle voorwaardelijke opmaak van geselecteerde kolommen + + + + + Font Color + Tekstkleur + + + + + Background Color + Achtergrondkleur + + + + Toggle Format Toolbar + Toon/verberg opmaakwerkbalk + + + + Show/hide format toolbar + Toont of verbergt de opmaakwerkbalk + + + + + This button shows or hides the formatting toolbar of the Data Browser + Deze knop toont of verbergt de opmaakwerkbalk van de Gegevensbrowser + + + + Select column + Kolom selecteren + + + + Ctrl+Space + + + + + Replace text in cells + Tekst in cellen vervangen + + + + Freeze columns + Kolommen bevriezen + + + + Make all columns from the first column up to this column not move when scrolling horizontally + Pin alle kolommen vanaf de eerste tot deze vast, zodat deze niet bewegen tijdens het horizontaal scrollen + + + + Filter in any column + Willekeurige kolom filteren + + + + Ctrl+R + + + + + %n row(s) + + %n record + %n records + + + + + , %n column(s) + + , %n kolom + , %n kolommen + + + + + . Sum: %1; Average: %2; Min: %3; Max: %4 + . Som: %1; Gemiddelde: %2; Min.: %3; Max.: %4 + + + + Conditional formats for "%1" + Voorwaardelijke opmaakregels voor "%1" + + + + determining row count... + aantal records bepalen... + + + + %1 - %2 of >= %3 + %1 - %2 van >= %3 + + + + %1 - %2 of %3 + %1 - %2 van %3 + + + + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. + Voer een pseudo-primaire sleutel in om het bewerken van deze view in te schakelen. Dit dient de naam van een unieke-waardenkolom in de view te zijn. + + + + Delete Records + Records verwijderen + + + + Duplicate records + Records dupliceren + + + + Duplicate record + Record dupliceren + + + + Ctrl+" + + + + + Adjust rows to contents + Rijen aanpassen aan inhoud + + + + Error deleting record: +%1 + Fout bij het verwijderen van record: +%1 + + + + Please select a record first + Selecteer eerst een record + + + + There is no filter set for this table. View will not be created. + Er is geen filter voor deze tabel ingesteld. View wordt niet gemaakt. + + + + Please choose a new encoding for all tables. + Kies een nieuwe codering voor alle tabellen. + + + + Please choose a new encoding for this table. + Kies een nieuwe codering voor deze tabel. + + + + %1 +Leave the field empty for using the database encoding. + %1 +Laat het veld leeg om de databasecodering te gebruiken. + + + + This encoding is either not valid or not supported. + De codering is niet geldig of wordt niet ondersteund. + + + + %1 replacement(s) made. + %1 vervangin(-en) gedaan. + + + + TableBrowserDock + + + New Data Browser + Nieuwe gegevensbrowser + + + + Rename Data Browser + Gegevensbrowser hernoemen + + + + Close Data Browser + Gegevensbrowser sluiten + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + Geef een nieuwe naam voor de gegevensbrowser. Gebruik het '&&'-teken om de een van de volgende tekens als sneltoets in te stellen. + + + + VacuumDialog + + + Compact Database + Database comprimeren + + + + Warning: Compacting the database will commit all of your changes. + Waarschuwing: wanneer je de database comprimeert zullen al jouw gemaakte wijzigingen gecommitteerd worden. + + + + Please select the databases to co&mpact: + Selecteer de databases om te co&mprimeren: + + + diff --git a/src/translations/sqlb_pl.ts b/src/translations/sqlb_pl.ts index 508916834..240f29afc 100644 --- a/src/translations/sqlb_pl.ts +++ b/src/translations/sqlb_pl.ts @@ -18,43 +18,6 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> <html><head/><body><p>Przeglądarka SQLite jest darmowym otwartym oprogramowaniem przeznaczonym do graficznej edycji i tworzenia plików bazy danych SQLite.</p><p>Program podlega podwójnej licencji użytkowania: Publiczna licencja Mozilli Wersja 2 jak również Powszechna Licencja Publiczna GNU wersja 3 i późniejsza. Możesz zmieniać i rozpowszechniać program pod warunkami zawartymi w tych licencjach.</p><p>Zobacz <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> i <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> dla szczegółów.</p><p>Odwiedź naszą stronę internetową aby zapoznać się ze szczegółami na temat działania tego programu: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">To oprogramowanie używa GPL/LGPL Qt Toolkit z: </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Zobacz </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> na temat licencji i użytkowania.</span></p><p><span style=" font-size:small;">Używany również jest zestaw ikon Silk stworzony przez Mark James pod licencją Creative Commons Attribution 2.5 i 3.0.<br/>Zobacz </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> po więcej szczegółów.</span></p></body></html> - - (based on SQLite %1) - (oparte na SQLite %1) - - - - SQLCipher Version %1 (based on SQLite %2) - - - - - Version - Wersja - - - - Built for %1, running on %2 - - - - Built for - Zbudowane dla - - - - Qt Version - Wersja Qt - - - SQLCipher Version - Wersja SQLCipher - - - - SQLite Version - Wersja SQLite - AddRecordDialog @@ -154,92 +117,151 @@ Application - - Usage: %1 [options] [db] + + Possible command line arguments: + Dozwolone argumenty wiersza poleceń: + + + + The user settings file location is replaced with the argument value instead of the environment variable value. + + + + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + + + + + Usage: %1 [options] [<database>|<project>] - Użycie: %1 [opcje] [baza danych] - + - - Possible command line arguments: - Dozwolone argumenty wiersza poleceń: + + -h, --help Show command line options + + + + + -q, --quit Exit application after running scripts + + + + + -s, --sql <file> Execute this SQL file after opening the DB + + + + + -t, --table <table> Browse this table after opening the DB + - - -h, --help Show command line options - -h, --help Wyświetla opcje wiersza poleceń + + -R, --read-only Open database in read-only mode + - - -q, --quit Exit application after running scripts - -q, --quit Zamyka aplikację po wykonaniu skryptów + + -S, --settings <settings_file> + - - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [plik] Wykonuje plik SQL po otworzeniu bazy danych + + Run application based on this settings file + - - -t, --table [table] Browse this table after opening the DB - -t, --table [tabela] Wyświetla tę tabelę po otworzeniu bazy danych + + -o, --option <group>/<setting>=<value> + - - -R, --read-only Open database in read-only mode - -R, --read-only Otwiera bazę danych w trybie tylko do odczytu + + Run application with this setting temporarily set to value + - - -o, --option [group/setting=value] Run application with this setting temporarily set to value - -o, --option [grupa/ustawienia=wartość] Uruchamia aplikacje z ustawieniem tymczasowo równym wartości + + -O, --save-option <group>/<setting>=<value> + - - -O, --save-option [group/setting=value] Run application saving this value for this setting - -O, --save-option [grupa/ustawienie=wartość] Uruchamia aplikacje wraz z zapisaniem dla ustawieniem wartości + + Run application saving this value for this setting + - - -v, --version Display the current version - -v, --version Wyświetla obecną wersję + + -v, --version Display the current version + - - [file] Open this SQLite database - [plik] Otwiera bazę danych SQLite + + <database> Open this SQLite database + - - This is DB Browser for SQLite version %1. - Oto Przeglądarka SQLite w wersji %1. + + <project> Open this project file (*.sqbpro) + - + The -s/--sql option requires an argument Opcja -s/--sql wymaga argumentu - + The file %1 does not exist Plik %1 nie istnieje - + The -t/--table option requires an argument Opcja -t/--table wymaga argumentu - + + The -S/--settings option requires an argument. The option is ignored. + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value Ustawienia -o/--option oraz -O/--save-option wymagają argumentu w postaci group/setting=wartość - + Invalid option/non-existant file: %1 Nieprawidłowa opcja lub nieistniejący plik: %1 + + + SQLite Version + Wersja SQLite + + + + SQLCipher Version %1 (based on SQLite %2) + + + + + DB Browser for SQLite Version %1. + + + + + Built for %1, running on %2 + + + + + Qt Version %1 + + CipherDialog @@ -396,51 +418,61 @@ Jeśli zostały zmienione jakiekolwiek dodatkowe ustawienia dla pliku tej bazy d + .NET DateTime.Ticks to date + + + + Julian day to date Data Juliańska do daty - + Unix epoch to date Unix epoch do daty - + Unix epoch to local time Unix epoch do czasu lokalnego - + Windows DATE to date Windows DATE do daty - + Date as dd/mm/yyyy Data w formacie dd/mm/rrrr - + Lower case Małe litery - + Upper case Duże litery - + + Binary GUID to text + + + + Custom Niestandardowy - + Custom display format must contain a function call applied to %1 Własny format wyświetlania musi zawierać wywołanie funkcji zastosowanej na %1 - + Error in custom display format. Message from database engine: %1 @@ -449,7 +481,7 @@ Jeśli zostały zmienione jakiekolwiek dodatkowe ustawienia dla pliku tej bazy d %1 - + Custom display format must return only one column but it returned %1. Własny format wyświetlania musi zwracać tylko jedną kolumnę, a zwrócił %1. @@ -461,14 +493,6 @@ Jeśli zostały zmienione jakiekolwiek dodatkowe ustawienia dla pliku tej bazy d Conditional Format Manager Zarządzanie formatowaniem warunkowym - - &Up - W &górę - - - &Down - W &dół - This dialog allows creating and editing conditional formats. Each cell style will be selected by the first accomplished condition for that cell data. Conditional formats can be moved up and down, where those at higher rows take precedence over those at lower. Syntax for conditions is the same as for filters and an empty condition applies to all values. @@ -584,160 +608,155 @@ Jeśli zostały zmienione jakiekolwiek dodatkowe ustawienia dla pliku tej bazy d DBBrowserDB - - This database has already been attached. Its schema name is '%1'. - Baza danych została już dołączona. Nazwa jej schematu to '%1'. - - - + Please specify the database name under which you want to access the attached database Proszę podaj nazwę bazy danych za pomocą której chcesz uzyskać dostęp do załączonej bazy - + Invalid file format Nieprawidłowy format pliku - + Do you really want to close this temporary database? All data will be lost. Czy na pewno chcesz zamknąć tę tymczasową bazę danych? Wszelkie zmiany bedą zapomniane. - + Do you want to save the changes made to the database file %1? Czy na pewno chcesz zapisać zmiany dokonane w pliku bazy danych %1? - + Database didn't close correctly, probably still busy Baza danych nie została zamknięta poprawnie, prawdopodobnie była nadal zajęta - + The database is currently busy: Baza danych jest obecnie zajęta: - + Do you want to abort that other operation? Czy na pewno chcesz przerwać tą inną operację? - + Exporting database to SQL file... Eksportowanie bazy danych do pliku SQL… - - + + Cancel Zaniechaj - - + + No database file opened Plik z bazą danych nie jest obecnie otwarty - + Executing SQL... Wykonywanie SQL… - + Action cancelled. Zaniechano działania. - - + + Error in statement #%1: %2. Aborting execution%3. Błąd w poleceniu #%1: %2. Przerywam wykonywanie%3. - - + + and rolling back i przywracam - + didn't receive any output from %1 nie otrzymano żadnego wyniku z %1 - + could not execute command: %1 nie można wykonać polecenia: %1 - + Cannot delete this object Nie można usunąć tego obiektu - + Cannot set data on this object Nie można ustawić danych na tym objekcie - - + + A table with the name '%1' already exists in schema '%2'. Tabela o nazwie '%1' już istnieje w schemacie '%2'. - + No table with name '%1' exists in schema '%2'. Tabela o nazwie '%1' nie istnieje w schemacie '%2'. - - + + Cannot find column %1. Nie można znaleźć kolumny %1. - + Creating savepoint failed. DB says: %1 Nie można utworzyć punktu zapisu. BD zwraca: %1 - + Renaming the column failed. DB says: %1 Nie można przemianować tej kolumny. BD zwraca: %1 - - + + Releasing savepoint failed. DB says: %1 Nie można zwolnić punktu zapisu. BD zwraca: %1 - + Creating new table failed. DB says: %1 Nie można utworzyć nowej tabeli. BD zwraca: %1 - + Copying data to new table failed. DB says: %1 Nie można skopiować nowej tabeli. BD zwraca: %1 - + Deleting old table failed. DB says: %1 Nie można usunąć starej tabeli. BD zwraca: %1 - + Error renaming table '%1' to '%2'. Message from database engine: %3 @@ -746,34 +765,12 @@ Wiadomość z silnika bazy danych: %3 - + could not get list of db objects: %1 nie można pobrać listy obiektów bd: %1 - renameColumn: cannot find column %1. - renameColumn(zmiana nazwy kolumny): nie można odnaleźć kolumny %1. - - - renameColumn: creating savepoint failed. DB says: %1 - renameColumn(zmiana nazwy kolumny): błąd przy zapisie. Baza Danych zwraca: %1 - - - renameColumn: creating new table failed. DB says: %1 - renameColumn(zmiana nazwy kolumny): tworzenie nowej tabeli nie powiodło się. Baza danych zwróciła: %1 - - - renameColumn: copying data to new table failed. DB says: -%1 - renameColumn(zmiana nazwy kolumny): kopiowanie danych do nowej tabeli nie powiodło się. Baza danych zwróciła: -%1 - - - renameColumn: deleting old table failed. DB says: %1 - renameColumn(zmiana nazwy kolumny): usuwanie starej tabeli nie powiodło się. Baza danych zwróciła: %1 - - - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -782,53 +779,27 @@ Wiadomość z silnika bazy danych: - renameColumn: releasing savepoint failed. DB says: %1 - zmiana nazwy kolumny: Nie można zwolnić punktu zapisu. BD zwraca: %1 - - - Error renaming table '%1' to '%2'.Message from database engine: -%3 - Błąd podczas zmiany nazwy tabeli '%1' na '%2'. Wiadomość z silnika bazy danych: -%3 - - - ... <string can not be logged, contains binary data> ... - ... <string nie można zalogować zawiera dane w postaci binarnej> ... - - - could not get list of db objects: %1, %2 - nie mogę pobrać listy obiektów bazy danych: %1, %2 - - - + could not get list of databases: %1 nie mogę odczytać listy baz danych: %1 - didn't receive any output from pragma %1 - nie otrzymałem żadnego wyniku od pragmy %1 - - - could not execute pragma command: %1, %2 - nie mogłem wykonać polecenia pragmy: %1, %2 - - - + Error setting pragma %1 to %2: %3 Błąd przy ustawianiu pragmy %1 do %2: %3 - + File not found. Nie znaleziono pliku. - + Error loading extension: %1 Nie można wczytać rozszerzenia: %1 - + could not get column information nie można uzyskać informacji o kolumnie @@ -861,12 +832,12 @@ Wiadomość z silnika bazy danych: Baza danych - + Browsables Obiekty do przeglądania - + All Wszystkie @@ -876,22 +847,22 @@ Wiadomość z silnika bazy danych: Tymczasowa - + Tables (%1) Tabele (%1) - + Indices (%1) Indeksy (%1) - + Views (%1) Widoki (%1) - + Triggers (%1) Wyzwalacze (%1) @@ -904,64 +875,64 @@ Wiadomość z silnika bazy danych: Zmiana komórki bazy danych - + Mode: Tryb: - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. To jest lista dostępnych trybów dla edytora komórek. Wybierz tryb do wyświetlania lub edycji danych dla tej komórki. - + Text Tekst - + RTL Text Tekst od prawej do lewej - + Binary Zapis dwójkowy - - + + Image Obraz - + JSON JSON - + XML XML - - + + Automatically adjust the editor mode to the loaded data type Sam dostosuj tryb edytora w zależności od wczytanych danych - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. To pole zaznaczane włącza lub wyłącza samoczynne przełączanie do trybu edytora. Po wybraniu nowej komórki lub zaimportowaniu nowych danych i przy włączonym samoczynnym przełączaniu, tryb dostosowuje się do wykrytego rodzaju danych. Następnie można zmienić tryb edytora ręcznie. Aby zapamiętać ten try ręczny przy przechodzeniu po komórkach, wystarczy odznaczyć to pole. - + Auto-switch Sam przełączaj - + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. @@ -971,124 +942,112 @@ z podświetlaniem składni, samoformatowaniem oraz sprawdzaniem przed zapisem. Błędy są podkreślane czerwonym ślaczkiem. - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. Edytor Qt jest używany do pism od-prawej-do-lewej, które nie są obsługiwane przez domyślny edytor tekstu. Obecność znaków pism od-prawej-do-lewej jest wykrywana, a edytor sam przełącza się do tego trybu. - + Open preview dialog for printing the data currently stored in the cell Otwiera okno dialogowe do podglądu drukowanych danych z danej komórki - + Auto-format: pretty print on loading, compact on saving. Auto-formatowanie: upiększa tekst przy wczytywaniu i ściska przy zapisywaniu. - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. Po zaznaczeniu, dane są formatowane podczas ich wczytywania, łamiąc tekst w wierszach oraz wcinając go dla najlepszej czytelności. Przed zapisaniem, dane są oczyszczane poprzez usunięcie zakończeń wierszy oraz niepotrzebnych białych znaków. - + Word Wrap Zawijaj słowa - + Wrap lines on word boundaries Zawijaj wiersze na granicach słów - - + + Open in default application or browser Otwórz w domyślnej aplikacji lub przeglądarce - + Open in application Otwórz w aplikacji - + The value is interpreted as a file or URL and opened in the default application or web browser. Wartość jest traktowana jako plik lub adres URL i otwierana w domyślnej aplikacji lub przeglądarce sieciowej. - + Save file reference... Zapisz odniesienie pliku... - + Save reference to file Zapisz odniesienie do pliku - - + + Open in external application Otwórz w zewnętrznej aplikacji - + Autoformat Sam formatuj - + &Export... &Eksportuj... - - + + &Import... &Importuj... - - + + Import from file Importuj z pliku - - + + Opens a file dialog used to import any kind of data to this database cell. Otwiera okno wyboru pliku z danymi do zaimportowania w tej komórce. - &Import - &Importuj - - - + Export to file Eksportuj do pliku - + Opens a file dialog used to export the contents of this database cell to a file. Otwiera okno pozwalające na wyeksportowanie zawartości komórki do pliku. - &Export - &Eksportuj - - - Set this cell to NULL - Ustaw zawartość tej komórki jako NULL - - - + Erases the contents of the cell Czyści zawartość komórki - + Set as &NULL Ustaw jako &NULL @@ -1098,181 +1057,130 @@ Błędy są podkreślane czerwonym ślaczkiem. Tutaj wyświetlane są informacje o danych obecnych w tej komórce - + Type of data currently in cell Rodzaj danych obecnie znajdujących się w komórce - + Size of data currently in table Rozmiar danych znajdujących się obecnie w tabeli - + Apply data to cell Zapisz dane w komórce - + This button saves the changes performed in the cell editor to the database cell. Ten przycisk zapisuje zmiany wykonane w edytorze komórki w komórce bazy danych. - + Apply Zastosuj - - + Print... Drukuj... - - Open preview dialog for printing displayed image - Otwórz podgląd wydruku dla aktualnie wyświetlonego obrazu - - - - + Ctrl+P - + Open preview dialog for printing displayed text Otwiera okno dialogowe do podglądu wyświetlanego tekstu - + Copy Hex and ASCII Skopiuj Hex i ASCII - + Copy selected hexadecimal and ASCII columns to the clipboard Skopiuj zaznaczone kolumny szesnastkowe oraz ASCII do schowka - + Ctrl+Shift+C - - + + Image data can't be viewed in this mode. Obrazy nie mogą zostać wyświetlone w tym trybie. - - + + Try switching to Image or Binary mode. Przejdź do trybu obrazu lub wartości binarnej. - - + + Binary data can't be viewed in this mode. Wartość dwójkowa nie może być wyświetlona w tym trybie. - - + + Try switching to Binary mode. Przejdź do trybu wartości binarnej. - Text files (*.txt) - Pliki Tekstowe (*.txt) - - - JSON files (*.json) - Pliki JSON (*.json) - - - XML files (*.xml) - Pliki XML (*.xml) - - - - + + Image files (%1) Piki graficzne (%1) - + Binary files (*.bin) Pliki Binarne (*.bin) - All files (*) - Wszystkie pliki (*) - - - + Choose a file to import Wybierz plik do zaimportowania - + %1 Image %1 Grafika - SVG files (*.svg) - Pliki SVG (*.svg) - - - Hex dump files (*.txt) - Plik szesnastkowy (*.txt) - - - Text files (*.txt);;Image files (%1);;JSON files (*.json);;XML files (*.xml);;Binary files (*.bin);;All files (*) - Pliki tekstowe (*.txt);;Pliki obrazów (%1);;Pliki JSON (*.json);;Pliki XML (*.xml);;Pliki binarne (*.bin);;Wszystkie pliki (*) - - - Binary files(*.bin);;All files(*) - Pliki binarne(*.bin);;Wszystkie pliki(*) - - - Text files(*.txt);;All files(*) - Pliki tekstowe(*.txt);;Wszystkie pliki(*) - - - JSON files(*.json);;All files(*) - Pliki JSON(*.json);;Wszystkie pliki(*) - - - SVG files(*.svg);;All files(*) - Pliki SVG(*.svg);;Wszystkie pliki(*) - - - + Choose a filename to export data Wybierz nazwę pliku dla wyeksportowanych danych - + Invalid data for this mode Nieprawidłowe dane w tym trybie - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? Komórka zawiera nieprawidłowe dane %1. Powód: %2. Czy na pewno wstawić je do komórki? - - + + Type of data currently in cell: Text / Numeric Rodzaj danych obecnie znajdujących się w komórce: Tekst/Liczba - - - + + + %n character(s) %n znak @@ -1281,23 +1189,23 @@ Błędy są podkreślane czerwonym ślaczkiem. - + Type of data currently in cell: %1 Image Rodzaj danych obecnie znajdujących się w komórce: Obraz %1 - + %1x%2 pixel(s) %1x%2 piksel(e) - + Type of data currently in cell: NULL Rodzaj danych obecnie znajdujących się w komórce: NULL - - + + %n byte(s) %n bajt @@ -1306,19 +1214,24 @@ Błędy są podkreślane czerwonym ślaczkiem. - + Type of data currently in cell: Valid JSON Rodzaj danych obecnie znajdujących się w komórce: Prawidłowy JSON - + Type of data currently in cell: Binary Rodzaj danych obecnie znajdujących się w komórce: dwójkowa - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. - Zapisano dane do pliku tymczasowego i otwarto je w domyślnej aplikacji. Teraz możesz wprowadzić zmiany w pliku, a gdy będziesz gotowy, zapisz nowe dane w edytorze komórki lub zaniechaj jakichkolwiek zmian. + + Couldn't save file: %1. + Nie można zapisać pliku: %1. + + + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + @@ -1416,10 +1329,6 @@ zaznacza część tabeli, która ma zostać zaindeksowana Advanced Zaawansowane - - Database schema - Struktura danych - Without Rowid @@ -1435,22 +1344,6 @@ zaznacza część tabeli, która ma zostać zaindeksowana Fields Pola - - Add field - Dodaj pole - - - Remove field - Usuń pole - - - Move field up - Przesuń pole w górę - - - Move field down - Przesuń pole w dół - Database sche&ma @@ -1487,215 +1380,208 @@ zaznacza część tabeli, która ma zostać zaindeksowana Przesuń na dół - - + + Name Nazwa - - + + Type Rodzaj - + NN NN - + Not null Nie NULL - + PK PK - - Primary key - Klucz główny + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + - + AI AI - + Autoincrement Samoprzyrostowa - + U U - - - + + + Unique Niepowtarzalna - + Default Domyślna - + Default value Domyślna wartość - - - + + + Check Sprawdzenie - + Check constraint Ograniczenie sprawdzenia - + Collation Zestawienie - - - + + + Foreign Key Obcy klucz - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + Constraints Ograniczenia - + Add constraint Dodaj ograniczenie - + Remove constraint Usuń ograniczenie - + Columns Kolumny - + SQL SQL - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Uwaga: </span>W określeniu tabeli jest coś, czego nasze przetwarzanie składni nie rozumie. Zmiana i zapis tej tabeli może skutkować kłopotami.</p></body></html> - - + + Primary Key Klucz główny - + Add a primary key constraint Dodaj ograniczenie klucza głównego - + Add a foreign key constraint Dodaj ograniczenie klucza obcego - + Add a unique constraint Dodaj ograniczenie niepowtarzalności - + Add a check constraint Dodaj ograniczenie sprawdzania - - + + There can only be one primary key for each table. Please modify the existing primary key instead. Dla każdej tabeli może być tylko jeden klucz główny. Zmień istniejący klucz główny. - + Error creating table. Message from database engine: %1 Nie można utworzyć tabeli. Wiadomość z silnika bazy danych: %1 - + There already is a field with that name. Please rename it first or choose a different name for this field. Istnieje już pole o tej nazwie. Przemianuj je najpierw lub wybierz inną nazwę dla tego pola. - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. Kolumna ma odwołanie do klucza obcego w tabeli %1 więc jej nazwa nie można zmienić jej nazwy. - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. W tym polu istnieje co najmniej jeden wiersz z wartością równą NULL. Czyni to niemożliwym ustawienie tej flagi. Najpierw zmień dane tabeli. - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. W tym polu istnieje co najmniej jeden wiersz z wartością nie będącą liczbą całkowitą. Czyni to niemożliwym ustawienie flagi AI. Najpierw zmień dane tabeli. - + Column '%1' has duplicate data. Kolumna '%1' zawiera powielone dane. - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. Czyni to niemożliwym nadanie flagi 'Unique'. Usuń powielone dane, aby móc nadać flagę 'Unique'. - Column '%1' has no unique data. - - Kolumna '%1' nie zawiera niepowtarzalnych danych. - - - - Modifying this column failed. Error returned from database: -%1 - Nie można zmienić tej kolumny. Błąd zwrócony przez bazę danych: -%1 - - - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. Czy na pewno usunąć pole '%1'? Wszystkie dane przechowywane w tym polu zostaną utracone. - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled @@ -1703,12 +1589,6 @@ Wszystkie dane przechowywane w tym polu zostaną utracone. - Ustawiono flagę głównego klucza - Wyłączono samoprzyrost - - Changing the table schema failed. Error message: -%1 - Zmiana schematu tabeli nie powiodła się. Wiadomość o błędzie: -%1 - ExportDataDialog @@ -1815,14 +1695,6 @@ Wszystkie dane przechowywane w tym polu zostaną utracone. exporting JSON eksportowanie JSON - - Text files(*.csv *.txt) - Pliki tekstowe(*.csv *.txt) - - - Text files(*.json *.js *.txt) - Pliki tekstowe(*.json *.js *.txt) - @@ -1917,10 +1789,6 @@ Wszystkie dane przechowywane w tym polu zostaną utracone. Choose a filename to export Wybierz nazwę eksportowanego pliku - - Text files(*.sql *.txt) - Pliki tekstowe(*.sql *.txt) - Export completed. @@ -1936,7 +1804,7 @@ Wszystkie dane przechowywane w tym polu zostaną utracone. ExtendedScintilla - + Ctrl+H @@ -1947,22 +1815,22 @@ Wszystkie dane przechowywane w tym polu zostaną utracone. - + Ctrl+P - + Find... Znajdź... - + Find and Replace... Znajdź i zamień… - + Print... Drukuj... @@ -1970,127 +1838,128 @@ Wszystkie dane przechowywane w tym polu zostaną utracone. ExtendedTableWidget - + Use as Exact Filter Użyj jako dokładnego filtra - + Containing Zawiera - + Not containing Nie zawiera - + Not equal to Nierówny - + Greater than Większy niż - + Less than Mniejszy niż - + Greater or equal Większy lub równy - + Less or equal Mniejszy lub równy - + Between this and... Pomiędzy tym a... - + Regular expression Wyrażenie regularne - + Edit Conditional Formats... Zmień formatowanie warunkowe... - + Set to NULL Ustaw jako NULL - + + Cut + + + + Copy Skopiuj - + Copy with Headers Skopiuj wraz z nagłówkami - + Copy as SQL Skopiuj jako SQL - + Paste Wklej - + Print... Drukuj... - + Use in Filter Expression Użyj w wyrażeniu filtra - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. <p>Nie wczytano wszystkich danych. <b>Czu chcesz wczytać wszystkie dane przez zaznaczeniem wszystkich wierszy?</b><p><p>Odpowiedź <b>Nie</b> oznacza, że nie zostanie wczytanych więcej danych i nie zostanie nic zaznaczone.<br/>Odpowiedź <b>Tak</b> oznacza, że trochę czasu może być potrzebne na wczytanie danych za to zaznaczenie będzie pełne.</p>Uwaga: Wczytanie wszystkich danych może wymagać dużej ilości pamięci dla dużych tabel. - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. Nie można ustawić zaznaczonych na NULL. Kolumna %1 ma ograniczenie NOT NULL. - Use as Filter - Użyj jako filtru - - - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? Zawartość schowka jest większa niż zaznaczony zakres. @@ -2099,10 +1968,6 @@ Czy chcesz go wstawić mimo tego? FileExtensionManager - - Dialog - Okno dialogowe - File Extension Manager @@ -2423,15 +2288,48 @@ x~y Zakres: wartości pomiędzy x oraz y - ImportCsvDialog + ImageViewer - - Import CSV file - Importuj plik CSV + + Image Viewer + - - Table na&me + + Reset the scaling to match the original size of the image. + + + + + Set the scaling to match the size of the viewport. + + + + + Print... + Drukuj... + + + + Open preview dialog for printing displayed image + Otwórz podgląd wydruku dla aktualnie wyświetlonego obrazu + + + + Ctrl+P + + + + + ImportCsvDialog + + + Import CSV file + Importuj plik CSV + + + + Table na&me &Nazwa tabeli @@ -2456,7 +2354,7 @@ x~y Zakres: wartości pomiędzy x oraz y - + Tab Tab @@ -2598,10 +2496,6 @@ x~y Zakres: wartości pomiędzy x oraz y Match Similar Dopasuj do podobnych - - Import completed - Zakończono importowanie - Select All @@ -2633,12 +2527,17 @@ x~y Zakres: wartości pomiędzy x oraz y importowanie CSV - + Inserting row failed: %1 Wstawianie rzędu nie powiodło się: %1 - + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + + + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. Importowanie pliku '%1' zajęło %2ms. Z tego %3ms spędzono na funkcji wiersza. @@ -2658,32 +2557,12 @@ x~y Zakres: wartości pomiędzy x oraz y Struktura danych - <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - <html><head/><body><p>Ten przycisk tworzy nowy rekord w bazie danych. Przyciśnij przycisk myszy, aby otworzyć menu podręczne z różnymi ustawieniami:</p><ul><li><span style=" font-weight:600;">Nowy rekord</span>: wstawia nowy rekord o domyślnych wartościach do bazy danych.</li><li><span style=" font-weight:600;">Wstaw wartości...</span>: otwiera okno dialogowe do wpisywania wartości przed ich wstawieniem do bazy danych. Umożliwia to wpisanie wartości przy zachowaniu różnych ograniczeń. To okno dialogowe jest także otwarte, gdy nie powiedzie się wykonanie polecenia <span style=" font-weight:600;">Nowy rekord</span> ze względu na te ograniczenia .</li></ul></body></html> - - - This is the database table view. You can do the following actions: - - Start writing for editing inline the value. - - Double-click any record to edit its contents in the cell editor window. - - Alt+Del for deleting the cell content to NULL. - - Ctrl+" for duplicating the current record. - - Ctrl+' for copying the value from the cell above. - - Standard selection and copy/paste operations. - Oto widok tabeli bazy danych. Możliwe są następujące działania: - - Pisanie do przeedytowania wartości w-wierszu. - - Dwukrotne kliknięcie na rekordzie, aby edytować jego zawartość w edytorze komórek. - - Alt+Del do usunięcia treści komórki i ustawienia NULL. - - Ctrl+" do powielenia bieżącego rekordu. - - Ctrl+' do skopiowania wartości z komórki powyżej. - - Standardowe zaznaczanie/kopiowanie/wklejanie. - - - + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. Uwaga: to polecenie pragma nie jest czytelne, więc ta wartość powstała z domysłu. Zapisanie polecenie pragma może zastąpić LIKE dostarczony przez rozszerzenie SQLite. - + toolBar1 toolBar1 @@ -2703,510 +2582,381 @@ Można przeciągać polecenia SQL z wiersza obiektu i upuszczać je na innych ap Przeglądarka danych - &Table: - &Tabela: - - - Select a table to browse data - Wybierz tabelę aby przeglądać dane - - - Use this list to select a table to be displayed in the database view - Użyj tej listy aby zaznaczyć tabelę wyświetlaną w widoku bazy danych - - - + Execute line Wykonaj wiersz - Refresh the data in the selected table - Odśwież dane w zaznaczonej tabeli - - - This button refreshes the data in the currently selected table. - Ten przycisk odświeża dane w obecnie zaznaczonej tabeli. - - - + Un/comment block of SQL code Dodaj/Usuń uwagę do kawałka kodu SQL - + Un/comment block Dodaj/Usuń uwagę do kawałka kodu - + Comment or uncomment current line or selected block of code Dodaj lub usuń uwagę do bieżącego wiersza lub zaznaczonego kawałka kodu - + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. Dodaj lub usuń uwagę do bieżącego wiersza lub zaznaczonych wierszy, gdy jest coś zaznaczone. Cały kawałek przełączany jest wg pierwszego wiersza. - + Ctrl+/ - + Stop SQL execution Zatrzymaj wykonywanie SQL - + Stop execution Zatrzymaj wykonywanie - + Stop the currently running SQL script Zatrzymaj wykonywanie bieżącego skryptu SQL - Clear Filters - Wyczyść filtry - - - Clear all filters - Wyczyść wszystkie filtry - - - This button clears all the filters set in the header input fields for the currently browsed table. - Ten przycisk wyczyści wszystkie filtry ustawione na polach wejściowych nagłówka dla bieżącej tabeli. - - - Save Table As... - Zapisz tabelę jako... - - - Save the table as currently displayed - Zapisz tabelę tak, jak jest widoczna - - - <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - <html><head/><body><p>To menu podręczne zawiera następujące ustawienie stosujące się do obecnie oglądanej i filtrowanej tabeli:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Eksportuj do CSV: eksportuje dane oglądanej tabeli tak jak jest obecnie wyświetlana (po filtrach, z formatami wyświetlania i kolejnością kolumn) do pliku CSV.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Zapisz jako widok: zapisuje bieżące ustawienia oglądanej tabeli (filtry, formaty wyświetlania i kolejność kolumn) jako widok SQL, który można później przeglądać lub wstawić do polecenia SQL.</li></ul></body></html> - - - ... - - - - Insert a new record in the current table - Umieść nowy rekord w obecnej tabeli - - - This button creates a new, empty record in the database - Ten przycisk tworzy nowy, pusty rekord w bazie danych - - - New Record - Nowy rekord - - - Delete the current record - Usuń obecny rekord - - - This button deletes the record or records currently selected in the table - Ten przycisk usuwa obecnie zazanczony rekord lub rekordy z tabeli - - - Delete Record - Usuń rekord - - - This is the database view. You can double-click any record to edit its contents in the cell editor window. - To jest widok bazy danych. Możesz nacisnąć dwukrotnie na rekord, aby zedytować jego zawartość w oknie edytora komórek. - - - <html><head/><body><p>Scroll to the beginning</p></body></html> - <html><head/><body><p>Przewiń na początek</p></body></html> - - - <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - <html><head/><body><p>Naciśnięcie tego przycisku kieruje na początek powyższego widoku tabeli.</p></body></html> - - - |< - |< - - - Scroll one page upwards - Przewiń jedną stronę w górę - - - <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - <html><head/><body><p>Naciśnięcie tego przycisku przenosi o jedną stronę wyżej w powyższym widoku tabeli.</p></body></html> - - - < - < - - - 0 - 0 of 0 - 0 - 0 z 0 - - - Scroll one page downwards - Przewiń jedną stronę w dół - - - <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - <html><head/><body><p>Naciśnięcie tego przycisku przenosi o jedną stronę niżej w powyższym widoku tabeli.</p></body></html> - - - > - > - - - Scroll to the end - Przewiń na koniec - - - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Naciśnięcie tego przycisku przenosi na koniec powyższego widoku tabeli.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - >| - >| - - - <html><head/><body><p>Click here to jump to the specified record</p></body></html> - <html><head/><body><p>Naciśnij tutaj aby przejść do określonego rekordu</p></body></html> - - - <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - <html><head/><body><p>Ten przycisk służy to przejścia do rekordu o podanej numerze w obszarze Przejścia.</p></body></html> - - - Go to: - Przejdź do: - - - Enter record number to browse - Wprowadź numer rekordu do przeglądania - - - Type a record number in this area and click the Go to: button to display the record in the database view - Wpisz numer rekordu w tym obszarze i naciśnij na Przejdź Do, aby wyświetlić rekord w widoku bazy danych - - - 1 - 1 - - - - + + Edit Pragmas This has to be equal to the tab title in all the main tabs Polecenia Pragmy - None - Brak - - - Delete - Usuń - - - Normal - Normalne - - - Default - Domyślnie - - - File - Plik - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version">User Version</a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version">Wersja użytkownika</a></p></body></html> - - - - + + Execute SQL This has to be equal to the tab title in all the main tabs Polecenia SQL - + &File &Plik - + &Import &Importuj - + &Export &Eksportuj - + + Recent Files + + + + &Edit &Edycja - + &View &Widok - + &Help Po&moc - + &Tools &Narzędzia - + DB Toolbar Pasek zadań bazy danych - + Edit Database &Cell Zmiana komórki bazy dany&ch - + SQL &Log Dziennik SQ&L - + Show S&QL submitted by Pokaż S&QL wydane przez - + User Użytkownika - + Application Aplikację - + Error Log Dziennik błędów - + This button clears the contents of the SQL logs Ten przycisk czyści zawartość logów SQL - + &Clear Wy&czyść - + This panel lets you examine a log of all SQL commands issued by the application or by yourself Ten panel umożliwia przegląd dziennika wszystkich poleceń SQL wydanych przez aplikację lub przez ciebie - + &Plot &Wykres - + DB Sche&ma Struktura da&nych - + &Remote &Zdalne BD - - + + Project Toolbar Pasek zadań projektu - + Extra DB toolbar Dodatkowy pasek zadań bazy danych - - - + + + Close the current database file Zamknij obecny plik bazy danych - + &New Database... &Nowa baza danych… - - + + Create a new database file Utwórz nowy plik bazy danych - + This option is used to create a new database file. Ta opcja jest wykorzystywana do tworzenia nowego pliku bazy danych. - + Ctrl+N - - + + &Open Database... &Otwórz bazę danych… - - - - - + + + + + Open an existing database file Otwórz istniejącą bazę danych - - - + + + This option is used to open an existing database file. Ta opcja otwiera istniejący plik bazy danych. - + Ctrl+O - + &Close Database Zamknij bazę dany&ch - + This button closes the connection to the currently open database file Ten przycisk kończy połączenie z obecnie otwartym plikiem bazy danych - + + New &tab + + + + + Open SQL file(s) + + + + + This button opens files containing SQL statements and loads them in new editor tabs + + + + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file - + This button lets you open a DB Browser for SQLite project file - + Browse Table Przeglądaj tabelę - - + + Close Pro&ject + + + + + Close project and database files and return to the initial state + + + + + Ctrl+Shift+F4 + + + + + + Detach Database + + + + + + Detach database file attached to the current database connection + + + + + Ctrl+W - + &Revert Changes &Wycofaj zmiany - - + + Revert database to last saved state Przywróć bazę danych do ostatniego zapisanego stanu - + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. Ten działanie służy do przywrócenia bieżącej bazy danych do ostatnio zapisanego stanu. Wszystkie zmiany od czasu ostatniego zapisu zostaną utracone. - + &Write Changes &Zapisz zmiany - - + + Write changes to the database file Zapisz zmiany w pliku bazy danych - + This option is used to save changes to the database file. Ta opcja zapisuje zmiany w pliku bazy danych. - + Ctrl+S - + Ctrl+Shift+O - + &Save Project As... Zapi&sz projekt jako... - - - + + + Save the project in a file selected in a dialog Zapisuje projekt w pliku wskazanym w dialogu - + Save A&ll Zapisz w&szystko - - - + + + Save DB file, project file and opened SQL files Zapisuje plik bazy danych, projektu i otwarte pliki SQL - + Ctrl+Shift+S - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. @@ -3216,868 +2966,660 @@ Można przeciągać wiele nazw obiektów z kolumny nazwy i upuszczać je w edyto Można przeciągać polecenia SQL z kolumny schematu i upuszczać je w edytorze SQL lub innych aplikacjach. - Print currently browsed table data - Drukuj dane bieżącej tabeli - - - Print currently browsed table data. Print selection if more than one cell is selected. - Drukuj dane bieżącej tabeli. Drukuj zaznaczenie, jeśli zaznaczono więcej niż jedną komórkę. - - - + Compact &Database... Ściśnij bazę &danych... - + Compact the database file, removing space wasted by deleted records Ściśnij plik bazę danych, usuwając przestrzenie marnowane przez usunięte rekordy - - + + Compact the database file, removing space wasted by deleted records. Ściśnij plik bazę danych, usuwając przestrzenie marnowane przez usunięte rekordy. - + E&xit &Wyjdź - + Ctrl+Q - + &Database from SQL file... Baza &danych z pliku SQL… - + Import data from an .sql dump text file into a new or existing database. Importuj dane z pliku tekstowego zrzutu .sql do nowej lub istniejącej bazy danych. - + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. To działanie, umożliwia importowanie danych z pliku tekstowego zrzutu .sql do nowej lub istniejącej bazy danych. Pliki zrzutu SQL można utworzyć w większości silników baz danych, włączając w to MySQL oraz PostgreSQL. - + &Table from CSV file... &Tabela z pliku CSV… - + Open a wizard that lets you import data from a comma separated text file into a database table. Otwiera okno pomocnika do importowania danych z pliku CSV do tabeli bazy danych. - + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. Otwiera okno pomocnika do importowania danych z pliku CSV do tabeli bazy danych. Plik CSV można stworzyć na podstawie większości baz danych i aplikacji arkuszy kalkulacyjnych. - + &Database to SQL file... Baza &danych do pliku SQL… - + Export a database to a .sql dump text file. Eksportuj bazę danych do pliku tekstowego zrzutu .sql - + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. To działanie umożliwia eksportowanie bazy danych do pliku tekstowego zrzutu .sql. Plik zrzutu SQL zawiera wszystkie dane niezbędne do odtworzenia bazy danych na większości silników baz danych, włączając w to MySQL oraz PostgreSQL. - + &Table(s) as CSV file... &Tabele do pliku CSV… - + Export a database table as a comma separated text file. Eksportuje tabelę bazy danych jako plik tekstowy, oddzielając wartości przecinkami. - + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. Eksportuje tabelę bazy danych jako plik tekstowym który można zaimportować w innych aplikacjach bazodanowych lub arkuszach kalkulacyjnych; oddzielając wartości przecinkami. - + &Create Table... &Utwórz tabelę… - + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database Otwiera okno tworzenia tabel, gdzie można zdefiniować nazwę i pola w nowej tabeli w bazie danych - + &Delete Table... U&suń tabelę… - - + + Delete Table Usuń tabelę - + Open the Delete Table wizard, where you can select a database table to be dropped. Otwiera pomocnika do Usunięcia Tabeli, gdzie można wybrać tabelę bazy danych do usunięcia. - + &Modify Table... Z&mień tabelę… - + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. Otwiera pomocnika do Zmiany Tabeli, gdzie można przemianować istniejącą tabelą. Można także dodawać i usuwać pola z tabli, a także zmieniać nazwy oraz rodzaje pól. - + Create &Index... Utwórz &indeks… - + Open the Create Index wizard, where it is possible to define a new index on an existing database table. Otwiera pomocnika do Tworzenia Indeksu, gdzie można określić nowy indeks na istniejącej tabeli bazy danych. - + &Preferences... &Ustawienia... - - + + Open the preferences window. Otwórz okno ustawień. - + &DB Toolbar Pasek narzędzi bazy &danych - + Shows or hides the Database toolbar. Pokazuje lub ukrywa pasek narzędzi Baza danych - + Ctrl+T - + W&hat's This? &Co to jest? - + Ctrl+F4 - + Shift+F1 - + &About O progr&amie - + &Load Extension... &Wczytaj rozszerzenia... - + &Wiki &Wiki - + F1 - + Bug &Report... &Zgłoszenie błędu... - + Feature Re&quest... Zgłoszenie ż&yczenia... - + Web&site Strona &sieciowa - + &Donate on Patreon... &Darowizna na Patreon... - + Open &Project... Otwórz &projekt... - + &Attach Database... Dołącz bazę d&anych... - + &Set Encryption... U&staw szyfrowanie... - + This button saves the content of the current SQL editor tab to a file Ten przycisk zapisuje treść bieżącej karty edytora SQL do pliku - + SQLCipher &FAQ &Najczęściej zadawane pytania SQLCipher - Insert Values... - Wstaw wartości... - - - Open a dialog for inserting values in a new record - Otwiera okno dialogowe do wstawiania wartości do nowego rekordu - - - Insert new record using default values in browsed table - Wstaw nowy rekord przy użyciu domyślnych wartości bieżącej tabeli - - - + New In-&Memory Database Nowa baza danych w-pa&mięci - + Drag && Drop Qualified Names Przeciągnij && upuść nazwy ze struktury - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor Używaj nazw ze struktury (np. "Tabela"."Pole") przy przeciąganiu obiektów i upuszczaniu ich w edytorze - + Drag && Drop Enquoted Names Przeciągnij && upuść nazw w cudzysłowach - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor Używaj nazw w cudzysłowach (np. "Tabela1") przy przeciąganiu obiektów i upuszczaniu ich w edytorze - + &Integrity Check Sprawdzanie spójnośc&i - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. Wykonuje polecenie pragma integrity_check na bieżącej bazie danych i zwraca wynik na karcie Wykonywania SQL. To polecenie pragma wykonuje sprawdzenie spójności całej bazy danych. - + &Foreign-Key Check &Sprawdzenie obcego klucza - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab Wykonuje polecenie pragma foreign_key_check na bieżącej bazie danych i zwraca wynik na karcie Wykonywania SQL - + &Quick Integrity Check &Szybkie sprawdzenie spójności - + Run a quick integrity check over the open DB Wykonaj sprawdzenie spójności bieżącej bazy danych - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. Wykonuje polecenie pragma quick_check na bieżącej bazie danych i zwraca wynik na karcie Wykonywania SQL. To polecenie pragma wykonuje większość tego, co wykonuje polecenie pragma integrity_check lecz robi to znacznie szybciej. - + &Optimize &Optymalizacja - + Attempt to optimize the database Próba optymalizacji bazy danych - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. Wykonuje polecenie pragma optimize na bieżącej bazie danych. To polecenie może wykonać optymalizacje, które zwiększą wydajność przyszłych zapytań. - - + + Print Drukuj - + Print text from current SQL editor tab Drukuj tekst z bieżącej karty edytora SQL - + Open a dialog for printing the text in the current SQL editor tab Otwiera okno dialogowe do drukowania tekstu w bieżącej karcie edytora SQL - + Print the structure of the opened database Drukuj strukturę bieżącej bazy danych - + Open a dialog for printing the structure of the opened database Otwiera okno dialogowe do drukowania struktury bieżącej bazy danych - &About... - O progr&amie… - - - + &Recently opened Ostatnio otwie&rane - - Open &tab - Otwórz kar&tę - - - + This button opens a new tab for the SQL editor Ten przycisk otwiera nową tabelę w edytorze SQL - + &Execute SQL &Wykonaj SQL - + Execute all/selected SQL Wykonaj wszystkie/zaznaczone SQL - + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. Ten przycisk wykona obecnie zaznaczone polecenia SQL. Jeśli nie zaznaczone tekstu, to zostaną wykonane wszystkie polecenia SQL. - - Open SQL file - Otwórz plik SQL - - - - This button opens a file containing SQL statements and loads it in a new editor tab - Ten przycisk otwiera plik zawierający polecenia SQL i wczytuje je do nowej karty edytora - - - - - + + + Save SQL file Zapisz plik SQL - &Load extension - &Wczytaj rozszerzenie - - - - + + Execute current line Wykonaj bieżący wiersz - + This button executes the SQL statement present in the current editor line Ten przycisk wykonuje polecenie SQL z obecnego wiersza edytora - + Shift+F5 - + Export as CSV file Eksportuj do pliku CSV - + Export table as comma separated values file Eksportuj tabelę jako plik z wartościami oddzielonymi przecinkami - &Wiki... - &Wiki… + + Sa&ve Project + &Zapisz projekt - Bug &report... - &Zgłoś błędy… + + + Save the current session to a file + Zapisz obecną sesję do pliku - Web&site... - &Strona internetowa… - - - - Sa&ve Project - &Zapisz projekt - - - - - Save the current session to a file - Zapisz obecną sesję do pliku - - - This button lets you save all the settings associated to the open DB to a DB4S project file - Ten przycisk umożliwia zapisanie wszystkich ustawień potrzebnych do otwarcia BD do pliku projektu DB4S - - - Open &Project - Otwórz &projekt - - - - + + Load a working session from a file Wczytaj otoczenie pracy z pliku - This button lets you open a DB4S project file - Ten przycisk umożliwia otwarcie pliku projektu DB4S - - - &Attach Database - Z&ałącz bazę danych - - - - + + Add another database file to the current database connection Dodaj kolejny plik bazy danych do połączenia bieżącej bazy danych - + This button lets you add another database file to the current database connection Ten przycisk umożliwia dodanie kolejnego pliku bazy danych do połączenia bieżącej bazy danych - &Set Encryption - U&staw szyfrowanie - - - - + + Save SQL file as Zapisz plik SQL jako - + &Browse Table &Przeglądaj tabelę - + Copy Create statement Skopiuj polecenie tworzące - + Copy the CREATE statement of the item to the clipboard Skopiuj polecenie CREATE elementu do schowka - Edit display format - Edytuj format wyświetlania - - - Edit the display format of the data in this column - Zmień sposób wyświetlania danych w tej kolumnie - - - Show rowid column - Pokaż kolumnę ID wiersza - - - Toggle the visibility of the rowid column - Pokaż/Ukryj kolumnę ID wiersza - - - Set encoding - Ustaw kodowanie - - - Change the encoding of the text in the table cells - Zmień kodowanie tekstu w komórkach tabeli - - - Set encoding for all tables - Ustaw kodowanie dla wszystkich tabel - - - Change the default encoding assumed for all tables in the database - Zmień domyślne kodowanie przyjęte dla wszystkich table w bazie danych - - - SQLCipher &FAQ... - &FAQ SQLCipher… - - - + Opens the SQLCipher FAQ in a browser window Otwiera FAQ SQLCipher w oknie przeglądarki - + Table(&s) to JSON... Tabele do pliku J&SON… - + Export one or more table(s) to a JSON file Eksportuj jedną lub więcej tabel do pliku JSON - Refresh - Odśwież - - - F5 - - - - + Open Data&base Read Only... Otwórz &bazę danych tylko do odczytu… - + Open an existing database file in read only mode Otwórz istniejący plik bazy danych w trybie tylko do odczytu - Unlock view editing - Umożliw zmianę widoku - - - This unlocks the current view for editing. However, you will need appropriate triggers for editing. - To umożliwia wprowadzanie zmian w bieżącym widoku. Jednakże potrzebne będą odpowiednie wyzwalacze do zmiany. - - - + Save results Zapisz wyniki - + Save the results view Zapisuje widok wyniku - + This button lets you save the results of the last executed query Ten przycisk umożliwia zapisanie wyników ostatnio wykonanego zapytania - - + + Find text in SQL editor Znajdź tekst w edytorze SQL - + Find Znajdź - + This button opens the search bar of the editor Ten przycisk otwiera pasek wyszukiwania edytora - + Ctrl+F - - + + Find or replace text in SQL editor Znajdź lub zastąp tekst w edytorze SQL - + Find or replace Znajdź i zastąp - + This button opens the find/replace dialog for the current editor tab Ten przycisk otwiera okno dialogowe znajdowania/zastępowania dla bieżącej karty edytora - + Ctrl+H - + Export to &CSV Eksportuj do &CSV - + Save as &view Zapisz jako &widok - + Save as view Zapisz jako widok - Hide column(s) - Ukryj kolumnę/y - - - Hide selected column(s) - Ukryj zaznaczoną/e kolumnę/y - - - Show all columns - Pokaż wszystkie kolumny - - - Show all columns that were hidden - Pokaż wszystkie ukryte kolumny - - - + Shows or hides the Project toolbar. Pokazuje lub ukrywa pasek narzędzi Projekt. - + Extra DB Toolbar Dodatkowy pasek narzędzi bazy danych - Export the filtered data to CSV - Eksportuj przefiltrowane dane do CSV - - - This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - Ten przycisk wyeksportuje dane bieżącej tabeli tak jak są obecnie wyświetlane (po filtrach, z formatami wyświetlania i kolejnością kolumn) jako plik CSV. - - - Save the current filter, sort column and display formats as a view - Zapisuje bieżący filtr, kolumnę do szeregowania oraz formaty wyświetlania jako widok - - - This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - Ten przycisk zapisuje bieżące ustawienia oglądanej tabeli (filtry, formaty wyświetlania i kolejność kolumn) jako widok SQL, który można później przeglądać lub wstawić do polecenia SQL. - - - + Ctrl+Return - + Ctrl+L - - + + Ctrl+P - + Ctrl+D - + Ctrl+I - + Ctrl+E - + Reset Window Layout Wyzeruj układ okien - + Alt+0 - - Close current SQL tab - Zamknij bieżącą kartę SQL - - - + The database is currenctly busy. Baza danych jest obecnie zajęta. - + Click here to interrupt the currently running query. Naciśnij tutaj, aby przerwać wykonywanie bieżącego zapytania. - + Encrypted Szyfrowana - + Database is encrypted using SQLCipher Baza danych jest zaszyfrowana z użyciem SQLCipher - + Read only Tylko do odczytu - + Database file is read only. Editing the database is disabled. Plik bazy danych jest tylko do odczytu. Edytowanie bazy danych jest wyłączone. - + Database encoding Kodowanie bazy danych - - + + Choose a database file Wybierz plik bazy danych - + Could not open database file. Reason: %1 Nie można otworzyć pliku bazy danych. Powód: %1 - - - + + + Choose a filename to save under Wybierz nazwę pliku do zapisu - Error adding record: - - Błąd podczas dodawania rekordu: - - - - Error deleting record: -%1 - Błąd podczas usuwania rekordu: -%1 - - - Please select a record first - Najpierw wybierz rekord - - - determining row count... - określanie liczby rzędów… - - - %1 - %2 of >= %3 - %1 - %2 z >= %3 - - - %1 - %2 of %3 - %1 - %2 z %3 - - - There is no database opened. Please open or create a new database file. - Brak otwartych baz danych. Otwórz lub utwórz nowy plik bazy danych. - - - Are you sure you want to delete the %1 '%2'? -All data associated with the %1 will be lost. - Czy na pewno chcesz usunąć %1 '%2'? -Wszystkie dane powiązane z %1 zostaną utracone. - - - Error: could not delete the %1. Message from database engine: -%2 - Błąd: nie można usunąć %1. Wiadomość z silnika bazy danych: -%2 - - - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? Ustawianie wartości PRAGMA lub odkurzanie spowoduje wdrożenie twoich zmian @@ -4085,183 +3627,211 @@ z bieżącej transakcji. Czy na pewno? - Execution aborted by user - Wykonywanie przerwane przez użytkownika - - - + In-Memory database Baza danych w-pamięci - You are still executing SQL statements. When closing the database now the execution will be stopped. maybe leaving the database in an incosistent state. Are you sure you want to close the database? - Nadal wykonujesz polecenia SQL. Wykonywanie tych poleceń zostanie zatrzymane, po zamknięciu bazy danych, co może spowodować w niej niespójności. Czy na pewno zamknąć tę bazę danych? - - - + Do you want to save the changes made to the project file '%1'? Czy chcesz zapisać zmiany wprowadzone w plik projektu '%1'? - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. Czy na pewno usunąć tabelę '%1'? Wszystkie dane skojarzone z tą tabelą zostaną utracone. - + Are you sure you want to delete the view '%1'? Czy na pewno usunąć widok '%1'? - + Are you sure you want to delete the trigger '%1'? Czy na pewno usunąć wyzwalacz '%1'? - + Are you sure you want to delete the index '%1'? Czy na pewno usunąć indeks '%1'? - + Error: could not delete the table. Błąd: nie można usunąć bazy danych. - + Error: could not delete the view. Błąd: nie można usunąć widoku. - + Error: could not delete the trigger. Błąd: nie można usunąć wyzwalacza. - + Error: could not delete the index. Błąd: nie można usunąć indeksu. - + Message from database engine: %1 Wiadomość z silnika bazy danych: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? Zmiana tabeli wymaga zapisania wszystkich oczekujących zmian. Czy na pewno zapisać bazę danych? - + Error checking foreign keys after table modification. The changes will be reverted. Błąd sprawdzania kluczy obcych po zmianie tabeli. Zmiany zostaną wycofane. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. Tabela nie przeszła sprawdzenia klucza obcego.<br/>Należy wykonać 'Narzędzia | Sprawdzenie obcego klucza' i naprawić zgłoszone kłopoty. - + + Edit View %1 + + + + + Edit Trigger %1 + + + + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. Już wykonujesz polecenia SQL. Czy zatrzymać je, aby wykonać bieżące polecenia? Działanie to może spowodować niespójność w bazie danych. - + -- EXECUTING SELECTION IN '%1' -- -- WYKONYWANIE ZAZNACZENIA W '%1' -- - + -- EXECUTING LINE IN '%1' -- -- WYKONYWANIE WIERSZA W '%1' -- - + -- EXECUTING ALL IN '%1' -- -- WYKONYWANIE WSZYSTKIEGO W '%1' -- - - + + At line %1: W wierszu %1: - + Result: %1 Wynik: %1 - + Result: %2 Wynik: %2 - + %1 rows returned in %2ms Zwrócono %1 wierszy w czasie %2ms - + Choose text files Wybierz pliki tekstowe - + + Opened '%1' in read-only mode from recent file list + + + + + Opened '%1' from recent file list + + + + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + + + + Project saved to file '%1' Projekt zapisano do pliku '%1' - + + Yes. Don't ask again + + + + + This action will open a new SQL tab with the following statements for you to edit and run: + + + + Rename Tab Przemianuj kartę - + Duplicate Tab Powiel kartę - + Close Tab Zamknij kartę - + Opening '%1'... Otwieranie '%1'... - + There was an error opening '%1'... Błąd otwierania '%1'... - + Value is not a valid URL or filename: %1 Wartość nie jest prawidłowym adresem URL lub nazwą pliku: %1 - Text files(*.csv *.txt);;All files(*) - Pliki tekstowe(*.csv *.txt);;Wszystkie pliki(*) - - - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 @@ -4270,42 +3840,42 @@ Czy na pewno zapisać bazę danych? %1 - + Are you sure you want to undo all changes made to the database file '%1' since the last save? Czy na pewno wycofać wszystkie zmiany wprowadzone w pliku bazy danych '%1' od czasu ostatniego zapisu? - + Choose a file to import Wybierz pliki do zaimportowania - + &%1 %2%3 &%1 %2%3 - + (read only) (tylko do odczytu) - + Open Database or Project Otwórz bazę danych lub projekt - + Attach Database... Dołącz bazę danych... - + Import CSV file(s)... Importuj plik(i) CSV... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. Wybierz działanie dla upuszczonego pliku. <br/>Uwaga: tylko 'Import' przetworzy więcej niż jeden plik. @@ -4314,88 +3884,134 @@ Czy na pewno zapisać bazę danych? - + Do you want to save the changes made to SQL tabs in the project file '%1'? Czy chcesz zapisać zmiany wprowadzone w tabelach SQL do pliku projektu '%1'? - + Text files(*.sql *.txt);;All files(*) Pliki tekstowe(*.sql *.txt);;Wszystkie pliki(*) - + Do you want to create a new database file to hold the imported data? If you answer no we will attempt to import the data in the SQL file to the current database. Czy utworzyć plik nowej bazy danych do przechowania zaimportowanych danych? Jeśli nie, to dane zostaną zaimportowane do pliku bieżącej bazy danych. - + + Ctrl+Tab + + + + + Ctrl+Shift+Tab + + + + + Ctrl+PgUp + + + + + Clear List + + + + + Window Layout + + + + + Simplify Window Layout + + + + + Shift+Alt+0 + + + + + Dock Windows at Bottom + + + + + Dock Windows at Left Side + + + + + Dock Windows at Top + + + + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? Nadal wykonujesz polecenia SQL. Wykonywanie tych poleceń zostanie zatrzymane, po zamknięciu bazy danych, co może spowodować w niej niespójności. Czy na pewno zamknąć tę bazę danych? - + File %1 already exists. Please choose a different name. Plik %1 już istnieje. Wybierz inną nazwę. - + Error importing data: %1 Błąd importowania danych: %1 - + Import completed. Some foreign key constraints are violated. Please fix them before saving. Ukończono import. Nastąpiło przekroczenie niektórych z ograniczeń obcego klucza. Napraw je przed zapisaniem. - + Import completed. Importowanie zakończone. - + Delete View Usuń widok - + Modify View Zmień widok - + Delete Trigger Usuń wyzwalacz - + Modify Trigger Zmień wyzwalacz - + Delete Index Usuń indeks - + Modify Index Zmień indeks - + Modify Table Zmień tabelę - &%1 %2 - &%1 %2 - - - + Setting PRAGMA values will commit your current transaction. Are you sure? Ustawianie wartości PRAGMA spowoduje wdrożenie twoich zmian @@ -4403,159 +4019,95 @@ z bieżącej transakcji. Czy na pewno? - + Select SQL file to open Wybierz plik SQL do otworzenia - Couldn't read file: %1. - Nie można odczytać pliku: %1. - - - Couldn't save file: %1. - Nie można zapisać pliku: %1. - - - + Select file name Wybierz nazwę pliku - + Select extension file Wybierz plik rozszerzenia - Extensions(*.so *.dll);;All files(*) - Rozszerzenia(*.so *.dll);;Wszystkie pliki(*) - - - + Execution finished with errors. Wykonano z błędami. - + Execution finished without errors. Wykonano bez błędów. - + Do you want to save the changes made to SQL tabs in a new project file? Czy chcesz zapisać zmiany wprowadzone w tabelach SQL do nowego pliku projektu? - Do you want to save the changes made to SQL tabs in the project file %1? - Czy chcesz zapisać zmiany wprowadzone w tabelach SQL do pliku projektu %1? - - - + Do you want to save the changes made to the SQL file %1? Czy chcesz zapisać zmiany wprowadzone w SQL do pliku %1? - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? - Polecenia w tej karcie nadal są wykonywane. Wykonywanie tych poleceń zostanie zatrzymane, po zamknięciu karty, co może spowodować niespójności w bazie danych. Czy na pewno zamknąć tę kartę? - - - Extensions(*.so *.dylib *.dll);;All files(*) - Rozszerzenia(*.so *.dylib *.dll);;Wszystkie pliki(*) - - - + Extension successfully loaded. Pomyślnie wczytano rozszerzenie. - + Error loading extension: %1 Nie można wczytać rozszerzenia: %1 - + Could not find resource file: %1 Nie można znaleźć pliku zasobów: %1 - - + + Don't show again Nie pokazuj ponownie - + New version available. Nowa wersja jest dostępna. - + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. Dostępna jest nowa wersja Przeglądarki SQLite (%1.%2.%3).<br/><br/>Pobierz z <a href='%4'>%4</a>. - + Choose a project file to open Wybierz plik projektu do otworzenia - + DB Browser for SQLite project file (*.sqbpro) Plik projektu Przeglądarki SQLite (*.sqbpro) - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - Ten plik projektu używa starego formatu pliku, bo został stworzony przy użyciu Przeglądarki SQLite w wersji 3.10 lub niższej. Wczytywanie tego formatu pliku jest nadal w pełni obsługiwane, lecz zalecamy przekształcenie wszystkich plików projektu na nowy format pliku, bo obsługa starych formatów może zniknąć w przyszłości. Aby przekształcić plik, wystarczy go otworzyć i zapisać. - - - + Could not open project file for writing. Reason: %1 Nie można otworzyć pliku projektu do zapisu. Powód: %1 - Duplicate records - Powielone rekordy - - - Duplicate record - Powielony rekord - - - Ctrl+" - - - - Please choose a new encoding for all tables. - Wybierz nowe kodowanie dla wszystkich tabel. - - - Please choose a new encoding for this table. - Wybierz kodowanie dla tej tabeli - - - %1 -Leave the field empty for using the database encoding. - %1 -Pozostaw pole pustym, aby użyć kodowania bazy danych. - - - This encoding is either not valid or not supported. - To kodowanie jest nieprawidłowe lub nieobsługiwane - - - Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - Podaj pseudo-główny klucz, aby rozpocząć edytowanie w tym widoku. Powinna to być nazwa niepowtarzalnej kolumny w widoku. - - - + Collation needed! Proceed? Potrzebne zestawianie! Postąpić naprzód? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4564,55 +4116,47 @@ Pójścia z tym dalej, może spowodować uszkodzenia w bazie danych. Stwórz kopię zapasową! - + creating collation tworzenie zestawienia - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. Przemianowuje kartę SQL. Wstaw znaku '&&' aby móc wykorzystać następujący po nim znak jako skrót klawiszowy. - + Please specify the view name Określ nazwę widoku - + There is already an object with that name. Please choose a different name. Istnieje już obiekt o tej nazwie. Nadaj inną nazwę. - + View successfully created. Pomyślnie utworzono widok. - + Error creating view: %1 Błąd tworzenia widoku: %1 - There is no filter set for this table. View will not be created. - Nie ustawiono filtru dla tej tabeli. Widok nie zostanie utworzony. - - - Delete Records - Usuń rekordy - - - + This action will open a new SQL tab for running: To działanie otworzy nową kartę SQL aby wykonać: - + Press Help for opening the corresponding SQLite reference page. Naciśnij Pomoc, aby otworzyć powiązaną stronę w podręczniku SQLite. - + Busy (%1) Zajęty (%1) @@ -4638,41 +4182,37 @@ Stwórz kopię zapasową! Wykres - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> <html><head/><body><p>To okno pokazuje wykaz wszystkich kolumn w bieżącej tabeli lub właśnie wykonane zapytanie. Można wybrać kolumny wykorzystywane jako oś X lub Y do okna wykresu poniżej. Tabela pokazuje wykryty rodzaj osi, który wpłynie na wynikowy wykres. Dla osi Y można wybrać tylko kolumny liczbowe, a dla osi X można wybrać:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Data/Czas</span>: ciągi znaków o formacie &quot;yyyy-MM-dd hh:mm:ss&quot; lub &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Data</span>: ciągi znaków o formacie &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Czas</span>: ciągi znaków o formacie &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Etykieta</span>: inne ciągi znaków. Wybranie tej kolumny jako osi X utworzy wykres słupkowy z wartościami z kolumny będącymi etykietami dla słupków</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Liczbowe</span>: liczby całkowite lub rzeczywiste</li></ul><p>Aby zmienić barwy wykresu, należy kliknąć dwukrotnie na komórkach Y.</p></body></html> - + Columns Kolumny - + X X - Y - Y - - - + Y1 - + Y2 - + Axis Type Rodzaj osi - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -4689,129 +4229,129 @@ Aby zmienić zakres osi, należy kliknąć i przeciągnąć myszą. Aby powięks Aby przeciągnąć i powiększyć tylko w jedną stronę, należy wybrać osie lub etykiety osi. - + Line type: Rodzaj linii: - - + + None Brak - + Line Linia - + StepLeft Krok w lewo - + StepRight Krok w prawo - + StepCenter Krok do środka - + Impulse Impuls - + Point shape: Kształt punktu: - + Cross Krzyż - + Plus Plus - + Circle Kółko - + Disc Dysk - + Square Kwadrat - + Diamond Diament - + Star Gwiazda - + Triangle Trójkąt - + TriangleInverted Trójkąt odwrócony - + CrossSquare Krzyż w kwadracie - + PlusSquare Plus w kwadracie - + CrossCircle Krzyż w okręgu - + PlusCircle Plus w okręgu - + Peace Znak pokoju - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> <html><head/><body><p>Zapisz bieżący wykres...</p><p>Format pliku wybierany na podstawie rozszerzenia (png, jpg, pdf, bmp)</p></body></html> - + Save current plot... Zapisz bieżący wykres… - - + + Load all data and redraw plot Wczytaj wszystkie dane i przerysuj wykres @@ -4836,72 +4376,72 @@ Aby przeciągnąć i powiększyć tylko w jedną stronę, należy wybrać osie l Słupki na stosie - + Date/Time Data/Czas - + Date Data - + Time Czas - - + + Numeric Liczbowa - + Label Podpis - + Invalid Nieprawidłowy - - - + + + Row # Nr wiersza - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. Wczytaj wszystkie dane i przerysuj wykres. Uwaga: jeszcze nie wczytano wszystkich danych z tabeli ze względu na mechanizm częściowego wczytywania. - + Choose an axis color Wybierz barwę osi - + Choose a filename to save under Wybierz nazwę pliku do zapisu - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Wszystkie pliki(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. W tym wykresie występują krzywe, a wybrany wygląd linii można zastosować tylko dla wykresów uszeregowanych po X. Uszereguj tabelę lub zapytaj po X, aby usunąć krzywe lub wybierz jeden z wyglądów obsługiwanych przez krzywe: Brak lub Linia. - + Loading all remaining data for this table took %1ms. Wczytywanie wszystkich pozostałych danych dla tej tabeli zajęło %1ms. @@ -4940,8 +4480,8 @@ Uwaga: jeszcze nie wczytano wszystkich danych z tabeli ze względu na mechanizm - - + + ... @@ -5008,12 +4548,14 @@ Uwaga: jeszcze nie wczytano wszystkich danych z tabeli ze względu na mechanizm - - - - - - + + + + + + + + enabled włączone @@ -5079,87 +4621,118 @@ pasujące barwy. Wygląd programu - - &Database - Baza &danych + + This sets the font size for all UI elements which do not have their own font size option. + - - Database &encoding - Kodowani&e bazy danych + + Font size + - - Open databases with foreign keys enabled. + + Max Recent Files + + + + + Prompt to save SQL tabs +in new project file + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + + &Database + Baza &danych + + + + Database &encoding + Kodowani&e bazy danych + + + + Open databases with foreign keys enabled. Otwiera bazy danych z włączonymi kluczami obcymi. - + &Foreign keys &Obce klucze - + Remove line breaks in schema &view Usuń podziały wierszy w &widoku schematu - + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. Po zaznaczeniu, usuwany jest znak łamania wiersza w kolumnie schematu karty struktury bazy danych, doku oraz drukowanym wyniku. - - Prefetch block si&ze - Ro&zmiar obszaru wczytanego z wyprzedzeniem + + Export Settings + - - Advanced - Zaawansowane + + Import Settings + + + + + Prefetch block si&ze + Ro&zmiar obszaru wczytanego z wyprzedzeniem - + SQ&L to execute after opening database SQ&L do wykonania po otworzeniu bazy danych - + Default field type Domyślny rodzaj pola - + Data &Browser &Przeglądarka danych - + Font Czcionka - + &Font &Czcionka - + Font si&ze Ro&zmiar czcionki - + Content Zawartość - + Symbol limit in cell Graniczna liczba znaków w komórce - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. @@ -5170,466 +4743,533 @@ Graniczna liczba indeksów w zaznaczeniu do obliczenia sumy i średniej. Można ustawić na 0, aby wyłączyć wszystkie te działania. - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. Jest to graniczna liczba wierszy w tabeli do włączenia uzupełniania wartości na podstawie wartości znajdujących się już w kolumnie. Można ustawić na 0, aby wyłączyć uzupełnianie. - + + Close button on tabs + + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + + + + Proxy Pośrednik - + Configure Ustawienia - Row count threshold for completion - Próg liczby wierszy do uzupełniania - - - + Field display Wyświetlanie pola - + Displayed &text Wyświetlany &tekst - + Binary Dane dwójkowe - + NULL Wartości NULL - + Regular Zwykłe dane - - - + - - + + + + Click to set this color Naciśnij, aby ustawić tę barwę - + Text color Barwa tekstu - + Background color Barwa tła - + Preview only (N/A) Tylko do podglądu (ND) - + Filters Filtry - + Escape character Znak wyjścia - + Delay time (&ms) Czas opóźnienia (&ms) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. Ustaw czas oczekiwania przed zastosowaniem nowej wartości filtra. Może być ustawiony na 0, aby wyłączyć oczekiwanie. - + &SQL &SQL - + Settings name Nazwa ustawienia - + Context Występowanie - + Colour Barwa - + Bold Pogrubienie - + Italic Pochylenie - + Underline Podkreślenie - + Keyword Słowo kluczowe - + Function Funkcja - + Table Tabela - + Comment Uwaga - + Identifier Identyfikator - + String Ciąg znaków - + Current line Bieżący wiersz - + Background Tło - + Foreground Pierwszy plan - + + selected_bg + + + + + Selection background + + + + + selected_fg + + + + + Selection foreground + + + + + highlight + + + + + Highlight + + + + SQL &editor font size Rozmiar czcionki &edytora SQL - + SQL &results font size &Rozmiar czcionki wyników SQL - + Tab size Rozmiar tabulatora - + SQL editor &font &Czcionka edytora SQL - + + Database structure font size + + + + Threshold for completion and calculation on selection Uzupełniaj i obliczaj do tej liczby wierszy - + Show images in cell Pokaż obrazy w komórce - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. Włącz to, aby pokazać podgląd obiektów BLOB zawierających dane obrazów w komórkach. Może to jednak wpłynąć na wydajność przeglądarki danych. - + &Wrap lines Za&wijaj wiersze - + &Quotes for identifiers &Cudzysłowy dla identyfikatorów - + Choose the quoting mechanism used by the application for identifiers in SQL code. Wybierz zapis cudzysłowów stosowany w aplikacji do identyfikatorów w kodzie SQL. - + "Double quotes" - Standard SQL (recommended) "Podwójne cudzysłowy" - Standard SQL (zalecane) - + `Grave accents` - Traditional MySQL quotes `Pojedyncze cudzysłowy` - Tradycyjne cudzysłowy MySQL - + [Square brackets] - Traditional MS SQL Server quotes [Nawiasy kwadratowe] - Tradycyjne cudzysłowy MS SQL Server - + Code co&mpletion Uzupełnianie &kodu - + Keywords in &UPPER CASE Słowa kl&uczowe WIELKIMI LITERAMI - + When set, the SQL keywords are completed in UPPER CASE letters. Po zaznaczeniu, polecenia SQL są uzupełniane wielkimi literami. - + Error indicators Wskaźniki błędów - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background Po zaznaczeniu, wiersze kodu SQL, które powodowały błędy podczas ostatniego wykonywania, są podświetlana, a okno wyniku pokazuje błąd w tle - + Hori&zontal tiling Kafelki w po&ziomie - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. Po zaznaczeniu, edytor kodu SQL oraz widok tabeli wynikowej będą wyświetlane obok siebie zamiast jedno nad drugim. - + Never Nigdy - + At word boundaries Na granicach słów - + At character boundaries Na granicach znaków - + At whitespace boundaries Na granicach białych znaków - Wrap lines - Zawijaj wiersze - - - + &Extensions Rozsz&erzenia - + Select extensions to load for every database: Wybierz rozszerzenia wczytywane dla każdej bazy danych: - + Add extension Dodaj rozszerzenie - + Remove extension Usuń rozszerzenie - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> <html><head/><body><p>Mimo obsługi polecenia REGEXP, SQLite nie implementuje żadnego z algorytmu wyrażeń regularnych<br/>lecz zwraca się z powrotem do aplikacji, która je uruchomiła. Przeglądarka SQLite implementuje ten<br/>algorytm, aby móc od razu korzystać z REGEXP. Jednakże, ze względu na to, że istnieje wiele możliwych<br/>implementacji wyrażeń regularnych, to można wyłączyć ten wbudowany<br/>i wczytać swój własny. Wymaga to jednak ponownego uruchomienia aplikacji.</p></body></html> - + Disable Regular Expression extension Wyłącz rozszerzenie wyrażeń regularnych - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> <html><head/><body><p>SQLite dostarcza funkcję SQL do wczytywania rozszerzeń z pliku biblioteki współdzielonej. Zaznacz to, aby używać funkcji <span style=" font-style:italic;">load_extension()</span> z kodu SQL.</p><p>Ze względu na bezpieczeństwo, wczytywanie rozszerzeń jest domyślnie wyłączone i musi zostać włączone przez to ustawienie. Zawsze można wczytywać rozszerzenia przez interfejs użytkownika, nawet gdy pole to jest odznaczone.</p></body></html> - + Allow loading extensions from SQL code Zezwól na wczytywanie rozszerzeń z kodu SQL - + Remote Zdalne BD - + CA certificates Certyfikaty UC - - + + Subject CN NP podmiotu - + Common Name Nazwa powszechna - + Subject O O podmiotu - + Organization Organizacja - - + + Valid from Ważny od - - + + Valid to Ważny do - - + + Serial number Numer seryjny - + Your certificates Twoje certyfikaty - + File Plik - + Subject Common Name Nazwa powszechna podmiotu - + Issuer CN NP wydawcy - + Issuer Common Name Nazwa powszechna wydawcy - + Clone databases into Pobieraj bazy danych do - - + + Choose a directory Wybierz katalog - + + The language will change after you restart the application. Język zmieni się po ponownym uruchomieniu aplikacji. - + Select extension file Wybierz plik rozszerzenia - Extensions(*.so *.dll);;All files(*) - Rozszerzenia(*.so *.dll);;Wszystkie pliki(*) - - - + Extensions(*.so *.dylib *.dll);;All files(*) Rozszerzenia(*.so *.dylib *.dll);;Wszystkie pliki(*) - + Import certificate file Importuj plik certyfikatu - + No certificates found in this file. Nie znaleziono certyfikatów w tym pliku. - + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! Czy na pewno usunąć ten certyfikat? Wszystkie dane certyfikatu zostaną usunięte z ustawień aplikacji! - + Are you sure you want to clear all the saved settings? All your preferences will be lost and default values will be used. Czy na pewno wyczyścić wszystkie zapisane ustawienia? Wszystkie zapisane ustawienia zostaną utracone i zastąpione domyślnymi. + + + Save Settings File + + + + + + Initialization File (*.ini) + + + + + The settings file has been saved in location : + + + + + + Open Settings File + + + + + The settings file was loaded properly. + + + + + The selected settings file is not a normal settings file. +Please check again. + + ProxyDialog @@ -5724,7 +5364,7 @@ Wszystkie zapisane ustawienia zostaną utracone i zastąpione domyślnymi.Zaniechaj - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) Pliki bazy danych SQLite (*.db *.sqlite *.sqlite3 *.db3) @@ -5824,97 +5464,65 @@ Wszystkie zapisane ustawienia zostaną utracone i zastąpione domyślnymi.Rozszerzenia (*.so *.dylib *.dll) - Name - Nazwa - - - Commit - Wdrożenie - - - Last modified - Ostatnia zmiana - - - Size - Rozmiar + + Initialization File (*.ini) + - RemoteDatabase - - - Error when connecting to %1. -%2 - Nie można połączyć się z %1. -%2 - - - - Error opening remote file at %1. -%2 - Wystąpił błąd podczas otwierania zdalnego pliku w %1. -%2 - + RemoteCommitsModel - - Error: Invalid client certificate specified. - Błąd: Podano nieprawidłowy certyfikat klienta. + + Commit ID + - - Please enter the passphrase for this client certificate in order to authenticate. - Podaj hasło dla certyfikatu tego klienta, aby się uwierzytelnić. + + Message + - - Cancel - Zaniechaj + + Date + Data - - Uploading remote database to -%1 - Wysyłanie zdalnej bazy danych do -%1 + + Author + - - Downloading remote database from -%1 - Pobieranie zdalnej bazy danych z -%1 + + Size + Rozmiar - - - Error: The network is not accessible. - Błąd: Sieć jest niedostępna. + + Authored and committed by %1 + - - Error: Cannot open the file for sending. - Błąd: Nie można otworzyć pliku do wysłania. + + Authored by %1, committed by %2 + + + + RemoteDatabase - + Error opening local databases list. %1 Nie można otworzyć wykazu lokalnych baz danych. %1 - + Error creating local databases list. %1 Nie można utworzyć wykazu lokalnych baz danych. %1 - - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - Uaktualniono zdalną bazę danych od czasu jej ostatniego pobrania. Czy uaktualnić lokalną bazę danych do najnowszej wersji? Spowoduje to utratę wszystkich zmian poczynionych lokalnie! Aby nie utracić lokalnych zmian, naciśnij Nie, aby otworzyć lokalną wersję. - RemoteDock @@ -5924,80 +5532,364 @@ Wszystkie zapisane ustawienia zostaną utracone i zastąpione domyślnymi.Zdalne BD - + Identity Tożsamość - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. - Połącz się ze zdalnym serwerem przy użyciu obecne wybranej tożsamości. Poprawny serwer -jest brany także z tożsamości. + + Push currently opened database to server + Wypchnij bieżącą bazę danych na serwer + + + + Upload + + + + + DBHub.io + + + + + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> + + + + + Local + - - Go - Przejdź + + Current Database + + + + + Clone + + + + + User + Użytkownika + + + + Database + Baza danych + + + + Branch + Gałąź + + + + Commits + + + + + Commits for + + + + + Delete Database + + + + + Delete the local clone of this database + + + + + Open in Web Browser + + + + + Open the web page for the current database in your browser + + + + + Clone from Link + + + + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + + + + + Refresh + Odśwież + + + + Reload all data and update the views + + + + + F5 + + + + + Clone Database + + + + + Open Database + + + + + Open the local copy of this database + + + + + Check out Commit + + + + + Download and open this specific commit + + + + + Check out Latest Commit + + + + + Check out the latest commit of the current branch + + + + + Save Revision to File + + + + + Saves the selected revision of the database to another file + + + + + Upload Database + + + + + Upload this database as a new commit + + + + + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> + <html><head/><body><p>Obecnie używasz wbudowanej tożsamości, która jest tylko do odczytu. Aby wysłać bazę danych musisz posłużyć się kontem z DBHub.io.</p><p>Nie masz jeszcze konta DBHub.io? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Utwórz je teraz</span></a> i zaimportuj swój certyfikat<a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">tutaj</span></a>, aby móc dzielić się swoimi bazami danych.</p><p>Aby uzyskać pomoc w sieci, zajrzyj <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">tutaj</span></a>.</p></body></html> + + + + Back + Wstecz + + + + Select an identity to connect + + + + + Public + Publiczna + + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + + + + + Invalid URL: The host name does not match the host name of the current identity. + + + + + Invalid URL: No branch name specified. + + + + + Invalid URL: No commit ID specified. + + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + + + + + The database has unsaved changes. Are you sure you want to push it before saving? + + + + + The database you are trying to delete is currently opened. Please close it before deleting. + + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + + + + + RemoteLocalFilesModel + + + Name + Nazwa + + + + Branch + Gałąź + + + + Last modified + Ostatnia zmiana + + + + Size + Rozmiar + + + + Commit + + + + + File + Plik + + + + RemoteModel + + + Name + Nazwa + + + + Commit + Wdroż + + + + Last modified + Ostatnia zmiana + + + + Size + Rozmiar + + + + Size: + - - Push currently opened database to server - Wypchnij bieżącą bazę danych na serwer + + Last Modified: + - - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> + + Licence: - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB4S. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to create a DB4S certificate (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB4S Preferences. Click the button to add a new certificate to DB4S and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>W tym oknie, można dodać zdalne bazy danych ze strony sieciowej dbhub.io do DB4S. Aby to zrobić, należy posiadać tożsamość:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Zaloguj się na stronie dbhub.io (po podaniu danych dostępowych GitHub lub dowolnych innych)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Kliknij na przycisku, aby utworzyć certyfikat DB4S (to twoja tożsamość). Otrzymasz plik certyfikatu (zapisz go na swoim dysku).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Przejdź do karty Zdalnych w Ustawieniach DB4S. Kliknij na przycisk, aby dodać nowy certyfikat do DB4S i wskaż dopiero co pobrany plik certyfikatu.</li></ol><p>Od teraz okno Zdalne pokazuje twoją tożsamość i możesz dodawać zdalne bazy danych.</p></body></html> + + Default Branch: + + + + RemoteNetwork - - <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> - <html><head/><body><p>Obecnie używasz wbudowanej tożsamości, która jest tylko do odczytu. Aby wysłać bazę danych musisz posłużyć się kontem z DBHub.io.</p><p>Nie masz jeszcze konta DBHub.io? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Utwórz je teraz</span></a> i zaimportuj swój certyfikat<a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">tutaj</span></a>, aby móc dzielić się swoimi bazami danych.</p><p>Aby uzyskać pomoc w sieci, zajrzyj <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">tutaj</span></a>.</p></body></html> + + Choose a location to save the file + - - Back - Wstecz + + Error opening remote file at %1. +%2 + Wystąpił błąd podczas otwierania zdalnego pliku w %1. +%2 - <html><head/><body><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> - <html><head/><body><p>Jeszcze nie masz konta na DBHub.io? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Stwórz je teraz</span></a> i zaimportuj swój certyfikat <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">tutaj</span></a>, aby współdzielić swoje bazy danych.</p><p>Aby uzyskać pomoc wystarczy odwiedzić <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">to miejsce</span></a>.</p></body></html> + + Error: Invalid client certificate specified. + Błąd: Podano nieprawidłowy certyfikat klienta. - - Public - Publiczna + + Please enter the passphrase for this client certificate in order to authenticate. + Podaj hasło dla certyfikatu tego klienta, aby się uwierzytelnić. - - - RemoteModel - - Name - Nazwa + + Cancel + Zaniechaj - - Commit - Wdroż + + Uploading remote database to +%1 + Wysyłanie zdalnej bazy danych do +%1 - - Last modified - Ostatnia zmiana + + Downloading remote database from +%1 + Pobieranie zdalnej bazy danych z +%1 - - Size - Rozmiar + + + Error: The network is not accessible. + Błąd: Sieć jest niedostępna. - bytes - bajty + + Error: Cannot open the file for sending. + Błąd: Nie można otworzyć pliku do wysłania. @@ -6017,19 +5909,6 @@ jest brany także z tożsamości. Commit message Opis wdrożenia - - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - Database licence @@ -6051,44 +5930,45 @@ p, li { white-space: pre-wrap; } Wymuś wypchnięcie - + + Username + + + + Database will be public. Everyone has read access to it. Baza danych będzie publiczna. Każdy będzie mógł uzyskać do niej dostęp. - + Database will be private. Only you have access to it. Baza danych będzie prywatna. Tylko Ty będziesz mieć do niej dostęp. - + Use with care. This can cause remote commits to be deleted. Bądź ostrożny. Może to usunąć wdrożenia ze zdalnych miejsc. - - Unspecified - Nieokreślona - RunSql - + Execution aborted by user Wykonywanie przerwane przez użytkownika - + , %1 rows affected , dotyczyło %1 wiersza - + query executed successfully. Took %1ms%2 pomyślnie wykonano zapytanie. Zajęło to %1ms%2 - + executing query wykonywanie zapytania @@ -6210,23 +6090,23 @@ p, li { white-space: pre-wrap; } To pole pokazuje wyniki i kody wyjścia ostatnio wykonanych poleceń - + Couldn't read file: %1. Nie można odczytać pliku: %1. - - + + Couldn't save file: %1. Nie można zapisać pliku: %1. - + Your changes will be lost when reloading it! Utracisz swoje zmiany po ponownym wczytaniu! - + The file "%1" was modified by another program. Do you want to reload it?%2 Inny program zmienił plik "%1". Czy chcesz wczytać go ponownie?%2 @@ -6238,6 +6118,11 @@ p, li { white-space: pre-wrap; } Ctrl+/ + + + Ctrl+PgDown + + SqlUiLexer @@ -6283,283 +6168,288 @@ p, li { white-space: pre-wrap; } + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. () Funkcja last_insert_rowid() zwraca ROWID ostatniego wstawionego wiersza z połączenia bazy danych, która wywołała tę funkcję. - + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. (X) Dla wartości ciągu znaków X, funkcja length(X) zwraca liczbę znaków (nie bajtów) w X do chwili napotkania pierwszego znaku NUL. - + (X,Y) The like() function is used to implement the "Y LIKE X" expression. (X,Y) Funkcja like() jest używana do implementacji wyrażenia "Y LIKE X". - + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. (X,Y,Z) Funkcja like() jest używana do implementacji wyrażenia "Y LIKE X ESCAPE Z". - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. (X) Funkcja load_extension(X) wczytuje rozszerzenia SQLite z pliku biblioteki współdzielonej o nazwie X. Aby użyć tej funkcji, należy wyrazić zgodę w Ustawieniach. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. (X,Y) Funkcja load_extension(X) wczytuje rozszerzenia SQLite z pliku biblioteki współdzielonej o nazwie X przy użyciu punktu wejściowego Y. Aby użyć tej funkcji, należy wyrazić zgodę w Ustawieniach. - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. (X) Funkcja lower(X) zwraca kopię ciągu znaków X po przekształceniu wszystkich znaków ASCII na pisane małymi literami. - + (X) ltrim(X) removes spaces from the left side of X. (X) ltrim(X) usuwa odstępy z lewej strony X. - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. (X,Y) Funkcja ltrim(X,Y) zwraca ciąg znaków utworzony po usunięciu dowolnego i wszystkich znaków, które ukazują się w Y z lewej strony X. - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. (X,Y,...) Funkcja wieloargumentowa max() zwraca argument o wartości największej lub NULL, jeśli dowolny argument jest NULL. - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. (X,Y,...) Funkcja wieloargumentowa min() zwraca argument o wartości najmniejszej. - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. (X,Y) Funkcja nullif(X,Y) zwraca swój pierwszy argument, jeśli argumenty są różne i NULL, jeśli argumenty są te same. - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. (FORMAT,...) Funkcja SQL printf(FORMAT,...) działa jak funkcja sqlite3_mprintf() języka C oraz printf() ze standardowej biblioteki C. - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. (X) Funkcja quote(X) zwraca dosłowny tekst SQL, który jest wartością jego argumentów gotową do wstawienia w polecenie SQL. - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. () Funkcja random() zwraca pseudo-losową liczbę całkowitą z zakresu od -9223372036854775808 do +9223372036854775807. - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. (N) Funkcja randomblob(N) zwraca N-bajtowy kawałek zawierający pseudo-losowe bajty. - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. (X,Y,Z) Funkcja replace(X,Y,Z) zwraca ciąg znaków utworzony poprzez podmianę ciągu znaków Z dla każdego wystąpienia ciągu znaków Y w ciągu znaków X. - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. (X) Funkcja round(X) zwraca wartość liczby zmiennoprzecinkowej X zaokrąglonej do części całkowitej. - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. (X,Y) Funkcja round(X,Y) zwraca wartość liczby zmiennoprzecinkowej X zaokrąglonej do liczby znaków dziesiętnych określonych przez Y. - + (X) rtrim(X) removes spaces from the right side of X. (X) rtrim(X) usuwa odstępy z prawej strony X. - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. (X,Y) Funkcja rtrim(X,Y) zwraca ciąg znaków utworzony po usunięciu dowolnego i wszystkich znaków, które ukazują się w Y z prawej strony X. - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. (X) Funkcja soundex(X) zwraca ciąg znaków X zakodowany jako soundex. - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. (X,Y) substr(X,Y) zwraca wszystkie znaki do końca ciągu znaków X zaczynając od Y-tego. - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. (X,Y,Z) Funkcja substr(X,Y,Z) zwraca podciąg znaków ciągu wejściowego znaków X, który zaczyna się na Y-tym znaku i który jest długi na Z znaków. - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. () Funkcja total_changes() zwraca liczbę zmienionych wierszy przez polecenia INSERT, UPDATE lub DELETE od chwili nawiązania połączenia z bazą danych. - + (X) trim(X) removes spaces from both ends of X. (X) trim(X) usuwa odstępy z obu stron X. - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. (X,Y) Funkcja trim(X,Y) zwraca ciąg znaków utworzony po usunięciu dowolnego i wszystkich znaków, które ukazują się w Y z obu stron X. - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. (X) Funkcja typeof(X) zwraca ciąg znaków, który wskazuje na rodzaj danych wyrażenia X. - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. (X) Funkcja unicode(X) zwraca punkt numerycznego kodu unikodu odpowiadający pierwszemu znakowi ciągu X. - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. (X) Funkcja upper(X) zwraca kopię ciągu znaków X po przekształceniu wszystkich znaków ASCII na pisane wielkimi literami. - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. (N) Funkcja zeroblob(N) zwraca KAWAŁEK składający się z N bajtów 0x00. - + (timestring,modifier,modifier,...) (ciąg_znaków_czasu,zmieniacz,zmieniacz,...) - + (format,timestring,modifier,modifier,...) (format,ciąg_znaków_czasu,zmieniacz,zmieniacz,...) - + (X) The avg() function returns the average value of all non-NULL X within a group. (X) Funkcja avg() zwraca wartość średnią wszystkich nie-NULL X wewnątrz grupy. - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. (X) Funkcja count(X) zwraca liczbę tego ile razy X nie jest NULL w grupie. - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. (X) Funkcja group_concat() zwraca ciąg znaków, który jest złączeniem wszystkich wartości nie-NULL X. - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. (X,Y) Funkcja group_concat() zwraca ciąg znaków będący złączeniem wszystkich wartości nie-NULL X. Jeśli obecne jest Y, to służy jako znak oddzielający wystąpienia X. - + (X) The max() aggregate function returns the maximum value of all values in the group. (X) Funkcja max() zwraca najwyższą wartość z wartości w grupie. - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. (X) Funkcja min() zwraca najmniejszą wartość nie-NULL z wartości w grupie. - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. (X) Funkcje sum() oraz total() zwracają sumę wszystkich wartości nie-NULL w grupie. - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. () Numer wiersza wewnątrz bieżącej partycji. Partycje są ponumerowane od 1 w kolejności określonej przez wyrażenie ORDER BY w określeniu okna lub w dowolnej kolejności. - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () Numer wiersza row_number() pierwszego członka w każdej grupie - ranga bieżącego wiersza w rozstępach. Jeśli brak polecenia ORDER BY, to wszystkie wiersze są rozważane jako członkowie i funkcja zawsze zwraca 1. - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () Numer grupy bieżącego wiersza wewnątrz jego partycji - ranga bieżącego wiersza bez przerw. Partycje są ponumerowane od 1 w kolejności określonej przez wyrażenie ORDER BY w określeniu okna. Jeśli brak wyrażenia ORDER BY, to wszystkie wiersze są rozważane jako leżące obok siebie, a funkcja ta zwraca 1. - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. () Pomimo nazwy, funkcja ta zawsze zwraca wartość pomiędzy 0.0 oraz 1.0 równą (rank - 1)/(wiersze-partycji - 1), gdzie rank jest wartością zwracaną przez wbudowaną funkcję rank() okna, a wiersze-partycji jest całkowitą liczbą wierszy w partycji. Jeśli partycja zawiera tylko jeden wiersz, to ta funkcja zwraca 0.0. - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. () Rozkład nagromadzony. Obliczany jako numer-wiersza/wiersze-partycji, gdzie numer-wiersza jest wartością zwracaną przez row_number() dla ostatniego elementu w grupie, a wiersze-partycji to liczba wierszy w partycji. - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. (N) Argument N jest rozważany jako liczba całkowita. Ta funkcja dzieli partycję na N grup tak równo jak to możliwe i przypisuje liczbę całkowitą z zakresu od 1 do N każdej grupie w kolejności określonej przez polecenie ORDER BY lub dowolnej. Jeśli zajdzie taka potrzeba, to większe grupy wystąpią jako pierwsze. Ta funkcja zwraca liczbę całkowitą przypisaną do grupy, do której bieżący wiersz należy. - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. (expr) Zwraca wynik obliczania wyrażenia expr na poprzednim wierszu w partycji. Lub, jeśli nie ma poprzedniego wiersza (bo bieżący wiersz jest pierwszym), NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. (expr,przesunięcie) Jeśli podano argument przesunięcia, to musi on być nieujemną liczbą całkowitą. W tym przypadku wartością zwracaną jest wynik obliczenia wyrażenia na wierszu przesuniętym o daną liczbę wierszy wstecz względem bieżącego wiersza. Jeśli nie będzie takiego wiersza, to zwracane jest NULL. - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. (expr,przesunięcie,domyślne) Jeśli podano także domyślne, to jest to wartości zwracana zamiast NULL, jeśli wiersz określony przez przesunięcie nie istnieje. - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. (expr) Zwraca wynik obliczania wyrażenia expr na następnym wierszu w partycji. Lub, jeśli nie ma następnego wiersza (bo bieżący wiersz jest ostatnim), NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. (expr,przesunięcie) Jeśli podano argument przesunięcia, to musi on być nieujemną liczbą całkowitą. W tym przypadku wartością zwracaną jest wynik obliczenia wyrażenia na wierszu przesuniętym o daną liczbę wierszy wprzód względem bieżącego wiersza. Jeśli nie będzie takiego wiersza, to zwracane jest NULL. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. (expr) Ta wbudowana funkcja okna oblicza ramę okna dla każdego wiersza w ten sam sposób jak funkcja okna złożonego. Zwraca wartość expr obliczoną na pierwszym wierszu ramy okna dla każdego wiersza. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. (expr) Ta wbudowana funkcja okna oblicza ramę okna dla każdego wiersza w ten sam sposób jak funkcja okna złożonego. Zwraca wartość expr obliczoną na ostatnim wierszu ramy okna dla każdego wiersza. - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. (expr,N) Ta wbudowana funkcja okna oblicza ramę okna dla każdego wiersza w ten sam sposób jak funkcja okna złożonego. Zwraca wartość expr obliczoną na N-tym wierszu ramy okna. Wiersze są numerowane wewnątrz ramy okna poczynając od 1 w kolejności określonej przez polecenie ORDER BY jeśli jest obecne lub w dowolnej kolejności. Jeśli N-ty wiersz nie istnieje w partycji, to zwracane jest NULL. @@ -6567,41 +6457,42 @@ elementu w grupie, a wiersze-partycji to liczba wierszy w partycji. SqliteTableModel - + reading rows czytanie wierszy - + loading... wczytywanie... - + References %1(%2) Hold %3Shift and click to jump there Odwołania %1(%2) Przyciśnij %3Shift i kliknij, aby tu przejść - + Error changing data: %1 Wystąpił błąd podczas zmiany danych: %1 - + retrieving list of columns uzyskiwanie listy kolumn - + Fetching data... Uzyskiwanie danych… - + + Cancel Zaniechaj @@ -6743,7 +6634,7 @@ Przyciśnij %3Shift i kliknij, aby tu przejść - + Replace Zastąp @@ -6758,498 +6649,496 @@ Przyciśnij %3Shift i kliknij, aby tu przejść Zastąp wszystkie - + <html><head/><body><p>Scroll to the beginning</p></body></html> <html><head/><body><p>Przewiń do początku</p></body></html> - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> <html><head/><body><p>Naciśnięcie tego przycisku kieruje na początek powyższego widoku tabeli.</p></body></html> - + |< |< - + Scroll one page upwards Przewiń jedną stronę w górę - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> <html><head/><body><p>Naciśnięcie tego przycisku przenosi o jedną stronę wyżej w powyższym widoku tabeli.</p></body></html> - + < < - + 0 - 0 of 0 0 - 0 z 0 - + Scroll one page downwards Przewiń jedną stronę w dół - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> <html><head/><body><p>Naciśnięcie tego przycisku przenosi o jedną stronę niżej w powyższym widoku tabeli.</p></body></html> - + > > - + Scroll to the end Przewiń na koniec - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Naciśnięcie tego przycisku przenosi na koniec powyższego widoku tabeli.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> - + >| >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> <html><head/><body><p>Naciśnij tutaj, aby przejść do danego rekordu</p></body></html> - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> <html><head/><body><p>Ten przycisk służy to przejścia do rekordu o numerze podanym w obszarze Przejścia.</p></body></html> - + Go to: Przejdź do: - + Enter record number to browse Wprowadź numer rekordu do przejrzenia - + Type a record number in this area and click the Go to: button to display the record in the database view Wpisz numer rekordu w tym obszarze i naciśnij na Przejdź Do, aby wyświetlić rekord w widoku bazy danych - + 1 1 - + Show rowid column Pokaż kolumnę ID wiersza - + Toggle the visibility of the rowid column Pokaż/Ukryj kolumnę ID wiersza - + Unlock view editing Odblokuj zmianę widoku - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. To umożliwia wprowadzanie zmian w bieżącym widoku. Jednakże potrzebne będą odpowiednie wyzwalacze do zmiany. - + Edit display format Zmień format wyświetlania - + Edit the display format of the data in this column Zmień sposób wyświetlania danych w tej kolumnie - - + + New Record Nowy rekord - - + + Insert a new record in the current table Wstaw nowy rekord bieżącej tabeli - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> <html><head/><body><p>Ten przycisk tworzy nowy rekord w bazie danych. Przyciśnij przycisk myszy, aby otworzyć menu podręczne z różnymi ustawieniami:</p><ul><li><span style=" font-weight:600;">Nowy rekord</span>: wstawia nowy rekord o domyślnych wartościach do bazy danych.</li><li><span style=" font-weight:600;">Wstaw wartości...</span>: otwiera okno dialogowe do wpisywania wartości przed ich wstawieniem do bazy danych. Umożliwia to wpisanie wartości przy zachowaniu różnych ograniczeń. To okno dialogowe jest także otwarte, gdy nie powiedzie się wykonanie polecenia <span style=" font-weight:600;">Nowy rekord</span> ze względu na te ograniczenia .</li></ul></body></html> - - + + Delete Record Usuń rekord - + Delete the current record Usuń bieżący rekord - - + + This button deletes the record or records currently selected in the table Ten przycisk usuwa obecnie zaznaczony rekord lub rekordy z tabeli - - + + Insert new record using default values in browsed table Wstaw nowy rekord przy użyciu domyślnych wartości bieżącej tabeli - + Insert Values... Wstaw wartości... - - + + Open a dialog for inserting values in a new record Otwiera okno dialogowe do wstawiania wartości do nowego rekordu - + Export to &CSV Eksportuj do &CSV - - + + Export the filtered data to CSV Eksportuj przefiltrowane dane do CSV - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. Ten przycisk wyeksportuje dane bieżącej tabeli tak jak są obecnie wyświetlane (po filtrach, z formatami wyświetlania i kolejnością kolumn) jako plik CSV. - + Save as &view Zapisz jako &widok - - + + Save the current filter, sort column and display formats as a view Zapisuje bieżący filtr, kolumnę do szeregowania oraz formaty wyświetlania jako widok - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. Ten przycisk zapisuje bieżące ustawienia oglądanej tabeli (filtry, formaty wyświetlania i kolejność kolumn) jako widok SQL, który można później przeglądać lub wstawić do polecenia SQL. - + Save Table As... Zapisz tabelę jako... - - + + Save the table as currently displayed Zapisz tabelę tak, jak jest obecnie wyświetlana - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> <html><head/><body><p>To menu podręczne zawiera następujące ustawienie stosujące się do obecnie oglądanej i filtrowanej tabeli:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Eksportuj do CSV: eksportuje dane oglądanej tabeli tak jak jest obecnie wyświetlana (po filtrach, z formatami wyświetlania i kolejnością kolumn) do pliku CSV.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Zapisz jako widok: zapisuje bieżące ustawienia oglądanej tabeli (filtry, formaty wyświetlania i kolejność kolumn) jako widok SQL, który można później przeglądać lub wstawić do polecenia SQL.</li></ul></body></html> - + Hide column(s) Ukryj kolumnę/y - + Hide selected column(s) Ukryj zaznaczoną/e kolumnę/y - + Show all columns Pokaż wszystkie kolumny - + Show all columns that were hidden Pokaż wszystkie ukryte kolumny - - + + Set encoding Ustaw kodowanie - + Change the encoding of the text in the table cells Zmień kodowanie tekstu w komórkach tabeli - + Set encoding for all tables Ustaw kodowanie dla wszystkich tabel - + Change the default encoding assumed for all tables in the database Zmień domyślne kodowanie przyjęte dla wszystkich table w bazie danych - + Clear Filters Wyczyść filtry - + Clear all filters Wyczyść wszystkie filtry - - + + This button clears all the filters set in the header input fields for the currently browsed table. Ten przycisk wyczyści wszystkie filtry ustawione na polach wejściowych nagłówka dla bieżącej tabeli. - + Clear Sorting Wyczyść szeregowanie - + Reset the order of rows to the default Przywróć porządek wierszy do domyślnego - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. Ten przycisk czyści kolumny szeregowania dla danej tabeli i powraca do domyślnego porządku. - + Print Drukuj - + Print currently browsed table data Wyświetl dane bieżącej tabeli - + Print currently browsed table data. Print selection if more than one cell is selected. Drukuj dane bieżącej tabeli. Drukuj zaznaczenie, jeśli zaznaczono więcej niż jedną komórkę. - + Ctrl+P - + Refresh Odśwież - + Refresh the data in the selected table Odśwież dane w zaznaczonej tabeli - + This button refreshes the data in the currently selected table. Ten przycisk odświeża dane w obecnie zaznaczonej tabeli. - + F5 - + Find in cells Znajdź w komórkach - + Open the find tool bar which allows you to search for values in the table view below. Otwórz pasek wyszukiwania, który umożliwi wyszukiwanie wartości w poniższym widoku tabeli. - Ctrl+F - + + Freeze columns + + + + + Make all columns from the first column up to this column not move when scrolling horizontally + - - + + Bold Pogrubienie - + Ctrl+B - - + + Italic Kursywa - - + + Underline Podkreślenie - + Ctrl+U - - + + Align Right Wyrównaj do prawej - - + + Align Left Wyrównaj do lewej - - + + Center Horizontally Wyśrodkuj w poziomie - - + + Justify Justowanie - - + + Edit Conditional Formats... Edytuj formatowanie warunkowe... - + Edit conditional formats for the current column Zmień formatowania warunkowe dla bieżącej kolumny - + Clear Format Wyczyść format - + Clear All Formats Wyczyść wszystkie formatowania - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns Wyczyść wszystkie formatowania warunkowe dla zaznaczonej komórki i wszystkie formatowania warunkowe dla zaznaczonych kolumn - - + + Font Color Barwa czcionki - - + + Background Color Barwa tła - + Toggle Format Toolbar Pokaż pasek formatowania - + Show/hide format toolbar Pokaż/ukryj pasek formatu - - + + This button shows or hides the formatting toolbar of the Data Browser Ten przycisk pokazuje lub ukrywa pasek formatowania dla przeglądarki danych - + Select column Zaznacz kolumnę - + Ctrl+Space - + Replace text in cells Zastąp tekst w komórkach - - Ctrl+H - - - Filter in all columns - Odfiltruj we wszystkich kolumnach + Filter in any column + - + Ctrl+R - + %n row(s) %n wiersz @@ -7258,7 +7147,7 @@ Przyciśnij %3Shift i kliknij, aby tu przejść - + , %n column(s) , %n kolumna @@ -7267,105 +7156,128 @@ Przyciśnij %3Shift i kliknij, aby tu przejść - + . Sum: %1; Average: %2; Min: %3; Max: %4 . Suma: %1; Średnia: %2; Min: %3; Maks: %4 - + Conditional formats for "%1" Formatowania warunkowe dla "%1" - + determining row count... określanie liczby wierszy… - + %1 - %2 of >= %3 %1 - %2 z >= %3 - + %1 - %2 of %3 %1 - %2 z %3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Podaj pseudo-główny klucz, aby rozpocząć edytowanie w tym widoku. Powinna to być nazwa niepowtarzalnej kolumny w widoku. - + Delete Records Usuń rekordy - + Duplicate records Powielone rekordy - + Duplicate record Powiel rekord - + Ctrl+" - + Adjust rows to contents Dostosuj wiersze do treści - + Error deleting record: %1 Błąd usuwania rekordu: %1 - + Please select a record first Najpierw wybierz rekord - + There is no filter set for this table. View will not be created. Nie ustawiono filtru dla tej tabeli. Widok nie zostanie utworzony. - + Please choose a new encoding for all tables. Wybierz nowe kodowanie dla wszystkich tabel. - + Please choose a new encoding for this table. Wybierz kodowanie dla tej tabeli. - + %1 Leave the field empty for using the database encoding. %1 Pozostaw pole pustym, aby użyć kodowania bazy danych. - + This encoding is either not valid or not supported. To kodowanie jest nieprawidłowe lub nieobsługiwane - + %1 replacement(s) made. Wykonano %1 zastąpień + + TableBrowserDock + + + New Data Browser + + + + + Rename Data Browser + + + + + Close Data Browser + + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + VacuumDialog diff --git a/src/translations/sqlb_pt_BR.ts b/src/translations/sqlb_pt_BR.ts index d96e1b421..614b7f010 100644 --- a/src/translations/sqlb_pt_BR.ts +++ b/src/translations/sqlb_pt_BR.ts @@ -13,52 +13,11 @@ Version Versão - - <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> for details.</p><p>For more information on this program please visit our website at: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - <html><head/><body><p>DB Browser para SQLite é uma ferramenta visual gratuita utilizada para criar, desenhar e editar bancos de dados SQLite.</p><p>É bilicenciada sob a Mozilla Public License Version 2 e a GNU General Public License Version 3 ou posterior. Você pode modificar ou redistribuí-la sob as condições dessas licenças.</p><p>Veja <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> e <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> para mais detalhes.</p><p>Para mais informação sobre esse programa visite nosso website: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">Esse software utiliza o GPL/LGPL Qt Toolkit de </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Veja </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> para termos de licença e informação.</span></p><p><span style=" font-size:small;">Também utiliza o Silk icon set de Mark James licenciado sob uma licença Creative Commons Attribution 2.5 e 3.0.<br/>Veja </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> para mais detalhes.</span></p></body></html> - - - - SQLCipher Version %1 (based on SQLite %2) - SQLCipher versão %1 (baseado em SQLite %2) - - - - Version - Versão - - - - Built for %1, running on %2 - Compilado para %1, rodando em %2 - - - Built for - Compilado para - - - - Qt Version - Versão do Qt - - - SQLCipher Version - Versão do SQLCipher - - - - SQLite Version - Versão do SQLite - <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> <html><head/><body><p>DB Browser para SQLite é uma ferramenta de código livre gratuita usada para criar, projetar e editar bancos de dados SQLite.</p><p>Ela é bi-licensiada sob a Mozilla Public License Version 2 e sob a GNU General Public License Version 3 ou posterior. Você pode modificar ou redistribuir ela sob as condições de qualquer uma dessas licenças.</p><p>Veja <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> e <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> para mais detalhes.</p><p>Para mais informações sobre esse programa visite nosso site em: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">Esse software usa o GPL/LGPL Qt Toolkit de </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Veja </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> para termos de licença e informação.</span></p><p><span style=" font-size:small;">Ele também usa o conjunto de ícones Silk por Mark James licenciado sob a Creative Commons Attribution 2.5 e 3.0.<br/>Veja </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> para detalhes.</span></p></body></html> - - (based on SQLite %1) - (baseado no SQLite %1) - AddRecordDialog @@ -160,95 +119,150 @@ Application - - Usage: %1 [options] [db] + + Possible command line arguments: + Possíveis argumentos da linha de comando: + + + + The user settings file location is replaced with the argument value instead of the environment variable value. + + + + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + + + + + Usage: %1 [options] [<database>|<project>] - Uso: %1 [opções] [bd] - + - - Possible command line arguments: - Possíveis argumentos da linha de comando: + + -h, --help Show command line options + - - -h, --help Show command line options - -h, --help Mostrar opções da linha de comando + + -q, --quit Exit application after running scripts + - -s, --sql [file] Execute this SQL file after opening the DB - -s, -sql [arquivo] Executar esse arquivo de SQL após abrir o BD + + -s, --sql <file> Execute this SQL file after opening the DB + + + + + -t, --table <table> Browse this table after opening the DB + + + + + -R, --read-only Open database in read-only mode + + + + + -S, --settings <settings_file> + + + + + Run application based on this settings file + + + + + -o, --option <group>/<setting>=<value> + + + + + Run application with this setting temporarily set to value + + + + + -O, --save-option <group>/<setting>=<value> + + + + + Run application saving this value for this setting + - - -q, --quit Exit application after running scripts - -q, --quit Sair do programa após executar os scripts + + -v, --version Display the current version + - - -O, --save-option [group/setting=value] Run application saving this value for this setting - -O, --save-option [grupo/configuração=valor] Roda a aplicação salvando esse valor para essa configuração + + <database> Open this SQLite database + - - [file] Open this SQLite database - [arquivo] Abrir esse banco de dados SQLite + + <project> Open this project file (*.sqbpro) + - + The -s/--sql option requires an argument A opção -s/--sql requer um argumento - + The file %1 does not exist O arquivo %1 não existe - + + The -S/--settings option requires an argument. The option is ignored. + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value As opções -o/--option e -O/--save-option requerem um argumento no formato grupo/configuração=valor - + Invalid option/non-existant file: %1 Opção inválida/arquivo inexistente: %1 - - -s, --sql [file] Execute this SQL file after opening the DB - -s, -sql [arquivo] Executar esse arquivo de SQL após abrir o banco de dados - - - - -t, --table [table] Browse this table after opening the DB - -t, --table [tabela] Navegar essa tabela após abrir o banco de dados + + SQLite Version + Versão do SQLite - - The -t/--table option requires an argument - A opção -t/--table requer um argumento + + SQLCipher Version %1 (based on SQLite %2) + SQLCipher versão %1 (baseado em SQLite %2) - - -v, --version Display the current version - -v, -versão Exibir a versão atual + + DB Browser for SQLite Version %1. + - - -R, --read-only Open database in read-only mode - -R, --somente-leitura Abrir o banco de dados em modo somente leitura + + Built for %1, running on %2 + Compilado para %1, rodando em %2 - - This is DB Browser for SQLite version %1. - Este é o DB Browser para SQLite versão %1. + + Qt Version %1 + - - -o, --option [group/setting=value] Run application with this setting temporarily set to value - -o, --option [grupo/configuração=valor] Roda a aplicação com esse valor para essa configuração temporariamente + + The -t/--table option requires an argument + A opção -t/--table requer um argumento @@ -308,20 +322,6 @@ Plaintext Header Size Tamanho do cabeçalho de texto - - Page &size - &Tamanho da página - - - Please set a key to encrypt the database. -Note that if you change any of the other, optional, settings you'll need to re-enter them as well every time you open the database file. -Leave the password fields empty to disable the encryption. -The encrpytion process might take some time and you should have a backup copy of you database! Unsaved changes are applied before modifying the encryption. - Por favor, selecione uma chave para encriptar o banco de dados. -Note que se você alterar quaisquer configurações opcionais você terá de entrá-las todas as vezes que você abrir o arquivo do banco de dados. -Deixe os campos de senha em branco para desativar a encriptação. -O processo de encriptação pode demorar alguns minutos e você deve ter um backup do seu banco de dados! Alterações não salvas são aplicadas antes de se modificar a encriptação. - Please enter the key used to encrypt the database. @@ -400,21 +400,31 @@ O processo de encriptação pode demorar alguns minutos e você deve ter um back + .NET DateTime.Ticks to date + + + + Julian day to date Dia juliano para data - + Lower case Caixa baixa - + + Binary GUID to text + + + + Custom display format must contain a function call applied to %1 Formato de exibição customizado precisa conter uma função aplicada a %1 - + Error in custom display format. Message from database engine: %1 @@ -423,7 +433,7 @@ O processo de encriptação pode demorar alguns minutos e você deve ter um back %1 - + Custom display format must return only one column but it returned %1. Formato de exibição customizado precisa retornar apenas uma coluna mas retornou %1. @@ -438,22 +448,22 @@ O processo de encriptação pode demorar alguns minutos e você deve ter um back Número arredondado - + Unix epoch to date Era unix para data - + Upper case Caixa alta - + Windows DATE to date DATE do Windows para data - + Custom Personalizado @@ -468,12 +478,12 @@ O processo de encriptação pode demorar alguns minutos e você deve ter um back Época Java (ms) para data - + Unix epoch to local time Época Unix para tempo local - + Date as dd/mm/yyyy Data como dd/mm/yyyy @@ -485,14 +495,6 @@ O processo de encriptação pode demorar alguns minutos e você deve ter um back Conditional Format Manager Gerenciador de formato condicional - - &Up - &Subir - - - &Down - &Descer - This dialog allows creating and editing conditional formats. Each cell style will be selected by the first accomplished condition for that cell data. Conditional formats can be moved up and down, where those at higher rows take precedence over those at lower. Syntax for conditions is the same as for filters and an empty condition applies to all values. @@ -608,73 +610,38 @@ O processo de encriptação pode demorar alguns minutos e você deve ter um back DBBrowserDB - no error - Nenhum erro - - - + Please specify the database name under which you want to access the attached database Por favor, especifique o nome do banco de dados sob o qual você quer acessar o banco de dados anexado - + Do you want to save the changes made to the database file %1? Você quer salvar as alterações feitas ao arquivo de banco de dados %1? - + Exporting database to SQL file... Exportando banco de dados para arquivo SQL... - - + + Cancel Cancelar - + Executing SQL... Executando SQL... - + Action cancelled. Ação cancelada. - Error in statement #%1: %2. -Aborting execution. - Erro na consulta #%1: %2. -Abortando execução. - - - renameColumn: cannot find table %1. - renameColumn: não consegue encontrar a tabela %1. - - - renameColumn: cannot find column %1. - renameColumn: não consegue encontrar a coluna %1. - - - renameColumn: creating savepoint failed. DB says: %1 - renameColumn: criação de savepoint falhou. Banco de dados diz: %1 - - - renameColumn: creating new table failed. DB says: %1 - renameColumn: criação de nova tabela falhou. Banco de dados diz: %1 - - - renameColumn: copying data to new table failed. DB says: -%1 - renameColumn: cópia de dados para nova tabela falhou. Banco de dados diz: %1 - - - renameColumn: deleting old table failed. DB says: %1 - renameColumn: deleção de tabela falhou. Banco de dados diz: %1 - - - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -683,178 +650,139 @@ Abortando execução. - renameColumn: releasing savepoint failed. DB says: %1 - renameColumn: liberar savepoint falhou. Banco de dados diz: %1 - - - Error renaming table '%1' to '%2'.Message from database engine: -%3 - Erro renomeando tabela '%1' para '%2'. Mensagem do banco de dados: -%3 - - - ... <string can not be logged, contains binary data> ... - ... <string não pode ser logada, contém dados binários> ... - - - unknown object type %1 - Tipo de objeto desconhecido %1 - - - could not get list of db objects: %1, %2 - Não pôde obter lista de objetos de banco de dados: %1, %2 - - - could not get types - Não pôde obter tipos - - - didn't receive any output from pragma %1 - Não recebeu qualquer saída do pragma %1 - - - could not execute pragma command: %1, %2 - Não conseguiu executar comando pragma: %1, %2 - - - + Error setting pragma %1 to %2: %3 Erro definindo pragma %1 para %2: %3 - + File not found. Arquivo não encontrado. - + Invalid file format Formato de arquivo inválido - - + + Error in statement #%1: %2. Aborting execution%3. Erro no comando #%1: %2. Aborting execution%3. - - + + and rolling back e revertendo - + Cannot set data on this object Não se pode definir dados nesse objeto - + could not get column information não pôde obter informação sobre a coluna - - This database has already been attached. Its schema name is '%1'. - Esse banco de dados já foi anexado. O seu nome de esquema e '%1'. - - - + Do you really want to close this temporary database? All data will be lost. Você realmente quer fechar esse banco de dados temporário? Todos os dados serão perdidos. - + Database didn't close correctly, probably still busy A base de dados não fechou corretamente, provavelmente ainda ocupada - + The database is currently busy: O banco de dados está ocupado: - + Do you want to abort that other operation? Você quer abortar a outra operação? - - + + No database file opened Não há um arquivo de banco de dados aberto - + didn't receive any output from %1 não recebeu nenhuma saída de %1 - + could not execute command: %1 não pode executar comando: %1 - + Cannot delete this object Não pode deletar esse objeto - - + + A table with the name '%1' already exists in schema '%2'. Uma tabela com o nome '%1' já existe no esquema '%2'. - + No table with name '%1' exists in schema '%2'. Nem uma tabela chamada '%1' existe no esquema '%2'. - - + + Cannot find column %1. Não pode encontrar coluna %1. - + Creating savepoint failed. DB says: %1 Criação de savepoint falhou. BD diz: %1 - + Renaming the column failed. DB says: %1 Renomeação de coluna falhou. BD diz: %1 - - + + Releasing savepoint failed. DB says: %1 Liberação de savepoint falhou. BD diz: %1 - + Creating new table failed. DB says: %1 Criação de tabela falhou. BD diz: %1 - + Copying data to new table failed. DB says: %1 Cópia de dados para uma nova tabela falhou. BD diz: %1 - + Deleting old table failed. DB says: %1 Deletando tabela antiga falhou. BD diz: %1 - + Error renaming table '%1' to '%2'. Message from database engine: %3 @@ -863,17 +791,17 @@ Mensagem da engine do banco de dados: %3 - + could not get list of db objects: %1 não conseguiu listar objetos da BD: %1 - + could not get list of databases: %1 não pôde obter a lista de bancos de dados: %1 - + Error loading extension: %1 Erro carregado extensão: %1 @@ -901,31 +829,27 @@ Mensagem da engine do banco de dados: Esquema - + Tables (%1) Tabelas (%1) - + Indices (%1) Índices (%1) - + Views (%1) Vistas (%1) - + Triggers (%1) Gatilhos (%1) - Browsables (%1) - Navegáveis (%1) - - - + All Todos @@ -935,7 +859,7 @@ Mensagem da engine do banco de dados: Banco de dados - + Browsables Navegáveis @@ -953,102 +877,50 @@ Mensagem da engine do banco de dados: Editar célula - Import text - Importar texto - - - Opens a file dialog used to import text to this database cell. - Abre uma janela usada para importar texto para essa célula de banco de dados. - - - &Import - &Importar - - - Export text - Exportar texto - - - Opens a file dialog used to export the contents of this database cell to a text file. - Abre um diálogo de arquivo usado para exportar os conteúdos dessa célula para um arquivo de texto. - - - &Export - &Exportar - - - + Text Texto - + Binary Binário - Clear cell data - Limpar dados de célula - - - + Erases the contents of the cell Apaga os conteúdos da célula - - &Clear - &Limpar - - - <html><head/><body><p><span style=" font-weight:600; color:#c00000;">Warning: Editing binary content in text mode may result in corrupted data!</span></p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#c00000;">Aviso: editar conteúdo binário em modo de texto pode corromper dados!</span></p></body></html> - This area displays information about the data present in this database cell Essa área exibe informação sobre os dados presentes nessa célula - + Type of data currently in cell Tipo de dados atualmente na célula - + Size of data currently in table Tamanho dos dados atualmente na célula - Choose a file - Escolha um arquivo - - - Text files(*.txt);;Image files(%1);;All files(*) - Arquivos de texto(*.txt);;Imagens(%1);;Todos os arquivos(*) - - - + Choose a filename to export data Escolha um arquivo para exportar dados - Text files(*.txt);;All files(*) - Arquivos de texto(*.txt);;Todos os arquivos(*) - - - Type of data currently in cell: Null - Tipo de dados atualmente na célula: Null - - - - + + Type of data currently in cell: Text / Numeric Tipo de dados atualmente na célula: Texto / Numérico - - - + + + %n character(s) %n char @@ -1056,21 +928,13 @@ Mensagem da engine do banco de dados: - Type of data currently in cell: Image - Tipo de dados atualmente na célula: Imagem - - - %1x%2 pixel - %1x%2 pixel - - - + Type of data currently in cell: Binary Tipo de dados atualmente na célula: Binário - - + + %n byte(s) %n byte @@ -1078,91 +942,79 @@ Mensagem da engine do banco de dados: - + Mode: Modo: - - + + Image Imagem - Set this cell to NULL - Definir esta célula como NULL - - - + Set as &NULL Definir como &NULL - + Apply Aplicar - + Type of data currently in cell: %1 Image Tipo de dado atualmente na célula: %1 Imagem - + %1x%2 pixel(s) %1x%2 pixel(s) - + Type of data currently in cell: NULL Tipo de dado atualmente na célula: NULL - Image data can't be viewed with the text editor - Dados de imagem não podem ser exibidos pelo editor de texto - - - Binary data can't be viewed with the text editor - Dados binários não podem ser exibidos pelo editor de texto - - - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. Essa é a lista de modos suportados pelo editor de célula. Escolha um modo para visualizar ou editar os dados da célula atual. - + RTL Text Texto para a esquerda - + JSON JSON - + XML XML - - + + Automatically adjust the editor mode to the loaded data type Automaticamente ajustar o modo do editor para o tipo de dado carregado - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. Esse botão assinalável ativa ou desativa a troca automática do modo do editor. Quando uma nova célula é selecionado ou novos dados são importados e a troca automática está habilitada, o modo ajusta para o tipo detectado. Você pode então mudar o modo do editor manualmente. Se você quer manter o modo manualmente escolhido enquanto movendo pelas células, desmarque essa opção. - + Auto-switch Auto-trocar - + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. @@ -1171,273 +1023,223 @@ Errors are indicated with a red squiggle underline. Erros são indicados com um sublinhado vermelho. - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. Esse editor do QT é usado para scripts da direita para a esquerda, que não são suportados pelo editor de texto padrão. Quando a presença de caracteres da direita para a esquerda é detectada, esse modo é automaticamente selecionado. - + Open preview dialog for printing the data currently stored in the cell Abrir diálogo de prévia para impressão dos dados atualmente armazenados na célula - + Auto-format: pretty print on loading, compact on saving. Auto-formatar: exibir formatado ao carregar, compactar ao salvar. - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. Quando ativado, a funcionalidade de auto-formatar formata os dados ao carregar, quebrando o texto em linhas e indentando ele para melhor legibilidade. Ao salvar os dados, o auto-formatador compacta os dados removendo espaços em branco desnecessários. - + Word Wrap Quebra de linha - + Wrap lines on word boundaries Quebra de linha em limites de palavras - - + + Open in default application or browser Abrir em aplicação padrão ou navegador - + Open in application Abrir em aplicação - + The value is interpreted as a file or URL and opened in the default application or web browser. O valor é interpretado como um arquivo ou URL e aberto na aplicação padrão ou navegador. - + Save file reference... Salvar referência de arquivo... - + Save reference to file Salvar referência para arquivo - - + + Open in external application Abrir em aplicação externa - + Autoformat Autoformatar - + &Export... &Exportar... - - + + &Import... &Importar... - - + + Import from file Importar do arquivo - - + + Opens a file dialog used to import any kind of data to this database cell. Abre um seletor de arquivos usado para importar qualquer tipo de dado para essa célula. - + Export to file Exportar para arquivo - + Opens a file dialog used to export the contents of this database cell to a file. Abre um seletor de arquivo para exportar os conteúdos dessa célula para um arquivo. - This editor mode lets you edit JSON or XML data with syntax highlighting, automatic formatting and validation before saving. - -Errors are indicated with a red squiggle underline. - Esse modo de editor deixa você editar JSON ou XML com realce de sintaxe, formatação automática e validação antes de salvar. - -Erros são indicados com um ondulado vermelho. - - - + Apply data to cell Aplicar dados à célula - + This button saves the changes performed in the cell editor to the database cell. Esse botão salva as modificações realizadas no editor da célula para a célula do banco de dados. - - + + Image data can't be viewed in this mode. Dados de imagem não podem ser visualizados nesse modo. - - + + Try switching to Image or Binary mode. Tente mudar para modo de Imagem ou Binário. - - + + Binary data can't be viewed in this mode. Dados binários não podem ser visualizados nesse modo. - - + + Try switching to Binary mode. Tente mudar para modo binário. - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. - Os dados foram salvos em um arquivo temporário e este foi aberto com a aplicação padrão. Você pode agora editar os dados e, quando você estiver pronto, salvar suas mudanças para o editor de células ou cancelar quaisquer mudanças. - - - Text files (*.txt) - Arquivos texto (*.txt) - - - JSON files (*.json) - Arquivos JSON (*.json) + + Couldn't save file: %1. + Não pôde salvar arquivo: %1. - XML files (*.xml) - Arquivos XML (*.xml) + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + - - + + Image files (%1) Arquivos de imagem (%1) - + Binary files (*.bin) Arquivos binários (*.bin) - All files (*) - Todos arquivos (*) - - - + Choose a file to import Escolha um arquivo para importar - + %1 Image %1 Imagem - SVG files (*.svg) - Arquivos SVG (*.svg) - - - + Invalid data for this mode Dados inválidos para esse modo - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? A célula contém dados inválidos %1. Motivo: %2. Você realmente quer aplicar isso? - + Type of data currently in cell: Valid JSON Tipo de dados atualmente na célula: JSON válido - - + Print... Imprimir... - - Open preview dialog for printing displayed image - Abrir diálogo de prévia para imprimir imagem exibida - - - - + Ctrl+P - + Open preview dialog for printing displayed text Abrir diálogo de prévia para imprimir texto exibido - + Copy Hex and ASCII Copiar Hex e ASCII - + Copy selected hexadecimal and ASCII columns to the clipboard Copiar colunas hexadecimal e ASCII selecionadas para a área de transferência - + Ctrl+Shift+C - - Hex dump files (*.txt) - Arquivos de dump hexadecimal (*.txt) - EditIndexDialog - - Create New Index - Criar novo índice - &Name &Nome - - &Columns - &Colunas - - - Column - Coluna - - - Use in Index - Usar no Índice - Order @@ -1545,22 +1347,6 @@ Erros são indicados com um ondulado vermelho. Fields Campos - - Add field - Adicionar campo - - - Remove field - Remover campo - - - Move field up - Mover campo para cima - - - Move field down - Mover campo para baixo - Add @@ -1592,215 +1378,193 @@ Erros são indicados com um ondulado vermelho. Mover para o fundo - - + + Name Nome - - + + Type Tipo - + Not null Não null - + PK PK - - Primary key - Primary key + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + - + AI AI - + Autoincrement Autoincrement - + U U - - - + + + Unique Unique - + Default Default - + Default value Default value - - - + + + Check Check - + Check constraint Check constraint - + Collation Agrupamento - - - + + + Foreign Key Foreign Key - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + Constraints Restrições - + Add constraint Adicionar restrição - + Remove constraint Remover restrição - + Columns Colunas - + SQL SQL - - + + Primary Key Chave primária - + Add a primary key constraint Adicionar restrição de chave primária - + Add a foreign key constraint Adicionar restrição de chave estrangeira - + Add a unique constraint Adicionar uma restrição de unicidade - + Add a check constraint Adicionar uma restrição de verificação - - + + There can only be one primary key for each table. Please modify the existing primary key instead. Cada tabela pode ter apenas uma chave primária. Por favor, modifique a chave primária existente. - + Error creating table. Message from database engine: %1 Erro criando tabela. Mensagem da engine do banco de dados: %1 - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. Há pelo menos uma linha com esse campo definido NULL. Logo, é impossível definir essa flag. Por favor, mude os dados da tabela primeiro. - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. Há pelo menos uma linha com um valor não-inteiro nesse campo. Logo, é impossível definir essa flag. Por favor, mude os dados da tabela primeiro. - + Column '%1' has duplicate data. Coluna '%1' tem dados duplicados. - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. Isso faz com que seja impossível de se habilitar a flag de unicidade. Por favor, remova os dados duplicados para permitir que a flag seja habilitada. - Column `%1` has no unique data. - - Coluna `%1` não possui dados únicos. - - - This makes it impossible to set this flag. Please change the table data first. - Logo, é impossível definir essa flag. Por favor, mude os dados da tabela primeiro. - - - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. Você tem certeza de que deseja deletar o campo '%1? Todos os dados atualmente armazenados nesse campo serão perdidos. - Please add a field which meets the following criteria before setting the without rowid flag: - - Primary key flag set - - Auto incremenct disabled - Por favor adicione um campo que cumpre os seguintes requerimentos antes de definir a flag without rowid: - - Primare key flag definida - - Auto increment desativado - - - + There already is a field with that name. Please rename it first or choose a different name for this field. Já existe um campo com este nome. Por favor, renomeie-o primeiro ou escolha um nome diferente para esse campo. - This column is referenced in a foreign key in table %1, column %2 and thus its name cannot be changed. - Essa coluna é referenciada em uma chave estrangeira na tabela %1, coluna %2 e portanto não pode ter seu nome alterado. - - - Column '%1' has no unique data. - - Coluna '%1' não possui dados únicos. - - - - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled @@ -1809,84 +1573,32 @@ Todos os dados atualmente armazenados nesse campo serão perdidos. - Incremento automático desativado - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result it in problems.</p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Aviso: </span>Há algo com essa definição de tabela que nosso parser não entende. Modificar e salvar essa tabela pode resultar em problemas.</p></body></html> - - - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. Essa coluna é referenciada em uma chave estrangeira na tabela %1 e portanto seu nome não pode ser alterado. - Modifying this column failed. Error returned from database: -%1 - Modificar essa coluna falhou: Erro retornado do banco de dados: -%1 + + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Alerta: </span>Nosso parser não entende algo dessa definição de tabela. Modificar e salvar essa tabela pode causar problemas.</p></body></html> - Setting the rowid column for the table failed. Error message: -%1 - Editar a coluna rowid para a tabela falhou. Mensagem de erro: -%1 + + NN + NN + + + ExportDataDialog - Set this to create a temporary table that is deleted when closing the database. - Marque isso para criar uma tabela temporária que será deletada quando o banco de dados for fechado. + + Export data as CSV + Exportar dados como CSV - Temporary table - Tabela temporária - - - Setting the temporary flag for the table failed. Error message: -%1 - Definindo a flag temporária para a tabela falhou. Mensagem de erro: -%1 - - - - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Alerta: </span>Nosso parser não entende algo dessa definição de tabela. Modificar e salvar essa tabela pode causar problemas.</p></body></html> - - - Database schema - Esquema do banco de dados - - - - NN - NN - - - Changing the table schema failed. Error message: -%1 - Modificar o esquema falhou. Erro: -%1 - - - - ExportDataDialog - - - Export data as CSV - Exportar dados como CSV - - - &Table(s) - &Tabela(s) - - - &Column names in first line - Nomes das &colunas na primeira linha - - - Field &separator - &Separador de campos - - - - , - , + + , + , @@ -1937,10 +1649,6 @@ Todos os dados atualmente armazenados nesse campo serão perdidos. Choose a filename to export data Escolha um arquivo para exportar dados - - Text files(*.csv *.txt) - Arquivos de texto(*.csv *.txt) - Please select at least 1 table. @@ -1991,10 +1699,6 @@ Todos os dados atualmente armazenados nesse campo serão perdidos. Pretty print Otimizar para leitura humana - - Text files(*.json *.js *.txt) - Arquivos de texto (*.json *.js *.txt) - Export data as JSON @@ -2018,10 +1722,6 @@ Todos os dados atualmente armazenados nesse campo serão perdidos. Export SQL... Exportar SQL... - - &Table(s) - &Tabela(s) - &Options @@ -2032,28 +1732,16 @@ Todos os dados atualmente armazenados nesse campo serão perdidos. Keep column names in INSERT INTO Manter nomes de colunas em INSERT INTO - - New INSERT INTO syntax (multiple rows in VALUES) - Nova sintaxe de INSERT INTO (múltiplas linhas em VALUES) - Export schema only Exportar somente esquema - - Please select at least 1 table. - Por favor, selecione pelo menos uma tabela. - Choose a filename to export Escolha um arquivo para exportar - - Text files(*.sql *.txt) - Arquivos de texto(*.sql *.txt) - Export completed. @@ -2114,7 +1802,7 @@ Todos os dados atualmente armazenados nesse campo serão perdidos. ExtendedScintilla - + Ctrl+H @@ -2125,22 +1813,22 @@ Todos os dados atualmente armazenados nesse campo serão perdidos. - + Ctrl+P - + Find... Encontrar... - + Find and Replace... Encontrar e substituir... - + Print... Imprimir... @@ -2148,141 +1836,133 @@ Todos os dados atualmente armazenados nesse campo serão perdidos. ExtendedTableWidget - The content of clipboard is bigger than the range selected. -Do you want to insert it anyway? - O conteúdo da área de transferência é maior do que a seleção. -Deseja inserir mesmo assim? - - - + Set to NULL Definir como NULL - + Copy Copiar - + Paste Colar - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? O conteúdo da área de transferência é maior do que o intervalo selecionado. Deseja inserir mesmo assim? - + Use as Exact Filter Usar como filtro exato - + Containing Contendo - + Not containing Não contendo - + Not equal to Diferente de - + Greater than Maior que - + Less than Menor que - + Greater or equal Maior ou igual a - + Less or equal Menor ou igual a - + Between this and... Entre isso e... - + Regular expression Expressão regular - + Edit Conditional Formats... Editar formatos condicionais... - + + Cut + + + + Copy with Headers Copiar com cabeçalhos - + Copy as SQL Copiar como SQL - + Print... Imprimir... - + Use in Filter Expression Usar na expressão de filtro - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. <p>Nem todos os dados foram carregados. <b>Você quer carregar todos os dados antes de selecionar todas as linhas?</b><p><p>Respondendo <b>Não</b> significa que mais dados não serão carregados e a seleção não será executada.<br/>Respondendo <b>Sim</b> pode levar algum tempo enquanto os dados são carregados mas a seleção será incompleta.</p>Aviso: carregar todos os dados pode exigir uma grande quantidade de memória para tabelas grandes. - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. Não é possível definir a seleção como NULL. Coluna %1 tem uma restrição de nulidade. - - FileDialog - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - Arquivos de banco de dados SQL (*.db *.sqlite *.sqlite3 *.db3);;Todos os arquivos (*) - - FileExtensionManager @@ -2334,30 +2014,6 @@ Deseja inserir mesmo assim? Filter Filtro - - These input fields allow you to perform quick filters in the currently selected table. -By default, the rows containing the input text are filtered out. -The following operators are also supported: -% Wildcard -> Greater than -< Less than ->= Equal to or greater -<= Equal to or less -= Equal to: exact match -<> Unequal: exact inverse match -x~y Range: values between x and y - Esses campos de entrada permitem você realizar filtros rápidos na tabela atualmente selecionada. -Por padrão, as linhas contendo o texto de entrada são filtradas. -Os seguintes operadores também são suportados: -% Curinga -> Maior que -< Menor que ->= Igual a ou maior que -<= Igual a ou menor que -= Igual a -<> Diferente -x~y Intervalo: valores entre x e y - These input fields allow you to perform quick filters in the currently selected table. @@ -2621,16 +2277,45 @@ x~y Intervalo: valores entre x e y &Reset &Resetar - - (foreign key clauses(ON UPDATE, ON DELETE etc.) - (cláusulas de chave estrangeira (ON UPDATE, ON DELETE etc.) - Foreign key clauses (ON UPDATE, ON DELETE etc.) Cláusulas de chave estrangeira (ON UPDATE, ON DELETE etc.) + + ImageViewer + + + Image Viewer + + + + + Reset the scaling to match the original size of the image. + + + + + Set the scaling to match the size of the viewport. + + + + + Print... + Imprimir... + + + + Open preview dialog for printing displayed image + Abrir diálogo de prévia para imprimir imagem exibida + + + + Ctrl+P + + + ImportCsvDialog @@ -2638,10 +2323,6 @@ x~y Intervalo: valores entre x e y Import CSV file Importar arquivo CSV - - &Table name - &Nome da tabela - &Column names in first line @@ -2664,7 +2345,7 @@ x~y Intervalo: valores entre x e y - + Tab Tab @@ -2730,22 +2411,6 @@ x~y Intervalo: valores entre x e y Trim fields? Trim fields? - - Inserting data... - Inserindo dados... - - - Cancel - Cancelar - - - There is already a table of that name and an import into an existing table is only possible if the number of columns match. - Já existe uma tabela com esse nome e importar em uma tabela existente apenas é possível se o número de colunas for o mesmo. - - - There is already a table of that name. Do you want to import the data into it? - Já existe uma tabela com esse nome. Você quer importar os dados nela? - Creating restore point failed: %1 @@ -2757,11 +2422,7 @@ x~y Intervalo: valores entre x e y Criação de tabela falhou: %1 - Missing field for record %1 - Campo ou registro faltando %1 - - - + Inserting row failed: %1 Inserir linha falhou: %1 @@ -2851,10 +2512,6 @@ x~y Intervalo: valores entre x e y Disable the automatic data type detection when creating a new table. Desativa a detecção automática de tipo de dados quando criando uma nova tabela. - - Import completed - Importação completa - There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. @@ -2871,7 +2528,12 @@ x~y Intervalo: valores entre x e y Importando CSV - + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + + + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. Importando o arquivo '%1' levou %2 ms. Desses, %3 ms foram gastos na função da linha. @@ -2884,1306 +2546,686 @@ x~y Intervalo: valores entre x e y DB Browser para SQLite - Database &Structure - &Estrutura do banco de dados - - - + toolBar1 toolBar1 - &Browse Data - &Navegar dados + + &File + &Arquivo - Table: - Tabela: + + &Import + &Importar - Select a table to browse data - Selecione uma tabela para navegar + + &Export + E&xportar - Use this list to select a table to be displayed in the database view - Use esta lista para selecionar uma tabela para ser exibida na vista do banco de dados + + &Edit + &Editar - Refresh the data in the selected table. - Atualiza os dados na tabela selecionada. + + &View + &Exibir - This button refreshes the data in the currently selected table. - Este botão atualiza os dados na tabela atualmente selecionada. + + &Help + A&juda - F5 - + + DB Toolbar + Barra de ferramentas do banco de dados - Clear all filters - Limpar todos os filtros + + User + Usuário - Insert a new record in the current table - Inserir um novo registro na tabela atual + + Application + Aplicativo - This button creates a new, empty record in the database - Este botão cria um novo registro em branco no banco de dados + + &Clear + &Limpar - New Record - Novo registro + + &New Database... + &Novo banco de dados... - Delete the current record - Deletar o registro atual + + + Create a new database file + Criar um novo arquivo de banco de dados - This button deletes the record currently selected in the database - Este botão deleta o registro atualmente selecionado no banco de dados + + This option is used to create a new database file. + Essa opção e utilizada para criar um novo arquivo de banco de dados. - Delete Record - Deletar registro + + Ctrl+N + - This is the database view. You can double-click any record to edit its contents in the cell editor window. - Esta é a vista do banco de dados. Você pode clicar duas vezes em qualquer registro para editar seus conteúdos na janela de edição de célula. + + + &Open Database... + &Abrir banco de dados... - <html><head/><body><p>Scroll to the beginning</p></body></html> - <html><head/><body><p>Rolar para o começo</p></body></html> + + + + + + Open an existing database file + Abre um arquivo de banco de dados existente - <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - <html><head/><body><p>Clicar nesse botão navega até o começo da vista de tabela acima.</p></body></html> + + + + This option is used to open an existing database file. + Esta opção abre um arquivo de banco de dados existente. - |< - |< + + Ctrl+O + - Scroll 100 records upwards - Rolar 100 registros para baixo + + &Close Database + &Fechar banco de dados - <html><head/><body><p>Clicking this button navigates 100 records upwards in the table view above.</p></body></html> - <html><head/><body><p>Clicar nesse botão navega 100 registros para cima na vista de tabela acima.</p></body></html> + + + Ctrl+W + - < - < + + + Revert database to last saved state + Reverter banco de dados para o último estado salvo - 0 - 0 of 0 - 0 - 0 de 0 + + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. + Essa opção é usada para reverter o atual arquivo de banco de dados para seu último estado salvo. Todas as modificações feitas desde a última operação de salvamento são perdidas. - <html><head/><body><p>Scroll 100 records downwards</p></body></html> - <html><head/><body><p>Rolar 100 registros para baixo</p></body></html> + + + Write changes to the database file + Salva modificações para o arquivo de banco de dados - <html><head/><body><p>Clicking this button navigates 100 records downwards in the table view above.</p></body></html> - <html><head/><body><p>Clicar nesse botão navega 100 registros para baixo na vista de tabela acima.</p></body></html> + + This option is used to save changes to the database file. + Essa opção é usada para salvar modificações para o arquivo de banco de dados. - > - > + + Ctrl+S + - Scroll to the end - Rolar para o fim + + Compact the database file, removing space wasted by deleted records + Compactar o arquivo do banco de dados, removendo espaço desperdiçado por registros deletados - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicar nesse botão navega até o fim da vista de tabela acima.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> + + + Compact the database file, removing space wasted by deleted records. + Compactar o arquivo do banco de dados, removendo espaço desperdiçado por registros deletados. - >| - >| + + E&xit + &Sair - <html><head/><body><p>Click here to jump to the specified record</p></body></html> - <html><head/><body><p>Clique aqui para pular para o registro especificado</p></body></html> + + Ctrl+Q + - <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - <html><head/><body><p>Esse botão navega para o registro especificado na área Ir para.</p></body></html> + + Import data from an .sql dump text file into a new or existing database. + Importar dados de um arquivo de texto .sql em um banco de dados. - Go to: - Ir para: + + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. + Essa opção deixa você importar dados de um arquivo SQL em um banco de dados. Arquivos de SQL podem ser criados na maioria dos bancos de dados, como MySQL e PostgreSQL. - Enter record number to browse - Entre o número do registro para navegar + + Open a wizard that lets you import data from a comma separated text file into a database table. + Abre um assistente que permite você importar dados de um arquivo CSV em uma tabela de banco de dados. - Type a record number in this area and click the Go to: button to display the record in the database view - Digite o número de um registro nessa área e clique no botão Ir para: para exibir o registro na vista do banco de dados + + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. + Abre um assistente que permite você importar dados de um arquivo CSV em uma tabela de banco de dados. Arquivos CSV podem ser criados pela maioria dos programas de banco de dados e planilhas. - 1 - 1 + + Export a database to a .sql dump text file. + Exportar o banco de dados para um arquivo de texto .sql. - Edit &Pragmas - Editar &Pragmas + + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. + Essa opção permite você exportar um banco de dados para um arquivo de texto .sql. Arquivos de despejo SQL contêm todos os dados necessários para recriar o banco de dados na maioria dos motores de banco de dados, incluindo MySQL e PostgreSQL. - None - None + + Export a database table as a comma separated text file. + Exportar uma tabela de banco de dados como um arquivo CSV. - Full - Full + + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. + Exportar uma tabela de banco de dados como um arquivo CSV, pronto para ser importado por outro banco de dados ou planilhas. - Incremental - Incremental + + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database + Abre o assistente de criação de tabelas, em que é possível definir o nome e os campos para uma nova tabela no banco de dados - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> + + + Delete Table + Deletar tabela - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> + + Open the Delete Table wizard, where you can select a database table to be dropped. + Abre o assistente de deleção de tabelas, em que você pode selecionar uma tabela para ser eliminada. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> + + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. + Abre o assistente de modificação de tabelas, em que você pode renomear uma tabela existente. Também é possível adicionar ou deletar campos de uma tabela, assim como modificar nomes e tipos de campos. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> - - - Delete - Delete - - - Truncate - Truncate - - - Persist - Persist - - - Memory - Memory - - - WAL - WAL - - - Off - Off - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> - - - Normal - Normal - - - Exclusive - Exclusive - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> - - - Default - Default - - - File - File - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL Auto Checkpoint</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL Auto Checkpoint</span></a></p></body></html> - - - E&xecute SQL - &Executar SQL - - - - &File - &Arquivo - - - - &Import - &Importar - - - - &Export - E&xportar - - - - &Edit - &Editar - - - - &View - &Exibir - - - - &Help - A&juda - - - - DB Toolbar - Barra de ferramentas do banco de dados - - - SQL Log - Log do SQL - - - &Show SQL submitted by - E&xibir SQL enviado por - - - - User - Usuário - - - - Application - Aplicativo - - - - &Clear - &Limpar - - - Plot - Plot - - - Columns - Colunas - - - X - X - - - Y - Y - - - _ - _ - - - <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - - - Save current plot... - Save current plot... - - - DB Schema - Esquema do banco de dados - - - - &New Database... - &Novo banco de dados... - - - - - Create a new database file - Criar um novo arquivo de banco de dados - - - - This option is used to create a new database file. - Essa opção e utilizada para criar um novo arquivo de banco de dados. - - - - Ctrl+N - - - - - - &Open Database... - &Abrir banco de dados... - - - - - - - - Open an existing database file - Abre um arquivo de banco de dados existente - - - - - - This option is used to open an existing database file. - Esta opção abre um arquivo de banco de dados existente. - - - - Ctrl+O - - - - - &Close Database - &Fechar banco de dados - - - - - Ctrl+W - - - - Revert Changes - Reverter mudanças - - - - - Revert database to last saved state - Reverter banco de dados para o último estado salvo - - - - This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. - Essa opção é usada para reverter o atual arquivo de banco de dados para seu último estado salvo. Todas as modificações feitas desde a última operação de salvamento são perdidas. - - - Write Changes - Escrever Alterações - - - - - Write changes to the database file - Salva modificações para o arquivo de banco de dados - - - - This option is used to save changes to the database file. - Essa opção é usada para salvar modificações para o arquivo de banco de dados. - - - - Ctrl+S - - - - Compact Database - Compactar Banco de Dados - - - - Compact the database file, removing space wasted by deleted records - Compactar o arquivo do banco de dados, removendo espaço desperdiçado por registros deletados - - - - - Compact the database file, removing space wasted by deleted records. - Compactar o arquivo do banco de dados, removendo espaço desperdiçado por registros deletados. - - - - E&xit - &Sair - - - - Ctrl+Q - - - - Database from SQL file... - Banco de dados a partir de um arquivo SQL... - - - - Import data from an .sql dump text file into a new or existing database. - Importar dados de um arquivo de texto .sql em um banco de dados. - - - - This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. - Essa opção deixa você importar dados de um arquivo SQL em um banco de dados. Arquivos de SQL podem ser criados na maioria dos bancos de dados, como MySQL e PostgreSQL. - - - Table from CSV file... - Tabela a partir de um arquivo CSV... - - - - Open a wizard that lets you import data from a comma separated text file into a database table. - Abre um assistente que permite você importar dados de um arquivo CSV em uma tabela de banco de dados. - - - - Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. - Abre um assistente que permite você importar dados de um arquivo CSV em uma tabela de banco de dados. Arquivos CSV podem ser criados pela maioria dos programas de banco de dados e planilhas. - - - Database to SQL file... - Banco de dados para arquivo SQL... - - - - Export a database to a .sql dump text file. - Exportar o banco de dados para um arquivo de texto .sql. - - - - This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. - Essa opção permite você exportar um banco de dados para um arquivo de texto .sql. Arquivos de despejo SQL contêm todos os dados necessários para recriar o banco de dados na maioria dos motores de banco de dados, incluindo MySQL e PostgreSQL. - - - Table(s) as CSV file... - Tabela(s) como arquivo CSV... - - - - Export a database table as a comma separated text file. - Exportar uma tabela de banco de dados como um arquivo CSV. - - - - Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. - Exportar uma tabela de banco de dados como um arquivo CSV, pronto para ser importado por outro banco de dados ou planilhas. - - - Create Table... - Criar Tabela... - - - - Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database - Abre o assistente de criação de tabelas, em que é possível definir o nome e os campos para uma nova tabela no banco de dados - - - Delete Table... - Deletar Tabela... - - - - - Delete Table - Deletar tabela - - - - Open the Delete Table wizard, where you can select a database table to be dropped. - Abre o assistente de deleção de tabelas, em que você pode selecionar uma tabela para ser eliminada. - - - Modify Table... - Modificar Tabela... - - - - Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. - Abre o assistente de modificação de tabelas, em que você pode renomear uma tabela existente. Também é possível adicionar ou deletar campos de uma tabela, assim como modificar nomes e tipos de campos. - - - Create Index... - Criar Índice... - - - + Open the Create Index wizard, where it is possible to define a new index on an existing database table. Abre o assistente de criação de índice, em que é possível definir um novo índice em um tabela de banco de dados já existente. - + &Preferences... &Configurações... - - + + Open the preferences window. Abre a janela de configurações. - + &DB Toolbar Barra de ferramentas do banco de &dados - + Shows or hides the Database toolbar. Exibe ou oculta a barra de ferramentas do banco de dados. - What's This? - O que é isso? - - - + Shift+F1 - &About... - &Sobre... - - - + &Recently opened &Recentemente aberto - - Open &tab - Abrir &aba - - - + Ctrl+T - + &Execute SQL &Executar SQL - - + + Execute SQL This has to be equal to the tab title in all the main tabs Executar SQL - - Open SQL file - Abrir arquivo SQL - - - - - + + + Save SQL file Salvar arquivo SQL - Load extension - Carregar extensão - - - - + + Execute current line Executar linha atual - + Ctrl+E - + Export as CSV file Exportar como arquivo CSV - + Export table as comma separated values file Exportar tabela como CSV - &Wiki... - &Wiki... - - - Bug &report... - &Reportar bug... - - - Web&site... - Web&site... - - - Save Project - Salvar Projeto - - - - + + Save the current session to a file Salvar a atual sessão para um arquivo - Open Project - Abrir Projeto - - - - + + Load a working session from a file Carregar uma sessão de um arquivo - &Attach Database - Microsoft uses "anexar", thought it was good enough a translation. - &Anexar banco de dados - - - Set Encryption - Definir encriptação - - - - + + Save SQL file as Salvar arquivo SQL como - + &Browse Table &Navegar tabela - + Copy Create statement Copiar comando Create - + Copy the CREATE statement of the item to the clipboard Copia o comando CREATE do item para a área de transferência - + Ctrl+Return - + Ctrl+L - - + + Ctrl+P - + Ctrl+D - + Ctrl+I - + Reset Window Layout Resetar layout da janela - + Alt+0 - - Close current SQL tab - Fechar aba SQL atual - - - + The database is currenctly busy. O banco de dados está ocupado. - + Click here to interrupt the currently running query. Clique aqui para interromper a consulta atual. - + Database encoding Codificação do banco de dados - + Database is encrypted using SQLCipher Banco de dados encriptado usando SQLCipher - - + + Choose a database file Escolha um arquivo de banco de dados - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - Arquivos de banco de dados SQL (*.db *.sqlite *.sqlite3 *.db3);;Todos os arquivos (*) - - - Invalid file format. - Formato de arquivo inválido. - - - - - + + + Choose a filename to save under Escolha um nome de arquivo para salvar - Error adding record: - - Erro adicionando registro: - - - - Error deleting record: -%1 - Erro adicionando registro: %1 - - - Please select a record first - Por favor, selecione um registro primeiro - - - %1 - %2 of %3 - %1 - %2 de %3 - - - There is no database opened. Please open or create a new database file. - Não há banco de dados aberta. Por favor, abra ou crie um novo arquivo de banco de dados. + + Are you sure you want to undo all changes made to the database file '%1' since the last save? + Você tem certeza de que deseja desfazer todas as modificações feitas no arquivo de banco de dados '%1' desde o último salvamento? - Are you sure you want to delete the %1 '%2'? -All data associated with the %1 will be lost. - Você tem certeza de que deseja deletar %1 '%2'? -Todos os dados associados com %1 serão perdidos. + + Choose a file to import + Escolha um arquivo para importar - Error: could not delete the %1. Message from database engine: -%2 - Erro: não pôde deletar %1. Mensagem do banco de dados: -%2 + + Text files(*.sql *.txt);;All files(*) + Arquivos de texto(*.sql *.txt);;Todos os arquivos(*) - There is no database opened. - Não há banco de dados aberto. + + Do you want to create a new database file to hold the imported data? +If you answer no we will attempt to import the data in the SQL file to the current database. + Você deseja criar um novo arquivo de banco de dados para armazenar os dados importados? +Se você disser que não, tentaremos importar os dados do arquivo SQL para o banco de dados atual. - %1 Rows returned from: %3 (took %2ms) - %1 Entradas retornadas de %3 (levou %2 ms) + + Ctrl+Tab + - Error executing query: %1 - Erro executando requisição: %1 + + Ctrl+Shift+Tab + - Query executed successfully: %1 (took %2ms) - Requisição executada com sucesso: %1 (levou %2ms) + + Ctrl+PgUp + - Choose a text file - Escolha um arquivo de texto + + Clear List + - Text files(*.csv *.txt);;All files(*) - Arquivos de texto(*.csv *.txt);;Todos os arquivos(*) + + Window Layout + - Import completed - Importação completa + + Simplify Window Layout + - - Are you sure you want to undo all changes made to the database file '%1' since the last save? - Você tem certeza de que deseja desfazer todas as modificações feitas no arquivo de banco de dados '%1' desde o último salvamento? + + Shift+Alt+0 + - - Choose a file to import - Escolha um arquivo para importar + + Dock Windows at Bottom + - - Text files(*.sql *.txt);;All files(*) - Arquivos de texto(*.sql *.txt);;Todos os arquivos(*) + + Dock Windows at Left Side + - - Do you want to create a new database file to hold the imported data? -If you answer no we will attempt to import the data in the SQL file to the current database. - Você deseja criar um novo arquivo de banco de dados para armazenar os dados importados? -Se você disser que não, tentaremos importar os dados do arquivo SQL para o banco de dados atual. + + Dock Windows at Top + - + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? Você ainda está executando comandos SQL. Fechar o banco de dados agora fará a execução parar, talvez deixando o banco de dados em um estado inconsistente. Você tem certeza de que deseja fechar o banco de dados? - + Do you want to save the changes made to the project file '%1'? Você quer salvar as modificações feitas para o arquivo de projeto '%1'? - + Result: %1 Resulto: %1 - + File %1 already exists. Please choose a different name. Arquivo %1 já existe. Por favor, escolha um nome diferente. - + Error importing data: %1 Erro importando dados: %1 - + Import completed. Importação completa. - + Delete View Deletar vista - + Delete Trigger Deletar gatilho - + Delete Index Deletar índice - &%1 %2 - &%1 %2 - - - + Setting PRAGMA values will commit your current transaction. Are you sure? Definir valores de PRAGMA vai cometer sua transação atual. Você tem certeza? - + Do you want to save the changes made to SQL tabs in the project file '%1'? Você quer salvar as mudanças feitas nas abas de SQL no arquivo de projeto '%1'? - + Select SQL file to open Selecione arquivo SQL para abrir - + Select file name Selecione o nome do arquivo - + Select extension file Selecione o arquivo de extensão - Extensions(*.so *.dll);;All files(*) - Extensões(*.so *.dll);;Todos os arquivos(*) - - - + Extension successfully loaded. Extensão carregada com sucesso. - + Error loading extension: %1 Erro carregado extensão: %1 - - + + Don't show again Não mostrar novamente - + New version available. Nova versão disponível. - + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. Uma nova vesão do DB Browser para SQLite está disponível (%1.%2.%3)<br/><br/>Por favor, baixe em <a href='%4'>%4</a>. - Choose a axis color - Escolha uma cor para o eixo - - - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Todos os arquivos(*) - - - Choose a file to open - Escolha um arquivo para abrir - - - + DB Browser for SQLite project file (*.sqbpro) Arquivo de projeto DB Browser para SQLite (*.sqbpro) - Edit Database Cell - Editar célula do banco de dados - - - + SQL &Log &Log do SQL - + Show S&QL submitted by Exibir S&QL enviado por - + &Plot &Plotar - Line type: - Tipo da linha: - - - Line - Linha - - - StepLeft - StepLeft - - - StepRight - StepRight - - - StepCenter - StepCenter - - - Impulse - Impulso - - - Point shape: - Ponto: - - - Cross - Cruz - - - Plus - Mais - - - Circle - Círculo - - - Disc - Disco - - - Square - Quadrado - - - Diamond - Diamante - - - Star - Estrela - - - Triangle - Triângulo - - - TriangleInverted - TriânguloInvertido - - - CrossSquare - CruzQuadrado - - - PlusSquare - MaisQuadrado - - - CrossCircle - CruzCírculo - - - PlusCircle - MaisCírculo - - - Peace - Paz - - - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - Carregar todos os dados. Isso somente tem efeito se nem todos os dados já foram obtidos da tabela devido ao mecanismo de carregamento parcial. - - - + &Revert Changes &Reverter modificações - + &Write Changes &Escrever modificações - Compact &Database - &Compactar banco de dados - - - + &Database from SQL file... &Banco de dados a partir de arquivo SQL... - + &Table from CSV file... &Tabela a partir de arquivo CSV... - + &Database to SQL file... &Banco de dados para arquivo SQL... - + &Table(s) as CSV file... &Tabela para arquivo CSV... - + &Create Table... &Criar tabela... - + &Delete Table... &Deletar tabela... - + &Modify Table... &Modificar tabela... - + Create &Index... &Criar índice... - + W&hat's This? O &que é isso? - &Load extension - &Carregar extensão - - - + Sa&ve Project &Salvar projeto - Open &Project - Abrir &projeto - - - &Set Encryption - &Configurar encriptação - - - Edit display format - Editar formato de exibição - - - Edit the display format of the data in this column - Editar o formato de exibição dos dados nessa coluna - - - Show rowid column - Mostrar coluna rowid - - - Toggle the visibility of the rowid column - Alternar a visibilidade da coluna rowid - - - Set encoding - Definir codificação - - - Change the encoding of the text in the table cells - Modificar a codificação do texto nas células da tabela - - - Set encoding for all tables - Modificar codificação para todas as tabelas - - - Change the default encoding assumed for all tables in the database - Modificar a codificação padrão assumida para todas as tabelas no banco de dados - - - Duplicate record - Duplicar registro - - - + Encrypted Encriptado - + Read only Somente leitura - + Database file is read only. Editing the database is disabled. Arquivo de banco de dados é somente leitura. Edição do banco de dados está desativada. - %1 rows returned in %2ms from: %3 - %1 linhas retornadas em %2ms de: %3 - - - , %1 rows affected - , %1 linhas afetadas - - - Query executed successfully: %1 (took %2ms%3) - Consulta executada com sucesso: %1 (durou %2ms%3) - - - Please choose a new encoding for this table. - Por favor, escolha uma nova codificação para essa tabela. - - - Please choose a new encoding for all tables. - Por favor, escolha uma nova codificação para todas tabelas. - - - -- At line %1: -%3 --- Result: %2 - -- Na linha %1: -%4 --- Resultado: %2 {1:?} {3 -?} - - - + Execution finished with errors. Execução finalizada com erros. - + Execution finished without errors. Execução finalizada sem erros. - - %1 -Leave the field empty for using the database encoding. - %1 -Deixe o campo em branco para usar a codificação do banco de dados. - - - This encoding is either not valid or not supported. - Essa codificação é inválida ou não é suportada. - @@ -4199,63 +3241,49 @@ Deixe o campo em branco para usar a codificação do banco de dados.Navegar dados - - + + Edit Pragmas This has to be equal to the tab title in all the main tabs Editar pragmas - &Table: - &Tabela: - - - Remote - Remoto - - - + Edit Database &Cell Editar &célula do banco de dados - + DB Sche&ma Esque&ma do banco de dados - - Shift+F5 - + + Open SQL file(s) + - SQLCipher &FAQ... - SQLCipher &FAQ... + + This button opens files containing SQL statements and loads them in new editor tabs + - - Opens the SQLCipher FAQ in a browser window - Abre o FAQ do SQLCipher em uma janela do navegador + + Shift+F5 + - Table(s) to JSON... - Tabela(s) para JSON... + + Opens the SQLCipher FAQ in a browser window + Abre o FAQ do SQLCipher em uma janela do navegador - + Export one or more table(s) to a JSON file Exporta uma ou mais tabela(s) para um arquivo JSON - Save to Remote - Salvar para remoto - - - Refresh - Atualizar - - - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 @@ -4264,101 +3292,49 @@ Deixe o campo em branco para usar a codificação do banco de dados. - Please enter the URL of the database file to save. - Por favor, entre a URL do arquivo de banco de dados para salvar. - - - Cancel - Cancelar - - - + &Remote &Remoto - &Open Database Read Only... - &Abrir banco de dados somente leitura... - - - - Open an existing database file in read only mode - Abre um banco de dados existente em modo somente leitura - - - Unlock view editing - Liberar edição da vista - - - This unlocks the current view for editing. However, you will need appropriate triggers for editing. - Isso libera a vista atual para edição. Todavia, você vai precisar dos gatilhos apropriados para editar. + + Open an existing database file in read only mode + Abre um banco de dados existente em modo somente leitura - + Could not open database file. Reason: %1 Não pôde abrir arquivo do banco de dados. Motivo: %1 - Execution aborted by user - Execução abortada pelo usuário - - - + Choose text files Escolha arquivos de texto - + Modify View Modificar vista - + Modify Trigger Modificar gatilho - + Modify Index Modificar índice - + Modify Table Modificar tabela - Couldn't read file: %1. - Não pôde ler arquivo: %1. - - - Couldn't save file: %1. - Não pôde salvar arquivo: %1. - - - Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - Por favor, entre uma pseudo-chave primária para habilitar edição nessa vista. Isso deveria ser o nome de uma coluna única na vista. - - - Scroll one page upwards - Rolar uma página para cima - - - <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - <html><head/><body><p>Clicando nesse botão navega uma página de registros para cima.</p></body></html> - - - Scroll one page downwards - Rolar uma página para baixo - - - <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - <html><head/><body><p>Clicando nesse botão navega uma página de registros para baixo.</p></body></html> - - - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? Definir valores de PRAGMA ou fazer vacuum irá commitar sua transação atual. @@ -4374,80 +3350,37 @@ Você pode arrastar comandos SQL de uma linha e soltá-los em outras aplicaçõe - Refresh the data in the selected table - Atualizar os dados na tabela selecionada - - - This button clears all the filters set in the header input fields for the currently browsed table. - Esse botão limpa todos os filtros definidos no cabeçalho para a tabela atualmente navegada. - - - Save the table as currently displayed - Salva a tabela como atualmente exibida - - - <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - <html><head/><body><p>Esse Menu provê as seguintes opções para a tabela atual:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Exportar para CSV: essa opção exporta os dados como estão exibidos para um arquivo CSV.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Salvar como vista: essa opção salva a configuração atual da tabela como uma vista SQL que você depois pode consultar em comandos SQL.</li></ul></body></html> - - - ... - ... - - - <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - <html><head/><body><p>Esse botão cria um novo registro no banco de dados. Segure o botão do mouse para abrir um menu de opções diferentes:</p><ul><li><span style=" font-weight:600;">Novo Registro</span>: insere um novo registro com valores padrão no banco de dados.</li><li><span style=" font-weight:600;">Inserir Valores...</span>: abre um diálogo para novos valores antes de serem inseridos no banco de dados. Isso permite a entrada de valores de acordo com as restrições. Esse diálogo também é abaerto se a opção<span style=" font-weight:600;">Novo Registro</span> falha devido a essas restrições.</li></ul></body></html> - - - This button deletes the record or records currently selected in the table - Esse botão deleta o registro ou registros selecionados - - - This is the database table view. You can do the following actions: - - Start writing for editing inline the value. - - Double-click any record to edit its contents in the cell editor window. - - Alt+Del for deleting the cell content to NULL. - - Ctrl+" for duplicating the current record. - - Ctrl+' for copying the value from the cell above. - - Standard selection and copy/paste operations. - Essa é a vista de tabela do banco de dados. Você pode fazer as seguintes ações: - - Começar a escrever para editar o valor. - - Clicar duas vezes em qualquer registro para editar seus conteúdos no editor de célula. - - Alt+Del para deletar o conteúdo da célula para NULL. - - Ctrl+" para duplicar o registro atual. - - Ctrl+' para copiar o valor da célula de cima. - - Seleção normal para copiar e colar. - - - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - - - + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. Alerta: esse pragma não é legível e esse valor foi inferido. Escrever o pragma pode sobrescrever um LIKE redefinido provido por uma extensão SQL. - + + Recent Files + + + + &Tools Ferramen&tas - + Error Log Log de erros - + This button clears the contents of the SQL logs Esse botão limpa os logs do SQL - + This panel lets you examine a log of all SQL commands issued by the application or by yourself Esse painel deixa você examinar um log de todos os comandos SQL dados pela aplicação ou por você - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. @@ -4458,682 +3391,665 @@ Você pode arrastar comandos SQL da coluna Esquema e largá-los no editor SQL ou - - + + Project Toolbar Barra de ferramentas do projeto - + Extra DB toolbar Barra de ferramentas do banco de dados extra - - - + + + Close the current database file Fechar o arquivo de banco de dados aberto - + This button closes the connection to the currently open database file Esse botão fecha a conexão com o arquivo aberto - + Ctrl+F4 - + Compact &Database... Compactar banco de &dados... - + &About &Sobre - + + New &tab + + + + This button opens a new tab for the SQL editor Esse botão abre uma nova aba para o editor SQL - + Execute all/selected SQL Executar todo/selecionado SQL - + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. Esse botão executa o SQL selecionado. Se não existe SQL selecionado, todo o SQL é executado. - - This button opens a file containing SQL statements and loads it in a new editor tab - Esse botão abre um arquivo contendo SQL e carrega ele numa nova aba do editor - - - + &Load Extension... &Carregar extensão... - + Execute line Executar linha - + This button executes the SQL statement present in the current editor line Esse botão executa o comando SQL presente na linha atual do editor - + &Wiki &Wiki - + F1 - + Bug &Report... &Reportar bug... - + Feature Re&quest... Re&quisitar feature... - + Web&site &Site - + &Donate on Patreon... &Doar no Patreon... - Sa&ve Project... - Sal&var projeto... - - - This button lets you save all the settings associated to the open DB to a DB4S project file - Esse botão deixa você salvar todas as configurações associadas ao banco de dados aberto a um projeto do DB4S - - - + Open &Project... Abrir &projeto... - This button lets you open a DB4S project file - Esse botão deixa você abrir um projeto do DB4S - - - + &Attach Database... &Anexar banco de dados... - - + + Add another database file to the current database connection Adiciona outro arquivo de banco de dados para a conexão atual - + This button lets you add another database file to the current database connection Esse botão deixa você adicionar outro banco de dados para a conexão atual com o banco de dados - + &Set Encryption... Definir en&criptação... - + This button saves the content of the current SQL editor tab to a file Esse botão salva o conteúdo do editor SQL para um arquivo - + SQLCipher &FAQ &FAQ do SQLCipher - + Table(&s) to JSON... Tabela(&s) para JSON... - + Open Data&base Read Only... Abrir &banco de dados somente leitura... - + Ctrl+Shift+O - + Save results Salvar resultados - + Save the results view Salvar a vista de resultados - + This button lets you save the results of the last executed query Esse botão deixa você salvar os resultados da última consulta executada - - + + Find text in SQL editor Encontrar texto no editor SQL - + Find Encontrar - + This button opens the search bar of the editor Esse botão abre a barra de busca do editor - + Ctrl+F - - + + Find or replace text in SQL editor Encontrar ou substituir texto no editor SQL - + Find or replace Encontrar ou substituir - + This button opens the find/replace dialog for the current editor tab Esse botão abre o diálogo de encontrar/substituir para a aba atual do editor - + Ctrl+H - + Export to &CSV Exportar para &CSV - + Save as &view Salvar como &vista - + Save as view Salvar como vista - Hide column(s) - Ocultar coluna(s) - - - Hide selected column(s) - Ocultar coluna(s) selecionada(s) - - - Show all columns - Mostrar todas as colunas - - - Show all columns that were hidden - Mostrar todas as colunas ocultas - - - + Shows or hides the Project toolbar. Mostra ou oculta a barra de ferramentos do Projeto. - + Extra DB Toolbar Barra de ferramentas do banco de dados extra - Export the filtered data to CSV - Exportar dados filtrados para CSV - - - This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - Esse botão exporta os dados da tabela como atualmente exibidos como um arquivo CSV. - - - Save the current filter, sort column and display formats as a view - Salva o filtro, ordenação e formato como uma vista - - - This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - Esse botão salva as configurações da tabela exibida como uma vista SQL que você pode utilizar em comandos SQL depois. - - - Insert Values... - Inserir Valores... - - - Open a dialog for inserting values in a new record - Abre um diálogo para inserir valores em um novo registro - - - Insert new record using default values in browsed table - Inserir novo registro usando valores padrão na tabela - - - + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file Este botão lhe permite salvar todas as configurações associadas ao banco de dados aberto a um arquivo de projeto do DB Browser para SQLite - + This button lets you open a DB Browser for SQLite project file Este botão lhe permite abrir um arquivo de projeto do DB Browser para SQLite - + New In-&Memory Database Nova tabela em &memória - + Drag && Drop Qualified Names Arrastar e soltar nomes qualificados - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor Use nomes qualificados (p.e. "Tabela"."Campo") quando arrastando objetos e soltando eles no editor - + Drag && Drop Enquoted Names Arrastar e soltar nomes entre áspas - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor Use identificadores escapados (p.e. "Tabela1") quando arrastando e soltando objetos no editor - + &Integrity Check Teste de &integridade - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. Roda o teste de integridade sobre o banco de dados aberto e retorna os resultados na aba Executar SQL. - + &Foreign-Key Check Teste de chave &estrangeira - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab Roda o teste de chave estrangeira sobre o banco de dados aberto e retorna os resultados na aba Executar SQL - + &Quick Integrity Check Teste de integridade &rápido - + Run a quick integrity check over the open DB Roda um teste de integridade rápido sobre o banco de dados aberto - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. Roda um outro pragma para a verificação de integridade do banco de dados. Faz quase tantos testes quando o outro PRAGMA mas executa muito mais rápido. - + &Optimize &Otimizar - + Attempt to optimize the database Tenta otimizar o banco de dados - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. Roda o pragma de otimização sobre o banco de dados aberto. Esse pragma pode realizar otimizações que vão melhorar a performance de consultas futuras. - - + + Print Imprimir - + Print text from current SQL editor tab Imprimir texto do editor SQL - + Open a dialog for printing the text in the current SQL editor tab Abre um diálogo para imprimir o texto na aba atual do editor SQL - + Print the structure of the opened database Imprime a estrutura do banco de dados aberto - + Open a dialog for printing the structure of the opened database Abre um diálogo para imprimir a estrutura do banco de dados aberto - + Un/comment block of SQL code Comentar bloco de SQL - + Un/comment block Comentar bloco - + Comment or uncomment current line or selected block of code Comentar ou remover comentário da linha ou bloco atualmente selecionado - + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. Comentar ou remover comentários das linhas selecionadas ou da linha atual, se não há seleção. Todo o bloco é alterado de acordo com a primeira linha. - + Ctrl+/ - + Stop SQL execution Parar execução do SQL - + Stop execution Parar execução - + Stop the currently running SQL script Parar o script de SQL atualmente executando - + &Save Project As... &Salvar projeto como... - - - + + + Save the project in a file selected in a dialog Salvar o projeto em um arquivo selecionado em um diálogo - + Save A&ll Salvar &todos - - - + + + Save DB file, project file and opened SQL files Salvar arquivo do BD, arquivo do projeto e arquivos SQL abertos - + Ctrl+Shift+S - + Browse Table Navegar tabelas - - In-Memory database - Banco de dados em memória + + Close Pro&ject + - You are still executing SQL statements. When closing the database now the execution will be stopped. maybe leaving the database in an incosistent state. Are you sure you want to close the database? - Você ainda está executando comandos SQL. Fechar o banco de dados agora fará a execução parar, talvez deixando o banco de dados em um estado inconsistente. Você tem certeza de que deseja fechar o banco de dados? + + Close project and database files and return to the initial state + - determining row count... - determinando número de linhas... + + Ctrl+Shift+F4 + - %1 - %2 of >= %3 - %1 - %2 de >= %3 + + + Detach Database + + + + + + Detach database file attached to the current database connection + - + + In-Memory database + Banco de dados em memória + + + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. Você tem certeza de que deseja deletar a tabela '%1'? Todos os dados associados com a tabela serão perdidos. - + Are you sure you want to delete the view '%1'? Você tem certeza que deseja deletar a vista '%1'? - + Are you sure you want to delete the trigger '%1'? Você tem certeza que deseja deletar o gatilho '%1'? - + Are you sure you want to delete the index '%1'? Você tem certeza que deseja deletar o índice '%1'? - + Error: could not delete the table. Erro: não pôde deletar a tabela. - + Error: could not delete the view. Erro: não pôde deletar a vista. - + Error: could not delete the trigger. Erro: não pôde deletar o gatilho. - + Error: could not delete the index. Erro: não pôde deletar o índice. - + Message from database engine: %1 Mensagem do banco de dados: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? Editar a tabela requer salvar todas as mudanças pendentes agora. Você tem certeza que quer salvar o banco de dados? - + + Edit View %1 + + + + + Edit Trigger %1 + + + + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. Você já está executando comandos SQL. Você quer pará-los para executar os comandos atuais? Fechar o banco de dados agora pode deixá-lo em um estado inconsistente. - + -- EXECUTING SELECTION IN '%1' -- -- EXECUTANDO SELEÇÃO EM '%1' -- - + -- EXECUTING LINE IN '%1' -- -- EXECUTANDO LINHA EM '%1' -- - + -- EXECUTING ALL IN '%1' -- -- EXECUTANDO TUDO EM '%1' -- - + + Opened '%1' in read-only mode from recent file list + + + + + Opened '%1' from recent file list + + + + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + + + + Project saved to file '%1' Projeto salvo no arquivo '%1' - + + Yes. Don't ask again + + + + + This action will open a new SQL tab with the following statements for you to edit and run: + + + + Rename Tab Renomear aba - + Duplicate Tab Duplicar aba - + Close Tab Fechar aba - + Opening '%1'... Abrindo '%1'... - + There was an error opening '%1'... Houve um erro abrindo '%1'... - + Value is not a valid URL or filename: %1 Valor não é uma URL ou nome de arquivo válido: %1 - executing query - executando consulta - - - + %1 rows returned in %2ms %1 linhas retornadas em %2 ms - query executed successfully. Took %1ms%2 - consulta executada com sucesso. Levou %1 ms%2 - - - -- At line %1: -%4 --- Result: %3 - -- Na linha %1: -%4 --- Resultado: %3 - - - - + + At line %1: Na linha %1: - + Result: %2 Resultado: %2 - + Import completed. Some foreign key constraints are violated. Please fix them before saving. Importação completa. Algumas chaves estrangeiras são violadas. Por favor corrija-as antes de salvar. - + &%1 %2%3 &%1 %2%3 - + (read only) (somente leitura) - + Open Database or Project Abrir banco de dados ou projeto - + Attach Database... Anexar banco de dados... - + Import CSV file(s)... Importar arquivo(s) CSV... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. Selecione a ação para aplicar ao %n arquivo dropado. <br/>Note que só 'Importar' vai processar mais de um arquivo. @@ -5141,57 +4057,39 @@ Você tem certeza que quer salvar o banco de dados? - + Do you want to save the changes made to SQL tabs in a new project file? Você quer salvar as mudanças feitas nas abas de SQL no arquivo de projeto? - + Do you want to save the changes made to the SQL file %1? Você quer salvar as alterações feitas ao arquivo SQL %1? - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? - Os comandos nessa aba ainda estão executando. Fechar a aba vai parar a execução. Isso pode deixar o banco de dados em um estado inconsistente. Você tem certeza de que deseja fechar a aba? - - - + Could not find resource file: %1 Não pôde encontrar o arquivo de recursos: %1 - + Choose a project file to open Escolha um arquivo de projeto para abrir - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - Esse arquivo de projeto está usando um formato de arquivo mais velho porque ele foi criado usando DB Browser para SQLite versão 3.10 ou menor. Esse arquivo é suportado mas nós aconselhamos converter todos os projetos para o novo formato de arquivos porque o suporte para arquivos antigos pode ser abandonado no futuro. Você pode converter seus arquivos simplesmente abrindo e salvando eles. - - - + Could not open project file for writing. Reason: %1 Não pôde abrir arquivo de projeto para a escrita. Motivo: %1 - Duplicate records - Duplicar registros - - - Ctrl+" - - - - + Collation needed! Proceed? Função de comparação necessária! Proceder? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -5200,73 +4098,57 @@ So você optar por proceder, esteja avisado de que coisas ruins podem acontecer Faça um backup! - + creating collation criando função de comparação - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. Defina um novo nome para a aba de SQL. Use o caractere '&&' para poder usar o seguinte caractere como um atalho de teclado. - + Please specify the view name Por favor, especifique o nome da vista - + There is already an object with that name. Please choose a different name. Já existe um objeto com esse nome. Por favor, escolha um nome diferente. - + View successfully created. Vista criada com sucesso. - + Error creating view: %1 Erro criando vista: %1 - There is no filter set for this table. View will not be created. - Não há filtro para essa tabela. Vista não será criada. - - - Delete Records - Deletar Registros - - - + This action will open a new SQL tab for running: Essa ação irá abrir uma nova aba SQL para rodar: - + Press Help for opening the corresponding SQLite reference page. Pressione Help para abrir a página de referência SQL correspondente. - + Busy (%1) Ocupado (%1) - Print currently browsed table data - Imprimir dados da tabela atual - - - Print currently browsed table data. Print selection if more than one cell is selected. - Imprimir dados da tabela atual. Imprime a seleção se mais de uma célula está selecionada. - - - + Error checking foreign keys after table modification. The changes will be reverted. Erro verificando as chaves estrangeiras após modificação. Mudanças serão revertidas. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. Essa tabela não passou um teste de chave estrangeira.<br/>Você deveria rodar 'Ferramentas | Teste de Chave Estrangeira| e corrigir os problemas reportados. @@ -5292,199 +4174,175 @@ Faça um backup! Plotar - + Columns Colunas - + X X - Y - Y - - - _ - _ - - - + Line type: Tipo da linha: - - + + None Nenhum - + Line Linha - + StepLeft Passo à esquerda - + StepRight Passo à direita - + StepCenter Passo centralizado - + Impulse Impulso - + Point shape: Ponto: - + Cross Cruz - + Plus Mais - + Circle Círculo - + Disc Disco - + Square Quadrado - + Diamond Diamante - + Star Estrela - + Triangle Triângulo - + TriangleInverted Triângulo Invertido - + CrossSquare Cruz Quadrado - + PlusSquare Mais Quadrado - + CrossCircle Cruz Círculo - + PlusCircle Mais Círculo - + Peace Paz - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> <html><head/><body><p>Salvar plotagem atual...</p><p>Formato de arquivo definido pela extensão (png, jpg, pdf, bmp)</p></body></html> - + Save current plot... Salvar plotagem atual... - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - Carregar todos os dados. Isso somente tem efeito se nem todos os dados já foram obtidos da tabela devido ao mecanismo de carregamento parcial. - - - - - + + + Row # Coluna # - Choose a axis color - Escolha uma cor para o eixo - - - + Choose a filename to save under Escolha um nome de arquivo para salvar - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Todos os arquivos(*) - Fetching all data... - Obtendo todos os dados... - - - Cancel - Cancelar - - - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> <html><head/><body><p>Esse painel mostra a lista de colunas da tabela atualmente exibida ou a consulta recém executada. Você pode selecionar as colunas que você quer que sejam utilizadas como os eixos X e Y para o painel de plotagem abaixo. A tabela mostra o tipo detectado de exio que será utilizado na plotagem. For o eixo Y você só pode selecionar colunas numéricas, mas para o eixo X você pode selecionar:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Data/Hora</span>: strings com o formato &quot;yyyy-MM-dd hh:mm:ss&quot; ou &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Data</span>: strings com o formato &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Hora</span>: strings com o formato &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Rótulo</span>: outros formatos de string. Selecionando essa coluna como X vai produzir um gráfico de barras com as colunas como rótulos para as barras</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numérico</span>: valores inteiros ou reais</li></ul><p>Clicando duas vezes nas células Y você pode mudar a cor usada para aquele gráfico.</p></body></html> - + Y1 Y1 - + Y2 Y2 - + Axis Type Tipo do eixo - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -5501,8 +4359,8 @@ Use o scroll do mouse para dar zoom e arraste o mouse para alterar o intervalo d Selecione os eixos ou rótulos dos eixos para arrastar e dar zoom somente naquela orientação. - - + + Load all data and redraw plot Carregar todos os dados e plotar de novo @@ -5522,55 +4380,55 @@ Selecione os eixos ou rótulos dos eixos para arrastar e dar zoom somente naquel Barras empilhadas - + Date/Time Data/Hora - + Date Data - + Time Hora - - + + Numeric Numérico - + Label Rótulo - + Invalid Inválido - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. Carregar todos os dados e plotar de novo. Aviso: nem todos os dados foram obtidos da tabela ainda devido ao mecanismo de obtenção parcial. - + Choose an axis color Escolher a cor do eixo - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. Existem curvas nesse gráfico e o estilo de linha selecionado só pode ser aplicado para gráficos ordenados por X. Ou ordene a tabela ou consulte por X para remover curvas ou selecione um dos estilos suportados por curvas: Nenhum ou Linha. - + Loading all remaining data for this table took %1ms. Carregar os dados restantes para essa tabela levou %1ms. @@ -5609,8 +4467,8 @@ Aviso: nem todos os dados foram obtidos da tabela ainda devido ao mecanismo de o - - + + ... ... @@ -5632,327 +4490,294 @@ Aviso: nem todos os dados foram obtidos da tabela ainda devido ao mecanismo de o - - - - - - + + + + + + + + enabled ativado - + &Database &Banco de dados - + Database &encoding &Codificação do banco de dados - + Open databases with foreign keys enabled. Abrir bancos de dados com chaves estrangeiras ativado. - + &Foreign keys &Chaves estrangeiras - Remove line breaks in schema view - Remove line breaks in schema view - - - &Prefetch block size - &Prefetch block size - - - + Data &Browser Navegador de &dados - NULL fields - Campos nulos - - - Text &colour - &Cor do texto - - - &Text - &Texto - - - Bac&kground colour - Cor de &fundo - - - + &SQL &SQL - + Settings name Settings name - + Context Context - + Colour Cor - + Bold Negrito - + Italic Itálico - + Underline Underline - + Keyword Palavra-chave - function - função - - - + Function Função - + Table Tabela - + Comment Comentário - + Identifier Identificador - + String String - currentline - currentline - - - + Current line Linha atual - + SQL &editor font size Tamanho da fonte do &editor de SQL - SQL &log font size - Tamanho da fonte do &log de SQL - - - Tab size: - Tab size: - - - + SQL editor &font &Fonte do editor de SQL - + &Extensions &Extensões - + Select extensions to load for every database: Selecione extensões para carregar para todos os bancos de dados: - + Add extension Adicionar extensão - + Remove extension Remover extensão - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> <html><head/><body><p>Embora suporte o operador REGEXP, SQLite não implementa expressões regulares mas recorre ao aplicativo em execução.<br/>DB Browser para SQLite implementa esse algoritmo para você poder utilizar REGEXP.<br/>Todavia, como existem múltiplas implementações possíveis desse algoritmo e você pode querer usar outra, você pode desativar a implementação do aplicativo e carregar a sua própria implementação através de uma extensão.<br/>Requer que o programa seja reiniciado.</p></body></html> - + Disable Regular Expression extension Desativar extensão de expressões regulares - - + + Choose a directory Escolha um diretório - + + The language will change after you restart the application. A linguagem mudará após reiniciar o programa. - + Select extension file Selecione arquivo de extensão - + Extensions(*.so *.dylib *.dll);;All files(*) Extensões(*.so *.dylib *.dll);;Todos os arquivos(*) - Extensions(*.so *.dll);;All files(*) - Extensões(*.so *.dll);;Todos os arquivos(*) + + Save Settings File + - - Remove line breaks in schema &view - Remover quebras de linhas em &vista de esquema + + + Initialization File (*.ini) + - - Prefetch block si&ze - &Tamanho de bloco de prefetch + + The settings file has been saved in location : + + - - Advanced - Avançado + + Open Settings File + + + + + The settings file was loaded properly. + + + + + The selected settings file is not a normal settings file. +Please check again. + + + + + Remove line breaks in schema &view + Remover quebras de linhas em &vista de esquema - SQL to execute after opening database - SQL para executar após abrir o banco de dados + + Prefetch block si&ze + &Tamanho de bloco de prefetch - + Default field type Tipo padrão de campo - + Font Fonte - + &Font &Fonte - Font si&ze: - &Tamanho da fonte: - - - Field colors - Cores do campo - - - + NULL NULL - + Regular Regular - Text - Texto - - - + Binary Binário - + Background Fundo - + Filters Filtros - + Escape character Caractere de escape - + Delay time (&ms) Tempo de delay (&ms) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. Definir o tempo de espera antes de aplicar um novo filtro de valor. Pode ser definido para zero para desativar espera. - + Tab size Tamanho de tabulação - + Error indicators Indicadores de erro - Enabling error indicators highlights the SQL code lines that caused errors during the last execution - Ativar indicadores de erro destaca as linhas de SQL que causaram erros durante a última execução - - - + Hori&zontal tiling Disposição &horizontal - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. Se ativados, o editor de SQL e a tabela de resultados são exibidos lado a lado em vez de um sobre o outro. - + Code co&mpletion Co&mpletação de código @@ -5962,126 +4787,126 @@ Aviso: nem todos os dados foram obtidos da tabela ainda devido ao mecanismo de o Mostrar opções remotas - + SQ&L to execute after opening database SQ&L para executar após abrir o banco de dados - + Content Conteúdo - + Symbol limit in cell Limite de símbolos na célula - + Threshold for completion and calculation on selection Limite de compleção e cálculo em seleção - + Show images in cell Mostrar imagens na célula - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. Habilite essa opção para mostrar uma prévia de BLOBs contendo dados de imagens nas células. Isso pode afetar a performance do visualizados de dados. - + Remote Remoto - + CA certificates Certificados CA - - + + Subject CN Nome comum do sujeito - + Common Name Nome comum - + Subject O O do sujeito - + Organization Organização - - + + Valid from Válido de - - + + Valid to Válido para - - + + Serial number Número serial - + Your certificates Seus certificados - + File Arquivo - + Subject Common Name Nome comum do sujeito - + Issuer CN CN do emissor - + Issuer Common Name Nome Comum do emissor - + Import certificate file Importar certificado - + No certificates found in this file. Nem um certificado encontrado nesse arquivo. - + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! Você tem certeza de que deseja remover esse certificado? Todos os dados do certificado serão deletados das configurações da aplicação! - + Clone databases into Clonar bancos de dados em @@ -6191,12 +5016,43 @@ Aviso: nem todos os dados foram obtidos da tabela ainda devido ao mecanismo de o Estilo da aplicação - + + This sets the font size for all UI elements which do not have their own font size option. + + + + + Font size + + + + + Max Recent Files + + + + + Prompt to save SQL tabs +in new project file + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + + Database structure font size + + + + Font si&ze &Tamanho da fonte - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. @@ -6207,155 +5063,201 @@ Número máximo de índices em uma seleção para se calcular soma e média. Pode ser deixado em 0 para se desabilitar as funcionalidades. - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. Esse é o número máximo de linhas na tabela para preencher baseado nos valores atualmente na coluna. Pode ser 0 para desabilitar preenchimento. - Row count threshold for completion - Limite de contagem de linhas para preencher - - - + Field display Exibição do campo - + Displayed &text &Texto exibido - - - + - - + + + + Click to set this color Clique para definir essa cor - + Text color Cor do texto - + Background color Cor do plano de fundo - + Preview only (N/A) Somente prévia (N/D) - + Foreground Plano de frente - + + selected_bg + + + + + Selection background + + + + + selected_fg + + + + + Selection foreground + + + + + highlight + + + + + Highlight + + + + SQL &results font size Tamanho da fonte dos &resultados do SQL - + &Wrap lines &Quebra de linhas - + Never Nunca - + At word boundaries Nos limites de palavras - + At character boundaries Nos limites de caractere - + At whitespace boundaries Nos limites de espaço em branco - + &Quotes for identifiers Áspas &para identificadores - + Choose the quoting mechanism used by the application for identifiers in SQL code. Escolha as áspas utilizadas pela aplicação para identificadores no código SQL. - + "Double quotes" - Standard SQL (recommended) "Áspas duplas" - SQL Padrão (recomendado) - + `Grave accents` - Traditional MySQL quotes `Crases`- MySQL tradicional - + [Square brackets] - Traditional MS SQL Server quotes [Colchetes] - MS SQL Server tradicional - + Keywords in &UPPER CASE Palavras-chave em &CAIXA ALTA - + When set, the SQL keywords are completed in UPPER CASE letters. Quando definido, as palavras-chave SQL serão completadas em CAIXA ALTA. - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background Quando definido, as linhas de código SQL que causaram erros durante a última execução são destacadas e os resultados indicam os erros no fundo - + + Close button on tabs + + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + + + + Proxy Proxy - + Configure Configurar - + + Export Settings + + + + + Import Settings + + + + Are you sure you want to clear all the saved settings? All your preferences will be lost and default values will be used. Você tem certeza que deseja limpar as configurações salvas? Todas as suas preferências serão perdidas e os valores padrão serão utilizados. - + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. Quando ativado, as quebras de linha na coluna Esquema da aba Estrutura do banco de dados e nas saídas impressas são removidas. - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> <html><head/><body><p>SQLite provê uma função SQL para carregar extensões de um arquivo de biblioteca. Ative isso se você quer usar a função <span style=" font-style:italic;">load_extension()</span> a partir de código SQL.</p><p>Por motivos de segurança, carregamento de extensões é desabilitado por padrão e precisa ser habilitado através dessa configuração. Você sempre pode carregar extensões através da interface gráfica, mesmo com essa opção desabilitada.</p></body></html> - + Allow loading extensions from SQL code Permitir o carregamento de extensões a partir de código SQL @@ -6437,31 +5339,11 @@ Todas as suas preferências serão perdidas e os valores padrão serão utilizad . %1 - - Decoding CSV file... - Decodificando arquivo CSV... - Cancel Cancelar - - Collation needed! Proceed? - Função de comparação necessária! Proceder? - - - A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. -If you choose to proceed, be aware bad things can happen to your database. -Create a backup! - Uma tabela nesse banco de dados requer uma função de comparação especial '%1' que esse aplicativo não pode prover. -So você optar por proceder, esteja avisado de que coisas ruins podem acontecer para o seu banco de dados. -Faça um backup! - - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - Arquivos de banco de dados SQL (*.db *.sqlite *.sqlite3 *.db3);;Todos os arquivos (*) - All files (*) @@ -6473,7 +5355,7 @@ Faça um backup! Importando arquivo CSV... - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) Bancos de dados SQLite (*.db *.sqlite *.sqlite3 *.db3) @@ -6573,109 +5455,65 @@ Faça um backup! Extensões (*.so *.dylib *.dll) - Name - Nome - - - Commit - Commit - - - Last modified - Última modificação - - - Size - Tamanho + + Initialization File (*.ini) + - RemoteDatabase - - - Error: Invalid client certificate specified. - Erro: Certificado de cliente inválido especificado. - - - - Please enter the passphrase for this client certificate in order to authenticate. - Por favor entre a frase chave para esse certificado de cliente para se autenticar. - + RemoteCommitsModel - - Cancel - Cancelar + + Commit ID + - Uploading remote database to -%1. - Enviando banco de dados remoto para -%1. + + Message + - Downloading remote database from -%1. - Baixando banco de dados remoto de -%1. + + Date + Data - - - Error: The network is not accessible. - Erro: A rede não é acessível. + + Author + - - Error: Cannot open the file for sending. - Erro: Não pôde abrir o arquivo para envio. + + Size + Tamanho - - Error when connecting to %1. -%2 - Erro quando conectando com %1. -%2 + + Authored and committed by %1 + - - Error opening remote file at %1. -%2 - Erro abrindo arquivo remoto em %1. -%2 + + Authored by %1, committed by %2 + + + + RemoteDatabase - + Error opening local databases list. %1 Erro abrindo lista local de bancos de dados. %1 - + Error creating local databases list. %1 Erro criando lista local de bancos de dados. %1 - - - Uploading remote database to -%1 - Enviando banco de dados remoto para -%1 - - - - Downloading remote database from -%1 - Baixando banco de dados remoto de -%1 - - - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - O banco de dados remoto foi atualizado desde o último checkout. Você deseja atualizar o banco de dados local para a versão mais nova? Note que isso descarta quaisquer mudanças que você fez localmente! Se você não quer perder essas alterações, clique Não para abrir a versão local. - RemoteDock @@ -6685,87 +5523,364 @@ Faça um backup! Remoto - B&rowse - &Navegar - - + Local - Local + Local - + Identity Identidade - - Go - Ir - - - + Push currently opened database to server Enviar o banco de dados aberto para o servidor + Upload + + + + + DBHub.io + + + + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> <html><head/><body><p>Neste painel, bancos de dados remotos do dbhub.io podem ser adicionados ao DB Browser para SQLite. Primeiro você precisa adicionar uma identidade:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Entrar no dbhub.io (use suas credenciais do GitHub ou algum outro método)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Clique o botão para &quot;Gerar certificado do cliente&quot; (essa é sua identidade). Isto te dará um certificado (salve-o no disco local).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Vá para a aba Remoto nas configurações do DB Browser para SQLite. Clique no botão para adicionar um novo certificado ao DB Browser para SQLite e escolha o arquivo recém baixado.</li></ol><p>Agora o painel remoto mostra sua identidade e você pode adicionar bancos de dados remotos.</p></body></html> - + + Current Database + + + + + Clone + + + + + User + Usuário + + + + Database + Banco de dados + + + + Branch + Ramo + + + + Commits + + + + + Commits for + + + + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> <html><head/><body><p>Você está utilizando uma identidade somente leitura. Para fazer upload do seu banco de dados, você precisa configurar e usar a sua conta no DBHub.io.</p><p>Se você ainda não tem uma conta no DBHub, <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">crie uma agora</span></a> e importe seu certificado <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">aqui</span></a> para compartilhar os seus bancos de dados.</p><p>Para ajuda online, visite <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">este link</span></a>.</p></body></html> - + Back Voltar - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. - Conectar com o servidor remoto usando a identidade atualmente selecionada. O servidor correto é obtido a partir da identidade também. + + Delete Database + + + + + Delete the local clone of this database + + + + + Open in Web Browser + + + + + Open the web page for the current database in your browser + + + + + Clone from Link + + + + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + + + + + Refresh + Atualizar + + + + Reload all data and update the views + + + + + F5 + + + + + Clone Database + + + + + Open Database + + + + + Open the local copy of this database + + + + + Check out Commit + + + + + Download and open this specific commit + + + + + Check out Latest Commit + + + + + Check out the latest commit of the current branch + + + + + Save Revision to File + + + + + Saves the selected revision of the database to another file + + + + + Upload Database + + + + + Upload this database as a new commit + + + + + Select an identity to connect + + + + + Public + Público + + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + + + + + Invalid URL: The host name does not match the host name of the current identity. + + + + + Invalid URL: No branch name specified. + + + + + Invalid URL: No commit ID specified. + + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + + + + + The database has unsaved changes. Are you sure you want to push it before saving? + + + + + The database you are trying to delete is currently opened. Please close it before deleting. + + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + + + + + RemoteLocalFilesModel + + + Name + Nome + + + + Branch + Ramo + + + + Last modified + Última modificação + + + + Size + Tamanho + + + + Commit + Commit + + + + File + + + + + RemoteModel + + + Name + Nome + + + + Last modified + Última modificação + + + + Size + Tamanho + + + + Size: + - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB4S. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to create a DB4S certificate (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB4S Preferences. Click the button to add a new certificate to DB4S and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>Nesse painel, bancos de dados remotos do dbhub.io podem ser adicionados ao DB4S. Primeiro você precisa de uma identidade:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Entre no dbhub.io</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Clique no botão para criar um certificado do DB4S (a sua identidade). Isso irá dar um arquivo de certificado que você deve salvar para o disco local</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Vá para a aba Remoto nas preferências do DB4S. Clique o botão para adicionar um novo certificado ao DB4S e escolha o arquivo recém baixado.</li></ol><p>Agora o painel Remoto mostra a sua identidade e você pode adicionar bancos de dados remotos.</p></body></html> + + Last Modified: + + + + + Licence: + + + + + Default Branch: + + + + + Commit + Commit + + + + RemoteNetwork + + + Choose a location to save the file + + + + + Error opening remote file at %1. +%2 + Erro abrindo arquivo remoto em %1. +%2 - - Public - Público + + Error: Invalid client certificate specified. + Erro: Certificado de cliente inválido especificado. - - - RemoteModel - - Name - Nome + + Please enter the passphrase for this client certificate in order to authenticate. + Por favor entre a frase chave para esse certificado de cliente para se autenticar. - Version - Versão + + Cancel + Cancelar - - Last modified - Última modificação + + Uploading remote database to +%1 + Enviando banco de dados remoto para +%1 - - Size - Tamanho + + Downloading remote database from +%1 + Baixando banco de dados remoto de +%1 - bytes - bytes + + + Error: The network is not accessible. + Erro: A rede não é acessível. - - Commit - Commit + + Error: Cannot open the file for sending. + Erro: Não pôde abrir o arquivo para envio. @@ -6786,17 +5901,9 @@ Faça um backup! Mensagem de commit - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + + Username + @@ -6809,19 +5916,15 @@ p, li { white-space: pre-wrap; } Público - + Database will be public. Everyone has read access to it. Banco de dados será público. Todos poderão lê-lo. - + Database will be private. Only you have access to it. Banco de dados será privado. Somente você terá acesso a ele. - - Unspecified - Não especificado - Branch @@ -6833,7 +5936,7 @@ p, li { white-space: pre-wrap; } Forçar envio - + Use with care. This can cause remote commits to be deleted. Use com cuidado. Isso pode causar a perda de commits remotos. @@ -6841,22 +5944,22 @@ p, li { white-space: pre-wrap; } RunSql - + Execution aborted by user Execução abortada pelo usuário - + , %1 rows affected , %1 linhas afetadas - + query executed successfully. Took %1ms%2 consulta executada com sucesso. Levou %1ms%2 - + executing query executando consulta @@ -6896,34 +5999,6 @@ p, li { white-space: pre-wrap; } This field shows the results and status codes of the last executed statements. Esse campo mostra os resultados e códigos de status dos últimos comandos executados. - - Export to &CSV - Exportar para &CSV - - - Save as &view - Salvar como &vista - - - Save as view - Salvar como vista - - - Please specify the view name - Por favor, especifique o nome da vista - - - There is already an object with that name. Please choose a different name. - Já existe um objeto com esse nome. Por favor, escolha um nome diferente. - - - View successfully created. - Vista criada com sucesso. - - - Error creating view: %1 - Erro criando vista: %1 - Find previous match [Shift+F3] @@ -7006,23 +6081,23 @@ p, li { white-space: pre-wrap; } Fechar barra de busca - + Couldn't read file: %1. Não pôde ler arquivo: %1. - - + + Couldn't save file: %1. Não pôde salvar arquivo: %1. - + Your changes will be lost when reloading it! Suas modificações serão perdidas quando recarregando! - + The file "%1" was modified by another program. Do you want to reload it?%2 O arquivo "%1" foi modificado por outro programa. Você quer recarregá-lo?%2 @@ -7034,6 +6109,11 @@ p, li { white-space: pre-wrap; } Ctrl+/ + + + Ctrl+PgDown + + SqlUiLexer @@ -7079,278 +6159,283 @@ p, li { white-space: pre-wrap; } + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. - + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. - + (X,Y) The like() function is used to implement the "Y LIKE X" expression. - + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. - + (X) ltrim(X) removes spaces from the left side of X. - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. - + (X) rtrim(X) removes spaces from the right side of X. - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. - + (X) trim(X) removes spaces from both ends of X. - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. - + (timestring,modifier,modifier,...) - + (format,timestring,modifier,modifier,...) - + (X) The avg() function returns the average value of all non-NULL X within a group. - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. - + (X) The max() aggregate function returns the maximum value of all values in the group. - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. () O número de linhas dentro da partição atual. Linhas são numeradas de 1 na ordem definida pela cláusula ORDER BY na definição da janela, ou de forma arbitrária. - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () O row_number() do primeiro elemento de cada grupo - o rank da linha atual com gaps. Se não há uma cláusula ORDER BY, então todas as linhas são consideradas elementos e essa função sempre retorna 1. - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () O número do grupo de colegas da linha atual dentro da sua partição - o rank da linha atual sem intervalos. Partições são numeradas a partir de 1 na ordem definida pela cláusula ORDER BY na definição. Se não há ORDER BY, então todas as linhas são consideradas colegas e essa função sempre retorna 1. - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. () Apesar do nome, essa função sempre retorna um valor entre 0.0 e 1.0 igual a (rank - 1)/(linhas-na-partição - 1), onde rank é o valor retornado pela built-in rank() e linhas-na-partição é o número total de linhas na partição. Se a partição contém somente uma linha, essa função retorna 0. - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. () A distribuição cumulativa. Calculada como número-da-linha/linhas-na-partição em que número-da-linha é o valor retornado por row_number() para o último elemento do grupo e linhas-na-partição é o número de linhas na partição. - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. (N) Argumento N é interpretado como um inteiro. Essa função divide a partição em N grupos tão igualmente como possível e atribui um inteiro entre 1 e N para cada grupo, na ordem definida pela cláusula ORDER BY, ou em ordem arbitrária. Se necessário, grupos maiores ocorrem primeiro. Essa função retorna o valor inteiro atribuido ao grupo que a linha atual é parte de. - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. (expr) Retorna o resultado de avaliar expressão expr contra a linha anterior na partição. Ou, se não há linha anterior, NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. (expr,offset) Se o offset é fornecido, então ele precisa ser um inteiro não-negativo. Nesse caso, o valor retornado é o resultado de avaliar expr contra a linha offset linhas antes da linha atual dentro da partição. Se offset é 0, então expr é avaliada contra a linha atual. Se não há linha offset linhas antes da linha atual, NULL é retornado. - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. (expr,offset,default) Se default também é fornecido, ele é retornado em vez de NULL se a linha identificada por offset não existe. - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. (expr) Retorna o resultado de avaliar a expressão expr contra a próxima linha na partição. Ou, se não há próxima linha, NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. (expr,offset) Se o offset é fornecido, então ele precisa ser um inteiro não-negativo. Nesse caso, o valor retornado é o resultado de avaliar expr contra a linha offset linhas após a linha atual dentro da partição. Se offset é 0, então expr é avaliada contra a linha atual. Se não há linha offset linhas após a linha atual, NULL é retornado. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. (expr) Essa função de janela built-in calcula o frame da janela para cada linha na mesma forma que uma função de janela agregada. Ela retorna o valor de expr avaliada contra a primeira linha do frame da janela para cada linha. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. (expr) Essa função de janela built-in calcula o frame da janela para cada linha na mesma forma que uma função de janela agregada. Ela retorna o valor de expr avaliada contra a última linha do frame da janela para cada linha. - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. (expr) Essa função de janela built-in calcula o frame da janela para cada linha na mesma forma que uma função de janela agregada. Ela retorna o valor de expr avaliada contra a linha N do frame da janela para cada linha.Linhas são numeradas dentro do frame da janela começando em 1 na ordem definida pela cláusula ORDER BY se uma está presente, ou em ordem arbitrária, caso contrário. Se não há uma N-ésima linha na partição, NULL é retornado. - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. (X) A função load_extension(X) carrega extensões para SQLite a partir de um arquivo chamado X. Uso dessa função precisa ser autorizado em Preferências. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. (X,Y) A função load_extension(X) carrega extensões para SQLite a partir de um arquivo chamado X usando o ponto de entrada Y. @@ -7360,47 +6445,42 @@ Uso dessa função precisa ser autorizado em Preferências. SqliteTableModel - + Error changing data: %1 Erro modificando dados: %1 - References %1(%2) -Hold Ctrl+Shift and click to jump there - Referencia %1(%2) -Pressione Ctrl+Shift e clique para ir até lá - - - + reading rows lendo linhas - + loading... carregando... - + References %1(%2) Hold %3Shift and click to jump there Referencia %1(%2) Segure %3Shift e clique para ir para lá - + retrieving list of columns obtendo lista de colunas - + Fetching data... Obtendo dados... - + + Cancel Cancelar @@ -7542,7 +6622,7 @@ Segure %3Shift e clique para ir para lá - + Replace Substituir @@ -7557,498 +6637,496 @@ Segure %3Shift e clique para ir para lá Substituir todos - + <html><head/><body><p>Scroll to the beginning</p></body></html> <html><head/><body><p>Rolar para o começo</p></body></html> - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> <html><head/><body><p>Clicar nesse botão navega até o começo da vista de tabela acima.</p></body></html> - + |< |< - + Scroll one page upwards Rolar uma página para cima - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> <html><head/><body><p>Clicando nesse botão navega uma página de registros para cima.</p></body></html> - + < < - + 0 - 0 of 0 0 - 0 de 0 - + Scroll one page downwards Rolar uma página para baixo - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> <html><head/><body><p>Clicando nesse botão navega uma página de registros para baixo.</p></body></html> - + > > - + Scroll to the end Rolar para o fim - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicar nesse botão navega até o fim da vista de tabela acima.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> <html><head/><body><p>Clicar nesse botão navega para o fim da tabela acima.</p></body></html> - + >| >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> <html><head/><body><p>Clique aqui para pular para o registro especificado</p></body></html> - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> <html><head/><body><p>Esse botão navega para o registro especificado na área Ir para.</p></body></html> - + Go to: Ir para: - + Enter record number to browse Entre o número do registro para navegar - + Type a record number in this area and click the Go to: button to display the record in the database view Digite o número de um registro nessa área e clique no botão Ir para: para exibir o registro na vista do banco de dados - + 1 1 - + Show rowid column Mostrar coluna rowid - + Toggle the visibility of the rowid column Alternar a visibilidade da coluna rowid - + Unlock view editing Liberar edição da vista - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. Isso libera a vista atual para edição. Todavia, você vai precisar dos gatilhos apropriados para editar. - + Edit display format Editar formato de exibição - + Edit the display format of the data in this column Editar o formato de exibição dos dados nessa coluna - - + + New Record Novo registro - - + + Insert a new record in the current table Inserir um novo registro na tabela atual - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> <html><head/><body><p>Esse botão cria um novo registro no banco de dados. Segure o botão do mouse para abrir um menu de opções diferentes:</p><ul><li><span style=" font-weight:600;">Novo Registro</span>: insere um novo registro com valores padrão no banco de dados.</li><li><span style=" font-weight:600;">Inserir Valores...</span>: abre um diálogo para novos valores antes de serem inseridos no banco de dados. Isso permite a entrada de valores de acordo com as restrições. Esse diálogo também é abaerto se a opção<span style=" font-weight:600;">Novo Registro</span> falha devido a essas restrições.</li></ul></body></html> - - + + Delete Record Deletar registro - + Delete the current record Deletar o registro atual - - + + This button deletes the record or records currently selected in the table Esse botão deleta o registro ou registros selecionados - - + + Insert new record using default values in browsed table Inserir novo registro usando valores padrão na tabela - + Insert Values... Inserir valores... - - + + Open a dialog for inserting values in a new record Abre um diálogo para inserir valores em um novo registro - + Export to &CSV Exportar para &CSV - - + + Export the filtered data to CSV Exportar dados filtrados para CSV - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. Esse botão exporta os dados da tabela como atualmente exibidos como um arquivo CSV. - + Save as &view Salvar como &vista - - + + Save the current filter, sort column and display formats as a view Salva o filtro, ordenação e formato como uma vista - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. Esse botão salva as configurações da tabela exibida como uma vista SQL que você pode utilizar em comandos SQL depois. - + Save Table As... Salvar tabela como... - - + + Save the table as currently displayed Salva a tabela como atualmente exibida - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> <html><head/><body><p>Esse Menu provê as seguintes opções para a tabela atual:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Exportar para CSV: essa opção exporta os dados como estão exibidos para um arquivo CSV.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Salvar como vista: essa opção salva a configuração atual da tabela como uma vista SQL que você depois pode consultar em comandos SQL.</li></ul></body></html> - + Hide column(s) Ocultar coluna(s) - + Hide selected column(s) Ocultar coluna(s) selecionada(s) - + Show all columns Mostrar todas as colunas - + Show all columns that were hidden Mostrar todas as colunas ocultas - - + + Set encoding Definir codificação - + Change the encoding of the text in the table cells Modificar a codificação do texto nas células da tabela - + Set encoding for all tables Modificar codificação para todas as tabelas - + Change the default encoding assumed for all tables in the database Modificar a codificação padrão assumida para todas as tabelas no banco de dados - + Clear Filters Limpar filtros - + Clear all filters Limpar todos os filtros - - + + This button clears all the filters set in the header input fields for the currently browsed table. Esse botão limpa todos os filtros definidos no cabeçalho para a tabela atualmente navegada. - + Clear Sorting Limpar ordenamento - + Reset the order of rows to the default Resetar a ordem das linhas para o padrão - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. Esse botão limpa o ordenamento especificado para a tabela atual e volta para a ordem padrão. - + Print Imprimir - + Print currently browsed table data Imprimir dados da tabela atual - + Print currently browsed table data. Print selection if more than one cell is selected. Imprimir dados da tabela atual. Imprime a seleção se mais de uma célula está selecionada. - + Ctrl+P - + Refresh Atualizar - + Refresh the data in the selected table Atualizar os dados na tabela selecionada - + This button refreshes the data in the currently selected table. Este botão atualiza os dados na tabela atualmente selecionada. - + F5 - + Find in cells Encontrar em células - + Open the find tool bar which allows you to search for values in the table view below. Abre a barra de ferramentas para buscar que permite que você busque por valores na vista da tabela abaixo. - Ctrl+F - + + Freeze columns + - - + + Make all columns from the first column up to this column not move when scrolling horizontally + + + + + Bold Negrito - + Ctrl+B - - + + Italic Itálico - - + + Underline Sublinhado - + Ctrl+U - - + + Align Right Alinhar à direita - - + + Align Left Alinhar à esquerda - - + + Center Horizontally Centralizar horizontalmente - - + + Justify Justificar - - + + Edit Conditional Formats... Editar formatos condicionais... - + Edit conditional formats for the current column Editar os formatos condicionais para a coluna atual - + Clear Format Limpar formato - + Clear All Formats Limpar todos os formatos - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns Limpa toda a formatação das células selecionadas e todos os formatos condicionais das colunas selecionadas - - + + Font Color Cor do texto - - + + Background Color Cor do plano de fundo - + Toggle Format Toolbar Alterar barra de ferramentas de formatação - + Show/hide format toolbar Mostrar/esconder barra de ferramentas de formatação - - + + This button shows or hides the formatting toolbar of the Data Browser Esse botão mostra ou esconde a barra de ferramentas de formatação do navegador de dados - + Select column Selecionar coluna - + Ctrl+Space - + Replace text in cells Substituir texto em células - - Ctrl+H - - - Filter in all columns - Filtrar em todas as colunas + Filter in any column + - + Ctrl+R - + %n row(s) %n linha(s) @@ -8056,7 +7134,7 @@ Segure %3Shift e clique para ir para lá - + , %n column(s) , %n coluna(s) @@ -8064,119 +7142,134 @@ Segure %3Shift e clique para ir para lá - + . Sum: %1; Average: %2; Min: %3; Max: %4 . Soma: %1; Média: %2; Mínimo: %3; Máximo: %4 - + Conditional formats for "%1" Formatos condicionais para "%1" - + determining row count... determinando número de linhas... - + %1 - %2 of >= %3 %1 - %2 de >= %3 - + %1 - %2 of %3 %1 - %2 de %3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Por favor, entre uma pseudo-chave primária para habilitar edição nessa vista. Isso deveria ser o nome de uma coluna única na vista. - + Delete Records Deletar registros - + Duplicate records Duplicar registros - + Duplicate record Duplicar registro - + Ctrl+" - + Adjust rows to contents Ajustar linhas aos conteúdos - + Error deleting record: %1 Erro deletando registro: %1 - + Please select a record first Por favor, selecione um registro primeiro - + There is no filter set for this table. View will not be created. Não há filtro para essa tabela. Vista não será criada. - + Please choose a new encoding for all tables. Por favor, escolha uma nova codificação para todas tabelas. - + Please choose a new encoding for this table. Por favor, escolha uma nova codificação para essa tabela. - + %1 Leave the field empty for using the database encoding. %1 Deixe o campo em branco para usar a codificação do banco de dados. - + This encoding is either not valid or not supported. Essa codificação é inválida ou não suportada. - + %1 replacement(s) made. %1 substituição(ões) feita(s). - VacuumDialog + TableBrowserDock - - Compact Database - Compactar banco de dados + + New Data Browser + + + + + Rename Data Browser + - Warning: Compacting the database will commit all changes you made. - Alerta: compactar o banco de dados confirmará todas as alterações feitas. + + Close Data Browser + - Please select the objects to compact: - Por favor, selecione os objetos que deseja compactar: + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + + + VacuumDialog + + + Compact Database + Compactar banco de dados diff --git a/src/translations/sqlb_ru.ts b/src/translations/sqlb_ru.ts index de77a8657..bdc2279cc 100644 --- a/src/translations/sqlb_ru.ts +++ b/src/translations/sqlb_ru.ts @@ -18,43 +18,6 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> <html><head/><body><p>Обозреватель для SQLite - это бесплатная программа, с открытым исходным кодом, предназначенная для создания и редактирования баз данных SQLite.</p><p>Программа лицензирована по двум лицензиям: Mozilla Public License Version 2 и GNU General Public License Version 3 or later. Можно изменять или распространять её на условиях этих лицензий.</p><p>Лицензии можно просмотреть по ссылкам <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> и <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a>.</p><p>Дополнительную информацию о программе можно узнать на веб-сайте:<br/><a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">Это программное обеспечение использует GPL/LGPL Qt Toolkit </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Условия лицензии на Qt Toolkit </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;">.</span></p><p><span style=" font-size:small;">Эта программа также использует набор иконок Silk от Марка Джеймса (Mark James), лицензированный под лицензией Creative Commons Attribution 2.5 and 3.0.<br/>Подробная информация по адресу </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;">.</span></p></body></html> - - <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> for details.</p><p>For more information on this program please visit our website at: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - <html><head/><body><p>Обозреватель для SQLite - это бесплатная программа, с открытым исходным кодом, предназначенная для создания и редактирования баз данных SQLite.</p><p>Программа лицензирована по двум лицензиям: Mozilla Public License Version 2 и GNU General Public License Version 3 or later. Можно изменять или распространять её на условиях этих лицензий.</p><p>Лицензии можно просмотреть по ссылкам <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> и <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a>.</p><p>Дополнительную информацию о программе можно узнать на веб-сайте:<br/><a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">Это программное обеспечение использует GPL/LGPL Qt Toolkit </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Условия лицензии на Qt Toolkit </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;">.</span></p><p><span style=" font-size:small;">Эта программа также использует набор иконок Silk от Марка Джеймса (Mark James), лицензированный под лицензией Creative Commons Attribution 2.5 and 3.0.<br/>Подробная информация по адресу </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;">.</span></p></body></html> - - - (based on SQLite %1) - (базируется на SQLite %1) - - - - SQLCipher Version %1 (based on SQLite %2) - - - - - Version - Версия - - - - Built for %1, running on %2 - - - - - Qt Version - Версия Qt - - - SQLCipher Version - Версия SQLCipher - - - - SQLite Version - Версия SQLite - AddRecordDialog @@ -156,91 +119,151 @@ Application - - Usage: %1 [options] [db] - + + Possible command line arguments: - - Possible command line arguments: - + + The user settings file location is replaced with the argument value instead of the environment variable value. + - - -h, --help Show command line options - + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + - - -s, --sql [file] Execute this SQL file after opening the DB - + + Usage: %1 [options] [<database>|<project>] + + - - -t, --table [table] Browse this table after opening the DB - + + -h, --help Show command line options + - - This is DB Browser for SQLite version %1. - + + -q, --quit Exit application after running scripts + - - -q, --quit Exit application after running scripts - + + -s, --sql <file> Execute this SQL file after opening the DB + - - -R, --read-only Open database in read-only mode - + + -t, --table <table> Browse this table after opening the DB + - - -o, --option [group/setting=value] Run application with this setting temporarily set to value + + -R, --read-only Open database in read-only mode - - -O, --save-option [group/setting=value] Run application saving this value for this setting + + -S, --settings <settings_file> - - -v, --version Display the current version - + + Run application based on this settings file + - - [file] Open this SQLite database - + + -o, --option <group>/<setting>=<value> + + + + + Run application with this setting temporarily set to value + + + + + -O, --save-option <group>/<setting>=<value> + + + + + Run application saving this value for this setting + + + + + -v, --version Display the current version + - + + <database> Open this SQLite database + + + + + <project> Open this project file (*.sqbpro) + + + + The -s/--sql option requires an argument - + The file %1 does not exist - + The -t/--table option requires an argument - + + The -S/--settings option requires an argument. The option is ignored. + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value - + Invalid option/non-existant file: %1 + + + SQLite Version + Версия SQLite + + + + SQLCipher Version %1 (based on SQLite %2) + + + + + DB Browser for SQLite Version %1. + + + + + Built for %1, running on %2 + + + + + Qt Version %1 + + CipherDialog @@ -314,10 +337,6 @@ Raw key Ключ - - Page &size - Размер &страницы - Please set a key to encrypt the database. @@ -391,38 +410,48 @@ If any of the other settings were altered for this database file you need to pro + .NET DateTime.Ticks to date + + + + Julian day to date Юлианская дата - + Unix epoch to local time Unix-время - + Date as dd/mm/yyyy Дата в формате дд/мм/гггг - + Lower case Нижний регистр - + + Binary GUID to text + + + + Custom display format must contain a function call applied to %1 - + Error in custom display format. Message from database engine: %1 - + Custom display format must return only one column but it returned %1. @@ -437,22 +466,22 @@ If any of the other settings were altered for this database file you need to pro Округленное число - + Unix epoch to date Unix-дата - + Upper case Верхний регистр - + Windows DATE to date Windows дата - + Custom Мой формат @@ -464,14 +493,6 @@ If any of the other settings were altered for this database file you need to pro Conditional Format Manager - - &Up - &Выше - - - &Down - &Ниже - This dialog allows creating and editing conditional formats. Each cell style will be selected by the first accomplished condition for that cell data. Conditional formats can be moved up and down, where those at higher rows take precedence over those at lower. Syntax for conditions is the same as for filters and an empty condition applies to all values. @@ -587,201 +608,165 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - + Please specify the database name under which you want to access the attached database - + Invalid file format Ошибочный формат файла - + Do you want to save the changes made to the database file %1? Сохранить сделанные изменения в файле базы данных %1? - + Exporting database to SQL file... Экспорт базы данных в файл SQL... - - + + Cancel Отменить - + Executing SQL... Выполнить код SQL... - + Action cancelled. Действие отменено. - Error in statement #%1: %2. -Aborting execution. - Ошибка в операторе #%1: %2. Прерывание выполнения. - - - renameColumn: cannot find table %1. - переименованиеСтолбца: невозможно найти таблицу %1. - - - - This database has already been attached. Its schema name is '%1'. - Эта БД уже присоединена. Имя ее схемы - '%1'. - - - + Do you really want to close this temporary database? All data will be lost. Вы действительно хотите закрыть эту временную БД? Все данные будут потеряны. - + Database didn't close correctly, probably still busy - + The database is currently busy: БД занята: - + Do you want to abort that other operation? Вы хотите отменить эту операцию? - - + + No database file opened Файл БД не открыт - - + + Error in statement #%1: %2. Aborting execution%3. Ошибка в выражении #%1: %2. Прерываем выполнение%3. - - + + and rolling back и отменяем - + didn't receive any output from %1 - + could not execute command: %1 - + Cannot delete this object Не удается удалить этот объект - + Cannot set data on this object Невозможно назначить данные для этого объекта - - + + A table with the name '%1' already exists in schema '%2'. Таблица с именем '%1' уже существует в схеме '%2'. - + No table with name '%1' exists in schema '%2'. - - + + Cannot find column %1. - + Creating savepoint failed. DB says: %1 - + Renaming the column failed. DB says: %1 - - + + Releasing savepoint failed. DB says: %1 - + Creating new table failed. DB says: %1 - + Copying data to new table failed. DB says: %1 - + Deleting old table failed. DB says: %1 - + Error renaming table '%1' to '%2'. Message from database engine: %3 - + could not get list of db objects: %1 - renameColumn: cannot find column %1. - переименованиеСтолбца: невозможно найти столбец %1. - - - renameColumn: creating savepoint failed. DB says: %1 - переименованиеСтолбца: ошибка создания точки сохранения. БД говорит: %1 - - - renameColumn: creating new table failed. DB says: %1 - переименованиеСтолбца: ошибка создания новой таблицы. БД говорит: %1 - - - renameColumn: copying data to new table failed. DB says: -%1 - переименованиеСтолбца: ошибка копирования данных в новую таблицу. БД говорит: -%1 - - - renameColumn: deleting old table failed. DB says: %1 - переименованиеСтолбца: ошибка удаления старой таблицы. БД говорит: %1 - - - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -790,61 +775,27 @@ Message from database engine: - renameColumn: releasing savepoint failed. DB says: %1 - переименованиеСтолбца: ошибока освобождения точки сохранения. БД говорит: %1 - - - Error renaming table '%1' to '%2'.Message from database engine: -%3 - Ошибка переименования программы '%1' в '%2'.Сообщение от движка БД: -%3 - - - ... <string can not be logged, contains binary data> ... - ... <строка не может быть залогирована, содержит двоичные данные> ... - - - + could not get list of databases: %1 не могу получить список БД: %1 - + Error loading extension: %1 Ошибка загрузки расширения: %1 - + could not get column information не могу полчить информацию о колонке - unknown object type %1 - неизвестный тип объекта %1 - - - could not get list of db objects: %1, %2 - невозможно получить список объекто БД: %1, %2 - - - could not get types - невозможно получить типы - - - didn't receive any output from pragma %1 - не принято ни одного выхода из прагмы %1 - - - could not execute pragma command: %1, %2 - невозможно выполнить комманду-прагму: %1, %2 - - - + Error setting pragma %1 to %2: %3 Ошибка установки прагмы %1 в %2: %3 - + File not found. Файл не найден. @@ -871,22 +822,18 @@ Message from database engine: Schema Схема - - Browsables (%1) - Просматриваемые (%1) - Database База данных - + Browsables Просматриваемые - + All Все @@ -896,22 +843,22 @@ Message from database engine: Временный - + Tables (%1) Таблицы (%1) - + Indices (%1) Индексы (%1) - + Views (%1) Представления (%1) - + Triggers (%1) Триггеры (%1) @@ -924,219 +871,191 @@ Message from database engine: Редактирование ячейки базы данных - + Mode: Режим: - - + + Image Изображение - Import text - Импортировать текст - - - Opens a file dialog used to import text to this database cell. - Открывается файловый диалог, чтобы импортировать текств эту ячейку базы данных. - - - &Import - &Импорт - - - Export text - Экспортировать текст - - - Opens a file dialog used to export the contents of this database cell to a text file. - Открывается файловый диалог, чтобы экспоритровать содержимое этой ячейки базы данных в текстовый файл. - - - &Export - &Экспорт - - - Set this cell to NULL - Присвоить данной ячейке NULL значение - - - + Set as &NULL Присвоить &NULL - + Apply data to cell Применить данные к ячейке - + This button saves the changes performed in the cell editor to the database cell. Нажав эту кнопку, вы сохраните изменения произведенные в этом редакторе, в соответствующую ячейку БД. - + Apply Применить - + Text Текст - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. Это список поддерживаемых режимов. Выбирете режим для просмотра или редактирования данных текущей ячейки. - + RTL Text - + Binary Двоичные данные - + JSON - + XML - - + + Automatically adjust the editor mode to the loaded data type Автоматически подбор режима редактора на основе данных - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. Эта кнопка позволяет включать или отключать автоматическое переключение режима редактора. Когда выбрана новая ячейка или импортированы новые данные, а автоматическое переключение включено, режим настраивается на обнаруженный тип данных. Вы можете вручную изменить режим редактора. Если вы хотите сохранить этот режим ручного переключения при перемещении по ячейкам, выключите кнопку. - + Auto-switch Автопереключение - + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. - + Open preview dialog for printing the data currently stored in the cell - + Auto-format: pretty print on loading, compact on saving. Автоматическое форматирование: стилистическое форматирование при загрузке, компактность - при сохранении. - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. Когда включено, функция автоматического форматирования форматирует данные по загрузке, разбивая текст в строках и отступы для максимальной читаемости. При сохранении данных функция автоматического форматирования объединяет данные, удаляющие конец строк, и ненужные пробелы. - + Word Wrap - + Wrap lines on word boundaries - - + + Open in default application or browser - + Open in application - + The value is interpreted as a file or URL and opened in the default application or web browser. - + Save file reference... - + Save reference to file - - + + Open in external application - + Autoformat Автоформатирование - + &Export... - - + + &Import... - - + + Import from file Импортировать из файла - - + + Opens a file dialog used to import any kind of data to this database cell. Открывает диалоговое окно файла, используемое для импорта любых данных в эту ячейку базы данных. - + Export to file Экспортировать в файл - + Opens a file dialog used to export the contents of this database cell to a file. Открывает диалоговое окно файла, используемое для экспорта содержимого этой ячейки базы данных в файл. - + Erases the contents of the cell Очищается содержимое ячейки @@ -1146,194 +1065,140 @@ Errors are indicated with a red squiggle underline. Эта область отображает информацию о данных, находящихся в этой ячейке базы данных - This editor mode lets you edit JSON or XML data with syntax highlighting, automatic formatting and validation before saving. - -Errors are indicated with a red squiggle underline. - Этот режим редактора позволяет редактировать данные JSON или XML с подсветкой синтаксиса, автоматическим форматированием и проверкой перед сохранением. - -Ошибки обозначаются красным подчеркиванием. - - - + Type of data currently in cell Тип данных в ячейке - + Size of data currently in table Размер данных в таблице - - + Print... Печать... - - Open preview dialog for printing displayed image - Открыть диалоговое окно предварительного просмотра для печати отображаемого изображения - - - - + Ctrl+P - + Open preview dialog for printing displayed text Открыть диалоговое окно предварительного просмотра для печати отображаемого текста - + Copy Hex and ASCII Копировать HEX и ASCII - + Copy selected hexadecimal and ASCII columns to the clipboard Копировать выбранные HEX и ASCII столбцы в буфер обмена - + Ctrl+Shift+C - Choose a file - Выбрать файл - - - Text files(*.txt);;Image files(%1);;All files(*) - Текстовые файлы(*.txt);;Файлы изображений(%1);;Все файлы(*) - - - + Choose a filename to export data Выбрать имя файла для экспорта данных - Text files(*.txt);;All files(*) - Текстовые файлы(*.txt);;Все файлы(*) - - - Image data can't be viewed with the text editor - Изображение не может быть отображено в текстовом редакторе - - - Binary data can't be viewed with the text editor - Бинарные данные не могут быть отображены в текстовом редакторе - - - + Type of data currently in cell: %1 Image Тип данных в ячейке: %1 Изображение - + %1x%2 pixel(s) %1x%2 пикселей - + Type of data currently in cell: NULL Тип данных в ячейке: NULL - - + + Type of data currently in cell: Text / Numeric Тип данных в ячейке: Текст / Числовое - - + + Image data can't be viewed in this mode. Изображение не может быть отображено в этом режиме. - - + + Try switching to Image or Binary mode. Попробуйте переключиться в Бинарный режим или режим Изображения. - - + + Binary data can't be viewed in this mode. Бинарные данные не могут быть отображены в этом режиме. - - + + Try switching to Binary mode. Попробуйте переключиться в Бинарный режим. - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. - - - - Text files (*.txt) - Текстовые файлы (*.txt) - - - JSON files (*.json) - JSON файлы (*.json) + + Couldn't save file: %1. + Не удалось сохранить файл:%1. - XML files (*.xml) - XML файлы (*.xml) + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + - - + + Image files (%1) Файлы изображений (%1) - + Binary files (*.bin) Бинарные файлы (*.bin) - All files (*) - Все файлы (*) - - - + Choose a file to import Выбрать файл для импорта - + %1 Image %1 Изображение - SVG files (*.svg) - SVG файлы (*.svg) - - - Hex dump files (*.txt) - Файлы дампов (*.txt) - - - + Invalid data for this mode Ошибочные данные для этого режима - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? Ячейка содержит ошибочные %1 данные. Причина: %2. Вы действительно хотите применить их? - - - + + + %n character(s) %n символ @@ -1342,18 +1207,18 @@ Errors are indicated with a red squiggle underline. - + Type of data currently in cell: Valid JSON Тип данных в ячейке: JSON - + Type of data currently in cell: Binary Тип данных в ячейке: Двоичные данные - - + + %n byte(s) %n байт @@ -1364,27 +1229,11 @@ Errors are indicated with a red squiggle underline. EditIndexDialog - - Create New Index - Создание нового индекса - &Name &Имя - - &Columns - &Столбцы - - - Column - Столбец - - - Use in Index - Использовать в индексе - Order @@ -1472,10 +1321,6 @@ Errors are indicated with a red squiggle underline. Advanced Дополнительно - - Database schema - Схема БД - Make this a 'WITHOUT rowid' table. Setting this flag requires a field of type INTEGER with the primary key flag set and the auto increment flag unset. @@ -1496,22 +1341,6 @@ Errors are indicated with a red squiggle underline. Fields Поля - - Add field - Добавить поле - - - Remove field - Удалить поле - - - Move field up - Переместить поле вверх - - - Move field down - Переместить поле вниз - Add @@ -1543,225 +1372,206 @@ Errors are indicated with a red squiggle underline. - - + + Name Имя - - + + Type Тип - + NN НП - + Not null Не пустое (null) - + PK ПК - - Primary key - Первичный ключ + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + - + AI АИ - + Autoincrement Автоинкремент - + U У - - - + + + Unique Уникальное - + Default По умолчанию - + Default value Значение по умолчанию - - - + + + Check Проверить - + Check constraint Проверить ограничение - + Collation - - - + + + Foreign Key Внешний ключ - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + Constraints - + Add constraint - + Remove constraint - + Columns Столбцы - + SQL - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Внимание: </span>В описании этой таблицы есть что-то, что наш парсер не понимает. Модификация и сохрание этой таблицы может породить проблемы.</p></body></html> - - + + Primary Key - + Add a primary key constraint - + Add a foreign key constraint - + Add a unique constraint - + Add a check constraint - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result it in problems.</p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Внимание: </span>Определение данной таблицы наш парсер не смог понять. Eё модификация и сохранение может привести к последующим проблемам.</p></body></html> - - - + Error creating table. Message from database engine: %1 Ошибка создания таблицы. Сообщение от движка базы данных: %1 - + There already is a field with that name. Please rename it first or choose a different name for this field. Поле с таким именем уже существует. Пожалуйста переименуйте его, либо выберите другое имя для данного поля. - This column is referenced in a foreign key in table %1, column %2 and thus its name cannot be changed. - На данную колонку ссылкается внешний ключ в таблице %1, поле %2 поэтому ее имя не может быть изменено. - - - - + + There can only be one primary key for each table. Please modify the existing primary key instead. - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. На данную колонку ссылкается внешний ключ в таблице %1, поэтому ее имя не может быть изменено. - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. Существует по крайней мере одна строка, где это поле установлено в NULL. Установить этот флаг нельзя. Сначала измените данные таблицы. - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. Существует по крайней мере одна строка, где это поле содержит нечисловое значение. Установить флаг АИ нельзя. Сначала измените данные таблицы. - + Column '%1' has duplicate data. - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. - Column '%1' has no unique data. - - Колонка '%1' не содержит уникальных данных. - - - - This makes it impossible to set this flag. Please change the table data first. - Невозможно. Для начала, измените данные таблицы. - - - Modifying this column failed. Error returned from database: -%1 - Модификация этой колонки завершилась с ошибкой: -%1 - - - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. Удалить поле '%1'? Все данные, которые в настоящий момент сохранены в этом поле, будут потеряны. - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled @@ -1769,18 +1579,6 @@ All data currently stored in this field will be lost. - является первичный ключом - для него отключен автоинкремент - - Setting the rowid column for the table failed. Error message: -%1 - Назначение rowid колонки завершилось с ошибкой: -%1 - - - Changing the table schema failed. Error message: -%1 - Изменение схемы таблицы завершилось с ошибкой: -%1 - ExportDataDialog @@ -1790,21 +1588,9 @@ All data currently stored in this field will be lost. Экспортировать данные в формате CSV - &Table(s) - &Таблицы - - - &Column names in first line - &Имена столбцов в первой строке - - - Field &separator - &Разделитель полей - - - - Tab&le(s) - &Таблицы + + Tab&le(s) + &Таблицы @@ -1890,10 +1676,6 @@ All data currently stored in this field will be lost. Choose a filename to export data Выберите имя файла для экспорта данных - - Text files(*.csv *.txt) - Текстовые файлы(*.csv *.txt) - Export data as JSON @@ -1909,10 +1691,6 @@ All data currently stored in this field will be lost. exporting JSON экспортирование JSON - - Text files(*.json *.js *.txt) - Текстовые файлы (*.json *.js *.txt) - Please select at least 1 table. @@ -1991,10 +1769,6 @@ All data currently stored in this field will be lost. Export schema only Экспортировать только схему данных - - Please select at least 1 table. - Пожалуйста, выберите хотя бы одну таблицу. - Please select at least one table. @@ -2005,10 +1779,6 @@ All data currently stored in this field will be lost. Choose a filename to export Выберите имя файла для экспорта - - Text files(*.sql *.txt) - Текстовые файлы(*.sql *.txt) - Export completed. @@ -2024,7 +1794,7 @@ All data currently stored in this field will be lost. ExtendedScintilla - + Ctrl+H @@ -2035,22 +1805,22 @@ All data currently stored in this field will be lost. - + Ctrl+P - + Find... - + Find and Replace... Найти и Заменить... - + Print... Печать... @@ -2058,141 +1828,133 @@ All data currently stored in this field will be lost. ExtendedTableWidget - The content of clipboard is bigger than the range selected. -Do you want to insert it anyway? - Содержимое буфера обмена больше чем выбранный диапазон. -Все равно вставить? - - - + Use as Exact Filter Использовать как Точный Фильтр - + Containing Содержит - + Not containing - + Not equal to Не равно - + Greater than Больше чем - + Less than Меньше чем - + Greater or equal Больше или равно - + Less or equal Меньше или равно - + Between this and... Между этим и... - + Regular expression - + Edit Conditional Formats... - + Set to NULL Сбросить в NULL - + + Cut + + + + Copy Копировать - + Copy with Headers Копировать с заголовками - + Copy as SQL Копировать как SQL - + Paste Вставить - + Print... Печать... - + Use in Filter Expression Использовать в Выражении Фильтра - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? Содержимое буфера обмена больше чем выделенный диапозон. Все равно вставить? - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. - - FileDialog - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - Файлы SQLite баз данных (*.db *.sqlite *.sqlite3 *.db3);;Все файлы (*) - - FileExtensionManager @@ -2244,30 +2006,6 @@ Do you want to insert it anyway? Filter Фильтр - - These input fields allow you to perform quick filters in the currently selected table. -By default, the rows containing the input text are filtered out. -The following operators are also supported: -% Wildcard -> Greater than -< Less than ->= Equal to or greater -<= Equal to or less -= Equal to: exact match -<> Unequal: exact inverse match -x~y Range: values between x and y - Эти поля ввода позволяют назначить фильтры для текущей таблице. -По умолчанию строки, содержащие входной текст, отфильтровываются. -Поддерживаются также следующие операторы: -% Символ подстановки -> Больше, чем -< Меньше, чем ->= Равно или больше -<= Равно или меньше -= Равно: точное совпадение -<> Неравномерно: точное обратное совпадение -x~y Диапазон: значения между x и y - These input fields allow you to perform quick filters in the currently selected table. @@ -2526,6 +2264,39 @@ x~y Range: values between x and y Условия (ON UPDATE, ON DELETE и т.д.) + + ImageViewer + + + Image Viewer + + + + + Reset the scaling to match the original size of the image. + + + + + Set the scaling to match the size of the viewport. + + + + + Print... + Печать... + + + + Open preview dialog for printing displayed image + Открыть диалоговое окно предварительного просмотра для печати отображаемого изображения + + + + Ctrl+P + + + ImportCsvDialog @@ -2533,10 +2304,6 @@ x~y Range: values between x and y Import CSV file Импортировать файл в формате CSV - - &Table name - &Имя таблицы - Table na&me @@ -2564,7 +2331,7 @@ x~y Range: values between x and y - + Tab Табуляция @@ -2711,26 +2478,6 @@ x~y Range: values between x and y Select All Выбрать Все - - Inserting data... - Вставка данных... - - - Cancel - Отменить - - - There is already a table of that name and an import into an existing table is only possible if the number of columns match. - Уже существует таблица с таким же именем, и импорт в существующую таблицу возможен, только если число столбцов совпадает. - - - There is already a table of that name. Do you want to import the data into it? - Уже существует таблица с таким именем. Импортировать данные в неё? - - - Import completed - Импорт завершён - There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. @@ -2757,16 +2504,17 @@ x~y Range: values between x and y импортирование CSV - - Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. - Импорт файла '%1' занял %2мс. Из них %3мс было потрачено в функции строки. + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + - Missing field for record %1 - Пропущен столбец для записи %1 + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. + Импорт файла '%1' занял %2мс. Из них %3мс было потрачено в функции строки. - + Inserting row failed: %1 Ошибка вставки строки: %1 @@ -2779,121 +2527,42 @@ x~y Range: values between x and y Обозреватель для SQLite - + toolBar1 панельИнструментов1 - Table: - Таблица: - - - Select a table to browse data - Выберите таблицу для просмотра данных - - - Use this list to select a table to be displayed in the database view - Используйте этот список, чтобы выбрать таблицу, которая должна быть отображена в представлении базы данных - - - Refresh the data in the selected table. - Обновить данные в выбранной таблице. - - - This button refreshes the data in the currently selected table. - Эта кнопка обновляет данные выбранной в данный момент таблицы. - - - This button clears all the filters set in the header input fields for the currently browsed table. - Эта кнопка очищает все фильтры, установленные в полях ввода заголовка для текущей просматриваемой таблицы. - - - Save the table as currently displayed - Сохранить таблицу так как сейчас отображается - - - <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - <html><head/><body><p>Это всплывающее меню предоставляет следующие параметры, применяемые к текущей просматриваемой и отфильтрованной таблице:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Экспортировать ввиде CSV: данные просматриваемой таблицы сохраняется так как отображается (после применения фильтров, форматов отображения и порядка колонок) в CSV файл.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Сохранить как вид: эта опция сохраняет настройки текущей отображаемой таблицы (фильтры, форматы отображения и порядок колонок) как SQL вид, который вы позже можете просматривать или использовать в SQL выражениях.</li></ul></body></html> - - - ... - ... - - - Print currently browsed table data - Печатать отображаемую таблицу - - - Print currently browsed table data. Print selection if more than one cell is selected. - Распечатывайте текущие данные таблицы. Выбор печати, если выбрано несколько ячеек. - - - <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - <html><head/><body><p>Эта кнопка создает новую запись в базе данных. Удерживайте кнопку мыши, чтобы открыть всплывающее меню различных параметров:</p><ul><li><span style=" font-weight:600;">Новая Запись</span>: вставляет новую запись со значениями по умолчанию.</li><li><span style=" font-weight:600;">Вставить Значения...</span>: открывает диалог для ввода значений перед тем, как они будут вставленны в БД. Это позволяет вводить значения, назначая различные ограничения. Этот диалог также открывается, если <span style=" font-weight:600;">Новая Запись</span> опция не срабатывает из-за этих ограничений.</li></ul></body></html> - - - This button deletes the record or records currently selected in the table - Эта кнопка удаляет запись или записи, выбранные в настоящее время в таблице - - - This is the database table view. You can do the following actions: - - Start writing for editing inline the value. - - Double-click any record to edit its contents in the cell editor window. - - Alt+Del for deleting the cell content to NULL. - - Ctrl+" for duplicating the current record. - - Ctrl+' for copying the value from the cell above. - - Standard selection and copy/paste operations. - Это представление таблицы БД. Вы можете выполнить следующие действия: - - Начните писать для редактирования, введя значение. - - Дважды щелкните любую запись, чтобы отредактировать ее содержимое в окне редактора ячеек. - - Alt + Del для обнуления содержимого ячейки в NULL. - - Ctrl + " для дублирования текущей записи. - - Ctrl + ' для копирования значения из ячейки выше. - - Стандартные операции выбора и копирования/вставки. - - - Scroll one page upwards - Страница вверх - - - <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - <html><head/><body><p>Нажатие этой кнопки перемещает одну страницу записей вверх в виде таблицы выше.</p></body></html> - - - Scroll one page downwards - Страница вниз - - - <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - <html><head/><body><p>Нажатие этой кнопки перемещает одну страницу записей вниз в виде таблицы выше.</p></body></html> - - - + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. Предупреждение: эта прагма не читается, и это значение было выведено. Применение прагмы может перезаписать переопределенный LIKE, предоставляемый расширением SQLite. - + + Recent Files + + + + &Tools &Инструменты - + Error Log - + This button clears the contents of the SQL logs Эта кнопка очищает содержимое журналов SQL - + This panel lets you examine a log of all SQL commands issued by the application or by yourself Эта панель позволяет вам просматривать журнал всех SQL-команд, выданных приложением или вами - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. @@ -2904,1212 +2573,767 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - - + + Project Toolbar Панель Инструментов Проекта - + Extra DB toolbar Дополнительная Панель Инструментов БД - - - + + + Close the current database file Закрыть файл текущей БД - + Ctrl+F4 - + &About О &программе - + + New &tab + + + + This button opens a new tab for the SQL editor Эта кнопка открывает новую вкладку для редактора SQL - + Execute all/selected SQL Выполнить все/выбранный SQL - + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. Эта кнопка выполняет текущие выбранные операторы SQL. Если в текстовом редакторе ничего не выбрано , все инструкции SQL выполняются. - - This button opens a file containing SQL statements and loads it in a new editor tab - Эта кнопка открывает файл, содержащий инструкции SQL, и загружает его в новой вкладке редактора - - - + &Load Extension... &Загрузить расширение... - + Execute line - + This button executes the SQL statement present in the current editor line Эта кнопка выполняет оператор SQL, присутствующий в текущей строке редактора - + &Wiki &Вики - + F1 - + Bug &Report... Баг &репорт... - + Feature Re&quest... Запросить &функцию... - + Web&site &Веб-сайт - + &Donate on Patreon... Сделать &пожертвование в Patreon... - Sa&ve Project... - &Сохранить проект... - - - This button lets you save all the settings associated to the open DB to a DB4S project file - Эта кнопка позволяет сохранить все настройки, связанные с открытой БД, в файл проекта DB4S - - - + Open &Project... Открыть &проект... - This button lets you open a DB4S project file - Эта кнопка позволяет открыть файл проекта DB4S - - - + &Attach Database... &Прикрепить БД... - - + + Add another database file to the current database connection Добавить другой файл БД в текущее соединение - + This button lets you add another database file to the current database connection Эта кнопка позволяет добавить другой файл БД в текущее соединение с БД - + &Set Encryption... Назначитть &шифрование... - + This button saves the content of the current SQL editor tab to a file Эта кнопка сохраняет содержимое текущей вкладки редактора SQL в файл - + SQLCipher &FAQ - + Table(&s) to JSON... Таблицы в файл &JSON... - Refresh - Обновить - - - F5 - - - - + Open Data&base Read Only... Открыть БД &только для чтения... - + Ctrl+Shift+O - + Save results Сохранить результаты - + Save the results view Сохранить результаты - + This button lets you save the results of the last executed query Эта кнопка позволяет сохранить результаты последнего выполненного запроса - - + + Find text in SQL editor Найти текст в редакторе SQL - + Find - + This button opens the search bar of the editor Эта кнопка открывает панель поиска редактора - + Ctrl+F - - + + Find or replace text in SQL editor Найти или заменить текст в редакторе SQL - + Find or replace - + This button opens the find/replace dialog for the current editor tab Эта кнопка открывает диалог поиска/замены для текущей вкладки редактора - + Ctrl+H - + Export to &CSV Экспортировать в &CSV - + Save as &view Сохранить как &представление - + Save as view Сохранить как представление - Hide column(s) - Скрыть колонки - - - Hide selected column(s) - Скрыть выбранные колонки - - - Show all columns - Показать все колонки - - - Show all columns that were hidden - Показать все колонки, которые были скрыты - - - + Shows or hides the Project toolbar. Показывает или скрывает панель инструментов Проекта. - + Extra DB Toolbar Дополнительная Панель Инструментов БД - Export the filtered data to CSV - Экспортировать отфильтрованные данные в CSV - - - This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - Эта кнопка экспортирует данные просматриваемой таблицы так как отображается (после обработки фильтрами, форматами отображения и т.д.) в виде файла CSV. - - - Save the current filter, sort column and display formats as a view - Сохранить текущие фильтры, столбецы сортировки и форматы отображания в виде представления - - - This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - Эта кнопка сохраняет текущие настройки просматриваемой таблицы (фильтры, форматы отображения и столбец сортировки) в виде представления SQL, которое вы можете впоследствии просмотреть или использовать в операторах SQL. - - - Insert Values... - Вставить Значения... - - - Open a dialog for inserting values in a new record - Открывает диалоговое окно для вставки значений в новую запись + + Open SQL file(s) + - Insert new record using default values in browsed table - Вставляет новую запись, используя значения по умолчанию в просматриваемой таблице + + This button opens files containing SQL statements and loads them in new editor tabs + - + This button lets you open a DB Browser for SQLite project file - + New In-&Memory Database Новая БД в &Памяти - + Drag && Drop Qualified Names Квалифицированные имена при перетакскивании - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor Квалифицированные имена (например, "Table"."Field") при перетаскивании объектов в редактор - + Drag && Drop Enquoted Names Экранированные имена при перетаскивании - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor Экранировать имена идентификаторов (например, "Table1"), когда перетаскиваются объекты в редактор - + &Integrity Check Проверка &Целостности - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. Выполняет прагму integrity_check для открытой БД и возвращает результаты во вкладке "SQL". Эта прагма выполняет проверку целостности всей базы данных. - + &Foreign-Key Check Проверка &Внешних ключей - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab Запускает прагму foreign_key_check для открытой БД и возвращает результаты во вкладке "SQL" - + &Quick Integrity Check &Быстрая Проверка Целостности - + Run a quick integrity check over the open DB Запуск быстрой проверки целостности для открытый БД - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. Запускает прагму quick_check для открытой БД и возвращает результаты во вкладке "SQL". Эта команда выполняет большую часть проверки PRAGMA integrity_check, но работает намного быстрее. - + &Optimize &Оптимизация - + Attempt to optimize the database Попытка оптимизации БД - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. Выполняет прагму optimize для открытой БД. Эта прагма может выполнять оптимизацию, которая улучшит производительность будущих запросов. - - + + Print Печать - + Print text from current SQL editor tab Печать текста изтекущей вкладки редактора SQL - + Open a dialog for printing the text in the current SQL editor tab Открывает диалоговое окно для печати текста из текущей вкладки редактора SQL - + Print the structure of the opened database Печать структуры открытой БД - + Open a dialog for printing the structure of the opened database Открывает диалоговое окно для печати структуры текущей БД - + Un/comment block of SQL code - + Un/comment block - + Comment or uncomment current line or selected block of code - + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. - + Ctrl+/ - + Stop SQL execution - + Stop execution - + Stop the currently running SQL script - + Browse Table - Insert a new record in the current table - Добавить новую запись в текущую таблицу + + Close Pro&ject + - - &Save Project As... + + Close project and database files and return to the initial state - - - - Save the project in a file selected in a dialog + + Ctrl+Shift+F4 - - Save A&ll + + + Detach Database - - - - Save DB file, project file and opened SQL files + + + Detach database file attached to the current database connection - - Ctrl+Shift+S - + + &Save Project As... + - &Table: - &Таблица: - - - This button creates a new, empty record in the database - Эта кнопка создаёт новую, пустую запись в таблице - - - New Record - Добавить запись - - - Delete the current record - Удалить текущую запись - - - This button deletes the record currently selected in the database - Эта кнопка удаляет выбранную запись - - - Delete Record - Удалить запись - - - This is the database view. You can double-click any record to edit its contents in the cell editor window. - Это представление базы данных. Сделайте двойной щелчок по любой записи, чтобы отредактировать её содержимое. - - - <html><head/><body><p>Scroll to the beginning</p></body></html> - <html><head/><body><p>Прокрутить к началу</p></body></html> - - - <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - <html><head/><body><p>Нажатие этой кнопки переводит к началу в таблице выше.</p></body></html> - - - Scroll 100 records upwards - Прокрутить на 100 записей вверх - - - <html><head/><body><p>Clicking this button navigates 100 records upwards in the table view above.</p></body></html> - <html><head/><body><p>Нажатие этой кнопки к перемещению на 100 записей вверх в табличном представлении выше</p></body></html> - - - < - < - - - 0 - 0 of 0 - 0 - 0 из 0 - - - <html><head/><body><p>Scroll 100 records downwards</p></body></html> - <html><head/><body><p>Прокрутить на 100 записей вниз</p></body></html> - - - <html><head/><body><p>Clicking this button navigates 100 records downwards in the table view above.</p></body></html> - <html><head/><body><p>Нажатие этой кнопки к перемещению на 100 записей вниз в табличном представлении выше</p></body></html> - - - > - > - - - Scroll to the end - Прокрутить к концу - - - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Нажатие этой кнопки перемещает в конец таблицы выше.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - <html><head/><body><p>Click here to jump to the specified record</p></body></html> - <html><head/><body><p>Нажмите здесь, чтобы перейти к указанной записи</p></body></html> - - - <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - <html><head/><body><p>Эта кнопка используется, чтобы переместиться к записи, номер которой указан в области Перейти к</p></body></html> - - - Go to: - Перейти к: - - - Enter record number to browse - Введите номер записи для просмотра - - - Type a record number in this area and click the Go to: button to display the record in the database view - Напечатайте номер записи в этой области и нажмите кнопку Перейти к:, чтобы отобразить запись в представлении базы данных - - - 1 - 1 - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> - - - None - Нет - - - Full - Полный, целый - Full - - - Incremental - Incremental - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Foreign Keys</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Foreign Keys</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> - - - Delete - Delete - - - Truncate - Truncate - - - Persist - Persist - - - Memory - Memory - - - WAL - WAL - - - Off - Off - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Locking Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Locking Mode</span></a></p></body></html> - - - Normal - Normal - - - Exclusive - Exclusive - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> - - - Default - Default + + + + Save the project in a file selected in a dialog + - File - File + + Save A&ll + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> + + + + Save DB file, project file and opened SQL files + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL Auto Checkpoint</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL Auto Checkpoint</span></a></p></body></html> + + Ctrl+Shift+S + - + &File &Файл - + &Import &Импорт - + &Export &Экспорт - Remote - Удаленный сервер - - - + &Edit &Редактирование - + &View &Вид - + &Help &Справка - + DB Toolbar Панель инструментов БД - + Edit Database &Cell Редактирование &ячейки БД - + DB Sche&ma Схе&ма БД - + &Remote &Удаленный сервер - &Load extension - Загрузить &расширение - - - - + + Execute current line Выполнить текущую строку - + Shift+F5 - + Sa&ve Project &Сохранить проект - Open &Project - Открыть &проект - - - Edit display format - Формат отображения - - - Edit the display format of the data in this column - Редактирование формата отображения для данных из этой колонки - - - Show rowid column - Отображать колонку rowid - - - Set encoding - Кодировка - - - Change the encoding of the text in the table cells - Изменение кодировки текста в данной таблице - - - Set encoding for all tables - Установить кодировку для всех таблиц - - - Change the default encoding assumed for all tables in the database - Изменить кодировку по умолчанию для всех таблиц в базе данных - - - + Open an existing database file in read only mode Открыть существующий файл базы данных в режиме только для чтения - Unlock view editing - Разблокировать возможность редактирования - - - This unlocks the current view for editing. However, you will need appropriate triggers for editing. - Разблокировать текущий вид для редактирования. Однако для редактирования вам понадобятся соответствующие триггеры. - - - Duplicate record - Дубликат записи - - - + Opens the SQLCipher FAQ in a browser window Открыть SQLCiphier FAQ в браузере - Table(s) to JSON... - Таблицы в файл JSON... - - - + Export one or more table(s) to a JSON file Экспортировать таблицы в JSON файл - Open from Remote - Загрузить из облака - - - Save to Remote - Сохранить в облако - - - &Attach Database - &Прикрепить базу данных - - - - + + Save SQL file as Сохранить файл SQL как - + &Browse Table Пр&осмотр данных - Clear all filters - Очистить все фильтры - - - + User Пользователем - + Application Приложением - + &Clear О&чистить - Columns - Столбцы - - - X - X - - - Y - Y - - - _ - _ - - - Line type: - Линия: - - - Line - Обычная - - - StepLeft - Ступенчатая, слева - - - StepRight - Ступенчатая, справа - - - StepCenter - Ступенчатая, по центру - - - Impulse - Импульс - - - Point shape: - Отрисовка точек: - - - Cross - Крест - - - Plus - Плюс - - - Circle - Круг - - - Disc - Диск - - - Square - Квадрат - - - Diamond - Ромб - - - Star - Звезда - - - Triangle - Треугольник - - - TriangleInverted - Треугольник перевернутый - - - CrossSquare - Крест в квадрате - - - PlusSquare - Плюс в квадрате - - - CrossCircle - Крест в круге - - - PlusCircle - Плюс в круге - - - Peace - Мир - - - <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - <html><head/><body><p>Сохранить текущий график...</p><p>Формат файла выбирается расширением (png, jpg, pdf, bmp)</p></body></html> - - - Save current plot... - Сохранить текущий график... - - - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - Загружать все данные. Имеет эффект лишь если не все данные подгружены. - - - DB Schema - Схема БД - - - + &New Database... &Новая база данных... - - + + Create a new database file Создать новый файл базы данных - + This option is used to create a new database file. Эта опция используется, чтобы создать новый файл базы данных. - + Ctrl+N - - + + &Open Database... &Открыть базу данных... - - - - - + + + + + Open an existing database file Открыть существующий файл базы данных - - - + + + This option is used to open an existing database file. Эта опция используется, чтобы открыть существующий файл базы данных. - + Ctrl+O - + &Close Database &Закрыть базу данных - + This button closes the connection to the currently open database file Эта кнопка закрывает соединение с текущим файлом БД - - + + Ctrl+W - - + + Revert database to last saved state Вернуть базу данных в последнее сохранённое состояние - + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. Эта опция используется, чтобы вернуть текущий файл базы данных в его последнее сохранённое состояние. Все изменения, сделаные с последней операции сохранения теряются. - - + + Write changes to the database file Записать изменения в файл базы данных - + This option is used to save changes to the database file. Эта опция используется, чтобы сохранить изменения в файле базы данных. - + Ctrl+S - + Compact &Database... &Уплотнить базу данных... - + Compact the database file, removing space wasted by deleted records Уплотнить базу данных, удаляя пространство, занимаемое удалёнными записями - - + + Compact the database file, removing space wasted by deleted records. Уплотнить базу данных, удаляя пространство, занимаемое удалёнными записями. - + E&xit &Выход - + Ctrl+Q - + Import data from an .sql dump text file into a new or existing database. Импортировать данные из текстового файла sql в новую или существующую базу данных. - + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. Эта опция позволяет импортировать данные из текстового файла sql в новую или существующую базу данных. Файл SQL может быть создан на большинстве движков баз данных, включая MySQL и PostgreSQL. - + Open a wizard that lets you import data from a comma separated text file into a database table. Открыть мастер, который позволяет импортировать данные из файла CSV в таблицу базы данных. - + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. Открыть мастер, который позволяет импортировать данные из файла CSV в таблицу базы данных. Файлы CSV могут быть созданы в большинстве приложений баз данных и электронных таблиц. - + Export a database to a .sql dump text file. Экспортировать базу данных в текстовый файл .sql. - + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. Эта опция позволяет экспортировать базу данных в текстовый файл .sql. Файлы SQL содержат все данные, необходимые для создания базы данных в большистве движков баз данных, включая MySQL и PostgreSQL. - + Export a database table as a comma separated text file. Экспортировать таблицу базы данных как CSV текстовый файл. - + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. Экспортировать таблицу базы данных как CSV текстовый файл, готовый для импортирования в другие базы данных или приложения электронных таблиц. - + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database Открыть мастер создания таблиц, где возможно определить имя и поля для новой таблиы в базе данных - + Open the Delete Table wizard, where you can select a database table to be dropped. Открыть мастер удаления таблицы, где можно выбрать таблицу базы данных для удаления. - + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. Открыть мастер изменения таблицы, где возможно переименовать существующую таблиц. Можно добавить или удалить поля таблицы, так же изменять имена полей и типы. - + Open the Create Index wizard, where it is possible to define a new index on an existing database table. Открыть мастер создания интекса, в котором можно определить новый индекс для существующей таблиц базы данных. - + &Preferences... &Настройки... - - + + Open the preferences window. Открыть окно настроек. - + &DB Toolbar &Панель инструментов БД - + Shows or hides the Database toolbar. Показать или скрыть панель инструментов База данных. - + Shift+F1 - &About... - О &программе... - - - + &Recently opened &Недавно открываемые - - Open &tab - Открыть &вкладку - - - + Ctrl+T @@ -4137,455 +3361,422 @@ You can drag SQL statements from an object row and drop them into other applicat Данные - Refresh the data in the selected table - Обновить данные в выбранной таблице - - - - + + Edit Pragmas This has to be equal to the tab title in all the main tabs Прагмы - - + + Execute SQL This has to be equal to the tab title in all the main tabs SQL - Edit Database Cell - Редактирование ячейки БД - - - + SQL &Log &Журнал SQL - + Show S&QL submitted by По&казывать SQL, выполненный - + &Plot &График - + &Revert Changes &Отменить изменения - + &Write Changes &Записать изменения - Compact &Database - &Уплотнить базу данных - - - + &Database from SQL file... &База данных из файла SQL... - + &Table from CSV file... &Таблицы из файла CSV... - + &Database to SQL file... Базу &данных в файл SQL... - + &Table(s) as CSV file... &Таблицы в файл CSV... - + &Create Table... &Создать таблицу... - + &Delete Table... &Удалить таблицу... - + &Modify Table... &Изменить таблицу... - + Create &Index... Создать и&ндекс... - + W&hat's This? Что &это такое? - + &Execute SQL В&ыполнить код SQL - - Open SQL file - Открыть файл SQL - - - - - + + + Save SQL file Сохранить файл SQL - + Ctrl+E - + Export as CSV file Экспортировать в файл CSV - + Export table as comma separated values file Экспортировать таблицу как CSV файл - &Wiki... - В&ики... - - - Bug &report... - &Отчёт об ошибке... - - - Web&site... - &Веб-сайт... - - - - + + Save the current session to a file Сохранить текущее состояние в файл - + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file - - + + Load a working session from a file Загрузить рабочее состояние из файла - &Set Encryption - Ши&фрование - - - + Copy Create statement Копировать CREATE выражение - + Copy the CREATE statement of the item to the clipboard Копировать CREATE выражение элемента в буффер обмена - + Ctrl+Return - + Ctrl+L - - + + Ctrl+P - + Ctrl+D - + Ctrl+I - + Reset Window Layout - + Alt+0 - - Close current SQL tab - - - - + The database is currenctly busy. - + Click here to interrupt the currently running query. - + Encrypted Зашифровано - + Read only Только для чтения - + Database file is read only. Editing the database is disabled. База данных только для чтения. Редактирование запрещено. - + Database encoding Кодировка базы данных - + Database is encrypted using SQLCipher База данных зашифрована с использованием SQLCipher - - + + Choose a database file Выбрать файл базы данных - + Could not open database file. Reason: %1 Не удалось открыть файл базы данных. Причина:%1 - - - + + + Choose a filename to save under Выбрать имя, под которым сохранить данные - Error adding record: - - Ошибка добавления записи: - - - Error deleting record: -%1 - Ошибка удаления записи: %1 - - - Please select a record first - Сначала выберите запись - - - %1 - %2 of %3 - %1 - %2 из %3 - - - There is no database opened. Please open or create a new database file. - Нет открытой базы данных. Откройте или создайте файл новой базы данных. - - - Are you sure you want to delete the %1 '%2'? -All data associated with the %1 will be lost. - Хотите удалить %1 '%2'? -Все данные, связанные с %1, будут потеряны. + + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. + Вышла новая версия Обозревателя для SQLite (%1.%2.%3).<br/><br/>Она доступна для скачивания по адресу <a href='%4'>%4</a>. - Error: could not delete the %1. Message from database engine: -%2 - Ошибка: невозмножно удалить %1. Сообщение из движка базы данных: %2 + + DB Browser for SQLite project file (*.sqbpro) + Файл проекта Обозревателя для SQLite (*.sqbpro) - There is no database opened. - Нет открытой базы данных. + + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. + +%1 + Ошибка при сохранении файла базы данных. Это означает, что не все изменения в базе данных были сохранены. Сначала вам необходимо разрешить следующую ошибку. + +%1 - - A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. - Вышла новая версия Обозревателя для SQLite (%1.%2.%3).<br/><br/>Она доступна для скачивания по адресу <a href='%4'>%4</a>. + + Are you sure you want to undo all changes made to the database file '%1' since the last save? + Отменить все изменения, сделанные в файле базы данных '%1' после последнего сохранения? - - DB Browser for SQLite project file (*.sqbpro) - Файл проекта Обозревателя для SQLite (*.sqbpro) + + Choose a file to import + Выберать файл для импорта - Error executing query: %1 - Ошибка выполнения запроса: %1 + + Text files(*.sql *.txt);;All files(*) + Текстовые файлы(*.sql *.txt);;Все файлы(*) - %1 rows returned in %2ms from: %3 - %1 строки возвращены за %2мс из: %3 + + Do you want to create a new database file to hold the imported data? +If you answer no we will attempt to import the data in the SQL file to the current database. + Создать новый файл базы данных, чтобы сохранить импортированные данные? +Если ответить Нет, будет выполнена попытка импортировать данные файла SQL в текущую базу данных. - , %1 rows affected - , %1 строк изменено + + Ctrl+Tab + - Query executed successfully: %1 (took %2ms%3) - Запрос успешно выполнен: %1 (заняло %2мс%3) + + Ctrl+Shift+Tab + - Choose a text file - Выбрать текстовый файл + + Ctrl+PgUp + - Text files(*.csv *.txt);;All files(*) - Текстовые файлы(*.csv *.txt);;Все файлы(*) + + Clear List + - Import completed - Импорт завершён + + Window Layout + - - - Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. - -%1 - Ошибка при сохранении файла базы данных. Это означает, что не все изменения в базе данных были сохранены. Сначала вам необходимо разрешить следующую ошибку. - -%1 + + + Simplify Window Layout + - - Are you sure you want to undo all changes made to the database file '%1' since the last save? - Отменить все изменения, сделанные в файле базы данных '%1' после последнего сохранения? + + Shift+Alt+0 + - - Choose a file to import - Выберать файл для импорта + + Dock Windows at Bottom + - - Text files(*.sql *.txt);;All files(*) - Текстовые файлы(*.sql *.txt);;Все файлы(*) + + Dock Windows at Left Side + - - Do you want to create a new database file to hold the imported data? -If you answer no we will attempt to import the data in the SQL file to the current database. - Создать новый файл базы данных, чтобы сохранить импортированные данные? -Если ответить Нет, будет выполнена попытка импортировать данные файла SQL в текущую базу данных. + + Dock Windows at Top + - + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? - + Do you want to save the changes made to the project file '%1'? - + + Edit View %1 + + + + + Edit Trigger %1 + + + + File %1 already exists. Please choose a different name. Файл %1 уже существует. Выберите другое имя. - + Error importing data: %1 Ошибка импортирования данных: %1 - + Import completed. Импорт завершён. - + Delete View Удалить представление - + Modify View Модифицировать представление - + Delete Trigger Удалить триггер - + Modify Trigger Модифицировать триггер - + Delete Index Удалить индекс - + + Opened '%1' in read-only mode from recent file list + + + + + Opened '%1' from recent file list + + + + &%1 %2%3 &%1 %2%3 - + (read only) - + Open Database or Project - + Attach Database... - + Import CSV file(s)... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. @@ -4594,366 +3785,306 @@ If you answer no we will attempt to import the data in the SQL file to the curre - + Do you want to save the changes made to SQL tabs in a new project file? - + Do you want to save the changes made to the SQL file %1? - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? - - - - + Could not find resource file: %1 - + Choose a project file to open Выберите файл проекта для открытия - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - Этот файл проекта использует старый формат файла, потому что он был создан с использованием DB Browser для SQLite версии 3.10 или ниже. Загрузка этого формата по-прежнему полностью поддерживается, но мы советуем вам преобразовать все ваши файлы проекта в новый формат файла, поскольку поддержка более старых форматов может быть удалена в какой-то момент в будущем. Вы можете конвертировать ваши файлы, просто открывая и повторно сохраняя их. - - - + Could not open project file for writing. Reason: %1 - Duplicate records - Дублированные записи - - - Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - Пожалуйста, введите псевдо-первичный ключ, чтобы разрешить редактирование в этом представлении. Это должно быть имя уникального столбца в представлении. - - - + Busy (%1) - Please choose a new encoding for this table. - Пожалуйста выбирите новую кодировку для данной таблицы. - - - + Error checking foreign keys after table modification. The changes will be reverted. Ошибка проверки внешних ключей после изменения таблицы. Изменения будут отменены. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. Эта таблица не прошла проверку внешнего ключа. <br/> Вы должны запустить "Инструменты | Проверка внешнего ключа"и исправить сообщенные проблемы. - + Execution finished with errors. - + Execution finished without errors. - Please choose a new encoding for all tables. - Пожалуйста выбирите новую кодировку для всех таблиц. - - - %1 -Leave the field empty for using the database encoding. - %1 -Оставьте это поле пустым если хотите чтобы использовалась кодировка по умолчанию. - - - This encoding is either not valid or not supported. - Неверная кодировка либо она не поддерживается. - - - Cancel - Отменить - - - - + + Delete Table Удалить таблицу - &%1 %2 - &%1 %2 - - - + Setting PRAGMA values will commit your current transaction. Are you sure? Установка значений PRAGMA завершит текущую транзакцию. Установить значения? - Execution aborted by user - Выполнение прервано пользователем - - - + In-Memory database БД в памяти - determining row count... - определяем количество строк... - - - %1 - %2 of >= %3 - %1 - %2 из >= %3 - - - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. Вы действительно хотите удалить таблицу '%1'? Все данные, связанные с таблицей, будут потеряны. - + Are you sure you want to delete the view '%1'? Вы действительно хотите удалить представление '%1'? - + Are you sure you want to delete the trigger '%1'? Вы действительно хотите удалить триггер '%1'? - + Are you sure you want to delete the index '%1'? Вы действительно хотите удалить индекс '%1'? - + Error: could not delete the table. Ошибка: не удалось удалить таблицу. - + Error: could not delete the view. Ошибка: не удалось удалить представление. - + Error: could not delete the trigger. Ошибка: не удалось удалить триггер. - + Error: could not delete the index. Ошибка: не удалось удалить индекс. - + Message from database engine: %1 Сообщение от СУБД: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? Для редактирования таблицы необходимо сохранить все ожидающие изменения сейчас. Вы действительно хотите сохранить БД? - + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. - + -- EXECUTING SELECTION IN '%1' -- -- ВЫПОЛНЕНИЕ ВЫБОРКИ В '%1' -- - + -- EXECUTING LINE IN '%1' -- -- ВЫПОЛНЕНИЕ СТРОКИ В '%1' -- - + -- EXECUTING ALL IN '%1' -- -- ВЫПОЛНЕНИЕ ВСЕ В '%1' -- - - + + At line %1: - + Result: %1 - + Result: %2 - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? Установка значений PRAGMA или вакуумирования приведет к фиксации текущей транзакции. Уверены ли вы? - + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + + + + + Yes. Don't ask again + + + + + This action will open a new SQL tab with the following statements for you to edit and run: + + + + Rename Tab - + Duplicate Tab - + Close Tab - + Opening '%1'... - + There was an error opening '%1'... - + Value is not a valid URL or filename: %1 - + %1 rows returned in %2ms %1 строк возвращено за %2мс - query executed successfully. Took %1ms%2 - запрос успешно выполнен. Заняло %1мс%2 - - - -- At line %1: -%4 --- Result: %3 - -- Строка %1: -%4 --- Результат: %3 - - - + Choose text files Выберите текстовые файлы - + Import completed. Some foreign key constraints are violated. Please fix them before saving. Импорт завершен. Нарушены некоторые ограничения внешних ключей. Пожалуйста, исправьте их перед сохранением. - + Modify Index Модифицировать Индекс - + Modify Table Модифицировать Таблицу - + Do you want to save the changes made to SQL tabs in the project file '%1'? - + Select SQL file to open Выбрать файл SQL для октрытия - Couldn't read file: %1. - Не удалось прочитать файл:%1. - - - Couldn't save file: %1. - Не удалось сохранить файл:%1. - - - + Select file name Выбрать имя файла - + Select extension file Выбрать расширение файла - Extensions(*.so *.dll);;All files(*) - Расширения(*.so *.dll);;Все файлы(*) - - - + Extension successfully loaded. Расширение успешно загружено. - + Error loading extension: %1 Ошибка загрузки расширения: %1 - - + + Don't show again Не показывать снова - + New version available. Доступна новая версия. - + Project saved to file '%1' - + Collation needed! Proceed? Нужно выполнить сопоставление! Продолжить? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4962,69 +4093,45 @@ Create a backup! Создайте резервную копию! - + creating collation - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. Задайте новое имя для вкладки SQL. Используйте символ '&&', чтобы разрешить использование следующего символа в качестве сочетания клавиш. - + Please specify the view name Укажите имя представления - + There is already an object with that name. Please choose a different name. Объект с указанным именем уже существует. Выберите другое имя. - + View successfully created. Представление успешно создано. - + Error creating view: %1 Ошибка создания представления: %1 - There is no filter set for this table. View will not be created. - Для этой таблицы не установлен фильтр. Представление не будет создано. - - - Delete Records - Удалить Записи - - - + This action will open a new SQL tab for running: Это действие откроет новую вкладку SQL для запуска: - + Press Help for opening the corresponding SQLite reference page. Нажмите "Справка" для открытия соответствующей справочной страницы SQLite. - - Choose a axis color - Выбрать цвет осей - - - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Все файлы(*) - - - Choose a file to open - Выбрать файл для открытия - - - Invalid file format. - Ошибочный формат файла. - NullLineEdit @@ -5047,45 +4154,37 @@ Create a backup! График - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> <html><head/><body><p>На этой панели отображается список столбцов текущей просматриваемой таблицы или только что выполненного запроса. Вы можете выбрать столбцы, которые вы хотите использовать в качестве оси X или Y для графика ниже. В таблице показан тип обнаруженной оси, который повлияет на итоговый график. Для оси Y вы можете выбирать только числовые столбцы, но для оси X вы можете выбрать:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Дата/Время</span>: строки с форматом &quot;гггг-ММ-дд чч:мм:сс&quot; или &quot;гггг-ММ-ддTчч:мм:сс&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Дата</span>: строки с форматом &quot;гггг-ММ-дд&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Время</span>: строки с форматом &quot;чч:мм:сс&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Текст</span>: строки лубого формата. Выбор этого столбца по оси X приведет к созданию графика Баров, со значениями столбцов в качестве меток для баров</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Числа</span>: целочисленные или вещественные значения</li></ul><p>Дважды щелкните по ячейкам Y, вы можете изменить используемый цвет для этого графика.</p></body></html> - + Columns Столбцы - + X X - Y - Y - - - _ - _ - - - + Y1 - + Y2 - + Axis Type Ось - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -5102,147 +4201,139 @@ Select the axes or axes labels to drag and zoom only in that orientation. - + Line type: Линия: - - + + None Нет - + Line Обычная - + StepLeft Ступенчатая, слева - + StepRight Ступенчатая, справа - + StepCenter Ступенчатая, по центру - + Impulse Импульс - + Point shape: Отрисовка точек: - + Cross Крест - + Plus Плюс - + Circle Круг - + Disc Диск - + Square Квадрат - + Diamond Ромб - + Star Звезда - + Triangle Треугольник - + TriangleInverted Треугольник перевернутый - + CrossSquare Крест в квадрате - + PlusSquare Плюс в квадрате - + CrossCircle Крест в круге - + PlusCircle Плюс в круге - + Peace Мир - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> <html><head/><body><p>Сохранить текущий график...</p><p>Формат файла выбирается расширением (png, jpg, pdf, bmp)</p></body></html> - + Save current plot... Сохранить текущий график... - - + + Load all data and redraw plot Загрузить все данные и перерисовать - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - Загружать все данные. Имеет эффект лишь если не все данные подгружены. - - - - - + + + Row # Строка # - - Choose a axis color - Выбрать цвет осей - Copy @@ -5264,72 +4355,68 @@ Select the axes or axes labels to drag and zoom only in that orientation. - + Date/Time Дата/Время - + Date Дата - + Time Время - - + + Numeric Число - + Label Текст - + Invalid Ошибка - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. Загружает все данные и перерисовыет график. Предупреждение: не все данные были получены из таблицы из-за механизма частичной выборки. - + Choose an axis color Выберите цвет оси - + Choose a filename to save under Выбрать имя файла, под которым сохранить данные - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Все файлы(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. На этом графике есть кривые, и выбранный стиль линии может применяться только к графикам, отсортированным по X. Либо сортируйте таблицу или запрос по X, чтобы удалить кривые, либо выберите один из стилей, поддерживаемых кривыми: None или Line. - + Loading all remaining data for this table took %1ms. - - Cancel - Отменить - PreferencesDialog @@ -5339,34 +4426,36 @@ Warning: not all data has been fetched from the table yet due to the partial fet Настройки - + &Database &База данных - + Database &encoding &Кодировка базы данных - + Open databases with foreign keys enabled. Открывать базы данных с включенными внешними ключами. - + &Foreign keys &Внешние ключи - - - - - - + + + + + + + + enabled включены @@ -5378,8 +4467,8 @@ Warning: not all data has been fetched from the table yet due to the partial fet - - + + ... ... @@ -5414,25 +4503,17 @@ Warning: not all data has been fetched from the table yet due to the partial fet &Следить за обновлениями - + SQ&L to execute after opening database - + Data &Browser Обозреватель &данных - NULL fields - NULL поля - - - &Text - &Текст - - - + Remove line breaks in schema &view Удалить переводы строки в &схеме данных @@ -5442,233 +4523,192 @@ Warning: not all data has been fetched from the table yet due to the partial fet Опции "облака" - Remote server - Сервер - - - + Prefetch block si&ze Размер блока &упреждающей выборки - - Advanced - Дополнительно - - - SQL to execute after opening database - SQL, который нужно выполнить после открытия БД - - - + Default field type Тип данных по умолчанию - + Font Шрифт - + &Font &Шрифт - Font si&ze: - Ра&змер шрифта: - - - + Content Содержимое - + Symbol limit in cell Количество символов в ячейке - Field colors - Цветовое оформление полей - - - + NULL - + Regular Обычные - Text - Текст - - - + Binary Двоичные данные - + Background Фон - + Filters Фильтры - + Threshold for completion and calculation on selection - + Show images in cell - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. - + Escape character Символ экранирования - + Delay time (&ms) Время задержки (&мс) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. Время задержки перед применением нового фильтра. Нулевое значение отключает ожидание. - + &SQL Р&едактор SQL - + Settings name Имя настроек - + Context Контекст - + Colour Цвет - + Bold Жирный - + Italic Курсив - + Underline Подчёркивание - + Keyword Ключевое слово - function - функция - - - + Function Функция - + Table Таблица - + Comment Комментарий - + Identifier Идентификатор - + String Строка - currentline - текущаястрока - - - + Current line Текущая строка - + SQL &editor font size Размер шрифта в &редакторе SQL - SQL &log font size - Размер шрифта в &журнале SQL - - - + Tab size Размер табуляции - + SQL editor &font &Шрифт в редакторе SQL - + Error indicators Индикаторы ошибок - Enabling error indicators highlights the SQL code lines that caused errors during the last execution - Подсветка в SQL коде строк, выполнение которых привело к ошибкам - - - + Hori&zontal tiling Гори&зонтальное распределение - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. Если данная опция включена, то SQL редактор и результат запроса будут расположены рядом по горизонтали. - + Code co&mpletion Авто&дополнение кода @@ -5778,17 +4818,48 @@ Warning: not all data has been fetched from the table yet due to the partial fet - + + This sets the font size for all UI elements which do not have their own font size option. + + + + + Font size + + + + + Max Recent Files + + + + + Prompt to save SQL tabs +in new project file + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. Когда отмечено, переносы строк в столбце 'Схема' во вкладке 'Структура базы данных', 'док' и 'печатный результат' удаляются. - + + Database structure font size + + + + Font si&ze Ра&змер шрифта - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. @@ -5796,301 +4867,377 @@ Can be set to 0 for disabling the functionalities. - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. Максимальное количество строк в таблице для включения завершения значения на основе текущих значений в столбце. Может быть установлено в 0 для отключения завершения. - Row count threshold for completion - Порог количества строк для начала работы дополнения - - - + Field display Отображение поля - + Displayed &text Отображаемый &текст - - - + - - + + + + Click to set this color - + Text color Цвет текста - + Background color Цвет фона - + Preview only (N/A) Предв. просмотр - + Foreground Передний план - + + selected_bg + + + + + Selection background + + + + + selected_fg + + + + + Selection foreground + + + + + highlight + + + + + Highlight + + + + SQL &results font size &Размер шрифта - + &Wrap lines &Перенос строк - + Never Никогда - + At word boundaries На границах слов - + At character boundaries На границах символов - + At whitespace boundaries На границах пробелов - + &Quotes for identifiers Обравмление &идентификаторов - + Choose the quoting mechanism used by the application for identifiers in SQL code. Выберите механизм обрамления, используемый приложением для идентификаторов в коде SQL. - + "Double quotes" - Standard SQL (recommended) "Двойные кавычки" - Cтандартный SQL (рекомендуется) - + `Grave accents` - Traditional MySQL quotes `Гравис` - Традиционные кавычки MySQL - + [Square brackets] - Traditional MS SQL Server quotes [Квадратные скобки] - традиционные кавычки для MS SQL Server - + Keywords in &UPPER CASE Ключевые слова в &ВЕРХНЕМ РЕГИСТРЕ - + When set, the SQL keywords are completed in UPPER CASE letters. Когда отмечено, ключевые слова SQL будут в ВЕРХНЕМ РЕГИСТРЕ. - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background Когда установлено, строки кода SQL, вызвавшие ошибки во время последнего выполнения, подсвечиваются, а виджет результатов указывает на ошибку в фоновом режиме - + + Close button on tabs + + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + + + + &Extensions Р&асширения - + Select extensions to load for every database: Выберите расширения, чтобы загружать их для каждой базы данных: - + Add extension Добавить расширение - + Remove extension Удалить расширение - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> <html><head/><body><p>Обозреватель для SQLite позволяет использовать оператор REGEXP 'из коробки'. Но тем <br/>не менее, возможны несколько различных вариантов реализаций данного оператора и вы свободны <br/>в выборе какую именно использовать. Можно отключить нашу реализацию и использовать другую - <br/>путем загрузки соответсвующего расширения. В этом случае требуется перезагрузка приложения.</p></body></html> - + Disable Regular Expression extension Отключить расширение Регулярных Выражений - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> - + Allow loading extensions from SQL code - + Remote Удаленный сервер - + CA certificates СА сертификаты - + Proxy - + Configure - - + + Export Settings + + + + + Import Settings + + + + + Subject CN - + Common Name - + Subject O - + Organization - - + + Valid from - - + + Valid to - - + + Serial number - + Your certificates Ваши сертификаты - + File Файл - + Subject Common Name - + Issuer CN - + Issuer Common Name - + Clone databases into Путь для клонируемых БД - - + + Choose a directory Выберать каталог - + + The language will change after you restart the application. Язык будет применен после перезапуска приложения. - + Select extension file Выберать файл расширения - Extensions(*.so *.dll);;All files(*) - Расширения(*.so *.dll);;Все файлы(*) - - - + Extensions(*.so *.dylib *.dll);;All files(*) - + Import certificate file Импорт файла сертификата - - No certificates found in this file. - В данном файле не найден сертификат. + + No certificates found in this file. + В данном файле не найден сертификат. + + + + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! + Вы действительно хотите удалить этот сертификат? Все данные сертификата будут удалены из настроек приложения! + + + + Are you sure you want to clear all the saved settings? +All your preferences will be lost and default values will be used. + Вы действительно хотите удалить все сохраненные настройки? +Все ваши предпочтения будут потеряны, и будут использоваться значения по умолчанию. + + + + Save Settings File + + + + + + Initialization File (*.ini) + + + + + The settings file has been saved in location : + + + + + + Open Settings File + - - Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! - Вы действительно хотите удалить этот сертификат? Все данные сертификата будут удалены из настроек приложения! + + The settings file was loaded properly. + - - Are you sure you want to clear all the saved settings? -All your preferences will be lost and default values will be used. - Вы действительно хотите удалить все сохраненные настройки? -Все ваши предпочтения будут потеряны, и будут использоваться значения по умолчанию. + + The selected settings file is not a normal settings file. +Please check again. + @@ -6179,33 +5326,13 @@ All your preferences will be lost and default values will be used. Cancel Отменить - - Decoding CSV file... - Расшифровка CSV файла... - - - Collation needed! Proceed? - Нужно выполнить сопоставление! Продолжить? - - - A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. -If you choose to proceed, be aware bad things can happen to your database. -Create a backup! - Таблица в базе данных требует выполнения специальной функции сопоставления '%1'. -Если вы продолжите, то возможна порча вашей базы данных. -Создайте резервную копию! - - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - Файлы SQLite баз данных (*.db *.sqlite *.sqlite3 *.db3);;Все файлы (*) - All files (*) Все файлы (*) - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) Файлы SQLite баз данных (*.db *.sqlite *.sqlite3 *.db3) @@ -6305,92 +5432,60 @@ Create a backup! - Name - Имя - - - Commit - Коммит - - - Last modified - Изменен - - - Size - Размер + + Initialization File (*.ini) + - RemoteDatabase - - - Error when connecting to %1. -%2 - Ошибка во время подключения к %1. -%2 - - - - Error opening remote file at %1. -%2 - Ошибка открытия файла %1. -%2 - - - - Error: Invalid client certificate specified. - Ошибка: Указан неверный сертификат клиента. - + RemoteCommitsModel - - Please enter the passphrase for this client certificate in order to authenticate. - Пожалуйста введите ключевую фразу для этого сертификата клиента. + + Commit ID + - - Cancel - Отменить + + Message + - - Uploading remote database to -%1 - Загружается удаленная БД в -%1 + + Date + Дата - - Downloading remote database from -%1 - Скачивается удаленная БД из -%1 + + Author + - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - Удаленная БД была обновлена со времени последней загрузки. Вы хотите обновить локальную базу данных до последней версии? Обратите внимание, что это отменяет любые изменения, внесенные вами локально! Если вы не хотите потерять локальные изменения, нажмите «Нет», чтобы открыть локальную версию. + + Size + Размер - - - Error: The network is not accessible. - Ошибка: сеть недоступна. + + Authored and committed by %1 + - - Error: Cannot open the file for sending. - Ошибка: не удается открыть файл для отправки. + + Authored by %1, committed by %2 + + + + RemoteDatabase - + Error opening local databases list. %1 Ошибка при открытии списка локальных БД. %1 - + Error creating local databases list. %1 Ошибка при создании списка локальных БД. @@ -6405,79 +5500,364 @@ Create a backup! Удаленный сервер - + Identity ID - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. - Подключение к удаленному серверу, используя выбранный ID. + + Push currently opened database to server + Отправить текущую БД на сервер - - Go - Поехали + + Upload + - - Push currently opened database to server - Отправить текущую БД на сервер + + DBHub.io + - + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB4S. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to create a DB4S certificate (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB4S Preferences. Click the button to add a new certificate to DB4S and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>БД с сайта dbhub.io могут быть добавлены в DB4S. Для начала вам нужен ID:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Войдите на сайт dbhub.io (можно использовать аккаунт GitHub или что хотите)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Нажмите кнопку создать DB4S сертификат (это и есть ваш ID). Будет создан файл сертификата (сохраните его на локальном диске).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"Перейдите во вкладку Remote в настройках DB4S. Нажмите кнопку, чтобы добавить новый сертификат в DB4S, и выберите только что загруженный файл сертификата.</li></ol><p>Теперь во вкладке Remote должна отображаться ваш ID, и вы можете добавлять удаленные базы данных.</p></body></html> + + Local + + + + + Current Database + + + + + Clone + + + + + User + Пользователем + + + + Database + База данных + + + + Branch + Ветка + + + + Commits + + + + + Commits for + + + + + Delete Database + + + + + Delete the local clone of this database + + + + + Open in Web Browser + + + + + Open the web page for the current database in your browser + + + + + Clone from Link + + + + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + + + + + Refresh + Обновить + + + + Reload all data and update the views + + + + + F5 + + + + + Clone Database + + + + + Open Database + + + + + Open the local copy of this database + + + + + Check out Commit + + + + + Download and open this specific commit + + + + + Check out Latest Commit + + + + + Check out the latest commit of the current branch + + + + + Save Revision to File + + + + + Saves the selected revision of the database to another file + + + + + Upload Database + - + + Upload this database as a new commit + + + + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> - + Back - + + Select an identity to connect + + + + Public Публичный + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + + + + + Invalid URL: The host name does not match the host name of the current identity. + + + + + Invalid URL: No branch name specified. + + + + + Invalid URL: No commit ID specified. + + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + + + + + The database has unsaved changes. Are you sure you want to push it before saving? + + + + + The database you are trying to delete is currently opened. Please close it before deleting. + + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + + - RemoteModel + RemoteLocalFilesModel - + Name - Имя + Имя - Version - Версия + + Branch + Ветка + + + + Last modified + Изменен + + + + Size + Размер + + + + Commit + Коммит + + + + File + + + + + RemoteModel + + + Name + Имя - + Last modified Изменен - - Size - Размер + + Size + Размер + + + + Commit + Коммит + + + + Size: + + + + + Last Modified: + + + + + Licence: + + + + + Default Branch: + + + + + RemoteNetwork + + + Choose a location to save the file + + + + + Error opening remote file at %1. +%2 + Ошибка открытия файла %1. +%2 + + + + Error: Invalid client certificate specified. + Ошибка: Указан неверный сертификат клиента. + + + + Please enter the passphrase for this client certificate in order to authenticate. + Пожалуйста введите ключевую фразу для этого сертификата клиента. + + + + Cancel + Отменить + + + + Uploading remote database to +%1 + Загружается удаленная БД в +%1 + + + + Downloading remote database from +%1 + Скачивается удаленная БД из +%1 - - Commit - Коммит + + + Error: The network is not accessible. + Ошибка: сеть недоступна. - bytes - байт + + Error: Cannot open the file for sending. + Ошибка: не удается открыть файл для отправки. @@ -6497,15 +5877,6 @@ Create a backup! Commit message Сообщение - - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - - Database licence @@ -6527,44 +5898,45 @@ p, li { white-space: pre-wrap; } Принудительно - + + Username + + + + Database will be public. Everyone has read access to it. БД будет публичной. У каждого будет доступ на чтение к ней. - + Database will be private. Only you have access to it. БД будет конфиденциальной. Только у вас будет доступ к ней. - + Use with care. This can cause remote commits to be deleted. Используйте с осторожностью. Это может привести к удалению существующих коммитов. - - Unspecified - Неуказано - RunSql - + Execution aborted by user Выполнение прервано пользователем - + , %1 rows affected , %1 строк изменено - + query executed successfully. Took %1ms%2 запрос успешно выполнен. Заняло %1мс%2 - + executing query @@ -6686,51 +6058,23 @@ p, li { white-space: pre-wrap; } Это поле показывает результаты и коды статусов последних выполненных операторов. - Export to &CSV - Экспортировать в &CSV - - - Save as &view - Сохранить как &представление - - - Save as view - Сохранить как представление - - - Please specify the view name - Укажите имя представления - - - There is already an object with that name. Please choose a different name. - Объект с указанным именем уже существует. Выберите другое имя. - - - View successfully created. - Представление успешно создано. - - - Error creating view: %1 - Ошибка создания представления: %1 - - - + Couldn't read file: %1. Не удалось прочитать файл:%1. - - + + Couldn't save file: %1. Не удалось сохранить файл:%1. - + Your changes will be lost when reloading it! - + The file "%1" was modified by another program. Do you want to reload it?%2 @@ -6742,6 +6086,11 @@ p, li { white-space: pre-wrap; } Ctrl+/ + + + Ctrl+PgDown + + SqlUiLexer @@ -6787,287 +6136,284 @@ p, li { white-space: pre-wrap; } + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. () Функция last_insert_rowid() возвращает ROWID последней вставленной строки. - + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. (X) Для строкового значения X, функция length(X) возвращает количество символов (не байт) от начала строки до первого символа '\0'. - + (X,Y) The like() function is used to implement the "Y LIKE X" expression. (X,Y) Фукнция like() эквивалент выражению "Y LIKE X". - + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. (X,Y,Z) Функция like() эквивалент выражения "Y LIKE X ESCAPE Z". - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - (X) Функция load_extension(X) загружает расширение SQLite из файла библиотеки динамической компоновки X. - - - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - (X,Y) Функция load_extension(X,Y) загружает расширение SQLite из файла библиотеки динамической компоновки X, используя точку входа Y. - - - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. (X) Функция lower(X) возвращает копию строки X, в которой все ACSII символы переведены в нижний регистр. - + (X) ltrim(X) removes spaces from the left side of X. (X) ltrim(X) удаляет символы пробелов слева для строки X. - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. (X,Y) Функция ltrim(X,Y) возвращает новую строку путем удаления из строки X слева любого символа из Y. - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. (X,Y,...) Функция max() возвращает аргумент с максимальным значением, либо NULL если хотябы один аргумент равен NULL. - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. (X,Y,...) Функция min() возвращает аргумент с минимальным значением. - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. (X,Y) Функция nullif(X,Y) возвращает первый аргумент если аргументы различны либо NULL если они одинаковы. - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. (FORMAT,...) Функция printf(FORMAT,...) работает так же как printf() из стандартной библиотеки языка программирования Си. - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. (X) Функция quote(X) возвращает измененную строку X, которую можно использовать в SQL выражениях. - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. () Функция random() возвращает псевдо случайное целочисленное значение из диапозона от-9223372036854775808 до +9223372036854775807. - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. (N) Функция randomblob(N) возвращает N-байтный BLOB, содержащий псевдо случайные байты. - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. (X,Y,Z) Функция replace(X,Y,Z) возвращает новую строку на основе строки X, заменой всех подстрок Y на Z. - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. (X) Функция round(X) округляет X до целого значения. - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. (X,Y) Функция round(X,Y) округляет X до Y чисел после запятой справа. - + (X) rtrim(X) removes spaces from the right side of X. (X) rtrim(X) удаляет символы пробела справа строки X. - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. (X,Y) Функция rtrim(X,Y) возвращает новую строку путем удаления из строки X справа любого символа из строки Y. - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. (X) Функция soundex(X) возвращает копию строки X, кодированную в формате soundex. - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. (X,Y) substr(X,Y) возвращает подстроку из строки X, начиная с Y-го символа. - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. (X,Y,Z) Функция substr(X,Y,Z) возвращает подстроку из строки X, начиная с Y-го символа, длинной Z-символов. - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. () Функция total_changes() возвращает количество строк измененных с помощью INSERT, UPDATE или DELETE, начиная с того момента как текущее подключение к базе данных было открыто. - + (X) trim(X) removes spaces from both ends of X. (X) trim(X) удаляет пробелы с обоих сторон строки X. - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. (X,Y) Функция trim(X,Y) создает новую строку из X, путем удаления с обоих концов символов, которые присутсвуют в строке Y. - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. (X) Функция typeof(X) возвращает строку с типом данных выражения X. - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. (X) Функция unicode(X) возвращает числовое значение UNICODE кода символа. - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. (X) Функция upper(X) возвращает копию строки X, в которой для каждого ASCII символа регистр будет перобразован из нижнего в верхний. - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. (N) Функция zeroblob(N) возвращает BLOB размером N байт со значениями 0x00. - + (timestring,modifier,modifier,...) - + (format,timestring,modifier,modifier,...) - + (X) The avg() function returns the average value of all non-NULL X within a group. (X) Функция avg() возвращает среднее значение для всех не равных NULL значений группы. - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. (X) Функция count(X) возвращает количество строк, в которых X не равно NULL в группе. - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. (X) Функция group_concat() возвращает строку из всех значений X не равных NULL. - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. (X,Y) Функция group_concat() возвращает строку из всех значений X не равных NULL. Y - разделитель между значениями X. - + (X) The max() aggregate function returns the maximum value of all values in the group. (X) Аггрегатная функция max() возвращает максимальное значение для X. - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. (X) Аггрегатная функция min() возвращает минимальное значение для X. - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. (X) Аггрегатные функции sum() и total() возвращают сумму всех не NULL значений для X. - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. () Число строк в текущем разделе. Строки нумеруются начиная с 1 в порядке, определенном выражением ORDER BY, или иначе в произвольном порядке. - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () Функция row_number() возвращает номер первой строки в каждой группе - ранг текущей строки с разрывами. Если не существует выражения ORDER BY, все строки считаются одноранговыми, и эта функция всегда возвращает 1. - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () Число одноранговой группы текущей строки в своем разделе - ранг текущей строки без пробелов. Разделы нумеруются, начиная с 1 в порядке, определенном выражением ORDER BY в определении окна. Если не существует предложения ORDER BY, все строки считаются одноранговыми, и эта функция всегда возвращает 1. - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. () Несмотря на имя, эта функция всегда возвращает значение между 0.0 и 1.0, равное (rank-1) / (partition-rows-1), где rank - это значение, возвращаемое встроенной функцией window rank () rows - это общее количество строк в разделе. Если раздел содержит только одну строку, эта функция возвращает 0.0. - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. () Кумулятивное распределение. Рассчитывается как номер-строки / строки-раздела, где номер-строки - это значение, возвращаемое row_number() для последнего однорангового узла в группе, а строки-раздела- количество строк в разделе. - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. (N) Аргумент N обрабатывается как целое число. Эта функция делит раздел на N групп как можно более равномерно и назначает целое число от 1 до N каждой группе в порядке, определенном выражением ORDER BY, или в произвольном порядке, при его отсутствии. При необходимости сначала появляются большие группы. Эта функция возвращает целочисленное значение, присвоенное группе, в которой находится текущая строка. - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. (expr) Возвращает результат вычисления выражения expr в предыдущей строке раздела. Или, если нет предыдущей строки (поскольку текущая строка является первой), NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. (expr, offset) Если аргумент offset укзан, то он должен быть неотрицательным целым числом. В этом случае возвращаемое значение является результатом вычисления expr в строках смещения строк до текущей строки в разделе. Если смещение равно 0, то expr вычисляется относительно текущей строки. Если перед текущей строкой нет строк смещения строк, возвращается NULL. - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. (expr, offset, default) Если задано значение по умолчанию, оно возвращается вместо NULL, если строка, идентифицированная с помощью смещения, не существует. - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. (expr) Возвращает результат вычисления выражения expr в следующей строке раздела. Или, если нет следующей строки (поскольку последняя строка является последней), NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. (expr, offset) Если аргумент offset указан, то он должен быть неотрицательным целым числом. В этом случае возвращаемое значение является результатом вычисления expr в строках смещения строк после текущей строки в разделе. Если смещение равно 0, то expr вычисляется относительно текущей строки. Если после текущей строки нет строк смещения строки, возвращается NULL. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. (expr) Эта встроенная Оконная Функция вычисляет Оконный Кадр для каждой строки так же, как Функция Окна агрегата. Она возвращает значение выполнения выражения expr, оцениваемое по отношению к первой строке в оконном фрейме для каждой строки. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. (expr) Эта встроенная Оконная Функция вычисляет Оконный Кадр для каждой строки так же, как Функция Окна агрегата. Она возвращает значение выполнения выражения expr, оцениваемое по отношению к последней строке в оконном фрейме для каждой строки. (expr) Эта встроенная функция окна вычисляет оконный кадр для каждой строки так же, как функция окна агрегата. Он возвращает значение expr, оцениваемое по последней строке в оконном фрейме для каждой строки. - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. (expr, N) Эта встроенная функция окна вычисляет оконный фрейм для каждой строки так же, как функция окна агрегата. Она возвращает значение выполнения выражения expr, оцениваемое по строке N оконного фрейма. Строки нумеруются в рамке окна, начиная с 1 в порядке, определенном выражением ORDER BY, если оно присутствует, или в произвольном порядке в противном случае. Если в разделе нет N-й строки, возвращается NULL. @@ -7075,47 +6421,42 @@ Use of this function must be authorized from Preferences. SqliteTableModel - References %1(%2) -Hold Ctrl+Shift and click to jump there - Ссылается на %1(%2) -Нажмите Ctrl+Shift и клик чтобы переместиться туда - - - + reading rows читаем строки - + loading... загрузка... - + References %1(%2) Hold %3Shift and click to jump there Ссылается на %1(%2) Нажмите %3Shift и клик чтобы переместиться туда - + Error changing data: %1 Ошибка изменения данных: %1 - + retrieving list of columns получаем список колонок - + Fetching data... Подгружаем данные... - + + Cancel Отменить @@ -7257,7 +6598,7 @@ Hold %3Shift and click to jump there - + Replace @@ -7272,490 +6613,496 @@ Hold %3Shift and click to jump there - + <html><head/><body><p>Scroll to the beginning</p></body></html> <html><head/><body><p>Прокрутить к началу</p></body></html> - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> <html><head/><body><p>Нажатие этой кнопки переводит к началу в таблице выше.</p></body></html> - + |< - + Scroll one page upwards Страница вверх - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> <html><head/><body><p>Нажатие этой кнопки перемещает одну страницу записей вверх в виде таблицы выше.</p></body></html> - + < < - + 0 - 0 of 0 0 - 0 из 0 - + Scroll one page downwards Страница вниз - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> <html><head/><body><p>Нажатие этой кнопки перемещает одну страницу записей вниз в виде таблицы выше.</p></body></html> - + > > - + Scroll to the end Прокрутить к концу - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Нажатие этой кнопки перемещает в конец таблицы выше.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> - + >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> <html><head/><body><p>Нажмите здесь, чтобы перейти к указанной записи</p></body></html> - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> <html><head/><body><p>Эта кнопка используется, чтобы переместиться к записи, номер которой указан в области Перейти к</p></body></html> - + Go to: Перейти к: - + Enter record number to browse Введите номер записи для просмотра - + Type a record number in this area and click the Go to: button to display the record in the database view Напечатайте номер записи в этой области и нажмите кнопку Перейти к:, чтобы отобразить запись в представлении базы данных - + 1 1 - + Show rowid column Отображать колонку rowid - + Toggle the visibility of the rowid column - + Unlock view editing Разблокировать возможность редактирования - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. Разблокировать текущий вид для редактирования. Однако для редактирования вам понадобятся соответствующие триггеры. - + Edit display format Формат отображения - + Edit the display format of the data in this column Редактирование формата отображения для данных из этой колонки - - + + New Record Добавить запись - - + + Insert a new record in the current table Добавить новую запись в текущую таблицу - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> <html><head/><body><p>Эта кнопка создает новую запись в базе данных. Удерживайте кнопку мыши, чтобы открыть всплывающее меню различных параметров:</p><ul><li><span style=" font-weight:600;">Новая Запись</span>: вставляет новую запись со значениями по умолчанию.</li><li><span style=" font-weight:600;">Вставить Значения...</span>: открывает диалог для ввода значений перед тем, как они будут вставленны в БД. Это позволяет вводить значения, назначая различные ограничения. Этот диалог также открывается, если <span style=" font-weight:600;">Новая Запись</span> опция не срабатывает из-за этих ограничений.</li></ul></body></html> - - + + Delete Record Удалить запись - + Delete the current record Удалить текущую запись - - + + This button deletes the record or records currently selected in the table Эта кнопка удаляет запись или записи, выбранные в настоящее время в таблице - - + + Insert new record using default values in browsed table Вставляет новую запись, используя значения по умолчанию в просматриваемой таблице - + Insert Values... Вставить Значения... - - + + Open a dialog for inserting values in a new record Открывает диалоговое окно для вставки значений в новую запись - + Export to &CSV Экспортировать в &CSV - - + + Export the filtered data to CSV Экспортировать отфильтрованные данные в CSV - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. Эта кнопка экспортирует данные просматриваемой таблицы так как отображается (после обработки фильтрами, форматами отображения и т.д.) в виде файла CSV. - + Save as &view Сохранить как &представление - - + + Save the current filter, sort column and display formats as a view Сохранить текущие фильтры, столбецы сортировки и форматы отображания в виде представления - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. Эта кнопка сохраняет текущие настройки просматриваемой таблицы (фильтры, форматы отображения и столбец сортировки) в виде представления SQL, которое вы можете впоследствии просмотреть или использовать в операторах SQL. - + Save Table As... - - + + Save the table as currently displayed Сохранить таблицу так как сейчас отображается - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> <html><head/><body><p>Это всплывающее меню предоставляет следующие параметры, применяемые к текущей просматриваемой и отфильтрованной таблице:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Экспортировать ввиде CSV: данные просматриваемой таблицы сохраняется так как отображается (после применения фильтров, форматов отображения и порядка колонок) в CSV файл.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Сохранить как вид: эта опция сохраняет настройки текущей отображаемой таблицы (фильтры, форматы отображения и порядок колонок) как SQL вид, который вы позже можете просматривать или использовать в SQL выражениях.</li></ul></body></html> - + Hide column(s) Скрыть колонки - + Hide selected column(s) Скрыть выбранные колонки - + Show all columns Показать все колонки - + Show all columns that were hidden Показать все колонки, которые были скрыты - - + + Set encoding Кодировка - + Change the encoding of the text in the table cells Изменение кодировки текста в данной таблице - + Set encoding for all tables Установить кодировку для всех таблиц - + Change the default encoding assumed for all tables in the database Изменить кодировку по умолчанию для всех таблиц в базе данных - + Clear Filters - + Clear all filters Очистить все фильтры - - + + This button clears all the filters set in the header input fields for the currently browsed table. Эта кнопка очищает все фильтры, установленные в полях ввода заголовка для текущей просматриваемой таблицы. - + Clear Sorting - + Reset the order of rows to the default - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. - + Print Печать - + Print currently browsed table data Печатать отображаемую таблицу - + Print currently browsed table data. Print selection if more than one cell is selected. Распечатывайте текущие данные таблицы. Выбор печати, если выбрано несколько ячеек. - + Ctrl+P - + Refresh Обновить - + Refresh the data in the selected table Обновить данные в выбранной таблице - + This button refreshes the data in the currently selected table. Эта кнопка обновляет данные выбранной в данный момент таблицы. - + F5 - + Find in cells - + Open the find tool bar which allows you to search for values in the table view below. - - + + Bold Жирный - + Ctrl+B - - + + Italic Курсив - - + + Underline Подчёркивание - + Ctrl+U - - + + Align Right - - + + Align Left - - + + Center Horizontally - - + + Justify - - + + Edit Conditional Formats... - + Edit conditional formats for the current column - + Clear Format - + Clear All Formats - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns - - + + Font Color - - + + Background Color - + Toggle Format Toolbar - + Show/hide format toolbar - - + + This button shows or hides the formatting toolbar of the Data Browser - + Select column - + Ctrl+Space - + Replace text in cells + + + Freeze columns + + + + + Make all columns from the first column up to this column not move when scrolling horizontally + + - Filter in all columns + Filter in any column - + Ctrl+R - + %n row(s) @@ -7764,7 +7111,7 @@ Hold %3Shift and click to jump there - + , %n column(s) @@ -7773,104 +7120,127 @@ Hold %3Shift and click to jump there - + . Sum: %1; Average: %2; Min: %3; Max: %4 - + Conditional formats for "%1" - + determining row count... определяем количество строк... - + %1 - %2 of >= %3 %1 - %2 из >= %3 - + %1 - %2 of %3 %1 - %2 из %3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Пожалуйста, введите псевдо-первичный ключ, чтобы разрешить редактирование в этом представлении. Это должно быть имя уникального столбца в представлении. - + Delete Records Удалить Записи - + Duplicate records Дублированные записи - + Duplicate record Дубликат записи - + Ctrl+" - + Adjust rows to contents - + Error deleting record: %1 Ошибка удаления записи: %1 - + Please select a record first Сначала выберите запись - + There is no filter set for this table. View will not be created. Для этой таблицы не установлен фильтр. Представление не будет создано. - + Please choose a new encoding for all tables. Пожалуйста выбирите новую кодировку для всех таблиц. - + Please choose a new encoding for this table. Пожалуйста выбирите новую кодировку для данной таблицы. - + %1 Leave the field empty for using the database encoding. %1 Оставьте это поле пустым если хотите чтобы использовалась кодировка по умолчанию. - + This encoding is either not valid or not supported. Неверная кодировка либо она не поддерживается. - + %1 replacement(s) made. + + TableBrowserDock + + + New Data Browser + + + + + Rename Data Browser + + + + + Close Data Browser + + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + VacuumDialog @@ -7889,13 +7259,5 @@ Leave the field empty for using the database encoding. Please select the databases to co&mpact: Выберите объекты для &уплотнения: - - Warning: Compacting the database will commit all changes you made. - Предупреждение: Уплотнение базы данных зафиксирует все изменения, которые были сделаны. - - - Please select the objects to compact: - Выберите объекты для уплотнения: - diff --git a/src/translations/sqlb_sv.ts b/src/translations/sqlb_sv.ts new file mode 100644 index 000000000..08746986c --- /dev/null +++ b/src/translations/sqlb_sv.ts @@ -0,0 +1,6748 @@ + + + + + AboutDialog + + <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">http://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> + <html><head/><body><p>DB Browser för SQLite är ett opensource- och gratis visuellt verktyg för att skapa, designa och redigera SQLite-databasfiler.</p><p>Det är bi-licenserat under Mozilla Public License Version 2 och GNU General Public License Version 3 eller senare. Du kan modifiera eller återdistrubiera det enl. förbehåll i dessa licenser.</p><p>Se <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> och <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> för detaljer.</p><p>Besök vår webbplats för mer information om detta program, på: <a href="http://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">http://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">Denna programvara använder GPL/LGPL Qt Toolkit från </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Se </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> för licensvillkor och information.</span></p><p><span style=" font-size:small;">Det använder också ikonbilder som benämns Silk icon set av Mark James som licensierats under Creative Commons Attribution 2.5- och 3.0-licens.<br/>Se </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> för detaijer.</span></p></body></html> + + + About DB Browser for SQLite + Om DB Browser för SQLite + + + Version + Version + + + Qt Version + Qt Version + + + Version + Version + + + SQLite Version + SQLite Version + + + SQLCipher Version + SQLCipher Version + + + <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> + + + + + AddRecordDialog + + Add New Record + + + + Enter values for the new record considering constraints. Fields in bold are mandatory. + + + + In the Value column you can specify the value for the field identified in the Name column. The Type column indicates the type of the field. Default values are displayed in the same style as NULL values. + + + + Name + Namn + + + Type + Typ + + + Value + + + + Values to insert. Pre-filled default values are inserted automatically unless they are changed. + + + + When you edit the values in the upper frame, the SQL query for inserting this new record is shown here. You can edit manually the query before saving. + + + + <html><head/><body><p><span style=" font-weight:600;">Save</span> will submit the shown SQL statement to the database for inserting the new record.</p><p><span style=" font-weight:600;">Restore Defaults</span> will restore the initial values in the <span style=" font-weight:600;">Value</span> column.</p><p><span style=" font-weight:600;">Cancel</span> will close this dialog without executing the query.</p></body></html> + + + + Auto-increment + + + + + Unique constraint + + + + + Check constraint: %1 + + + + + Foreign key: %1 + + + + + Default value: %1 + + + + + Error adding record. Message from database engine: + +%1 + + + + Are you sure you want to restore all the entered values to their defaults? + + + + + Application + + The -s/--sql option requires an argument + Parameter -s/--sql behöver ett argument + + + Invalid option/non-existant file: %1 + Felaktig parameter/icke existerande fil: %1 + + + -h, --help Show command line options + -h, --help Visa hjälp för kommandorad + + + [file] Open this SQLite database + [file] Öppna denna SQLite-databas + + + Usage: %1 [options] [db] + + Använda: %1 [val] [db] + + + + -q, --quit Exit application after running scripts + -q, --quit Avsluta programmet efter skript har körts + + + Possible command line arguments: + Möjliga argument på kommandoraden: + + + The file %1 does not exist + Filen %1 finns inte + + + The user settings file location is replaced with the argument value instead of the environment variable value. + + + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + + + + Usage + + + + options + + + + database + + + + project + + + + csv-file + + + + Show command line options + + + + Exit application after running scripts + + + + file + + + + Execute this SQL file after opening the DB + + + + Import this CSV file into the passed DB or into a new DB + + + + table + + + + Browse this table after opening the DB + + + + Open database in read-only mode + + + + settings_file + + + + Run application based on this settings file + + + + group + + + + settings + + + + value + + + + Run application with this setting temporarily set to value + + + + Run application saving this value for this setting + + + + Display the current version + + + + Open this SQLite database + + + + Open this project file (*.sqbpro) + + + + Import this CSV file into an in-memory database + + + + The %1 option requires an argument + + + + The -S/--settings option requires an argument. The option is ignored. + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value + + + + SQLite Version + SQLite Version + + + SQLCipher Version %1 (based on SQLite %2) + + + + DB Browser for SQLite Version %1. + + + + Built for %1, running on %2 + + + + Qt Version %1 + + + + + CipherDialog + + SQLCipher encryption + SQLCipher kryptering + + + Please set a key to encrypt the database. +Note that if you change any of the other, optional, settings you'll need to re-enter them as well every time you open the database file. +Leave the password fields empty to disable the encryption. +The encryption process might take some time and you should have a backup copy of your database! Unsaved changes are applied before modifying the encryption. + Ange en nyckel för att kryptera databasen. +Notera att om du ändrar någon annan valbar inställning så behöver du åter igen ange dem igen varje gång du öppnar databasen. +Lämna fältet för lösenord tomt för att avaktivera kryptering. +Krypteringsprocessen behvöer lite tid och se till att ha en backupkopia av din databas! Osparade förändringar appliceras innan modifiering av krypteringen sker. + + + Page &size + Sid&storlek + + + &Password + &Lösenord + + + &Reenter password + Ange lösenord &igen + + + Please enter the key used to encrypt the database. +If any of the other settings were altered for this database file you need to provide this information as well. + Ange nyckel som används för att kryptera databasen. +Om någon annan inställning ändrades för denna databas behöver du ange och justera även det. + + + Passphrase + + + + Raw key + + + + Encr&yption settings + + + + SQLCipher &3 defaults + + + + SQLCipher &4 defaults + + + + Custo&m + + + + Page si&ze + + + + &KDF iterations + + + + HMAC algorithm + + + + KDF algorithm + + + + Plaintext Header Size + + + + + ColumnDisplayFormatDialog + + Choose display format + + + + Display format + + + + Choose a display format for the column '%1' which is applied to each value prior to showing it. + + + + Default + Förvald + + + Decimal number + + + + Exponent notation + + + + Hex blob + + + + Hex number + + + + Octal number + + + + Round number + + + + Apple NSDate to date + + + + Java epoch (milliseconds) to date + + + + .NET DateTime.Ticks to date + + + + Julian day to date + + + + Unix epoch to date + + + + Unix epoch to local time + + + + Windows DATE to date + + + + Date as dd/mm/yyyy + + + + Lower case + + + + Upper case + + + + Binary GUID to text + + + + Custom + + + + Custom display format must contain a function call applied to %1 + + + + Error in custom display format. Message from database engine: + +%1 + + + + Custom display format must return only one column but it returned %1. + + + + + CondFormatManager + + Conditional Format Manager + + + + This dialog allows creating and editing conditional formats. Each cell style will be selected by the first accomplished condition for that cell data. Conditional formats can be moved up and down, where those at higher rows take precedence over those at lower. Syntax for conditions is the same as for filters and an empty condition applies to all values. + + + + Add new conditional format + + + + &Add + + + + Remove selected conditional format + + + + &Remove + + + + Move selected conditional format up + + + + Move &up + + + + Move selected conditional format down + + + + Move &down + + + + Foreground + + + + Text color + + + + Background + + + + Background color + + + + Font + + + + Size + + + + Bold + Fet + + + Italic + Kursiv + + + Underline + Understrykning + + + Alignment + + + + Condition + + + + Click to select color + + + + Are you sure you want to clear all the conditional formats of this field? + + + + + CreateIndexDialog + + &Name + &Namn + + + Order + Ordning + + + Create New Index + Skapa nytt index + + + &Table + &Tabell + + + Column + Kolumn + + + Use in Index + Använd i index + + + &Columns + &Kolumner + + + Creating the index failed: +%1 + Misslyckades att skapa index: +%1 + + + &Unique + &Unik + + + + DBBrowserDB + + Action cancelled. + Aktivitet avbruten. + + + could not get list of db objects: %1, %2 + kunde inte ta emot lista med db-objekt: %1, %2 + + + renameColumn: creating savepoint failed. DB says: %1 + döpOmKolumn: misslyckades att skapa återställningspunk. DB säger: %1 + + + renameColumn: cannot find table %1. + döpOmKolumn: kan inte hitta tabell %1. + + + Please specify the database name under which you want to access the attached database + Ange det databasnamn med vilket du vill komma åt ansluten databas + + + Cancel + Avbryt + + + renameColumn: copying data to new table failed. DB says: +%1 + döpOmKolumn: misslyckades att kopiera data till ny tabell. DB säger: +%1 + + + File not found. + Hittar inte fil. + + + renameColumn: cannot find column %1. + döpOmKolumn: kan inte hitta kolumn %1. + + + Error setting pragma %1 to %2: %3 + Kunde inte sätta pragma %1 till %2: %3 + + + unknown object type %1 + okänd objekttyp %1 + + + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: + + + Kunde inte återställa några objekt som är associerade med denna tabell. Toligast är att några kolumnnamn ändrats. Här är SQL-uttrycket som du kan behöva åtgärda och köra manuellt: + + + + + renameColumn: deleting old table failed. DB says: %1 + döpOmKolumn: misslyckades att ta bort gammal tabell. DB säger: %1 + + + could not get types + kunde inte få typer + + + renameColumn: releasing savepoint failed. DB says: %1 + döpOmKolumn: misslyckades att släppa återställningspunt. DB säger: %1 + + + could not execute pragma command: %1, %2 + kunde inte köra kommando för pragma: %1, %2 + + + ... <string can not be logged, contains binary data> ... + ... <sträng kan inte loggas, innehåller binärdata> ... + + + didn't receive any output from pragma %1 + mottog inte något utdata från pragma %1 + + + Exporting database to SQL file... + Exporterar databas till SQL-fil... + + + Error renaming table '%1' to '%2'.Message from database engine: +%3 + Kunde inte döpa om tabell '%1' till '%2'. Meddelande från databasmotor: +%3 + + + Do you want to save the changes made to the database file %1? + Vill du spara ändringarna som gjorts i databasfilen %1? + + + renameColumn: creating new table failed. DB says: %1 + döpOmKolumn: misslyckades skapa ny tabell. DB säger: %1 + + + Error in statement #%1: %2. +Aborting execution. + Fel i uttyck #%1: %2. +Avbryter. + + + Executing SQL... + Utför SQL... + + + Invalid file format + + + + Do you really want to close this temporary database? All data will be lost. + + + + Database didn't close correctly, probably still busy + + + + Cannot open destination file: '%1' + + + + Cannot backup to file: '%1'. Message: %2 + + + + The database is currently busy: + + + + Do you want to abort that other operation? + + + + No database file opened + + + + Error in statement #%1: %2. +Aborting execution%3. + + + + and rolling back + + + + didn't receive any output from %1 + + + + could not execute command: %1 + + + + Cannot delete this object + + + + Cannot set data on this object + + + + A table with the name '%1' already exists in schema '%2'. + + + + No table with name '%1' exists in schema '%2'. + + + + Cannot find column %1. + + + + Creating savepoint failed. DB says: %1 + + + + Renaming the column failed. DB says: +%1 + + + + Releasing savepoint failed. DB says: %1 + + + + Creating new table failed. DB says: %1 + + + + Copying data to new table failed. DB says: +%1 + + + + Deleting old table failed. DB says: %1 + + + + Error renaming table '%1' to '%2'. +Message from database engine: +%3 + + + + could not get list of db objects: %1 + + + + could not get list of databases: %1 + + + + Error loading extension: %1 + Fel när tillägg skulle laddas: %1 + + + could not get column information + + + + + DbStructureModel + + Name + Namn + + + Type + Typ + + + Triggers (%1) + Utlösare (%1) + + + Object + Objekt + + + Schema + Schema + + + Indices (%1) + Index (%1) + + + Tables (%1) + Tabeller (%1) + + + Views (%1) + Vyer (%1) + + + Database + + + + Browsables + + + + All + + + + Temporary + + + + + EditDialog + + Text + Text + + + Choose a filename to export data + Välj ett filnamn att exportera data till + + + Size of data currently in table + Storlek på data i tabell + + + Text files(*.txt);;All files(*) + Textfiler(*.txt);;Alla filer(*) + + + Erases the contents of the cell + Tar bort innehållet från cellen + + + Opens a file dialog used to import text to this database cell. + Öppnar en fildialog för att importera text till databascellen. + + + Binary + Binär + + + Type of data currently in cell: Binary + Typ av data i cell: Binär + + + Edit database cell + Redigera databascell + + + Type of data currently in cell + Typ av data i cell + + + Export text + Exportera text + + + Import text + Importera text + + + %n char(s) + + %n tecken + %n tecken + + + + %n byte(s) + + %n byte + %n byte + + + + &Export + &Export + + + &Import + &Import + + + This area displays information about the data present in this database cell + Detta område visar information om data som finns i denna databascell + + + Text files(*.txt);;Image files(%1);;All files(*) + Textfiler(*.txt);;Bildfiler(%1);;Alla filer(*) + + + Opens a file dialog used to export the contents of this database cell to a text file. + Öppnar en fildialog för att exportera innehållet av denna databascell till en textfil. + + + Type of data currently in cell: Text / Numeric + Typ av data i cellen: Text / Numerisk + + + Choose a file + Välj en fil + + + Mode: + + + + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. + + + + RTL Text + + + + Image + + + + JSON + + + + XML + + + + Evaluation + + + + Automatically adjust the editor mode to the loaded data type + + + + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. + + + + Auto-switch + + + + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. + +Errors are indicated with a red squiggle underline. + +In the Evaluation mode, entered SQLite expressions are evaluated and the result applied to the cell. + + + + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. + + + + Apply data to cell + + + + This button saves the changes performed in the cell editor to the database cell. + + + + Apply + + + + Print... + + + + Open preview dialog for printing displayed text + + + + Open preview dialog for printing the data currently stored in the cell + + + + Ctrl+P + + + + Copy Hex and ASCII + + + + Copy selected hexadecimal and ASCII columns to the clipboard + + + + Ctrl+Shift+C + + + + Autoformat + + + + Auto-format: pretty print on loading, compact on saving. + + + + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. + + + + &Export... + + + + Export to file + + + + Opens a file dialog used to export the contents of this database cell to a file. + + + + &Import... + + + + Import from file + + + + Opens a file dialog used to import any kind of data to this database cell. + + + + Set as &NULL + + + + Word Wrap + + + + Wrap lines on word boundaries + + + + Open in default application or browser + + + + Open in application + + + + The value is interpreted as a file or URL and opened in the default application or web browser. + + + + Save file reference... + + + + Save reference to file + + + + Open in external application + + + + Unsaved data in the cell editor + + + + The cell editor contains data not yet applied to the database. +Do you want to apply the edited data? + + + + Image data can't be viewed in this mode. + + + + Try switching to Image or Binary mode. + + + + Binary data can't be viewed in this mode. + + + + Try switching to Binary mode. + + + + Image files (%1) + + + + Choose a file to import + Välj en fil att importera + + + %1 Image + + + + Binary files (*.bin) + + + + Invalid data for this mode + + + + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? + + + + %n character(s) + + + + + + + Type of data currently in cell: %1 Image + + + + %1x%2 pixel(s) + + + + Type of data currently in cell: NULL + + + + Type of data currently in cell: Valid JSON + + + + Couldn't save file: %1. + + + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + + + + + EditIndexDialog + + Edit Index Schema + + + + &Name + &Namn + + + &Table + &Tabell + + + &Unique + &Unik + + + For restricting the index to only a part of the table you can specify a WHERE clause here that selects the part of the table that should be indexed + + + + Partial inde&x clause + + + + Colu&mns + + + + Table column + + + + Type + Typ + + + Add a new expression column to the index. Expression columns contain SQL expression rather than column names. + + + + Index column + + + + Order + Ordning + + + Deleting the old index failed: +%1 + + + + Creating the index failed: +%1 + Misslyckades att skapa index: +%1 + + + + EditTableDialog + + U + U + + + AI + AU + + + PK + PN + + + Name + Namn + + + Type + Typ + + + Check + Vald + + + Table + Tabell + + + Autoincrement + Autouppräkning + + + Error creating table. Message from database engine: +%1 + Kunde inte skapa tabell. Meddelande från databasmotorn: +%1 + + + Remove field + Ta bort fält + + + Check constraint + Kontrollera förbehåll + + + Fields + Fält + + + This makes it impossible to set this flag. Please change the table data first. + Kan inte setta denna markering. Ändra data i tabell först. + + + Unique + Unik + + + Not null + Inte tom + + + Add field + Lägg till fält + + + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. + Det finns åtminstoen en rad med deta fält satt till TOM. Det gör att det inte går markera detta val. Ändra data i tabellen först. + + + Are you sure you want to delete the field '%1'? +All data currently stored in this field will be lost. + Är du säker på att du vill ta bort fältet '%1'? +All sparad data i fältet försvinner. + + + Without Rowid + Utan radid + + + Please add a field which meets the following criteria before setting the without rowid flag: + - Primary key flag set + - Auto increment disabled + Lägg till ett fält som möter följande kriterier innan radid markeras: + - Primärnyckel är markerad + - Autouppräkning är avmarkerad + + + Primary key + Primärnyckel + + + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. + Det finns åtminstone en rad med icke-heltalsvärde för detta fält. Det gör att det är omöjligt att markera AU. Ändra data i tabellen först. + + + Default + Förvald + + + Make this a 'WITHOUT rowid' table. Setting this flag requires a field of type INTEGER with the primary key flag set and the auto increment flag unset. + Gör denna tabell 'UTAN radid'. För att markera valet behövs ett fält av typen HELTAL markerad med primärnyckel och autouppräkning avmarkerad. + + + Advanced + Avancerad + + + Move field up + Flytta upp fält + + + Default value + Förvalt värde + + + Move field down + Flytta ner fält + + + Edit table definition + Redigera tabelldefinition + + + Foreign Key + Främmande nyckel + + + Database sche&ma + + + + Add + + + + Remove + + + + Move to top + + + + Move up + + + + Move down + + + + Move to bottom + + + + NN + + + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + + + + Collation + + + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + Constraints + + + + Add constraint + + + + Remove constraint + + + + Columns + Kolumner + + + SQL + + + + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> + + + + Primary Key + + + + Add a primary key constraint + + + + Add a foreign key constraint + + + + Add a unique constraint + + + + Add a check constraint + + + + There can only be one primary key for each table. Please modify the existing primary key instead. + + + + There already is a field with that name. Please rename it first or choose a different name for this field. + + + + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. + + + + Column '%1' has duplicate data. + + + + + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. + + + + + ExportCsvDialog + + " + " + + + ' + ' + + + , + , + + + ; + ; + + + | + | + + + Export completed. + Export slutförd. + + + Other + Annat + + + Choose a filename to export data + Välj ett filnamn att exportera data till + + + Could not open output file: %1 + Kunde inte öppna fil för utdata: %1 + + + Export data as CSV + Exportera data som CSV + + + &Column names in first line + &Kolumnnamn på första raden + + + Field &separator + Fält&separator + + + &Table(s) + &Tabell(er) + + + Please select at least 1 table. + Välj minst 1 tabell. + + + Choose a directory + Välj en katalog + + + &Quote character + &Citattecken + + + Text files(*.csv *.txt) + Textfiler(*.csv *.txt) + + + + ExportDataDialog + + Export data as CSV + Exportera data som CSV + + + Tab&le(s) + + + + Colu&mn names in first line + + + + Fie&ld separator + + + + , + , + + + ; + ; + + + Tab + Tabb + + + | + | + + + Other + Annat + + + &Quote character + &Citattecken + + + " + " + + + ' + ' + + + New line characters + + + + Windows: CR+LF (\r\n) + + + + Unix: LF (\n) + + + + Pretty print + + + + Export data as JSON + + + + exporting CSV + + + + Could not open output file: %1 + Kunde inte öppna fil för utdata: %1 + + + exporting JSON + + + + Choose a filename to export data + Välj ett filnamn att exportera data till + + + Please select at least 1 table. + Välj minst 1 tabell. + + + Choose a directory + Välj en katalog + + + Export completed. + Export slutförd. + + + + ExportSqlDialog + + Export completed. + Export slutförd. + + + Export schema only + Exportera endast schema + + + Export cancelled or failed. + Export avbruten eller mislyckades. + + + &Options + &Val + + + Keep column names in INSERT INTO + Behåll kolunnamn i INSERT INTO + + + Export SQL... + Exportera SQL... + + + Please select at least 1 table. + Välj minst 1 tabell. + + + Choose a filename to export + Välj ett filnamn att exportera + + + Text files(*.sql *.txt) + Textfiler(*.sql *.txt) + + + Tab&le(s) + + + + Select All + + + + Deselect All + + + + Multiple rows (VALUES) per INSERT statement + + + + Export everything + + + + Export data only + + + + Keep old schema (CREATE TABLE IF NOT EXISTS) + + + + Overwrite old schema (DROP TABLE, then CREATE TABLE) + + + + Please select at least one table. + + + + + ExtendedScintilla + + Ctrl+H + + + + Ctrl+F + + + + Ctrl+P + + + + Find... + + + + Find and Replace... + + + + Print... + + + + + ExtendedTableWidget + + Use as Exact Filter + + + + Containing + + + + Not containing + + + + Not equal to + + + + Greater than + + + + Less than + + + + Greater or equal + + + + Less or equal + + + + Between this and... + + + + Regular expression + + + + Edit Conditional Formats... + + + + Set to NULL + + + + Cut + + + + Copy + + + + Copy with Headers + + + + Copy as SQL + + + + Paste + + + + Print... + + + + Use in Filter Expression + + + + Alt+Del + + + + Ctrl+Shift+C + + + + Ctrl+Alt+C + + + + The content of the clipboard is bigger than the range selected. +Do you want to insert it anyway? + + + + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. + + + + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. + + + + + FileExtensionManager + + File Extension Manager + + + + &Up + + + + &Down + + + + &Add + + + + &Remove + + + + Description + + + + Extensions + + + + *.extension + + + + + FilterLineEdit + + Filter + Filter + + + These input fields allow you to perform quick filters in the currently selected table. +By default, the rows containing the input text are filtered out. +The following operators are also supported: +% Wildcard +> Greater than +< Less than +>= Equal to or greater +<= Equal to or less += Equal to: exact match +<> Unequal: exact inverse match +x~y Range: values between x and y +/regexp/ Values matching the regular expression + + + + Set Filter Expression + + + + What's This? + + + + Is NULL + + + + Is not NULL + + + + Is empty + + + + Is not empty + + + + Not containing... + + + + Equal to... + + + + Not equal to... + + + + Greater than... + + + + Less than... + + + + Greater or equal... + + + + Less or equal... + + + + In range... + + + + Regular expression... + + + + Clear All Conditional Formats + + + + Use for Conditional Format + + + + Edit Conditional Formats... + + + + + FindReplaceDialog + + Find and Replace + + + + Fi&nd text: + + + + Re&place with: + + + + Match &exact case + + + + Match &only whole words + + + + When enabled, the search continues from the other end when it reaches one end of the page + + + + &Wrap around + + + + When set, the search goes backwards from cursor position, otherwise it goes forward + + + + Search &backwards + + + + <html><head/><body><p>When checked, the pattern to find is searched only in the current selection.</p></body></html> + + + + &Selection only + + + + <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> + + + + Use regular e&xpressions + + + + Find the next occurrence from the cursor position and in the direction set by "Search backwards" + + + + &Find Next + + + + F3 + + + + &Replace + + + + Highlight all the occurrences of the text in the page + + + + F&ind All + + + + Replace all the occurrences of the text in the page + + + + Replace &All + + + + The searched text was not found + + + + The searched text was not found. + + + + The searched text was replaced one time. + + + + The searched text was found one time. + + + + The searched text was replaced %1 times. + + + + The searched text was found %1 times. + + + + + ForeignKeyEditor + + &Reset + + + + Foreign key clauses (ON UPDATE, ON DELETE etc.) + + + + + ImageViewer + + Image Viewer + + + + Reset the scaling to match the original size of the image. + + + + Set the scaling to match the size of the viewport. + + + + Print... + + + + Open preview dialog for printing displayed image + + + + Ctrl+P + + + + + ImportCsvDialog + + " + " + + + ' + ' + + + , + , + + + ; + ; + + + | + | + + + Tab + Tabb + + + Other + Annat + + + UTF-8 + + + + Inserting data... + Infogar data... + + + ISO-8859-1 + + + + &Table name + &Tabellnamn + + + Missing field for record %1 + Saknar fält för post %1 + + + Creating restore point failed: %1 + Misslyckades att skapa återställningspunkt: %1 + + + Inserting row failed: %1 + Misslyckades att infoga rad: %1 + + + &Column names in first line + &%Kolumnnamn på första raden + + + Creating the table failed: %1 + Misslyckades att skapa tabellen: %1 + + + Cancel + Avbryt + + + &Encoding + &Teckenkodning + + + Field &separator + Fält&separator + + + UTF-16 + + + + Trim fields? + Beskär fält? + + + There is already a table of that name. Do you want to import the data into it? + Det finns redan en tabell med det namnet. Vill du importera datat till det? + + + There is already a table of that name and an import into an existing table is only possible if the number of columns match. + Det finns redan en tabell med det namnet och import i en existerande tabell är bara möjligt om antal kolumner stämmer. + + + &Quote character + &Citattecken + + + Import CSV file + Importera CSV-fil + + + Table na&me + + + + Other (printable) + + + + Other (code) + + + + Separate tables + + + + Advanced + Avancerad + + + When importing an empty value from the CSV file into an existing table with a default value for this column, that default value is inserted. Activate this option to insert an empty value instead. + + + + Ignore default &values + + + + Activate this option to stop the import when trying to import an empty value into a NOT NULL column without a default value. + + + + Fail on missing values + + + + Disable data type detection + + + + Disable the automatic data type detection when creating a new table. + + + + Use local number conventions + + + + Use decimal and thousands separators according to the system locale. + + + + When importing into an existing table with a primary key, unique constraints or a unique index there is a chance for a conflict. This option allows you to select a strategy for that case: By default the import is aborted and rolled back but you can also choose to ignore and not import conflicting rows or to replace the existing row in the table. + + + + Abort import + + + + Ignore row + + + + Replace existing row + + + + Conflict strategy + + + + Deselect All + + + + Match Similar + + + + Select All + + + + There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. + + + + There is already a table named '%1'. Do you want to import the data into it? + + + + importing CSV + + + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + + + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. + + + + + MainWindow + + Off + Av + + + Disc + Skiva + + + File + Fil + + + Line + Rad + + + None + Ingen + + + Star + Stjärna + + + User + Användare + + + Import completed. + Import slutförd. + + + &Edit + &Redigera + + + &File + &Fil + + + &Help + &Hjälp + + + &View + &Vy + + + Impulse + Impuls + + + E&xit + A&vsluta + + + Cross + Kors + + + Peace + Fred + + + Open the preferences window. + Öppna fönster för egenskaper. + + + Invalid file format. + Felaktigt filformat. + + + Export a database to a .sql dump text file. + Exportera databas till en .sql-dump textfil. + + + Error importing data: %1 + Fel vid import av data: %1 + + + &Recently opened + &Nyligen öppnad + + + <html><head/><body><p>Scroll to the beginning</p></body></html> + <html><head/><body><p>Rulla till början</p></body></html> + + + Ctrl+Return + Ctrl+Retur + + + <html><head/><body><p>Scroll 100 records downwards</p></body></html> + <html><head/><body><p>Rulla100 poster nedåt</p></body></html> + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> + + + Load a working session from a file + Ladda en fungerande session från en fil + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Locking Mode</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Låsläge</span></a></p></body></html> + + + &New Database... + &Ny databas... + + + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. + Detta val används för att återställa nuvarande databas till sitt senaste sparade läge. Alla förändringar efter senaste sparning går förlorade. + + + Choose a file to import + Välj en fil att importera + + + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. + Exportera en databastabell som en kommaseparerad textfil, redo at importeras i en annan databas eller program för kalkylark. + + + Enter record number to browse + Ange post nummer att visa + + + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Alla Filer(*) + + + This button creates a new, empty record in the database + Denna knapp skapar en ny tom post i databasen + + + Refresh the data in the selected table. + Återskapa datat i vald tabell. + + + &Clear + &Rensa + + + &Attach Database + &Anslut databas + + + Point shape: + Punktform: + + + Import completed + Import slutförd + + + 0 - 0 of 0 + 0 - 0 av 0 + + + Export table as comma separated values file + Exportera tabell som en fil med kommaseparerad värden + + + Copy the CREATE statement of the item to the clipboard + Kopiera CREATE-satsen till urklipp + + + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. + Detta val låter dig importera data från en .sql-dump textfil till en ny eller existerande databas. SQL-dumpfiler kan skapas med de flesta databasmotererna, inklusive MySQL och PostgreSQL. + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Foreign Keys</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Främmande nyckel</span></a></p></body></html> + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journalläge</span></a></p></body></html> + + + Open SQL file + Öppna SQL-fil + + + Save the current session to a file + Spara nuvarande session till en fil + + + Delete Index + Ta bort index + + + Setting PRAGMA values will commit your current transaction. +Are you sure? + Om du ställer in värdet för PRAGMA kommer du att genomföra nuvarande transaktion. Är du säker? + + + Delete Table + Ta bort tabell + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatiskt index</span></a></p></body></html> + + + Error deleting record: +%1 + Fel när post skulle tas bort: +%1 + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Automatisk tömning</span></a></p></body></html> + + + StepCenter + Stegcentrum + + + Circle + Cirkel + + + Ctrl+D + + + + Ctrl+E + + + + Ctrl+I + + + + Ctrl+L + + + + Ctrl+N + + + + Ctrl+O + + + + Ctrl+P + + + + Ctrl+Q + + + + Ctrl+S + + + + Ctrl+T + + + + Ctrl+W + + + + Delete + Ta bort + + + Scroll 100 records upwards + Rulla 100 poster uppåt + + + Use this list to select a table to be displayed in the database view + Använd denna lista för att välja en tabell at visa i databasvyn + + + Go to: + Gå till: + + + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. + En ny version av DB Browser för SQLite är tillgänglig (%1.%2.%3).<br/><br/>Ladda ner den från <a href='%4'>%4</a>. + + + Memory + Minne + + + Normal + Normal + + + Choose a database file + Välj en databasfil + + + Import data from an .sql dump text file into a new or existing database. + Importera data från en .sql-dump textfil till en ny eller existerande databas. + + + New Record + Ny post + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Säker borttagning</span></a></p></body></html> + + + DB Schema + DB Schema + + + <html><head/><body><p>Clicking this button navigates 100 records upwards in the table view above.</p></body></html> + <html><head/><body><p>Klicka ovanstående knapp för att gå 100 poster uppåt i tabellvyn ovan.</p></body></html> + + + Revert database to last saved state + Återställ databasen till senaste sparade läget + + + Table: + Tabell: + + + Square + Fyrkant + + + Shows or hides the Database toolbar. + Visa eller dölj verktygsrad för databas. + + + Compact the database file, removing space wasted by deleted records + Minska storleken på databasfilen genom att ta bort onödigt tomrum som upptas av bortagna poster + + + Select a table to browse data + Välj en tabell för att visa data + + + This option is used to create a new database file. + Detta val används för att skapa en ny databasfil. + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Kontrollpunkt full FSYNC</span></a></p></body></html> + + + toolBar1 + Verktygsrad1 + + + Delete the current record + Ta bort nuvarande post + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL Auto Checkpoint</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL Autokontrollpunkt</span></a></p></body></html> + + + Persist + Vidhåll + + + Don't show again + Visa inte igen + + + Error: could not delete the %1. Message from database engine: +%2 + Fel: Kunde inte ta bort %1. Meddelande från databasmotorn: +%2 + + + Line type: + Radtyp: + + + Delete Trigger + Ta bort utlösare + + + PlusCircle + Pluscirkel + + + Text files(*.sql *.txt);;All files(*) + Textfiler(*.sql *.txt);;Alla filer(*) + + + Copy Create statement + Kopiera CREATE-uttryck + + + Select SQL file to open + Välj SQL-fil att öppna + + + Choose a filename to save under + Visa ett filnamn att spara under + + + CrossCircle + Korscirkel + + + Extensions(*.so *.dll);;All files(*) + Tillägg(*.so *.dll);;Alla filer(*) + + + Open the Create Index wizard, where it is possible to define a new index on an existing database table. + Öppna guiden för att skapa index, där finns möjlighet att definiera ett nytt index för en existerande databastabell. + + + Create a new database file + Skapa en ny databasfil + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temporärplats</span></a></p></body></html> + + + Error adding record: + + Fel när post skulle läggas till: + + + + Scroll to the end + Rulla till slutet + + + Save current plot... + Spara nuvarande plan... + + + PlusSquare + Plusfyrkant + + + Type a record number in this area and click the Go to: button to display the record in the database view + Ange ett nummer för post i detta fält och klicka på kanppen Gå till: för att visa posten i databasvyn + + + Text files(*.csv *.txt);;All files(*) + Textfiler(*.csv *.txt);;Alla filer(*) + + + CrossSquare + Korsfyrkant + + + &Open Database... + &Öppna databas... + + + Clear all filters + Rensa alla filter + + + <html><head/><body><p>Click here to jump to the specified record</p></body></html> + <html><head/><body><p>Klick här för att hoppa till angiven post</p></body></html> + + + Triangle + Triangel + + + Open the Delete Table wizard, where you can select a database table to be dropped. + Öppna guiden för att ta bort tabell, där du kan välja en databastabell att släppa. + + + Select extension file + Välj fil med tillägg + + + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. + Öppna guide för att ändra tabell, där det är möjligt att ändra namn på en existerande tabell. Det är också möjligt att lägga till eller ta bort fält i tabell, likväl ändra namn och typer på fält. + + + This is the database view. You can double-click any record to edit its contents in the cell editor window. + Detta är databasvyn. Du kan dubbelklicka på vilken post som helst för att redigera dess innehåll i redigeringsrutan. + + + &About... + &Om... + + + <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> + <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Klicka på denna knapp för att navigera upp till slutet av tabellvyn ovan.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> + + + DB Browser for SQLite project file (*.sqbpro) + DB Browser för SQLite projektfil (*.sqbpro) + + + Are you sure you want to undo all changes made to the database file '%1' since the last save? + Är du säker på att du vill ångra alla ändringar som gjorts i databasfilen '%1' sedan den sparades senaste? + + + Truncate + Trunkera + + + Select file name + Välj filnamn + + + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database + Öppna guiden för att skapa tabell, där det är möjligt att ange filnamn och fält för en ny tabell i databasen + + + This button deletes the record currently selected in the database + Denna knapp tar bort vald post i databasen + + + Export a database table as a comma separated text file. + Exportera en databastabell som en kommaseparerad textfil. + + + <html><head/><body><p>Clicking this button navigates 100 records downwards in the table view above.</p></body></html> + <html><head/><body><p>Klicka på denna knapp för att navigera 100 poster nedåt i tabellvyn ovan.</p></body></html> + + + Export as CSV file + Exportera som CSV-fil + + + Extension successfully loaded. + Tillägget har laddats in. + + + Open an existing database file + Öppna en existerande databasfil + + + Exclusive + Exklusiv + + + Delete View + Ta bort vy + + + Web&site... + Webb&sida... + + + Columns + Kolumner + + + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. + Öppna en guide för att importera data från en kommaseparerad textfil in i en databastabell. CSV-filer kan skapas med de flesta databaser och kalkylprogram. + + + Choose a axis color + Välj en färg på axel + + + Default + Förvald + + + StepLeft + Vänstersteg + + + &Export + &Exportera + + + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> + <html><head/><body><p>Denna knapp används för att navigera till posten med angivet nummer i ytan för Gå till.</p></body></html> + + + Diamond + Diamant + + + &Import + &Importera + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journalstorleksbegränsning</span></a></p></body></html> + + + File %1 already exists. Please choose a different name. + Filen %1 finns redan. Välj ett annat namn. + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Rekursiv utlösare</span></a></p></body></html> + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max antal sidor</span></a></p></body></html> + + + DB Toolbar + DB Verktygsrad + + + &DB Toolbar + &DB Verktygsrad + + + Are you sure you want to delete the %1 '%2'? +All data associated with the %1 will be lost. + Är du säker på att du vill ta bort %1 '%2'? +All data associerad med %1 försvinner. + + + Choose a file to open + Välj en fil att öppna + + + Save SQL file as + Spara SQL-fil som + + + Please select a record first + Välj en post först + + + &Close Database + &Stäng databas + + + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> + <html><head/><body><p>Klicka på denna knapp för att navigera till början av tabellen ovan.</p></body></html> + + + This option is used to save changes to the database file. + Detta val används för att spara förändringar till databasfilen. + + + Open &tab + Öppna &tabb + + + &Preferences... + &Egenskaper... + + + Write changes to the database file + Skriv ändringar till databasfilen + + + StepRight + Högersteg + + + Database encoding + Databasteckenkodning + + + %1 - %2 of %3 + %1 - %2 av %3 + + + Save SQL file + Spara SQL-fil + + + Incremental + Inkrementell + + + There is no database opened. + Ingen databas är öppnad. + + + Choose a text file + Välj en textfil + + + Error executing query: %1 + Utför sökningen: %1 + + + Compact the database file, removing space wasted by deleted records. + Töm databasfilen och ta bort tomrum av borttagna poster. + + + Open a wizard that lets you import data from a comma separated text file into a database table. + Öppna guide för at importera en kommaseparerad textfil till en databastabell. + + + DB Browser for SQLite + DB Browser för SQLite + + + Execute current line + Utför nuvarande rad + + + TriangleInverted + InverteradTriangel + + + &Browse Table + &Visa tabell + + + Database is encrypted using SQLCipher + Databasen är krypterad med SQLCipher + + + New version available. + Ny version tillgänglig. + + + &Wiki... + &Wiki... + + + &Execute SQL + &Utför SQL + + + There is no database opened. Please open or create a new database file. + Ingen databas är öppnad. Öppna eller skapa en ny databasfil. + + + This option is used to open an existing database file. + Detta val används för att öppna en existerande databasfil. + + + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> + <html><head/><body><p>Spara nuvarande plan...</p><p>Filformat valt utifrån filändelse (png, jpg, pdf, bmp)</p></body></html> + + + Error loading extension: %1 + Fel när tillägg skulle laddas: %1 + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignorera kontroll förbehåll</span></a></p></body></html> + + + Execute SQL [F5, Ctrl+Return] + Utför SQL [F5, Ctrl+Retur] + + + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. + Valet låter dig exportera en databas till en .sql-dump textfil. SQL-dump textfiler innehåller all data som behövs för att återskapa databasen med de flesta databasmotorer, inklusive MySQL och PostgreSQL. + + + Insert a new record in the current table + Infoga en ny post i nuvarande tabell + + + Bug &report... + Del&rapport... + + + Shift+F1 + Skift+F1 + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synkront</span></a></p></body></html> + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Sidstorlek</span></a></p></body></html> + + + Delete Record + Ta bort post + + + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_schema_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> + <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_schema_version"><span style=" text-decoration: underline; color:#0000ff;">Användarversion</span></a></p></body></html> + + + Application + Programvara + + + Do you want to create a new database file to hold the imported data? +If you answer no we will attempt to import the data in the SQL file to the current database. + Vill du skapa en ny databas med det importerade datat? +Försöker importera datat i SQL-filen i nuvarande databas om du svarar nej. + + + This button refreshes the data in the currently selected table. + Denna knapp uppdaterar datat i vald tabell. + + + Database Structure + This has to be equal to the tab title in all the main tabs + + + + This is the structure of the opened database. +You can drag SQL statements from an object row and drop them into other applications or into another instance of 'DB Browser for SQLite'. + + + + + Browse Data + This has to be equal to the tab title in all the main tabs + + + + Edit Pragmas + This has to be equal to the tab title in all the main tabs + + + + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. + + + + Execute SQL + This has to be equal to the tab title in all the main tabs + + + + &Recent Files + + + + &Tools + + + + Edit Database &Cell + + + + SQL &Log + + + + Show S&QL submitted by + + + + Error Log + + + + This button clears the contents of the SQL logs + + + + This panel lets you examine a log of all SQL commands issued by the application or by yourself + + + + &Plot + + + + DB Sche&ma + + + + This is the structure of the opened database. +You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. +You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. + + + + + &Remote + + + + Project Toolbar + + + + Extra DB toolbar + + + + Close the current database file + + + + This button closes the connection to the currently open database file + + + + Ctrl+F4 + + + + &Revert Changes + + + + &Write Changes + + + + Compact &Database... + + + + &Database from SQL file... + + + + &Table from CSV file... + + + + &Database to SQL file... + + + + &Table(s) as CSV file... + + + + &Create Table... + + + + &Delete Table... + + + + &Modify Table... + + + + Create &Index... + + + + W&hat's This? + + + + &About + + + + New &tab + + + + This button opens a new tab for the SQL editor + + + + Execute all/selected SQL + + + + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. + + + + Open SQL file(s) + + + + This button opens files containing SQL statements and loads them in new editor tabs + + + + &Load Extension... + + + + Execute line + + + + This button executes the SQL statement present in the current editor line + + + + Shift+F5 + Skift+F5 + + + &Wiki + + + + F1 + + + + Bug &Report... + + + + Feature Re&quest... + + + + Web&site + + + + &Donate on Patreon... + + + + Sa&ve Project + + + + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file + + + + Open &Project... + + + + This button lets you open a DB Browser for SQLite project file + + + + &Attach Database... + + + + Add another database file to the current database connection + + + + This button lets you add another database file to the current database connection + + + + &Set Encryption... + + + + This button saves the content of the current SQL editor tab to a file + + + + SQLCipher &FAQ + + + + Opens the SQLCipher FAQ in a browser window + + + + Table(&s) to JSON... + + + + Export one or more table(s) to a JSON file + + + + Open Data&base Read Only... + + + + Open an existing database file in read only mode + + + + Ctrl+Shift+O + + + + Save results + + + + Save the results view + + + + This button lets you save the results of the last executed query + + + + Find text in SQL editor + + + + Find + + + + This button opens the search bar of the editor + + + + Ctrl+F + + + + Find or replace text in SQL editor + + + + Find or replace + + + + This button opens the find/replace dialog for the current editor tab + + + + Ctrl+H + + + + Export to &CSV + Exportera till &CSV + + + Export to &JSON + + + + Save as &view + Spara som &vy + + + Save as view + Spara som vy + + + Shows or hides the Project toolbar. + + + + Extra DB Toolbar + + + + New In-&Memory Database + + + + Drag && Drop Qualified Names + + + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor + + + + Drag && Drop Enquoted Names + + + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor + + + + &Integrity Check + + + + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. + + + + &Foreign-Key Check + + + + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab + + + + &Quick Integrity Check + + + + Run a quick integrity check over the open DB + + + + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. + + + + &Optimize + + + + Attempt to optimize the database + + + + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. + + + + Print + + + + Print text from current SQL editor tab + + + + Open a dialog for printing the text in the current SQL editor tab + + + + Print the structure of the opened database + + + + Open a dialog for printing the structure of the opened database + + + + Un/comment block of SQL code + + + + Un/comment block + + + + Comment or uncomment current line or selected block of code + + + + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. + + + + Ctrl+/ + + + + Stop SQL execution + + + + Stop execution + + + + Stop the currently running SQL script + + + + &Save Project As... + + + + Save the project in a file selected in a dialog + + + + Save A&ll + + + + Save DB file, project file and opened SQL files + + + + Ctrl+Shift+S + + + + Browse Table + + + + Close Pro&ject + + + + Close project and database files and return to the initial state + + + + Ctrl+Shift+W + + + + Detach Database + + + + Detach database file attached to the current database connection + + + + Table from CSV data in Clipboard... + + + + This treats the current clipboard contents as a CSV file and opens the same import wizard that is used for importing CSV data from a file. + + + + Show &Row Counts + + + + This shows the number of rows for each table and view in the database. + + + + Save Database &As... + + + + Save the current database as a different file + + + + Ctrl+Tab + + + + Ctrl+Shift+Tab + + + + Ctrl+PgUp + + + + Clear List + + + + Window Layout + + + + Reset Window Layout + + + + Alt+0 + + + + Simplify Window Layout + + + + Shift+Alt+0 + + + + Dock Windows at Bottom + + + + Dock Windows at Left Side + + + + Dock Windows at Top + + + + The database is currenctly busy. + + + + Click here to interrupt the currently running query. + + + + Encrypted + + + + Read only + + + + Database file is read only. Editing the database is disabled. + + + + Ctrl+Alt+W + + + + Ctrl+Shift+F4 + + + + Could not open database file. +Reason: %1 + + + + In-Memory database + + + + Choose a database file to save under + + + + Error while saving the database to the new file. + + + + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? + + + + Do you want to save the changes made to the project file '%1'? + + + + Are you sure you want to delete the table '%1'? +All data associated with the table will be lost. + + + + Are you sure you want to delete the view '%1'? + + + + Are you sure you want to delete the trigger '%1'? + + + + Are you sure you want to delete the index '%1'? + + + + Error: could not delete the table. + + + + Error: could not delete the view. + + + + Error: could not delete the trigger. + + + + Error: could not delete the index. + + + + Message from database engine: +%1 + + + + Editing the table requires to save all pending changes now. +Are you sure you want to save the database? + + + + Error checking foreign keys after table modification. The changes will be reverted. + + + + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. + + + + Edit View %1 + + + + Edit Trigger %1 + + + + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. + + + + -- EXECUTING SELECTION IN '%1' +-- + + + + -- EXECUTING LINE IN '%1' +-- + + + + -- EXECUTING ALL IN '%1' +-- + + + + At line %1: + + + + Result: %1 + + + + Result: %2 + + + + %1 rows returned in %2ms + + + + Setting PRAGMA values or vacuuming will commit your current transaction. +Are you sure? + + + + Execution finished with errors. + + + + Execution finished without errors. + + + + Choose text files + + + + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. + +%1 + + + + Import completed. Some foreign key constraints are violated. Please fix them before saving. + + + + Modify View + + + + Modify Trigger + + + + Modify Index + + + + Modify Table + + + + Opened '%1' in read-only mode from recent file list + + + + Opened '%1' from recent file list + + + + &%1 %2%3 + + + + (read only) + + + + Open Database or Project + + + + Attach Database... + + + + Import CSV file(s)... + + + + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. + + + + + + + Do you want to save the changes made to SQL tabs in a new project file? + + + + Do you want to save the changes made to SQL tabs in the project file '%1'? + + + + Do you want to save the changes made to the SQL file %1? + + + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + + + Could not find resource file: %1 + + + + Choose a project file to open + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + + + + Could not open project file for writing. +Reason: %1 + + + + Project saved to file '%1' + + + + Yes. Don't ask again + + + + Collation needed! Proceed? + Sortering behövs! Fortsätt? + + + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. +If you choose to proceed, be aware bad things can happen to your database. +Create a backup! + En tabell i databasen behöver en speciell sorteringsfunktion '%1' som detta program inte tillhandahåller utan ytterligare kunskap. +Skadliga skare kan inträffa med din databas om du väljer att fortsätta. +Skapa en backup! + + + creating collation + + + + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + + Please specify the view name + Ange namn på vy + + + There is already an object with that name. Please choose a different name. + Det finns redan ett objekt med det namnet. Ange ett annat namn. + + + View successfully created. + Vy skapades. + + + Error creating view: %1 + Misslyckades skapa vy: %1 + + + This action will open a new SQL tab for running: + + + + This action will open a new SQL tab with the following statements for you to edit and run: + + + + Press Help for opening the corresponding SQLite reference page. + + + + Busy (%1) + + + + Rename Tab + + + + Duplicate Tab + + + + Close Tab + + + + Opening '%1'... + + + + There was an error opening '%1'... + + + + Value is not a valid URL or filename: %1 + + + + + NullLineEdit + + Set to NULL + + + + Alt+Del + + + + + PlotDock + + Plot + + + + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> + + + + Columns + Kolumner + + + X + + + + Y1 + + + + Y2 + + + + Axis Type + + + + Here is a plot drawn when you select the x and y values above. + +Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. + +Use mouse-wheel for zooming and mouse drag for changing the axis range. + +Select the axes or axes labels to drag and zoom only in that orientation. + + + + Line type: + Radtyp: + + + None + Ingen + + + Line + Rad + + + StepLeft + Vänstersteg + + + StepRight + Högersteg + + + StepCenter + Stegcentrum + + + Impulse + Impuls + + + Point shape: + Punktform: + + + Cross + Kors + + + Plus + + + + Circle + Cirkel + + + Disc + Skiva + + + Square + Fyrkant + + + Diamond + Diamant + + + Star + Stjärna + + + Triangle + Triangel + + + TriangleInverted + InverteradTriangel + + + CrossSquare + Korsfyrkant + + + PlusSquare + Plusfyrkant + + + CrossCircle + Korscirkel + + + PlusCircle + Pluscirkel + + + Peace + Fred + + + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> + <html><head/><body><p>Spara nuvarande plan...</p><p>Filformat valt utifrån filändelse (png, jpg, pdf, bmp)</p></body></html> + + + Save current plot... + Spara nuvarande plan... + + + Load all data and redraw plot + + + + Copy + + + + Print... + + + + Show legend + + + + Stacked bars + + + + Fixed number format + + + + Date/Time + + + + Date + + + + Time + + + + Numeric + + + + Label + + + + Invalid + + + + Row # + + + + Load all data and redraw plot. +Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. + + + + Choose an axis color + + + + Choose a filename to save under + Visa ett filnamn att spara under + + + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Alla Filer(*) + + + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. + + + + Loading all remaining data for this table took %1ms. + + + + + PreferencesDialog + + ... + ... + + + &SQL + &SQL + + + Bold + Fet + + + &Text + &Text + + + SQL &editor font size + SQL &redigera fontstorlek + + + Automatic &updates + Automatisk &uppdatering + + + Table + Tabell + + + Lan&guage + Spr&åk + + + Current line + Nuvarande rad + + + Keyword + Nyckelord + + + The language will change after you restart the application. + Språket ändras efter du startar om programmet. + + + SQL editor &font + &Font SQL redigerare + + + Data &Browser + Data&visare + + + Open databases with foreign keys enabled. + Öppna databaser med främmande nycklar aktiverade. + + + Remember last location for session only + Kom endast ihåg senaste plats för sessionen + + + Colour + Färg + + + Italic + Kursiv + + + Disable Regular Expression extension + Avaktivera tillägg för reguljära uttryck + + + Identifier + Identifierare + + + String + Sträng + + + NULL fields + TOMT fält + + + Settings name + Inställningsnamn + + + Extensions(*.so *.dll);;All files(*) + Tillägg(*.so *.dll);;Alla filer(*) + + + &Database + &Databas + + + Database &encoding + Databas&teckenkodning + + + &Foreign keys + &Främmande nycklar + + + Select extension file + Välj tilläggsfil + + + Default &location + Förvald &placering + + + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> + <html><head/><body><p>SQLite stödjer REGEXP med hanterar inte några<br/>algoritmer för reguljära uttryck, utan använder det som tillhandahålls av programmet som körs. DB Browser för SQLite hanterar <br/>en algoritm åt dig så du kan använda REGEXP på en gång. Dock finns det en uppsjö möjliga olika varianter att välja mellan<br/> av vilken du kanske vill använda en annan, så är du fri at avaktivera <br/>programmets variant och ladda in din egen genom ett tillägg. Omstart av programmet är då nödvändigt.</p></body></html> + + + Comment + Kommentar + + + Context + Sammanhang + + + Underline + Understrykning + + + Remember last location + Kom ihåg senaste plats + + + Choose a directory + Välj en katalog + + + Select extensions to load for every database: + Välj tillägg att ladda in för varje databas: + + + currentline + nuvaranderad + + + enabled + aktiverad + + + function + funktion + + + Function + Funktion + + + &Extensions + &Tillägg + + + Remove extension + Ta bort tillägg + + + Preferences + Egenskaper + + + Add extension + Lägg till tillägg + + + SQL &log font size + Fontstorlek SQL-&log + + + &General + &Generell + + + Always use this location + Använd alltid den här platsen + + + Toolbar style + + + + Only display the icon + + + + Only display the text + + + + The text appears beside the icon + + + + The text appears under the icon + + + + Follow the style + + + + Show remote options + + + + DB file extensions + + + + Manage + + + + Main Window + + + + Database Structure + + + + Browse Data + + + + Execute SQL + + + + Edit Database Cell + + + + When this value is changed, all the other color preferences are also set to matching colors. + + + + Follow the desktop style + + + + Dark style + + + + Application style + + + + This sets the font size for all UI elements which do not have their own font size option. + + + + Font size + + + + Max Recent Files + + + + Prompt to save SQL tabs +in new project file + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + Remove line breaks in schema &view + + + + Prefetch block si&ze + + + + Default field type + + + + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. + + + + Database structure font size + + + + SQ&L to execute after opening database + + + + Font + + + + &Font + + + + Font si&ze + + + + Content + + + + Symbol limit in cell + + + + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: +Maximum number of rows in a table for enabling the value completion based on current values in the column. +Maximum number of indexes in a selection for calculating sum and average. +Can be set to 0 for disabling the functionalities. + + + + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. +Can be set to 0 for disabling completion. + + + + Threshold for completion and calculation on selection + + + + Show images in cell + + + + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. + + + + Field display + + + + Displayed &text + + + + Binary + Binär + + + NULL + + + + Regular + + + + Click to set this color + + + + Text color + + + + Background color + + + + Preview only (N/A) + + + + Filters + + + + Escape character + + + + Delay time (&ms) + + + + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. + + + + Background + + + + Foreground + + + + selected_bg + + + + Selection background + + + + selected_fg + + + + Selection foreground + + + + highlight + + + + Highlight + + + + SQL &results font size + + + + Tab size + + + + &Wrap lines + + + + Never + + + + At word boundaries + + + + At character boundaries + + + + At whitespace boundaries + + + + &Quotes for identifiers + + + + Choose the quoting mechanism used by the application for identifiers in SQL code. + + + + "Double quotes" - Standard SQL (recommended) + + + + `Grave accents` - Traditional MySQL quotes + + + + [Square brackets] - Traditional MS SQL Server quotes + + + + Code co&mpletion + + + + Keywords in &UPPER CASE + + + + When set, the SQL keywords are completed in UPPER CASE letters. + + + + Error indicators + + + + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background + + + + Hori&zontal tiling + + + + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. + + + + Close button on tabs + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + + + + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> + + + + Allow loading extensions from SQL code + + + + Remote + + + + Your certificates + + + + File + Fil + + + Subject CN + + + + Subject Common Name + + + + Issuer CN + + + + Issuer Common Name + + + + Valid from + + + + Valid to + + + + Serial number + + + + CA certificates + + + + Common Name + + + + Subject O + + + + Organization + + + + Clone databases into + + + + Proxy + + + + Configure + + + + Export Settings + + + + Import Settings + + + + Extensions(*.so *.dylib *.dll);;All files(*) + + + + Import certificate file + + + + No certificates found in this file. + + + + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! + + + + Are you sure you want to clear all the saved settings? +All your preferences will be lost and default values will be used. + + + + Save Settings File + + + + Initialization File (*.ini) + + + + The settings file has been saved in location : + + + + + Open Settings File + + + + The settings file was loaded properly. + + + + The selected settings file is not a normal settings file. +Please check again. + + + + + ProxyDialog + + Proxy Configuration + + + + Pro&xy Type + + + + Host Na&me + + + + Port + + + + Authentication Re&quired + + + + &User Name + + + + Password + + + + None + Ingen + + + System settings + + + + HTTP + + + + Socks v5 + + + + + QObject + + . +%1 + .%1 + + + from record number %1 + från post nummer %1 + + + Cancel + Avbryt + + + Collation needed! Proceed? + Sortering behövs! Fortsätt? + + + Error importing data + Fel vid import av data + + + Decoding CSV file... + Avkodar CSV-fil... + + + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. +If you choose to proceed, be aware bad things can happen to your database. +Create a backup! + En tabell i databasen behöver en speciell sorteringsfunktion '%1' som detta program inte tillhandahåller utan ytterligare kunskap. +Skadliga skare kan inträffa med din databas om du väljer att fortsätta. +Skapa en backup! + + + Left + + + + Right + + + + Center + + + + Justify + + + + All files (*) + + + + SQLite Database Files (*.db *.sqlite *.sqlite3 *.db3) + + + + DB Browser for SQLite Project Files (*.sqbpro) + + + + SQL Files (*.sql) + + + + All Files (*) + + + + Text Files (*.txt) + + + + Comma-Separated Values Files (*.csv) + + + + Tab-Separated Values Files (*.tsv) + + + + Delimiter-Separated Values Files (*.dsv) + + + + Concordance DAT files (*.dat) + + + + JSON Files (*.json *.js) + + + + XML Files (*.xml) + + + + Binary Files (*.bin *.dat) + + + + SVG Files (*.svg) + + + + Hex Dump Files (*.dat *.bin) + + + + Extensions (*.so *.dylib *.dll) + + + + Initialization File (*.ini) + + + + Importing CSV file... + + + + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) + + + + + RemoteCommitsModel + + Commit ID + + + + Message + + + + Date + + + + Author + + + + Size + + + + Authored and committed by %1 + + + + Authored by %1, committed by %2 + + + + + RemoteDatabase + + Error opening local databases list. +%1 + + + + Error creating local databases list. +%1 + + + + + RemoteDock + + Remote + + + + Identity + + + + Push currently opened database to server + + + + Upload + + + + DBHub.io + + + + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> + + + + Local + + + + Current Database + + + + Clone + + + + &User + + + + &Database + &Databas + + + Branch + + + + Commits + + + + Commits for + + + + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> + + + + Back + + + + Delete Database + + + + Delete the local clone of this database + + + + Open in Web Browser + + + + Open the web page for the current database in your browser + + + + Clone from Link + + + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + + + + Refresh + + + + Reload all data and update the views + + + + F5 + + + + Clone Database + + + + Open Database + + + + Open the local copy of this database + + + + Check out Commit + + + + Download and open this specific commit + + + + Check out Latest Commit + + + + Check out the latest commit of the current branch + + + + Save Revision to File + + + + Saves the selected revision of the database to another file + + + + Upload Database + + + + Upload this database as a new commit + + + + Select an identity to connect + + + + Public + + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + + + + Invalid URL: The host name does not match the host name of the current identity. + + + + Invalid URL: No branch name specified. + + + + Invalid URL: No commit ID specified. + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + + + + The database has unsaved changes. Are you sure you want to push it before saving? + + + + The database you are trying to delete is currently opened. Please close it before deleting. + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + + + + + RemoteLocalFilesModel + + Name + Namn + + + Branch + + + + Last modified + + + + Size + + + + Commit + + + + File + Fil + + + + RemoteModel + + Name + Namn + + + Last modified + + + + Size + + + + Commit + + + + Size: + + + + Last Modified: + + + + Licence: + + + + Default Branch: + + + + + RemoteNetwork + + Choose a location to save the file + + + + Error opening remote file at %1. +%2 + + + + Error: Invalid client certificate specified. + + + + Please enter the passphrase for this client certificate in order to authenticate. + + + + Cancel + Avbryt + + + Uploading remote database to +%1 + + + + Downloading remote database from +%1 + + + + Error: Cannot open the file for sending. + + + + + RemotePushDialog + + Push database + + + + Database na&me to push to + + + + Commit message + + + + Database licence + + + + Public + + + + Branch + + + + Force push + + + + Username + + + + Database will be public. Everyone has read access to it. + + + + Database will be private. Only you have access to it. + + + + Use with care. This can cause remote commits to be deleted. + + + + + RunSql + + Execution aborted by user + + + + , %1 rows affected + + + + query executed successfully. Took %1ms%2 + + + + executing query + + + + + SelectItemsPopup + + A&vailable + + + + Sele&cted + + + + + SqlExecutionArea + + Form + Formulär + + + Error creating view: %1 + Misslyckades skapa vy: %1 + + + There is already an object with that name. Please choose a different name. + Det finns redan ett objekt med det namnet. Ange ett annat namn. + + + Please specify the view name + Ange namn på vy + + + View successfully created. + Vy skapades. + + + Export to &CSV + Exportera till &CSV + + + Results of the last executed statements + Resultat av senast utförda uttrycket + + + Save as &view + Spara som &vy + + + Save as view + Spara som vy + + + This field shows the results and status codes of the last executed statements. + Fältet visar resultat och statuskoder av senast utförda uttryck. + + + Find previous match [Shift+F3] + + + + Find previous match with wrapping + + + + Shift+F3 + Skift+F3 + + + The found pattern must be a whole word + + + + Whole Words + + + + Text pattern to find considering the checks in this frame + + + + Find in editor + + + + The found pattern must match in letter case + + + + Case Sensitive + + + + Find next match [Enter, F3] + + + + Find next match with wrapping + + + + F3 + + + + Interpret search pattern as a regular expression + + + + <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> + + + + Regular Expression + + + + Close Find Bar + + + + <html><head/><body><p>Results of the last executed statements.</p><p>You may want to collapse this panel and use the <span style=" font-style:italic;">SQL Log</span> dock with <span style=" font-style:italic;">User</span> selection instead.</p></body></html> + + + + Couldn't read file: %1. + + + + Couldn't save file: %1. + + + + Your changes will be lost when reloading it! + + + + The file "%1" was modified by another program. Do you want to reload it?%2 + + + + Answer "Yes to All" to reload the file on any external update without further prompting. + + + + Answer "No to All" to ignore any external update without further prompting. + + + + Modifying and saving the file will restore prompting. + + + + + SqlTextEdit + + Ctrl+/ + + + + Ctrl+PgDown + + + + + SqlUiLexer + + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. + (X) Funktionen group_concat() returnerar en sträng som slår samman alla icke-TOMMA värden av X. + + + (timestring,modifier,modifier,...) + (tidssträng,modifierare,modifierare...) + + + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. + (X,Y,...) Flerargumentsfunktionen max() returnerar argumentet med det största värdet, eller NULL om något argument är TOMT (NULL). + + + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. + (X) Funktioen count(X) returnerar antalet gånger somX inte är TOMT (NULL) i en gruppering. + + + (X,Y) The ifnull() function returns a copy of its first non-NULL argument, or NULL if both arguments are NULL. + (X,Y) Funktionen ifnull() returnerar en kopia av dess första icke-TOMMA argument, eller NULL om båda argumenten är TOMMA (NULL). + + + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. + (X,Y,...) Flerargumentsfunktionen min() returnerar argument med lägst värde. + + + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. + (FORMAT,...) SQL-funktionen printf(FORMAT,...) fungerar som funktionen sqlite3_mprintf() i C-språk och funktionsnamnet printf() kommer från standardbiblioteket för C. + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. + () Funktionen last_insert_rowid() returnerar radid (ROWID) för senast tillagda rad för ansluten databas som senast använde funktionen. + + + (X,Y,...) The coalesce() function returns a copy of its first non-NULL argument, or NULL if all arguments are NULL + (X,Y,...) Funktionen coalesce() returnerar en kopia av dess första icke-TOMMA argument, eller NULL om alla argument är TOMMA (NULL) + + + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. + (X,Y) Funktionen group_concat() returnerar en sträng sammanfogad av alla icke-TOMMA värden av X. Parametern Y används som avdelare mellan värden av X om den angivits. + + + (X) The hex() function interprets its argument as a BLOB and returns a string which is the upper-case hexadecimal rendering of the content of that blob. + (X) Funktionen hex() tolkar argumenten som en BLOB och returnerar en sträng av hexadecimal som versaler som representerar innehållet av blob:en. + + + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. + (X) Funktionen quote(X) returnerar texten som innehållet av värdet för argumentet så att det kan stättas in i en SQL-stats. + + + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. + (X) funktionen typeof(X) returnerar en sträng som anger datatyp för uttrycket X. + + + (X,Y) The instr(X,Y) function finds the first occurrence of string Y within string X and returns the number of prior characters plus 1, or 0 if Y is nowhere found within X. + (X,Y) Funktionen instr(X,Y) söker efter första förekomsten av strängen Y inom strängen X och returnerar dess början som antal tecken före plus 1, eller 0 om Y inte kan hittas inom X. + + + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. + () Funktionen random() returnerar ett någorlunda genererat slumptal som heltal i intervallet -9223372036854775808 och +9223372036854775807. + + + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. + (X) Funktionen lower(X) returnerar en kopia av strängen X med alla ASCII-tecken ändrade till gemener. + + + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. + (X,Y,Z) Funktionen like() används för att åstadkomma uttrycket "Y LIKE X ESCAPE Z". + + + (X,Y) The like() function is used to implement the "Y LIKE X" expression. + (X,Y) Funktionen like() används för att åstadkomma uttrycket "Y LIKE X". + + + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. + (X,Y) Funktionen ltrim(X,Y) returnerar en sträng som rensats på alla tecken som ingår i Y från vänstra sidan av X. + + + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. + (X) Funktionen round(X) returnerar et decimaltal X som avrundats till noll decimaler. + + + (X) The abs(X) function returns the absolute value of the numeric argument X. + (X) Funktionen abs(X) returnerar absolutvärdt av det numeriska argumentet X. + + + (X) ltrim(X) removes spaces from the left side of X. + (X) ltrim(X) tar bort mellanslag från höger sida av X. + + + (format,timestring,modifier,modifier,...) + (format,tidssträng,modifierare,modifierare...) + + + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. + () Funtionen total_changes() returnerar antalet rader som ändrats av INSERT, UPDATE eller DELETE sedan databasen öppnades. + + + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. + (X) Aggregat-funktionerna sum() och total() returnerar summan av alla icke-TOMMA värden i en grupp. + + + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. + (X) Funktionen length(X) returnerar antalet tecken (inte byte) som strängen X innehåller före det första tom-tecknet (NUL). + + + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. + (X,Y) Funktionen load_extension(X) laddar in tillägg för SQLite från det delade biblioteket med namnet X genom att anropa Y. + + + (X) rtrim(X) removes spaces from the right side of X. + (X) rtrim(X) tar bort mellanslag från höger sida av X. + + + (X,Y) The glob(X,Y) function is equivalent to the expression "Y GLOB X". + (X,Y) Funktionen glob(X,Y) motsvarar uttrycket "Y GLOB X". + + + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. + (X) Funktionen load_extension(X) laddar tillägget för SQLite från det delade biblioteket med namet X. + + + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. + (X) Funktionen soundex(X) returnerar en sträng som motsvarar uttalet av strängen X. + + + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. + (X) Funktionen upper(X) returnerar en kopia av indatasträngen X där alla gemener av ASCII-tecken görs om till sina motsvarigheter som versaler. + + + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. + (N) Funktionen zeroblob(N) returnerar en BLOB som består av N byte av 0x00. + + + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. + (X,Y) Funktionen rtrim(X,Y) returnerar en sträng som rensats på alla tecken som ingår i Y från högra sidan av X. + + + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. + (X) Aggregatfunktionen min() returnerar mininsta värde som inte är TOMT (NULL) av alla värden i en gruppering. + + + (X) trim(X) removes spaces from both ends of X. + (X) trim(X) tar bort mellanslag från båda ändar av X. + + + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. + (X,Y,Z) Funktionen replace(X,Y,Z) returnerar en sträng där varje förekomst av strängen Y ersatts med Z i strängen X. + + + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. + (X,Y) Funktionen round(X,Y) returnerar ett decimaltal X avrundat till Y decimaler. + + + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. + (X,Y) Funktionen nullif(X,Y) returnerar dess första argument om argumenten är olika och TOMT (NULL) om argumenten är lika. + + + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. + (X,Y) Funktionen trim(X,Y) returnerar en sträng där alla förekomster av Y tagits bort i båda ändar av X. + + + (X) The max() aggregate function returns the maximum value of all values in the group. + (X) Aggregatfunktionen max() returnerar det största av värdena i grupperingen. + + + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. + (N) Funktionen randomblob(N) returnerar en blob som är N-byte stor och innehåller någorlunda slumpmässiga byte. + + + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. + (X,Y,Z) Funktionen substr(X,Y,Z) returnerar en del av indatasträngen X och börjar på teckenposition Y och är Z tecken lång. + + + (X1,X2,...) The char(X1,X2,...,XN) function returns a string composed of characters having the unicode code point values of integers X1 through XN, respectively. + (X1,X2,...) Funktionen char(X1,X2,...,XN) returnerar en sträng med tecken skapad av tal för unicode-värden från X1 till XN. + + + (X) The avg() function returns the average value of all non-NULL X within a group. + (X) Funktionen avg() returnerar medelvärdet av alla icke-TOMMA X inom en gruppering. + + + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. + (X) Funktionen unicode(X) returnerar det numeriska unicode-värdet som motsvarar det första tecknet i strängen X. + + + () The changes() function returns the number of database rows that were changed or inserted or deleted by the most recently completed INSERT, DELETE, or UPDATE statement. + () Funktionen changes() returnerar antalet rader i databasen som förändrades, infogades eller togs bort av den senast genomförda INSERT, DELETE, eller UPDATE-satsen. + + + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. + (X,Y) substr(X,Y) returnerar alla tecken till slutet av strängen X med början på tecken Y. + + + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + + + + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. +Use of this function must be authorized from Preferences. + + + + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. +Use of this function must be authorized from Preferences. + + + + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. + + + + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. + + + + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. + + + + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. + + + + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. + + + + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. + + + + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. + + + + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. + + + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. + + + + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. + + + + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. + + + + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. + + + + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. + + + + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. + + + + (X) Return the arccosine of X. The result is in radians. + + + + (X) Return the hyperbolic arccosine of X. + + + + (X) Return the arcsine of X. The result is in radians. + + + + (X) Return the hyperbolic arcsine of X. + + + + (X) Return the arctangent of X. The result is in radians. + + + + (X,Y) Return the arctangent of Y/X. The result is in radians. he result is placed into correct quadrant depending on the signs of X and Y. + + + + (X) Return the hyperbolic arctangent of X. + + + + (X) Return the first representable integer value greater than or equal to X. For positive values of X, this routine rounds away from zero. For negative values of X, this routine rounds toward zero. + + + + (X) Return the cosine of X. X is in radians. + + + + (X) Return the hyperbolic cosine of X. + + + + (X) Convert value X from radians into degrees. + + + + (X) Compute e (Euler's number, approximately 2.71828182845905) raised to the power X. + + + + (X) Return the first representable integer value less than or equal to X. For positive numbers, this function rounds toward zero. For negative numbers, this function rounds away from zero. + + + + (X) Return the natural logarithm of X. + + + + (B,X) Return the base-B logarithm of X. + + + + (X) Return the base-10 logarithm for X. + + + + (X) Return the logarithm base-2 for the number X. + + + + (X,Y) Return the remainder after dividing X by Y. + + + + () Return an approximation for π. + + + + (X,Y) Compute X raised to the power Y. + + + + (X) Convert X from degrees into radians. + + + + (X) Return the sine of X. X is in radians. + + + + (X) Return the hyperbolic sine of X. + + + + (X) Return the square root of X. NULL is returned if X is negative. + + + + (X) Return the tangent of X. X is in radians. + + + + (X) Return the hyperbolic tangent of X. + + + + (X) Return the representable integer in between X and 0 (inclusive) that is furthest away from zero. Or, in other words, return the integer part of X, rounding toward zero. + + + + + SqliteTableModel + + Error changing data: +%1 + Misslyckades ändra data: +%1 + + + reading rows + + + + loading... + + + + References %1(%2) +Hold %3Shift and click to jump there + + + + retrieving list of columns + + + + Fetching data... + + + + Cancel + Avbryt + + + + TableBrowser + + Browse Data + + + + &Table: + + + + Select a table to browse data + Välj en tabell för att visa data + + + Use this list to select a table to be displayed in the database view + Använd denna lista för att välja en tabell at visa i databasvyn + + + This is the database table view. You can do the following actions: + - Start writing for editing inline the value. + - Double-click any record to edit its contents in the cell editor window. + - Alt+Del for deleting the cell content to NULL. + - Ctrl+" for duplicating the current record. + - Ctrl+' for copying the value from the cell above. + - Standard selection and copy/paste operations. + + + + Text pattern to find considering the checks in this frame + + + + Find in table + + + + Find previous match [Shift+F3] + + + + Find previous match with wrapping + + + + Shift+F3 + Skift+F3 + + + Find next match [Enter, F3] + + + + Find next match with wrapping + + + + F3 + + + + The found pattern must match in letter case + + + + Case Sensitive + + + + The found pattern must be a whole word + + + + Whole Cell + + + + Interpret search pattern as a regular expression + + + + <html><head/><body><p>When checked, the pattern to find is interpreted as a UNIX regular expression. See <a href="https://en.wikibooks.org/wiki/Regular_Expressions">Regular Expression in Wikibooks</a>.</p></body></html> + + + + Regular Expression + + + + Close Find Bar + + + + Text to replace with + + + + Replace with + + + + Replace next match + + + + Replace + + + + Replace all matches + + + + Replace all + + + + <html><head/><body><p>Scroll to the beginning</p></body></html> + <html><head/><body><p>Rulla till början</p></body></html> + + + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> + <html><head/><body><p>Klicka på denna knapp för att navigera till början av tabellen ovan.</p></body></html> + + + |< + + + + Scroll one page upwards + + + + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> + + + + < + + + + 0 - 0 of 0 + 0 - 0 av 0 + + + Scroll one page downwards + + + + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> + + + + > + + + + Scroll to the end + Rulla till slutet + + + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> + + + + >| + + + + <html><head/><body><p>Click here to jump to the specified record</p></body></html> + <html><head/><body><p>Klick här för att hoppa till angiven post</p></body></html> + + + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> + <html><head/><body><p>Denna knapp används för att navigera till posten med angivet nummer i ytan för Gå till.</p></body></html> + + + Go to: + Gå till: + + + Enter record number to browse + Ange post nummer att visa + + + Type a record number in this area and click the Go to: button to display the record in the database view + Ange ett nummer för post i detta fält och klicka på kanppen Gå till: för att visa posten i databasvyn + + + 1 + + + + Show rowid column + + + + Toggle the visibility of the rowid column + + + + Unlock view editing + + + + This unlocks the current view for editing. However, you will need appropriate triggers for editing. + + + + Edit display format + + + + Edit the display format of the data in this column + + + + New Record + Ny post + + + Insert a new record in the current table + Infoga en ny post i nuvarande tabell + + + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> + + + + Delete Record + Ta bort post + + + Delete the current record + Ta bort nuvarande post + + + This button deletes the record or records currently selected in the table + + + + Insert new record using default values in browsed table + + + + Insert Values... + + + + Open a dialog for inserting values in a new record + + + + Export to &CSV + Exportera till &CSV + + + Export the filtered data to CSV + + + + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. + + + + Export to &JSON + + + + Export the filtered data to JSON + + + + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a JSON file. + + + + Save as &view + Spara som &vy + + + Save the current filter, sort column and display formats as a view + + + + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. + + + + Save Table As... + + + + Save the table as currently displayed + + + + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> + + + + Hide column(s) + + + + Hide selected column(s) + + + + Show all columns + + + + Show all columns that were hidden + + + + Set encoding + + + + Change the encoding of the text in the table cells + + + + Set encoding for all tables + + + + Change the default encoding assumed for all tables in the database + + + + Clear Filters + + + + Clear all filters + Rensa alla filter + + + This button clears all the filters set in the header input fields for the currently browsed table. + + + + Clear Sorting + + + + Reset the order of rows to the default + + + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. + + + + Print + + + + Print currently browsed table data + + + + Print currently browsed table data. Print selection if more than one cell is selected. + + + + Ctrl+P + + + + Refresh + + + + Refresh the data in the selected table + + + + This button refreshes the data in the currently selected table. + Denna knapp uppdaterar datat i vald tabell. + + + F5 + + + + Find in cells + + + + Open the find tool bar which allows you to search for values in the table view below. + + + + Bold + Fet + + + Ctrl+B + + + + Italic + Kursiv + + + Underline + Understrykning + + + Ctrl+U + + + + Align Right + + + + Align Left + + + + Center Horizontally + + + + Justify + + + + Edit Conditional Formats... + + + + Edit conditional formats for the current column + + + + Clear Format + + + + Clear All Formats + + + + Clear all cell formatting from selected cells and all conditional formats from selected columns + + + + Font Color + + + + Background Color + + + + Toggle Format Toolbar + + + + Show/hide format toolbar + + + + This button shows or hides the formatting toolbar of the Data Browser + + + + Select column + + + + Ctrl+Space + + + + Replace text in cells + + + + Freeze columns + + + + Make all columns from the first column up to this column not move when scrolling horizontally + + + + Filter in any column + + + + Ctrl+R + + + + %n row(s) + + + + + + + , %n column(s) + + + + + + + . Sum: %1; Average: %2; Min: %3; Max: %4 + + + + Conditional formats for "%1" + + + + determining row count... + + + + %1 - %2 of >= %3 + + + + %1 - %2 of %3 + %1 - %2 av %3 + + + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. + + + + Delete Records + + + + Duplicate records + + + + Duplicate record + + + + Ctrl+" + + + + Adjust rows to contents + + + + Error deleting record: +%1 + Fel när post skulle tas bort: +%1 + + + Please select a record first + Välj en post först + + + Please choose a new encoding for all tables. + + + + Please choose a new encoding for this table. + + + + %1 +Leave the field empty for using the database encoding. + + + + This encoding is either not valid or not supported. + + + + %1 replacement(s) made. + + + + + TableBrowserDock + + New Data Browser + + + + Rename Data Browser + + + + Close Data Browser + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + + + VacuumDialog + + Please select the objects to compact: + Ange objekt att komprimera: + + + Warning: Compacting the database will commit all changes you made. + Varning: Komprimering av databasen kommer utföra alla ändringar du gjort. + + + Compact Database + Komprimera databas + + + Warning: Compacting the database will commit all of your changes. + + + + Please select the databases to co&mpact: + + + + diff --git a/src/translations/sqlb_tr.ts b/src/translations/sqlb_tr.ts index 9b586f96d..69880e7a2 100644 --- a/src/translations/sqlb_tr.ts +++ b/src/translations/sqlb_tr.ts @@ -18,39 +18,6 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> <html> <head /> <body> <p> DB Browser for SQLite, SQLite veritabanı dosyaları oluşturmak, tasarlamak ve düzenlemek için kullanılan açık kaynak kodlu, ücretsiz bir araçtır. </p> <p> 'Mozilla Kamu Lisansı Sürüm 2' ve 'GNU Genel Kamu Lisansı Sürüm 3 veya üstü' olmak üzere iki lisansa sahiptir. Bu lisansların koşulları çerçevesinde yazılımı düzenleyebilir veya yeniden dağıtabilirsiniz. </p> <p> Detaylar için, lütfen <a href="http://www.gnu.org/licenses/gpl.html" >http://www.gnu.org/licenses/gpl.html</a > ve <a href="https://www.mozilla.org/MPL/2.0/index.txt" >https://www.mozilla.org/MPL/2.0/index.txt</a > adreslerini ziyaret ediniz. </p> <p> Bu yazılım hakkında detaylı bilgi için lütfen internet sitemizi ziyaret ediniz: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a> </p> <p> <span style=" font-size:small;" >Bu yazılım GPL/LGPL lisansına sahip Qt Araç Kitini (<a href="http://qt-project.org/" ><span style=" font-size:small;">http://qt-project.org/</span></a>) kullanmaktadır.</span> <br /> <span style=" font-size:small;">Lisans koşulları ve bilgiler için </span ><a href="http://qt-project.org/doc/qt-5/licensing.html" ><span style=" font-size:small;" >http://qt-project.org/doc/qt-5/licensing.html</span ></a ><span style=" font-size:small;"> adresini ziyaret ediniz.</span > </p> <p> <span style=" font-size:small;" > Bu yazılım ayrıca, Mark James tarafından hazırlanan, 'Creative Commons Attribution 2.5 veya 3.0' lisansına sahip Silk ikon setini kullanmaktadır. <br />Detaylar için </span ><a href="http://www.famfamfam.com/lab/icons/silk/" ><span style=" font-size:small;" >http://www.famfamfam.com/lab/icons/silk/</span ></a ><span style=" font-size:small;"> adresini ziyaret ediniz.</span> </p> </body> </html> - - <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> for details.</p><p>For more information on this program please visit our website at: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - <html><head/><body><p>SQLite DB Browser, SQLite veritabanlarını tasarlamak ve düzenlemek için kullanılan, açık kaynak kodlu, ücretsiz bir görsel araçtır.</p><p>Bu program 'Mozilla Ortak Lisans Versiyon 2' altında lisanslanmasının yanı sıra 'GNU Genel Ortak Lisansı Versiyon 3 veya üzeri' lisansa sahiptir. Bu programı, lisans koşulları çerçevesinde değiştirebilir ve yeniden dağıtabilirsiniz.</p><p>Detaylı bilgiler için <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> ve <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> adreslerine bakabilirsiniz.</p><p>Program üzerine daha fazla bilgiye ulaşmak için web sitemizi ziyaret edebilirsiniz: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">Bu program belirtilen adresteki GPL/LGPL Qt Toolkit kullanmaktadır: </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Lisans koşulları için şurayı ziyaret edin: </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"></span></p><p><span style=" font-size:small;">Ayrıca bu program, Mark James tarafından sağlanan Creative Commons Attribution 2.5 ve 3.0 lisansına sahip Silk ikon setini kullanmaktadır.<br/>Detaylar için: </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"></span></p></body></html> - - - - SQLCipher Version %1 (based on SQLite %2) - - - - - Version - Versiyon - - - - Built for %1, running on %2 - %1 için derlendi, %2 üzerinde çalışıyor - - - - Qt Version - Qt Versiyonu - - - SQLCipher Version - SQLCipher Versiyonu - - - - SQLite Version - SQLite Versiyonu - AddRecordDialog @@ -152,96 +119,151 @@ Application - - Usage: %1 [options] [db] + + Possible command line arguments: + Muhtemel komut satırı argümanları: + + + + The user settings file location is replaced with the argument value instead of the environment variable value. + + + + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + + + + + Usage: %1 [options] [<database>|<project>] - Kullanım: %1 [opsiyonlar] [veri tabanı] - + - - Possible command line arguments: - Muhtemel komut satırı argümanları: + + -h, --help Show command line options + + + + + -q, --quit Exit application after running scripts + + + + + -s, --sql <file> Execute this SQL file after opening the DB + - - -h, --help Show command line options - -h, --help Komut satırı seçeneklerini gösterir + + -t, --table <table> Browse this table after opening the DB + - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [file] veritabanını açtıktan sonra SQL dosyasını yürüt + + -R, --read-only Open database in read-only mode + - - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [dosya] Veritabanını açtıktan sonra belirtilen SQL dosyasını çalıştırır + + -S, --settings <settings_file> + - - -t, --table [table] Browse this table after opening the DB - -t, --table [tablo] Veritabanını açtıktan sonra belirtilen tabloyu görüntüler + + Run application based on this settings file + - - -q, --quit Exit application after running scripts - -q, --quit Scriptleri çalıştırdıktan sonra programı kapatır + + -o, --option <group>/<setting>=<value> + - - -R, --read-only Open database in read-only mode - -R, --read-only Veritabanını salt okunur modda açar + + Run application with this setting temporarily set to value + - - -o, --option [group/setting=value] Run application with this setting temporarily set to value - -o, --option [grup/ayar=değer] Programı geçici olarak ayar için belirtilen değerle çalıştırır + + -O, --save-option <group>/<setting>=<value> + - - -O, --save-option [group/setting=value] Run application saving this value for this setting - -O, --save-option [grup/ayar=değer] Uygulamayı, ayara belirtilen değeri kaydederek çalıştırır + + Run application saving this value for this setting + - - -v, --version Display the current version - -v, --version Geçerli versiyonu gösterir + + -v, --version Display the current version + - - [file] Open this SQLite database - [dosya] Belirtilen SQLite veritabanını açar + + <database> Open this SQLite database + - - This is DB Browser for SQLite version %1. - DB Browser for SQLite versiyon %1. + + <project> Open this project file (*.sqbpro) + - + The -s/--sql option requires an argument -s/--sql opsiyonu bir argüman gerektirir - + The file %1 does not exist %1 dosyası mevcut değil - + The -t/--table option requires an argument -t/--table opsiyonu bir argüman gerektirir - + + The -S/--settings option requires an argument. The option is ignored. + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value -o/--option ve -O/--save-option opsiyonları grup/ayar=değer formatında bir argüman gerektirir - + Invalid option/non-existant file: %1 Geçersiz seçenek veya mevcut olmayan dosya: %1 + + + SQLite Version + SQLite Versiyonu + + + + SQLCipher Version %1 (based on SQLite %2) + + + + + DB Browser for SQLite Version %1. + + + + + Built for %1, running on %2 + %1 için derlendi, %2 üzerinde çalışıyor + + + + Qt Version %1 + + CipherDialog @@ -315,10 +337,6 @@ Raw key Ham anahtar - - Page &size - &Sayfa boyutu - Please set a key to encrypt the database. @@ -392,31 +410,41 @@ Bu veritabanı için herhangi bir başka ayar daha yapılmışsa, bu bilgileri d + .NET DateTime.Ticks to date + + + + Julian day to date Julian day tipinden tarih tipine - + Unix epoch to local time Unix epoch tipinden yerel zaman tipine - + Date as dd/mm/yyyy dd/mm/yyyy tarih formatı - + Lower case Küçük harf - + + Binary GUID to text + + + + Custom display format must contain a function call applied to %1 Özel görüntüleme formatı, %1 için uygulanan fonksiyon çağrısı içermelidir - + Error in custom display format. Message from database engine: %1 @@ -425,7 +453,7 @@ Bu veritabanı için herhangi bir başka ayar daha yapılmışsa, bu bilgileri d %1 - + Custom display format must return only one column but it returned %1. Özel görüntüleme formatı sadece bir sütun döndürmeli: %1. @@ -440,22 +468,22 @@ Bu veritabanı için herhangi bir başka ayar daha yapılmışsa, bu bilgileri d Küsüratsız sayı - + Unix epoch to date Unix epoch tipinden tarih tipine - + Upper case Büyük harf - + Windows DATE to date Windows DATE tipinden tarih tipine - + Custom Özel @@ -582,173 +610,155 @@ Bu veritabanı için herhangi bir başka ayar daha yapılmışsa, bu bilgileri d DBBrowserDB - no error - hata yok - - - + Please specify the database name under which you want to access the attached database Lütfen veritabanının ismini erişmek istediğiniz bağlı veritabanının altında belirtin - + Invalid file format Geçersiz dosya formatı - + Do you want to save the changes made to the database file %1? %1 veritabanı dosyasında yaptığınız değişiklikleri kaydetmek istiyor musunuz? - + Exporting database to SQL file... veritabanı, SQL dosyası olarak dışa aktarılıyor... - - + + Cancel İptal - + Executing SQL... SQL yürütülüyor... - + Action cancelled. İşlem iptal edildi. - Error in statement #%1: %2. -Aborting execution. - Belirtilen ifadelerde hata var: #%1: %2. Yürütme işlemi iptal edildi. - - - renameColumn: cannot find table %1. - Sütunu Yeniden Adlandırma: %1 tablosu bulunamadı. - - - - This database has already been attached. Its schema name is '%1'. - Bu veritabanı zaten mevcut ve şemasının ismi '%1'. - - - + Do you really want to close this temporary database? All data will be lost. Gerçekten geçici veritabanını kapatmak istiyor musunuz? Bütün veriler kaybedilecek. - + Database didn't close correctly, probably still busy Veritabanı doğru bir şekilde kapatılamadı, muhtemelen hâlâ kullanımda - + The database is currently busy: Veritabanı şu anda meşgul: - + Do you want to abort that other operation? Diğer işlemi iptal etmek istiyor musunuz? - - + + No database file opened Hiçbir veritabanı dosyası açılmamış - - + + Error in statement #%1: %2. Aborting execution%3. Belirtilen ifadede hata oluştu: #%1: %2 Yürütme durduruluyor %3. - - + + and rolling back ve işlem geri alınıyor - + didn't receive any output from %1 %1 sorgusundan herhangi bir çıktı alınamadı - + could not execute command: %1 komut işletilemedi: %1 - + Cannot delete this object Bu obje silinemiyor - + Cannot set data on this object Bu objeye veri atanamıyor - - + + A table with the name '%1' already exists in schema '%2'. '%2' şemasında '%1' isimli tablo zaten mevcut. - + No table with name '%1' exists in schema '%2'. '%2' şeması içerisinde '%1' isminde bir tablo yok. - - + + Cannot find column %1. %1 sütunu bulunamadı. - + Creating savepoint failed. DB says: %1 Kayıt noktası oluşturulamadı. Veritabanı mesajı: %1 - + Renaming the column failed. DB says: %1 Sütun yeniden adlandırılamadı. Veritabanı motoru mesajı: %1 - - + + Releasing savepoint failed. DB says: %1 Kayıt noktası serbest bırakılamadı. Veritabanı motoru mesajı: %1 - + Creating new table failed. DB says: %1 Veri tabanı oluşturulamadı. Veritabanı mesajı: %1 - + Copying data to new table failed. DB says: %1 Yeni tabloya veri kopyalanamadı. Veritabanı mesajı: %1 - + Deleting old table failed. DB says: %1 Eski tablolar silinemedi: Veritabanı mesajı: %1 - + Error renaming table '%1' to '%2'. Message from database engine: %3 @@ -757,33 +767,12 @@ Veritabanı motoru mesajı: %3 - + could not get list of db objects: %1 veritabanı objelerinin listesi alınamadı: %1 - renameColumn: cannot find column %1. - Sütunu Yeniden Adlandırma: %1 sütunu bulunamadı. - - - renameColumn: creating savepoint failed. DB says: %1 - Sütunu Yeniden Adlandırma: Kayıt noktası oluşturma başarısız. veritabanı mesajı: %1 - - - renameColumn: creating new table failed. DB says: %1 - Sütunu Yeniden Adlandırma: Yeni tablo oluşturma başarısız. veritabanı mesajı: %1 - - - renameColumn: copying data to new table failed. DB says: -%1 - Sütunu Yeniden Adlandırma: Verileri yeni veritabanına kopyalama başarısız. veritabanı mesajı: %1 - - - renameColumn: deleting old table failed. DB says: %1 - Sütunu Yeniden Adlandırma: Eski veritabanı silme işlemi başarısız. veritabanı mesajı: %1 - - - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -792,60 +781,27 @@ Veritabanı motoru mesajı: - renameColumn: releasing savepoint failed. DB says: %1 - Sütun Yeniden Adlandırma: Kayıt noktası işlemi sonlandırılırken hata oluştu. veritabanı mesajı: %1 - - - Error renaming table '%1' to '%2'.Message from database engine: -%3 - Tablo '%1' isminden '%2' ismine yeniden adlandırılırken hata oluştu. veritabanı motorunun mesajı: %3 - - - ... <string can not be logged, contains binary data> ... - ... <dize ikili veri içeriyor, günlüğe yazılamadı> ... - - - + could not get list of databases: %1 veri tabanı listesi alınamadı: %1 - + Error loading extension: %1 Eklenti yüklenirken hata oluştu: %1 - + could not get column information sütun bilgisi alınamadı - unknown object type %1 - bilinmeyen nesne tipi %1 - - - could not get list of db objects: %1, %2 - veritabanı nesnelerinin listesi alınamadı: %1, %2 - - - could not get types - tipler alınamadı - - - didn't receive any output from pragma %1 - %1 pragmasından herhangi bir çıktı alınamadı - - - could not execute pragma command: %1, %2 - pragma komutu yürütülemedi: %1, %2 - - - + Error setting pragma %1 to %2: %3 Belirtilen pragma ayarlanırken hata oluştu: %1 > %2: %3 - + File not found. Dosya bulunamadı. @@ -878,12 +834,12 @@ Veritabanı motoru mesajı: Veritabanı - + Browsables Görüntülenebilir olanlar - + All Tümü @@ -893,22 +849,22 @@ Veritabanı motoru mesajı: Geçici - + Tables (%1) Tablolar (%1) - + Indices (%1) İndisler (%1) - + Views (%1) Görünümler (%1) - + Triggers (%1) Tetikleyiciler (%1) @@ -921,54 +877,54 @@ Veritabanı motoru mesajı: Veritabanı hücresini düzenle - + Mode: Mod: - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. Bu, hücre düzenleyicisi için desteklenen modların listesidir. Geçerli hücrenin verilerini görüntülemek veya düzenlemek için bir mod seçin. - + RTL Text Sağdan Sola Okunan Metin - - + + Image Görüntü - + JSON JSON - + XML XML - - + + Automatically adjust the editor mode to the loaded data type Düzenleyici modunu otomatik olarak yüklenen veri tipine ayarlar - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. Bu onay kutusu, editör modunun otomatik olarak değiştirilmesini etkinleştirir veya devre dışı bırakır. Bu kutucuk işaretliyken, yeni bir hücre seçildiğinde veya yeni veriler içe aktarıldığında, mod algılanan veri türüne göre ayarlanır. Daha sonra editör modunu manuel olarak değiştirebilirsiniz. Hücreler arasında hareket ederken bu manuel modu korumak isterseniz, kutucuğun işaretini kaldırın. - + Auto-switch Otomatik geçiş - + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. @@ -977,360 +933,298 @@ Errors are indicated with a red squiggle underline. Hatalar, kırmızı dalgalı alt çizgiyle belirtilir. - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. Qt editör, varsayılan metin editörü tarafından desteklenmeyen sağdan sola okunan dillde yazılmış betikleri için kullanılır. - + Open preview dialog for printing the data currently stored in the cell Şu anda hücrede saklanan veriyi yazdırmak için önizleme penceresini aç - + Auto-format: pretty print on loading, compact on saving. Otomatik format: yüklenirken aşamasında kaliteli baskı, kayıt açısından da tasarrufludur. - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. Etkinleştirildiğinde, otomatik biçimlendirme özelliği yükleme sırasında verileri biçimlendirir, metni satırlara böler ve maksimum okunabilirlik için girintili yapar. Veri kaydederken otomatik biçimlendirme özelliği, satır sonu karakterlerini ve gereksiz boşlukları kaldırarak verileri sıkıştırır. - + Word Wrap Kelime Kaydırma - + Wrap lines on word boundaries Kelime sınırlarında kelimeyi kaydırır - - + + Open in default application or browser Varsayılan program veya görüntüleyicide aç - + Open in application Uygualamada aç - + The value is interpreted as a file or URL and opened in the default application or web browser. Değe,r bir dosya veya URL olarak yorumlanır ve varsayılan uygulamada veya web tarayıcısında açılır. - + Save file reference... Dosya referansını kaydet... - + Save reference to file Referansı dosyaya kaydet - - + + Open in external application Harici bir programda aç - + Autoformat Otomatik format - + &Export... D&ışa aktar... - - + + &Import... &İçe aktar... - - + + Import from file Dosyadan içe aktar - - + + Opens a file dialog used to import any kind of data to this database cell. Veritabanı hücresine herhangi bir tipte veri yüklemek için bir dosya iletişim kutusu açar. - + Export to file Dosyaya aktar - + Opens a file dialog used to export the contents of this database cell to a file. Veritabanı hücresinin içeriğini bir dosyaya aktarmak için kullanılan bir dosya iletişim kutusu açar. - - + Print... Yazdır... - - Open preview dialog for printing displayed image - Görüntülenen resmi yazdırmak için önizleme penceresini aç - - - - + Ctrl+P - + Open preview dialog for printing displayed text Görüntülenen yazıyı yazdırmak için önizleme penceresini aç - + Copy Hex and ASCII Onaltılık ve ASCII değerini kopyala - + Copy selected hexadecimal and ASCII columns to the clipboard Seçilen onaltılık ve ASCII sütunlarını panoya kopyala - + Ctrl+Shift+C - Import text - Metin aktar - - - Opens a file dialog used to import text to this database cell. - veritabanı hücresine metin aktarmak için dosya diyaloğunu açar. - - - &Import - &İçe Aktar - - - Export text - Metni dışa aktar - - - Opens a file dialog used to export the contents of this database cell to a text file. - veritabanı hücresindeki metni metin dosyası olarak dışa aktarmak için dosya diyaloğunu açar. - - - &Export - &Dışa Aktar - - - + Set as &NULL &NULL olarak ayarla - + Apply data to cell Veriyi hücreye uygula - + This button saves the changes performed in the cell editor to the database cell. Bu buton, hücre editöründe yapılan değişiklikleri veritabanı hücresine kaydeder. - + Apply Uygula - + Text Metin - + Binary İkili - Clear cell data - Hücredeki veriyi temizle - - - + Erases the contents of the cell Hücre içeriğini siler - - &Clear - &Temizle - - - <html><head/><body><p><span style=" font-weight:600; color:#c00000;">Warning: Editing binary content in text mode may result in corrupted data!</span></p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#c00000;">Uyarı: İkili veriyi metin modunda düzenlemek verinin bozulmasına neden olabilir!</span></p></body></html> - This area displays information about the data present in this database cell Bu alan veritabanı hücresinin içindeki içerik hakkında bilgileri görüntüler - + Type of data currently in cell Şu anda hücrenin içinde bulunan veri tipi - + Size of data currently in table Şuan da tablonun içinde bulunan verinin boyutu - Choose a file - Dosya seçiniz - - - Text files(*.txt);;Image files(%1);;All files(*) - Metin dosyaları(*.txt);;Resim dosyaları(%1);;Tüm dosyalar(*) - - - + Choose a filename to export data Veriyi dışa aktarmak için dosya ismi seçiniz - Text files(*.txt);;All files(*) - Metin dosyaları(*.txt);;Tüm dosyalar(*) - - - - + + Image data can't be viewed in this mode. Imaj verisi bu modda görüntülenemiyor. - - + + Try switching to Image or Binary mode. Görüntü veya İkili mod arasında geçiş yapın. - - + + Binary data can't be viewed in this mode. İkili veri bu modda görüntülenemiyor. - - + + Try switching to Binary mode. İkili veri moduna geçmeyi deneyin. - - + + Image files (%1) Görüntü dosyaları (%1) - + Binary files (*.bin) İkili dosyalar (*.bin) - + Choose a file to import İçe aktarmak için dosya seçiniz - + %1 Image %1 imajı - + Invalid data for this mode Bu mod için geçersiz veri - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? Hücre geçersiz %1 verisi içeriyor. Sebep: %2. Bu değişikliği hücreye gerçekten uygulamak istiyor musunuz? - + Type of data currently in cell: %1 Image Şu anda hücrenin içinde bulunan veri tipi: %1 Imajı - + %1x%2 pixel(s) %1x%2 piksel - + Type of data currently in cell: NULL Şu anda hücrenin içinde bulunan veri tipi: NULL - + Type of data currently in cell: Valid JSON Şu anda hücrenin içinde bulunan veri tipi: Doğrulanmış JSON - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. - Veriler geçici bir dosyaya kaydedildi ve varsayılan uygulama ile açıldı. Artık dosyayı düzenleyebilir ve hazır olduğunuzda, kaydedilen yeni verileri hücre editörüne uygulayabilir veya değişiklikleri iptal edebilirsiniz. + + Couldn't save file: %1. + Dosya kaydedilemedi: %1. - Type of data currently in cell: Null - Şuan da hücresinin içinde bulunan verinin tipi: Boş + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + - - + + Type of data currently in cell: Text / Numeric Şuan da hücresinin içinde bulunan verinin tipi: Metin / Nümerik - - - + + + %n character(s) %n karakter - Type of data currently in cell: Image - Şuan da hücresinin içinde bulunan verinin tipi: Resim - - - %1x%2 pixel - %1x%2 piksel - - - + Type of data currently in cell: Binary Şuan da hücresinin içinde bulunan verinin tipi: İkili Veri - - + + %n byte(s) %n bayt @@ -1339,27 +1233,11 @@ Hatalar, kırmızı dalgalı alt çizgiyle belirtilir. EditIndexDialog - - Create New Index - Yeni İndeks Oluştur - &Name &İsim - - &Columns - &Sütunlar - - - Column - Sütun - - - Use in Index - İndeksin içinde Kullan - Order @@ -1466,22 +1344,6 @@ Hatalar, kırmızı dalgalı alt çizgiyle belirtilir. Fields Alanlar - - Add field - Alan Ekle - - - Remove field - Alanı kaldır - - - Move field up - Alanı yukarı taşı - - - Move field down - Alanı aşağı taşı - Add @@ -1513,210 +1375,206 @@ Hatalar, kırmızı dalgalı alt çizgiyle belirtilir. En aşağı taşı - - + + Name İsim - - + + Type Tip - + NN NN - + Not null NULL Olamaz - + PK Birincil Anahtar - - Primary key - Birincil Anahtar + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + - + AI Otomatik Arttırma - + Autoincrement Otomatik Arttırma - + U Benzersiz - - - + + + Unique Benzersiz - + Default Varsayılan - + Default value Varsayılan değer - - - + + + Check Kontrol - + Check constraint Kısıtlama Kontrol - + Collation Karşılaştırma - - - + + + Foreign Key Yabancı Anahtar - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + Constraints Kısıtlar - + Add constraint Kısıt ekle - + Remove constraint Kısıtı kaldır - + Columns Sütunlar - + SQL SQL - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> <html> <head /> <body> <p> <span style=" font-weight:600; color:#ff0000;">Uyarı: </span>Bu tablo tanımında ayrıştırıcının tam olarak anlayamadığı bir şey var. Bu tabloyu değiştirmek ve kaydetmek sorunlara neden olabilir. </p> </body> </html> - - + + Primary Key Birincil Anahtar - + Add a primary key constraint Birinci anahtar kısıtlaması ekle - + Add a foreign key constraint Yabancı anahtar kısıtı ekle - + Add a unique constraint Benzersiz kısıtı ekle - + Add a check constraint Kontrol kısıtı ekle - - + + There can only be one primary key for each table. Please modify the existing primary key instead. Her tabloda yalnızca bir birincil anahtar bulunabilir. Mevcut birincil anahtarı düzenlemeyi denedin. - + Error creating table. Message from database engine: %1 Tablo oluşturma hatası. veritabanı motorunun mesajı: %1 - + There already is a field with that name. Please rename it first or choose a different name for this field. Bu isme sahip alan zaten var. Lütfen bu alan için farklı bir isim kullanın veya aynı isme sahip alanı yeniden adlandırın. - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. Tablonuzun en az bir satırında boş bırakılmış alan var. Bu sebeple bu özelliği etkinleştirmek imkansız. Lütfen ilk önce tablonuzdaki veriyi değiştirin. - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. Tablonuzun en az bir satırında tamsayı dışında değer içeren alan var. Bu sebeğle otomatik arttır özelliğini etkinleştirmek imkansız. Lütfen ilk önce tablonuzdaki veriyi değiştirin. - + Column '%1' has duplicate data. '%1' sütununda yinelenen veriler var. - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. Şu anda 'Benzersiz' kısıtı eklenmesi imkansız.'Benzersiz' kısıtını ekleyebilmek için lütfen yinelenen değerleri silin. - Column `%1` has no unique data. - - `%1` sütununda benzersiz veri yok - - - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. Bu sütun%1 tablosundaki yabancı bir anahtar tarafından referans alınıyor, bu nedenle adı değiştirilemez. - This makes it impossible to set this flag. Please change the table data first. - Bu sebeple bu özelliği etkinleştirmek imkansız. Lütfen ilk önce tablonuzdaki veriyi değiştirin. - - - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. Gerçekten '%1' alanını silmek istediğinize emin misiniz? Bu alanda mevcut bütün verilerinizi kaybedeceksiniz. - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled @@ -1732,18 +1590,6 @@ All data currently stored in this field will be lost. Export data as CSV Veriyi CSV olarak dışa aktar - - &Table(s) - &Tablo(lar) - - - &Column names in first line - &Sütun isimleri ilk satırda - - - Field &separator - Alan &ayracı - Tab&le(s) @@ -1833,10 +1679,6 @@ All data currently stored in this field will be lost. Choose a filename to export data Verileri dışarı aktarmak için dosya ismi seçiniz - - Text files(*.csv *.txt) - Metin dosyaları(*.csv *.txt) - Export data as JSON @@ -1875,10 +1717,6 @@ All data currently stored in this field will be lost. Export SQL... SQL dosyasını dışa aktar... - - &Table(s) - &Tablo(lar) - Tab&le(s) @@ -1929,19 +1767,11 @@ All data currently stored in this field will be lost. Overwrite old schema (DROP TABLE, then CREATE TABLE) Eski şemanın üzerine yaz (DROP TABLE, then CREATE TABLE) - - New INSERT INTO syntax (multiple rows in VALUES) - Çok satırlı veri girişi için yeni 'INSERT INTO' söz dizimini ekle - Export schema only Sadece şemayı dışa aktar - - Please select at least 1 table. - En az 1 tane tablo seçiniz. - Please select at least one table. @@ -1952,10 +1782,6 @@ All data currently stored in this field will be lost. Choose a filename to export Dışa aktarmak için dosya ismi seçiniz - - Text files(*.sql *.txt) - Metin dosyaları(*.sql *.txt) - Export completed. @@ -1971,7 +1797,7 @@ All data currently stored in this field will be lost. ExtendedScintilla - + Ctrl+H @@ -1982,22 +1808,22 @@ All data currently stored in this field will be lost. - + Ctrl+P - + Find... Bul... - + Find and Replace... Bul ve Değiştir... - + Print... Yazdır... @@ -2005,137 +1831,135 @@ All data currently stored in this field will be lost. ExtendedTableWidget - + Use as Exact Filter Tam Filtre Olarak Kullan - + Containing İçersin - + Not containing İçermesin - + Not equal to Eşit değil - + Greater than Büyüktür - + Less than Küçüktür - + Greater or equal Büyük eşit - + Less or equal Küçük eşit - + Between this and... Şunların arasında... - + Regular expression Düzenli ifadeler (RegEx) - + Edit Conditional Formats... Koşullu Biçimleri Düzenle... - + Set to NULL NULL olarak ayarla - + + Cut + + + + Copy Kopyala - + Copy with Headers Üst Başlıklarla Kopyala - + Copy as SQL SQL olarak Kopyala - + Paste Yapıştır - + Print... Yazdır... - + Use in Filter Expression Filtre İfadesinde Kullan - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? Pano içeriği seçilen aralıktan daha büyük. Yine de eklemek istiyor musunuz? - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. <p> Tüm veriler yüklenmedi. <b>Tüm satırları seçmeden önce tüm verileri yüklemek istiyor musunuz?</b> </p> <p></p> <p> <b>Hayır</b> olarak cevaplamak, tüm verileri yüklemeyecek ve seçim işlemini uygulanmayacak. <br /> <b>Evet</b> seçeneği biraz zaman alabilir ama seçim işlemini gerçekleştirecektir. </p> Uyarı: Tüm verilerin yüklenmesi büyük tablolar için büyük miktarda bellek gerektirebilir. - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. Seçim NULL olarak ayarlanamıyor. %1 sütununda NOT NULL kısıtlaması var. - FileDialog - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - SQLite veritabanı dosyaları (*.db *.sqlite *.sqlite3 *.db3);;Tüm dosyalar (*) - - - - FileExtensionManager + FileExtensionManager File Extension Manager @@ -2454,6 +2278,39 @@ x~y Aralık: değerler x ve y arasında Yabancı anahtar hükümleri (ON UPDATE, ON DELETE vb.) + + ImageViewer + + + Image Viewer + + + + + Reset the scaling to match the original size of the image. + + + + + Set the scaling to match the size of the viewport. + + + + + Print... + Yazdır... + + + + Open preview dialog for printing displayed image + Görüntülenen resmi yazdırmak için önizleme penceresini aç + + + + Ctrl+P + + + ImportCsvDialog @@ -2461,10 +2318,6 @@ x~y Aralık: değerler x ve y arasında Import CSV file CSV dosyasını içe aktar - - &Table name - &Tablo ismi - Table na&me @@ -2492,7 +2345,7 @@ x~y Aralık: değerler x ve y arasında - + Tab Tab karakteri @@ -2639,26 +2492,6 @@ x~y Aralık: değerler x ve y arasında Select All Tümünü Seç - - Inserting data... - Veri ekleniyor... - - - Cancel - İptal - - - There is already a table of that name and an import into an existing table is only possible if the number of columns match. - Zaten aynı isimde tablo mevcut. Varolan tablonun üstüne yazmak ancak sütunların sayısı eşitse mümkün olabilir. - - - There is already a table of that name. Do you want to import the data into it? - Zaten aynı isimde tablo mevcut. Verileri bu tablonun içine aktarmak istiyor musunuz? - - - Import completed - İçe aktarma tamamlandı - There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. @@ -2685,16 +2518,17 @@ x~y Aralık: değerler x ve y arasında CSV İçe Aktarma - - Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. - '%1' dosyasını içe aktarmak %2ms sürdü. %3ms satır fonksiyonunda harcandı. + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + - Missing field for record %1 - %1 kayıtı için eksik alan + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. + '%1' dosyasını içe aktarmak %2ms sürdü. %3ms satır fonksiyonunda harcandı. - + Inserting row failed: %1 Satır ekleme başarısız: %1 @@ -2707,892 +2541,444 @@ x~y Aralık: değerler x ve y arasında SQLite DB Browser - Database &Structure - Veritabanı &Yapısı - - - + toolBar1 toolBar1 - &Browse Data - &Verileri Görüntüle + + Opens the SQLCipher FAQ in a browser window + SQLCipher Hakkında SSS bölümünü tarayıcı penceresinde açar - Table: - Tablo: + + Export one or more table(s) to a JSON file + Bir veya daha fazla tabloyu JSON dosyası olarak dışa aktarın - Select a table to browse data - Verileri görüntülemek için tablo seçiniz + + Open an existing database file in read only mode + Mevcut bir veritabanı dosyasını salt okunur modda açar - Use this list to select a table to be displayed in the database view - Veritabanı görünümünde gösterilecek tabloyu seçmek için bu listeyi kullanın + + &File + &Dosya - Refresh the data in the selected table. - Seçilen tablodaki verileri yenileyin. + + &Import + &İçe Aktar - This button refreshes the data in the currently selected table. - Bu buton, seçilen tablodaki verileri yeniler. + + &Export + &Dışa Aktar - - Opens the SQLCipher FAQ in a browser window - SQLCipher Hakkında SSS bölümünü tarayıcı penceresinde açar + + &Edit + Düz&enle - - Export one or more table(s) to a JSON file - Bir veya daha fazla tabloyu JSON dosyası olarak dışa aktarın + + &View + &Görünüm - F5 - + + &Help + &Yardım - Clear all filters - Tüm filtreleri temizle + + DB Toolbar + Veritabanı Araç Çubuğu - Insert a new record in the current table - Geçerli tabloya yeni kayıt ekle + + Edit Database &Cell + Veritabanı Hü&cresini Düzenle - This button creates a new, empty record in the database - Bu buton, veritabanında yeni bir boş kayıt oluşturur. + + DB Sche&ma + Veritabanı Şe&ması - New Record - Yeni Kayıt + + &Remote + &Uzak Bilgisayar - Delete the current record - Geçerli kaydı sil + + + Execute current line + Geçerli satırı yürüt - This button deletes the record currently selected in the database - Bu buton, veritabanında seçilen geçerli kayıtları siler + + This button executes the SQL statement present in the current editor line + Bu buton, geçerli editör satırında bulunan SQL ifadesini yürütür - Delete Record - Kaydı Sil + + Shift+F5 + - This is the database view. You can double-click any record to edit its contents in the cell editor window. - Bu veritabanı görünümüdür. Herhangi kayda çift tıklayarak hücre içeriğini hücre editör penceresinde düzenleyebilirsiniz. + + Sa&ve Project + Projeyi &Kaydet - <html><head/><body><p>Scroll to the beginning</p></body></html> - <html><head/><body><p>Başa sürükle</p></body></html> + + User + Kullanıcı - <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - <html><head/><body><p>Bu butona basıldığında üstteki tablo görünümünün başlangıcına kaydırılır.</p></body></html> + + Application + Uygulama - |< - |< + + &Clear + &Temizle - Scroll 100 records upwards - 100 kayıt kadar yukarı kaydır + + &New Database... + Ye&ni Veritabanı... - <html><head/><body><p>Clicking this button navigates 100 records upwards in the table view above.</p></body></html> - <html><head/><body><p>Bu butona basıldığında üstteki tablo görünümünün 100 kayıt kadar yukarısına kaydırılır.</p></body></html> + + + Create a new database file + Yeni bir veritabanı dosyası oluştur - < - < + + This option is used to create a new database file. + Bu seçenek yeni bir veritabanı dosyası oluşturmak için kullanılır. - 0 - 0 of 0 - 0 - 0 / 0 + + Ctrl+N + - <html><head/><body><p>Scroll 100 records downwards</p></body></html> - <html><head/><body><p>100 kayıt kadar aşağı kaydır</p></body></html> + + + &Open Database... + &Veritabanı Aç... - <html><head/><body><p>Clicking this button navigates 100 records downwards in the table view above.</p></body></html> - <html><head/><body><p>Bu butona basıldığında üstteki tablo görünümünün 100 kayıt kadar aşağısına kaydırılır.</p></body></html> + + + + + + Open an existing database file + Mevcut veritabanı dosyasını aç - > - > + + + + This option is used to open an existing database file. + Bu seçenek mevcut veritabanı dosyasını açmak için kullanılır. - Scroll to the end - Sona sürükle + + Ctrl+O + - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Bu butona basıldığında üstteki tablo görünümünün en sonuna kaydırılır.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> + + &Close Database + Veritabanı &Kapat - >| - >| + + + Ctrl+W + - <html><head/><body><p>Click here to jump to the specified record</p></body></html> - <html><head/><body><p>İstediğiniz kayda atlamak için buraya tıklayın</p></body></html> + + + Revert database to last saved state + Veritabanını en son kaydedilen duruma döndür - <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - <html><head/><body><p>Bu buton belirtilen kayıt numarasına gitmek için kullanılır.</p></body></html> + + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. + Bu seçenek veritabanını en son kaydedilen durumuna döndürür. Geçerli kayıttan sonra yaptığınız tüm değişiklikler kaybolacaktır. - Go to: - Bu kayda gidin: + + + Write changes to the database file + Değişiklikleri veritabanı dosyasına kaydet - Enter record number to browse - Görüntülemek için kayıt numarasını giriniz + + This option is used to save changes to the database file. + Bu seçenek değişiklikleri veritabanı dosyasına kaydetmenizi sağlar. - Type a record number in this area and click the Go to: button to display the record in the database view - Bu alana veritabanı görünümünde görüntülemek istediğiniz kayıt numarasını giriniz ve Bu kayda gidin: butonuna tıklayınız + + Ctrl+S + - 1 - 1 + + Compact the database file, removing space wasted by deleted records + Veritabanı dosyasını genişletmek, silinen kayıtlardan dolayı meydana gelen boşlukları temizler - Edit &Pragmas - &Pragmaları Düzenleyin + + + Compact the database file, removing space wasted by deleted records. + Veritabanı dosyasını genişletmek, silinen kayıtlardan dolayı meydana gelen boşlukları temizler. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> + + E&xit + &Çıkış - None - None + + Ctrl+Q + - Full - Full + + Import data from an .sql dump text file into a new or existing database. + Verileri .sql uzantılı döküm dosyasından varolan veya yeni veritabanına aktarın. - Incremental - Incremental + + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. + Bu seçenek verileri .sql döküm dosyasından varolan veya yeni veritabanına aktarmanıza olanak sağlar. SQL dosyaları MySQL ve PostgreSQL dahil olmak üzere birçok veritabanı motorları tarafından oluştururlar. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> + + Open a wizard that lets you import data from a comma separated text file into a database table. + Virgülle ayrılmış metin dosyalarını veritabanınızın içine aktarmanızı sağlayan sihirbazı açar. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> + + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. + Virgülle ayrılmış metin dosyalarını veritabanınızın içine aktarmanızı sağlayan sihirbazı açar. CSV dosyaları çoğu veritabanı motorları ve elektronik tablo uygulamaları tarafından oluştururlar. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Foreign Keys</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Foreign Keys</span></a></p></body></html> + + Export a database to a .sql dump text file. + Veritabanını .sql döküm dosyası olarak dışa aktar. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> + + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. + Bu seçenek veritabanını .sql döküm dosyası olarak dışa aktarmanızı sağlar. SQL döküm dosyaları veritabanını, MySQL ve PostgreSQL dahil birçok veritabanı motorunda yeniden oluşturmak için gereken verilerin tümünü içerir. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> + + Export a database table as a comma separated text file. + Veritabanı tablosunu virgülle ayrılmış metin dosyası olarak dışa aktar. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> + + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. + Veritabanını virgülle ayrılmış metin dosyası olarak diğer veritabanı veya elektronik tablo uygulamalarına aktarmaya hazır olacak şekilde dışa aktarın. - Delete - Delete + + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database + Tablo Oluşturma sihirbazı, veritabanı için alanlarını ve ismini ayarlayabileceğiniz, yeni bir tablo oluşturmanızı sağlar - Truncate - Truncate + + + Delete Table + Tabloyu Sil - Persist - Persist + + Open the Delete Table wizard, where you can select a database table to be dropped. + Tablo Silme sihirbazı, seçtiğiniz tabloları silmenizi sağlar. - Memory - Memory + + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. + Tablo Düzenleme sihirbazı, varolan tablonuzu yeniden adlandırmanıza olanak sağlar. Ayrıca yeni alan ekleyebilir, silebilir hatta alanların ismini ve tipini de düzenleyebilirsiniz. - WAL - WAL + + Open the Create Index wizard, where it is possible to define a new index on an existing database table. + İndeks Oluşturma sihirbazı, varolan veritabanı tablosuna yeni indeks tanımlamanıza olanak sağlar. - Off - Off + + &Preferences... + &Tercihler... - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> + + + Open the preferences window. + Tercihler penceresini açar. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Locking Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Locking Mode</span></a></p></body></html> + + &DB Toolbar + &Veritabanı Araç Çubuğu - Normal - Normal + + Shows or hides the Database toolbar. + Veritabanı araç çubuğunu gösterir veya gizler. - Exclusive - Exclusive + + Shift+F1 + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> + + &Recently opened + En son açılanla&r - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> + + Ctrl+T + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> + + + Database Structure + This has to be equal to the tab title in all the main tabs + Veritabanı Yapısı - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> + + This is the structure of the opened database. +You can drag SQL statements from an object row and drop them into other applications or into another instance of 'DB Browser for SQLite'. + + Bu, açılan veritabanının yapısıdır. +SQL ifadelerini bir nesne satırından sürükleyip başka uygulamalara veya 'DB Browser for SQLite programının başka bir penceresine bırakabilirsiniz. + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> + + + Browse Data + This has to be equal to the tab title in all the main tabs + Veriyi Görüntüle - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> + + Un/comment block of SQL code + Kod bloğunu yorum satırına dönüştür/yorum satırını iptal et - Default - Default + + Un/comment block + Yorum satırına dönüştür/yorum satırını iptal et - File - File + + Comment or uncomment current line or selected block of code + Geçerli satırı veya kod bloğunu, yorum satırına dönüştür veya yorum satırını iptal et - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> + + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. + Geçerli satırı veya kod bloğunu, yorum satırına dönüştür veya yorum satırını iptal et. Hiç seçim yoksa tüm bloklar ilk satır baz alınarak değiştirilir. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL Auto Checkpoint</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL Auto Checkpoint</span></a></p></body></html> + + Ctrl+/ + - - Open an existing database file in read only mode - Mevcut bir veritabanı dosyasını salt okunur modda açar + + Stop SQL execution + SQL yürütmesini durdur - E&xecute SQL - SQL Kodunu &Çalıştır + + Stop execution + Yürütmeyi durdur - - &File - &Dosya + + Stop the currently running SQL script + Şu anda çalışan SQL betiğini durdur - - &Import - &İçe Aktar + + + Edit Pragmas + This has to be equal to the tab title in all the main tabs + Pragmaları Düzenle - - &Export - &Dışa Aktar + + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. + Uyarı: Bu pragma okunamaz ve bu değer çıkartıldı. Bu pragmayı yazmak, bir SQLite eklentisi tarafından sağlanan yeniden tanımlanmış bir LIKE'nin üzerine yazabilir. - - &Edit - Düz&enle + + + Execute SQL + This has to be equal to the tab title in all the main tabs + SQL kodunu yürüt - - &View - &Görünüm + + Recent Files + - - &Help - &Yardım - - - - DB Toolbar - Veritabanı Araç Çubuğu - - - - Edit Database &Cell - Veritabanı Hü&cresini Düzenle - - - - DB Sche&ma - Veritabanı Şe&ması - - - - &Remote - &Uzak Bilgisayar - - - - - Execute current line - Geçerli satırı yürüt - - - - This button executes the SQL statement present in the current editor line - Bu buton, geçerli editör satırında bulunan SQL ifadesini yürütür - - - - Shift+F5 - - - - - Sa&ve Project - Projeyi &Kaydet - - - SQL Log - SQL Günlüğü - - - &Show SQL submitted by - &Şunun tarafından gönderilen SQL kodunu göster: - - - - User - Kullanıcı - - - - Application - Uygulama - - - - &Clear - &Temizle - - - Plot - Plan - - - Columns - Sütun - - - X - X - - - Y - Y - - - _ - _ - - - Line type: - Çizgi Tipi: - - - Line - Çizgi - - - StepLeft - Sola Basamakla - - - StepRight - Sağa Basamakla - - - StepCenter - Merkeze Basamakla - - - Impulse - Kaydırmalı - - - Point shape: - Nokta Şekli: - - - Cross - Çarpı - - - Plus - Artı - - - Circle - Daire - - - Disc - Disk - - - Square - Kare - - - Diamond - Elmas - - - Star - Yıldız - - - Triangle - Üçgen - - - TriangleInverted - Ters Üçgen - - - CrossSquare - Çapraz Kare - - - PlusSquare - Kare İçinde Artı - - - CrossCircle - Daire İçinde Çarpı - - - PlusCircle - Daire İçinde Artı - - - Peace - Barış Simgesi - - - <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - <html><head/><body><p>Geçerli planı kaydedin...</p><p>Dosya formatı eklenti tarafından seçilmiş (png, jpg, pdf, bmp)</p></body></html> - - - Save current plot... - Geçerli planı kaydet... - - - DB Schema - Veritabanı Şeması - - - - &New Database... - Ye&ni Veritabanı... - - - - - Create a new database file - Yeni bir veritabanı dosyası oluştur - - - - This option is used to create a new database file. - Bu seçenek yeni bir veritabanı dosyası oluşturmak için kullanılır. - - - - Ctrl+N - - - - - - &Open Database... - &Veritabanı Aç... - - - - - - - - Open an existing database file - Mevcut veritabanı dosyasını aç - - - - - - This option is used to open an existing database file. - Bu seçenek mevcut veritabanı dosyasını açmak için kullanılır. - - - - Ctrl+O - - - - - &Close Database - Veritabanı &Kapat - - - - - Ctrl+W - - - - Revert Changes - Değişiklikleri Geri Al - - - - - Revert database to last saved state - Veritabanını en son kaydedilen duruma döndür - - - - This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. - Bu seçenek veritabanını en son kaydedilen durumuna döndürür. Geçerli kayıttan sonra yaptığınız tüm değişiklikler kaybolacaktır. - - - Write Changes - Değişiklikleri Kaydet - - - - - Write changes to the database file - Değişiklikleri veritabanı dosyasına kaydet - - - - This option is used to save changes to the database file. - Bu seçenek değişiklikleri veritabanı dosyasına kaydetmenizi sağlar. - - - - Ctrl+S - - - - Compact Database - Veritabanını Genişlet - - - - Compact the database file, removing space wasted by deleted records - Veritabanı dosyasını genişletmek, silinen kayıtlardan dolayı meydana gelen boşlukları temizler - - - - - Compact the database file, removing space wasted by deleted records. - Veritabanı dosyasını genişletmek, silinen kayıtlardan dolayı meydana gelen boşlukları temizler. - - - - E&xit - &Çıkış - - - - Ctrl+Q - - - - Database from SQL file... - SQL dosyasından veritabanı... - - - - Import data from an .sql dump text file into a new or existing database. - Verileri .sql uzantılı döküm dosyasından varolan veya yeni veritabanına aktarın. - - - - This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. - Bu seçenek verileri .sql döküm dosyasından varolan veya yeni veritabanına aktarmanıza olanak sağlar. SQL dosyaları MySQL ve PostgreSQL dahil olmak üzere birçok veritabanı motorları tarafından oluştururlar. - - - Table from CSV file... - CSV dosyasından tablo... - - - - Open a wizard that lets you import data from a comma separated text file into a database table. - Virgülle ayrılmış metin dosyalarını veritabanınızın içine aktarmanızı sağlayan sihirbazı açar. - - - - Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. - Virgülle ayrılmış metin dosyalarını veritabanınızın içine aktarmanızı sağlayan sihirbazı açar. CSV dosyaları çoğu veritabanı motorları ve elektronik tablo uygulamaları tarafından oluştururlar. - - - Database to SQL file... - Veritabanından SQL dosyası... - - - - Export a database to a .sql dump text file. - Veritabanını .sql döküm dosyası olarak dışa aktar. - - - - This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. - Bu seçenek veritabanını .sql döküm dosyası olarak dışa aktarmanızı sağlar. SQL döküm dosyaları veritabanını, MySQL ve PostgreSQL dahil birçok veritabanı motorunda yeniden oluşturmak için gereken verilerin tümünü içerir. - - - Table(s) as CSV file... - Tablo(lar)dan CSV dosyası... - - - - Export a database table as a comma separated text file. - Veritabanı tablosunu virgülle ayrılmış metin dosyası olarak dışa aktar. - - - - Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. - Veritabanını virgülle ayrılmış metin dosyası olarak diğer veritabanı veya elektronik tablo uygulamalarına aktarmaya hazır olacak şekilde dışa aktarın. - - - Create Table... - Tablo Oluşturun... - - - - Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database - Tablo Oluşturma sihirbazı, veritabanı için alanlarını ve ismini ayarlayabileceğiniz, yeni bir tablo oluşturmanızı sağlar - - - Delete Table... - Tabloyu Sil... - - - - - Delete Table - Tabloyu Sil - - - - Open the Delete Table wizard, where you can select a database table to be dropped. - Tablo Silme sihirbazı, seçtiğiniz tabloları silmenizi sağlar. - - - Modify Table... - Tabloyu Düzenle... - - - - Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. - Tablo Düzenleme sihirbazı, varolan tablonuzu yeniden adlandırmanıza olanak sağlar. Ayrıca yeni alan ekleyebilir, silebilir hatta alanların ismini ve tipini de düzenleyebilirsiniz. - - - Create Index... - İndeks Oluştur... - - - - Open the Create Index wizard, where it is possible to define a new index on an existing database table. - İndeks Oluşturma sihirbazı, varolan veritabanı tablosuna yeni indeks tanımlamanıza olanak sağlar. - - - - &Preferences... - &Tercihler... - - - - - Open the preferences window. - Tercihler penceresini açar. - - - - &DB Toolbar - &Veritabanı Araç Çubuğu - - - - Shows or hides the Database toolbar. - Veritabanı araç çubuğunu gösterir veya gizler. - - - What's This? - Bu nedir? - - - - Shift+F1 - - - - &About... - &Hakkında... - - - - &Recently opened - En son açılanla&r - - - - Open &tab - Se&kme Aç - - - - Ctrl+T - - - - - - Database Structure - This has to be equal to the tab title in all the main tabs - Veritabanı Yapısı - - - - This is the structure of the opened database. -You can drag SQL statements from an object row and drop them into other applications or into another instance of 'DB Browser for SQLite'. - - Bu, açılan veritabanının yapısıdır. -SQL ifadelerini bir nesne satırından sürükleyip başka uygulamalara veya 'DB Browser for SQLite programının başka bir penceresine bırakabilirsiniz. - - - - - - Browse Data - This has to be equal to the tab title in all the main tabs - Veriyi Görüntüle - - - - Un/comment block of SQL code - Kod bloğunu yorum satırına dönüştür/yorum satırını iptal et - - - - Un/comment block - Yorum satırına dönüştür/yorum satırını iptal et - - - - Comment or uncomment current line or selected block of code - Geçerli satırı veya kod bloğunu, yorum satırına dönüştür veya yorum satırını iptal et - - - - Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. - Geçerli satırı veya kod bloğunu, yorum satırına dönüştür veya yorum satırını iptal et. Hiç seçim yoksa tüm bloklar ilk satır baz alınarak değiştirilir. - - - - Ctrl+/ - - - - - Stop SQL execution - SQL yürütmesini durdur - - - - Stop execution - Yürütmeyi durdur - - - - Stop the currently running SQL script - Şu anda çalışan SQL betiğini durdur - - - ... - ... - - - - - Edit Pragmas - This has to be equal to the tab title in all the main tabs - Pragmaları Düzenle - - - - Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. - Uyarı: Bu pragma okunamaz ve bu değer çıkartıldı. Bu pragmayı yazmak, bir SQLite eklentisi tarafından sağlanan yeniden tanımlanmış bir LIKE'nin üzerine yazabilir. - - - - - Execute SQL - This has to be equal to the tab title in all the main tabs - SQL kodunu yürüt - - - + &Tools Ara&çlar - + SQL &Log SQL &Günlüğü - + Show S&QL submitted by Şuna ait S&QL'i göster - + Error Log Hata Günlüğü - + This button clears the contents of the SQL logs Bu buton SQL günlüğünün içeriğini temizler - + This panel lets you examine a log of all SQL commands issued by the application or by yourself Bu panel, uygulama veya kendiniz tarafından verilen tüm SQL komutlarının bir günlüğünü incelemenizi sağlar - + &Plot &Çizim - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. @@ -3603,678 +2989,601 @@ SQL deyimlerini Şema sütunundan sürükleyip SQL editörüne veya diğer uygul - - + + Project Toolbar Proje Araç Çubuğu - + Extra DB toolbar Ekstra Veritabanı araç çubuğu - - - + + + Close the current database file Geçerli veritabano dosyasını kapat - + This button closes the connection to the currently open database file Bu buton, şu anda açık olan veritabanı dosyasına ait bağlantıyı kapatır - + Ctrl+F4 - + &Revert Changes Değişiklikleri &Geri Al - + &Write Changes Değişiklikleri &Kaydet - + Compact &Database... Veriabanını &Sıkıştır... - + + New &tab + + + + Execute all/selected SQL Tüm/seçin SQL sorgusunu yürüt - + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. Bu buton seçili olan SQL ifadesini yürütür. Hiçbir metin seçilmezse, tüm SQL ifadeleri yürütülür. - + + Open SQL file(s) + + + + + This button opens files containing SQL statements and loads them in new editor tabs + + + + &Load Extension... Ek&lenti Yükle... - + Execute line Tek satır yürüt - + &Wiki &Wiki - + F1 - + Bug &Report... Hata &Raporu... - + Feature Re&quest... &Özellik Talebi... - + Web&site Web &Sitesi - + &Donate on Patreon... &Patreon üzerinden Bağış Yapın... - This button lets you save all the settings associated to the open DB to a DB4S project file - Bu buton, açık veritabanı ile ilişkili tüm ayarları bir DB4S proje dosyasına kaydetmenizi sağlar + + Close Pro&ject + - - Open &Project... - &Proje Aç... + + Close project and database files and return to the initial state + - This button lets you open a DB4S project file - Bu buton DB4S proje dosyası açmanızı sağlar + + Ctrl+Shift+F4 + - + + + Detach Database + + + + + + Detach database file attached to the current database connection + + + + + Open &Project... + &Proje Aç... + + + &Attach Database... &Veritabanı Ekle... - - + + Add another database file to the current database connection Şu anki veritabanı bağğlantısına başka bir veritabanı dosyası ekle - + This button lets you add another database file to the current database connection Bu buton, geçerli veritabanı bağlantısına başka bir veritabanı dosyası eklemenizi sağlar - + &Set Encryption... &Şifreleme Belirtle... - + SQLCipher &FAQ SQLCipher &SSS - + Table(&s) to JSON... Tablodan &JSON dosyasına... - + Open Data&base Read Only... Salt &Okunur Veritabanı Aç... - + Ctrl+Shift+O - + Save results Sonuçları kaydet - + Save the results view Sonuç görünümünü kaydet - + This button lets you save the results of the last executed query Bu buton son yürütülen sorgunun sonuçlarını kaydetmenizi sağlar - - + + Find text in SQL editor SQL editörünte metin ara - + Find Bul - + This button opens the search bar of the editor Bu buton editörün arama çubuğunu açar - + Ctrl+F - - + + Find or replace text in SQL editor SQL editöründe metin bul veya değiştir - + Find or replace Bul veya değiştir - + This button opens the find/replace dialog for the current editor tab Bu buton, geçerli editör sekmesi için bul / değiştir iletişim kutusunu açar - + Ctrl+H - + Export to &CSV &CSV dosyası olarak dışa aktar - + Save as &view &Görünüm olarak kaydet - + Save as view Görünüm olarak kaydet - + Browse Table Tabloyu Görüntüle - + Shows or hides the Project toolbar. Proje araç çubuğunu gösterir veya gizler. - + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file - + This button lets you open a DB Browser for SQLite project file - + Extra DB Toolbar Ekstra Veritabanı Araç Çubuğu - + New In-&Memory Database &Yeni Bellek İçi Veritabanı - + Drag && Drop Qualified Names Nitelikli İsimleri Sürükle && Bırak - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor Nesneleri sürükleyip düzenleyiciye bırakırken özel isimleri kullanın (örn. "Tablo". "Alan") - + Drag && Drop Enquoted Names İsimleri Sürükle && Bırak - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor Nesneleri sürükleyip editöre bırakırken çıkış karakter belirleyicilerini kullanın(ör. "Tablo1") kullanın - + &Integrity Check &Bütünlük Denetimi - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. integrity_check pragmasını açılan veritabanı üzerinde çalıştırır ve 'SQL Kodunu Yürüt' sekmesinde sonuçları döndürür. Bu pragma veritabanının tamamının bütünlüğünü kontrol eder. - + &Foreign-Key Check &Yabancı anahtar kontrolü - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab Foreign_key_check pragmasını açık veritabanı üzerinde çalıştırır ve 'SQL Kodunu Yürüt' sekmesinde sonuçları döndürür - + &Quick Integrity Check &Hızlı Bütünlük Testi - + Run a quick integrity check over the open DB Açık veritabanı üzerinde hızlı bir bütünlük denetimi yapın - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. quick_check pragmasını açık veritabanı üzerinde çalıştırır ve 'SQL Kodunu Yürüt' sekmesinde sonuçları döndürür. Bu komut PRAGMA integrity_check denetiminin çoğunu yapar, ancak çok daha hızlı çalışır. - + &Optimize &Optimize - + Attempt to optimize the database Veritabanını optimize etmeyi dene - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. Açılan veritabanı üzerinden optimizasyon pragmasını çalıştırır. Bu uygulama gelecekteki sorguların performansını artırmaya yardımcı olabilir. - - + + Print Yazdır - + Print text from current SQL editor tab Geçerli SQL düzenleyici sekmesinden metni yazdırın - + Open a dialog for printing the text in the current SQL editor tab Geçerli SQL düzenleyici sekmesindeki metni yazdırmak için bir iletişim kutusu açın - + Print the structure of the opened database Şu anda açık olan veritabanı yapısını yazdırın - + Open a dialog for printing the structure of the opened database Açılan veritabanının yapısını yazdırmak için bir bir iletişim kutusu açın - + &Save Project As... Projeyi &Farklı Kaydet... - - - + + + Save the project in a file selected in a dialog Projeyi iletişim kutusunda seçilen bir dosyaya kaydedin - + Save A&ll Tümünü &Kaydet - - - + + + Save DB file, project file and opened SQL files Veritabanı dosyasını, proje dosyasını ve açılan SQL dosyalarını kaydedin - + Ctrl+Shift+S - + &Database from SQL file... SQL &dosyasından veritabanı... - + &Table from CSV file... CSV dosyasından &tablo... - + &Database to SQL file... Veritabanından SQL &dosyası... - + &Table(s) as CSV file... &Tablodan CSV dosyası olarak... - + &Create Table... &Tablo Oluştur... - + &Delete Table... &Tabloyu Sil... - + &Modify Table... Tabloyu &Düzenle... - + Create &Index... &Index Oluştur... - + W&hat's This? Bu &nedir? - + &About &İptal - + This button opens a new tab for the SQL editor Bu buton SQL editörü için yeni bir sekme açar - + &Execute SQL &SQL kodunu yürüt - - Open SQL file - SQL dosyası aç - - - - This button opens a file containing SQL statements and loads it in a new editor tab - Bu buton SQL ifadeleri içeren bir dosya açar ve yeni bir editör sekmesine yükler - - - - - + + + Save SQL file SQL dosyasını kaydet - Load extension - Eklenti yükle - - - + Ctrl+E - + Export as CSV file CSV dosyası olarak dışa aktar - + Export table as comma separated values file Tabloyu virgülle ayrılmış girdiler dosyası olarak dışa aktar - &Wiki... - &Döküman... - - - Bug &report... - Hata Bildi&r... - - - Web&site... - Web &Sitesi... - - - Save Project - Projeyi Kaydet - - - - + + Save the current session to a file Geçerli oturumu dosyaya kaydet - Open Project - Proeje Aç - - - - + + Load a working session from a file Dosyadan çalışma oturumunu yükle - &Attach Database - Verit&abanını İliştir - - - Set Encryption - Şifre Ayarla - - - - + + Save SQL file as SQL dosyasını bu şekilde kaydet - + This button saves the content of the current SQL editor tab to a file Bu buton geçerli SQL editörü sekmesinin içeriğini bir dosyaya kaydeder - + &Browse Table &Tabloyu Görüntüle - + Copy Create statement 'Create' ifadesini kopyala - + Copy the CREATE statement of the item to the clipboard Objenin 'Create' ifadesini panoya kopyala - + Ctrl+Return - + Ctrl+L - - + + Ctrl+P - + Ctrl+D - + Ctrl+I - + Encrypted Şifrelenmiş - + Read only Salt okunur - + Database file is read only. Editing the database is disabled. Veritabanı salt okunur. Veritabanı düzenleme devre dışı. - + Database encoding Veritabanı kodlaması - + Database is encrypted using SQLCipher Veritabanı SQLCipher kullanılırak şifrelendi - - + + Choose a database file Veritabanı dosyasını seçiniz - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - SQLite veritabanı dosyaları (*.db *.sqlite *.sqlite3 *.db3);;Tüm dosyalar (*) - - - Invalid file format. - Geçersiz dosya formatı - - - - - + + + Choose a filename to save under Kaydetmek için dosya ismi seçiniz - Error adding record: - - Kayıt ekleme hatası: - - - Error deleting record: -%1 - Kayıt silme hatası: - - - Please select a record first - Lütfen öncelikle kaydı seçiniz - - - %1 - %2 of %3 - %1 - %2 / %3 - - - There is no database opened. Please open or create a new database file. - Açılmış veritabanı bulunamadı. Lütfen veritabanı açın veya yeni bir veritabanı oluşturun. - - - Are you sure you want to delete the %1 '%2'? -All data associated with the %1 will be lost. - Gerçekten '%1' türüne ait '%2' nesnesini silmek istediğinize emin misiniz? -'%1' ile ilişkili bütün verileri kaybedeceksiniz. - - - Error: could not delete the %1. Message from database engine: -%2 - Hata: '%1' silinemedi. Veritabanı motorunun mesajı: %2 - - - There is no database opened. - Açılmış veritabanı bulunamadı. - - - %1 Rows returned from: %3 (took %2ms) - %1 tane satır döndürüldü: %3 (yaklaşık %2ms) - - - Error executing query: %1 - Sorgu yürütme hatası: %1 - - - Query executed successfully: %1 (took %2ms) - Sorgu başarıyla yürütüldü: %1 (yaklaşık %2ms) - - - Choose a text file - Metin dosyası seçiniz - - - Text files(*.csv *.txt);;All files(*) - Metin dosyaları(*.csv *.txt);;Tüm dosyalar(*) - - - Import completed - İçe aktarma tamamlandı - - - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 @@ -4283,421 +3592,488 @@ All data associated with the %1 will be lost. %1 - + Are you sure you want to undo all changes made to the database file '%1' since the last save? Son kayıttan itibaren '%1' dosyasına yaptığınız değişiklikleri geri almak istediğinize emin misiniz? - + Choose a file to import İçe aktarmak için dosya seçiniz - + &%1 %2%3 &%1 %2%3 - + (read only) (salt okunur) - + Open Database or Project Veritabanı veya Proje Açın - + Attach Database... Veritabanı Ekle... - + Import CSV file(s)... CSV dosyalarını içe aktarın... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. Bırakılan dosyalara uygulanacak eylemi seçin. <br/>Not: yalnızca 'İçe Aktar' birden fazla dosyayı işleyecektir. - + Do you want to save the changes made to SQL tabs in the project file '%1'? SQL sekmelerinde yapılan değişiklikleri '%1' proje dosyasına kaydetmek istiyor musunuz? - + Text files(*.sql *.txt);;All files(*) Metin dosyaları(*.sql *.txt);;Tüm dosyalar(*) - + Do you want to create a new database file to hold the imported data? If you answer no we will attempt to import the data in the SQL file to the current database. İçeri aktarılan verileri tutmak için yeni bir veritabanı dosyası oluşturmak istiyor musunuz? Eğer cevabınız hayır ise biz SQL dosyasındaki verileri geçerli veritabanına aktarmaya başlayacağız. - - Close current SQL tab - Geçerli SQL sekmesini kapat - - - + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? Şu anda SQL sorgularını yürütüyorsunuz. Veritabanının şimdi kapatılması, muhtemelen veritabanını tutarsız bir durumda bırakarak yürütmeyi durduracaktır. Veritabanını kapatmak istediğinizden emin misiniz? - + Do you want to save the changes made to the project file '%1'? '%1' proje dosyasında yapılan değişiklikleri kaydetmek istiyor musunuz? - + File %1 already exists. Please choose a different name. %1 dosyası zaten mevcut. Lütfen farklı bir isim seçiniz. - + Error importing data: %1 Dosya içeri aktarılırken hata oluştu: %1 - + Import completed. İçeri aktarma tamamlandı. - + Delete View Görünümü Sil - + Modify View Görünümü Düzenle - + Delete Trigger Tetikleyiciyi Sil - + Modify Trigger Tetikleyiciyi Düzenle - + Delete Index İndeksi Sil - + Modify Index Index'i Düzenle - + Modify Table Tabloyu Düzenle - &%1 %2 - &%1 %2 - - - + Do you want to save the changes made to SQL tabs in a new project file? SQL sekmelerinde yapılan değişiklikleri yeni bir proje dosyasına kaydetmek istiyor musunuz? - + Do you want to save the changes made to the SQL file %1? %1 SQL dosyasında yapılan değişiklikleri kaydetmek istiyor musunuz? - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? - Bu sekmedeki sorgular hala yürütülüyor. Sekmenin kapatılması yürütmeyi durdurur. Bu durum, veritabanını tutarsız bir durumda bırakabilir. Sekmeyi kapatmak istediğinizden emin misiniz? - - - + Could not find resource file: %1 Kaynak dosya bulunamadı: %1 - + Choose a project file to open Açmak için bir proje dosyası seçin - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - Bu proje dosyası eski bir formatta, çünkü DB Browser for SQLite 3.10 veya daha düşük bir sürüm ile oluşturulmuş. Bu dosya biçiminin yüklenmesi hala tam olarak desteklenmektedir, ancak gelecekte daha eski biçimlere yönelik destek azalabileceğinden, tüm proje dosyalarınızı yeni dosya biçimine dönüştürmenizi öneririz. Dosyalarınızı açıp yeniden kaydederek dönüştürebilirsiniz. - - - + Could not open project file for writing. Reason: %1 Proje dosyası yazmaya açılamadı. Nedeni: %1 - + Busy (%1) Meşgul (%1) - + Setting PRAGMA values will commit your current transaction. Are you sure? PRAGMA değerlerini ayarlamak geçerli işleminizi yürütmeye alacaktır. Bunu yapmak istediğinize emin misiniz? - + + Ctrl+Tab + + + + + Ctrl+Shift+Tab + + + + + Ctrl+PgUp + + + + + Clear List + + + + + Window Layout + + + + Reset Window Layout Pencere Düzenini Sıfırla - + Alt+0 - + + Simplify Window Layout + + + + + Shift+Alt+0 + + + + + Dock Windows at Bottom + + + + + Dock Windows at Left Side + + + + + Dock Windows at Top + + + + The database is currenctly busy. Verştabanı şu anda meşgul. - + Click here to interrupt the currently running query. Çalışmakta olan sorguyu kesmek için burayı tıklayın. - + Could not open database file. Reason: %1 Veritabanı dosyası açılamadı. Nedeni: %1 - + In-Memory database Bellek İçi Veritabanı - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. '%1' tablosunu silmek istediğinizden emin misiniz? Tabloyla ilişkili tüm veriler kaybedilecektir. - + Are you sure you want to delete the view '%1'? '%1' görünümünü silmek istediğinizden emin misiniz? - + Are you sure you want to delete the trigger '%1'? '%1' tetikleyicisini silmek istediğinizden emin misiniz? - + Are you sure you want to delete the index '%1'? '%1' indexsini silmek istediğinizden emin misiniz? - + Error: could not delete the table. Hata: tablo silinemedi. - + Error: could not delete the view. Hata: görünüm silinemedi. - + Error: could not delete the trigger. Hata: tetikleyici silinemedi. - + Error: could not delete the index. Hata: index silinemedi. - + Message from database engine: %1 Veritabanı motorundan mesaj: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? Tabloyu düzenlemek için bekleyen tüm değişikliklerin şimdi kaydedilmesi gerekir. Veritabanını kaydetmek istediğinizden emin misiniz? - + + Edit View %1 + + + + + Edit Trigger %1 + + + + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. Şu anda zaten yürütülen SQL sorguları var. Bunun yerine, şimdiki sorguları çalıştırmak için şu anda yürütülen sorguyu durdurmak istiyor musunuz? Bunun veritabanını tutarsız bir durumda bırakabileceğini unutmayın. - + -- EXECUTING SELECTION IN '%1' -- -- SEÇİM '%1' İÇERİSİNDE YÜRÜTÜLÜYOR -- - + -- EXECUTING LINE IN '%1' -- -- SATIR '%1' İÇERİSİNDE YÜRÜTÜLÜYOR -- - + -- EXECUTING ALL IN '%1' -- -- TÜMÜ '%1' İÇERİSİNDE YÜRÜTÜLÜYOR -- - - + + At line %1: %1. satırda: - + Result: %1 Sonuç: %1 - + Result: %2 Sonuç: %2 - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? PRAGMA değerlerini ayarlamak veya vakumlamak mevcut işleminizi kaydeder. Emin misiniz? - + + Opened '%1' in read-only mode from recent file list + + + + + Opened '%1' from recent file list + + + + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + + + + + Yes. Don't ask again + + + + + This action will open a new SQL tab with the following statements for you to edit and run: + + + + Rename Tab Sekmeyi Yeniden Adlandır - + Duplicate Tab Sekmeyi Klonla - + Close Tab Sekmeyi Kapat - + Opening '%1'... '%1' açılıyor... - + There was an error opening '%1'... '%1' açılırken hata oluştu... - + Value is not a valid URL or filename: %1 Geçersiz bir URL veya dosya adı: %1 - + %1 rows returned in %2ms %2ms içerisinde %1 tane satır döndürüldü - + Choose text files Metin dosyaları seçin - + Import completed. Some foreign key constraints are violated. Please fix them before saving. İçe aktarma tamamlandı. Bazı yabancı anahtar kısıtları ihlal edildi. Lütfen kaydetmeden önce bunları çözün. - + Select SQL file to open Açmak için SQL dosyasını seçiniz - + Select file name Dosya ismi seçiniz - + Select extension file Eklenti dosyasını seçiniz - Extensions(*.so *.dll);;All files(*) - Eklenti dosyaları(*.so *.dll);;Tüm dosyalar(*) - - - + Extension successfully loaded. Eklenti başarıyla yüklendi. - + Error loading extension: %1 Eklenti yüklenirken hata oluştu: %1 - - + + Don't show again Bir daha gös'terme - + New version available. Yeni sürüm mevcut. - + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. Yeni bir SQLite DB Browser sürümü mevcut (%1.%2.%3).<br/><br/>Lütfen buradan indiriniz: <a href='%4'>%4</a>. - + Project saved to file '%1' Proje '%1' dosyasına kaydedildi - + Collation needed! Proceed? Harmanlama gerekli! Devam edilsin mi? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4706,86 +4082,70 @@ Daha fazla bilgi olmadan program bunu sağlayamaz. Eğer bu şekilde devam edece Bir yedek oluşturun! - + creating collation harmanlama oluşturuluyor - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. SQL sekmesi için yeni bir ad belirleyin. Aşağıdaki karakteri klavye kısayolu olarak kullanmak için '&&' karakterini kullanın. - + Please specify the view name Lütfen görünüm ismini belirtin - + There is already an object with that name. Please choose a different name. Bu isme sahip obje zaten mevcut. Lütfen farklı bir isim seçiniz. - + View successfully created. Görünüm başarıyla oluşturuldu. - + Error creating view: %1 Görünüm oluşturma hatası: %1 - + This action will open a new SQL tab for running: Bu işlem çalıştırmak için yeni bir SQL sekmesi açar: - + Press Help for opening the corresponding SQLite reference page. İlgili SQLite referans sayfasını açmak için Yardım'a basın. - Choose a axis color - Renk eksenini seçiniz - - - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Tüm dosyalar(*) - - - Choose a file to open - Açmak için dosya seçiniz - - - + DB Browser for SQLite project file (*.sqbpro) SQLite DB Browser proje dosyası (*.sqbpro) - + Error checking foreign keys after table modification. The changes will be reverted. Tablo değişikliğinden sonra yabancı anahtarlar kontrol edilirken hata oluştu. Değişiklikler geri alınacak. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. Bu tablo birincil anahtar kontrolünden geçmedi.<br/>'Araçlar | Birinci Anahat Kontrolü' komutunu çalıştırın ve raporlanan sorunları düzeltin. - + Execution finished with errors. Yürütme hatalarla tamamlandı. - + Execution finished without errors. Yürütme hatasız tamamlandı. - - Cancel - İptal - NullLineEdit @@ -4808,45 +4168,37 @@ Bir yedek oluşturun! Grafik Çizimi - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> <html> <head /> <body> <p> Bu bölme, o anda taranan tablonun sütunları listesini veya yürütülen sorguyu gösterir. Aşağıdaki çizim bölmesi için X veya Y ekseni olarak kullanılmasını istediğiniz sütunları seçebilirsiniz. Tablo, ortaya çıkan grafiği etkileyecek algılanan eksen tipini gösterir. Y ekseni için yalnızca sayısal sütunlar seçebilirsiniz, ancak X ekseni için aşağıdakileri seçebilirsiniz: </p> <ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;" > <li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;" > <span style=" font-weight:600;">Tarih/Saat</span>: &quot;yyyy-MM-dd hh:mm:ss&quot; veya &quot;yyyy-MM-ddThh:mm:ss&quot; ve string formatında </li> <li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;" > <span style=" font-weight:600;">Tarih</span>: &quot;yyyy-MM-dd&quot; ve string formatında </li> <li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;" > <span style=" font-weight:600;">Saat</span>: &quot;hh:mm:ss&quot; ve string formatında </li> <li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;" > <span style=" font-weight:600;">Başlık</span>: diğer string formatları. Bu sütunun X ekseni için seçilmesi, sütun değerlerinin çubukları için etiket oluşturur. </li> <li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;" > <span style=" font-weight:600;">Nümerik</span>: integer veya real tipindeki değerler </li> </ul> <p> Y hücrelerini çift tıklatarak o grafik için kullanılan rengi değiştirebilirsiniz. </p> </body> </html> - + Columns Sütun - + X X - Y - Y - - - _ - _ - - - + Y1 - + Y2 - + Axis Type Eksen Tipi - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -4863,143 +4215,139 @@ Yakınlaştırma için fare tekerleğini ve eksen aralığını değiştirmek i Yalnızca geçerli yönde sürüklemek ve yakınlaştırmak için eksen veya eksen etiketlerini seçin. - + Line type: Çizgi Tipi: - - + + None Hiçbiri - + Line Çizgi - + StepLeft Sola Basamakla - + StepRight Sağa Basamakla - + StepCenter Merkeze Basamakla - + Impulse Kaydırmalı - + Point shape: Nokta şekli: - + Cross Çarpı - + Plus Artı - + Circle Daire - + Disc Disk - + Square Kare - + Diamond Elmas - + Star Yıldız - + Triangle Üçgen - + TriangleInverted Ters Üçgen - + CrossSquare Çapraz Kare - + PlusSquare Kare İçinde Artı - + CrossCircle Daire İçinde Çarpı - + PlusCircle Daire İçinde Artı - + Peace Barış Simgesi - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> <html><head/><body><p>Geçerli çizimi kaydet...</p><p>Uzantıya göre seçilen dosya formatları (png, jpg, pdf, bmp)</p></body></html> - + Save current plot... Geçerli çizimi kaydet... - - + + Load all data and redraw plot Tüm verileri yükle ve grafiği yeniden çiz - - - + + + Row # Satır # - - Choose a axis color - Renk eksenini seçiniz - Copy @@ -5021,72 +4369,68 @@ Yalnızca geçerli yönde sürüklemek ve yakınlaştırmak için eksen veya eks Yığılmış çubuklar - + Date/Time Tarih/Saat - + Date Tarih - + Time Saat - - + + Numeric Nümerik - + Label Etiket - + Invalid Geçersiz - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. Tüm verileri yükle ve grafiği yeniden çiz. Uyarı: Kısmi yükleme mekanizması nedeniyle tüm veriler tablodan henüz alınmadı. - + Choose an axis color Bir eksen rengi seçin - + Choose a filename to save under Altına kaydetmek için dosya ismi seçiniz - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Tüm dosyalar(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. Bu grafikte eğriler var ve seçilen çizgi stili yalnızca X'e göre sıralanmış grafiklere uygulanabilir. Eğrileri kaldırmak için tabloyu veya sorguyu X'e göre sıralayın veya eğriler tarafından desteklenen stillerden birini seçin: 'Hiçbiri' veya 'Çizgi'. - + Loading all remaining data for this table took %1ms. Bu tablo için kalan tüm verilerin yüklenmesi %1ms sürdü. - - Cancel - İptal - PreferencesDialog @@ -5117,8 +4461,8 @@ Uyarı: Kısmi yükleme mekanizması nedeniyle tüm veriler tablodan henüz alı - - + + ... ... @@ -5140,12 +4484,14 @@ Uyarı: Kısmi yükleme mekanizması nedeniyle tüm veriler tablodan henüz alı - - - - - - + + + + + + + + enabled etkin @@ -5155,140 +4501,107 @@ Uyarı: Kısmi yükleme mekanizması nedeniyle tüm veriler tablodan henüz alı Uzak bilgisayar opsiyonlarını göster - + &Database &Veritabanı - + Database &encoding &Veritabanı kodlaması - + Open databases with foreign keys enabled. Veritabanlarını Yabancı Anahtarlar etkin olacak şekilde aç. - + &Foreign keys &Yabancı Anahtarlar - Remove line breaks in schema view - Şema görünümünde satır sonlarını kaldır - - - &Prefetch block size - &Önceden getirilecek blok boyutu - - - + Data &Browser Veri &Görüntüleyici - NULL fields - Geçersiz alanlar - - - Text &colour - Yazı &rengi - - - &Text - &Yazı - - - Bac&kground colour - Ar&kaplan rengi - - - + Remove line breaks in schema &view Şema &görünümde satır sonlarını kaldır - + Prefetch block si&ze Önceden getirme blo&k boyutu - - Advanced - Gelişmiş - - - + SQ&L to execute after opening database Veritabanı açıldıktan sonra yürütülecek SQ&L - + Default field type Varsayılan dosya tipi - + Font Yazı - + &Font &Yazı - + Content İçerik - + Symbol limit in cell Hücredeki sembol limiti - + Threshold for completion and calculation on selection Seçimdeki tamamlama ve hesaplama eşiği - + Show images in cell Resimleri hücrede göster - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. Hücrelerde görüntü verileri içeren BLOB tipindeki verilerin önizlemesini göstermek için bu seçeneği etkinleştirin. Ancak bu, veri görüntüleyicisinin performansını etkileyebilir. - + NULL NULL - + Regular Kurallı - Text - Metin - - - + Binary İkili veri - + Background Arka plan - + Filters Filtreler @@ -5398,17 +4711,48 @@ Uyarı: Kısmi yükleme mekanizması nedeniyle tüm veriler tablodan henüz alı Uygulama stili - + + This sets the font size for all UI elements which do not have their own font size option. + + + + + Font size + + + + + Max Recent Files + + + + + Prompt to save SQL tabs +in new project file + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. Etkinleştirildiğinde, Veritabanı Yapısı sekmesinin Şema sütununda satır sonu karakterleri ve yazdırılan çıktılar kaldırılır. - + + Database structure font size + + + + Font si&ze Yazı B&oyutu - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. @@ -5419,433 +4763,497 @@ Toplam ve ortalamayı hesaplamak için bir seçimdeki maksimum index sayısı. İşlevleri devre dışı bırakmak için 0 olarak ayarlanabilir. - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. Bu, sütundaki geçerli değerlere dayalı olarak değer tamamlamayı etkinleştirmek için bir tablodaki maksimum satır sayısıdır. Tamamlamayı devre dışı bırakmak için 0 olarak ayarlanabilir. - + + selected_bg + + + + + Selection background + + + + + selected_fg + + + + + Selection foreground + + + + + highlight + + + + + Highlight + + + + + Close button on tabs + + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + + + + Proxy Proxy - + Configure Yapılandır - + + Export Settings + + + + + Import Settings + + + + Field display Alan görünümü - + Displayed &text Görün&tülenen metin - - - + - - + + + + Click to set this color Bu rengi ayarlamak için tıklayın - + Text color Metin rengi - + Background color Arka plan rengi - + Preview only (N/A) Sadece önizleme (N/A) - + Escape character Kaçış karakteri - + Delay time (&ms) Gecikme süresi (&ms) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. Yeni bir filtre değeri uygulanmadan önce bekleme süresini ayarlayın. Beklemeyi devre dışı bırakmak için 0 olarak ayarlanabilir. - + &SQL &SQL - + Settings name Ayarlar ismi - + Context Özellik - + Colour Renk - + Bold Kalın - + Italic İtalik - + Underline Altı çizili - + Keyword Anahtar Kelime - function - fonksiyon - - - + Function Fonksiyon - + Table Tablo - + Comment Yorum - + Identifier Kimlik - + String String - currentline - currentline - - - + Current line Geçerli satır - + SQL &editor font size SQL &Editör yazı boyutu - SQL &log font size - SQL &günlüğü yazı boyutu - - - + Tab size TAB karakter boyutu - + &Wrap lines &Satırları kaydır - + Never Asla - + At word boundaries Kelime dahilinde - + At character boundaries Karakter dahilinde - + At whitespace boundaries Beyaz boşluk dahilinde - + &Quotes for identifiers Tanımlıyıcılar için &tırnaklar - + Choose the quoting mechanism used by the application for identifiers in SQL code. Uygulama tarafından SQL kodundaki tanımlayıcılar için kullanılan tırnak stilini seçin. - + "Double quotes" - Standard SQL (recommended) "Çift tırnak" - Standart SQL (önerilir) - + `Grave accents` - Traditional MySQL quotes `Ters tırnaklar` - Geleneksel MySQL tırnakları - + [Square brackets] - Traditional MS SQL Server quotes [Köşeli parantezler] - Geleneksel MS SQL Server - + Keywords in &UPPER CASE Anahtar kelimeler B&ÜYÜK HARFLİ - + When set, the SQL keywords are completed in UPPER CASE letters. Ayarlandığında, SQL anahtar kelimeleri BÜYÜK HARFLERLE tamamlanır. - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background Ayarlandığında, son yürütme sırasında hatalara neden olan SQL kod satırları vurgulanır ve sonuç çerçevesi arka plandaki hatayı gösterir - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> <html> <head /> <body> <p> SQLite, paylaşılmış kütüphane dosyasından eklenti yüklemeye yarayan bir fonksiyon sunar. <span style=" font-style:italic;">load_extension()</span> fonksiyonunu SQL kodu içerisinde kullanmak istiyorsanız fonksiyonu aktive edin. </p> <p> Güvenlik nedeniyle, uzantı yüklemesi varsayılan olarak kapalıdır ve bu ayar ile etkinleştirilmelidir. Bu seçenek devre dışı bırakılmış olsa bile, uzantıları her zaman GUI üzerinden yükleyebilirsiniz. </p> </body> </html> - + Allow loading extensions from SQL code SQL kodundan eklenti yüklemeye izin ver - + Remote Uzak Bilgisayar - + CA certificates CA sertifikaları - - + + Subject CN CN Konusu - + Common Name Yaygın İsim - + Subject O Konu O - + Organization Organizasyon - - + + Valid from Şundan tarihten itibaren geçerli - - + + Valid to Şu tarihe kadar geçerli - - + + Serial number Seri numarası - + Your certificates Sertifikalarınız - + File Dosya - + Subject Common Name Ortak Konu Adı - + Issuer CN CN Sağlayıcısı - + Issuer Common Name Ortak Sağlayıcı Adı - + Clone databases into Veritabanını şuraya kopyala - Tab size: - Tab boşluğu: - - - + SQL editor &font SQL Editör &yazı boyutu - + Error indicators Hata belirteçleri - + Hori&zontal tiling Ya&tay Döşeme - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. Etkinleştirilirse, SQL kod düzenleyicisi ve sonuç tablosu görünümü üst üste yerine yan yana gösterilir. - + Code co&mpletion Kod ta&mamlama - + Foreground Ön plan - + SQL &results font size S&QL sonuçları yazı tipi boyutu - + &Extensions &Eklentiler - + Select extensions to load for every database: Her veritabanında kullanmak için eklenti seçiniz: - + Add extension Eklenti Ekle - + Remove extension Eklenti Sil - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> <html><head/><body><p>Kurallı ifade(REGEXP) operatörü aktif edildiğinde SQLite, herhangi bir kurallı ifade uygulamaz ama şuan da çalışan uygulamayı geri çağırır. <br/>SQLite DB Browser kurallı ifadeyi kutunun dışında kullanmanıza izin vermek için bu algoritmayı uygular. <br/>Birden çok muhtemel uygulama olduğu gibi sizde farklı birini kullanabilirsiniz.<br/>Programın uygulamalarını devre dışı bırakmakta ve kendi eklentinizle kendi uygulamanızı yüklemekte özgürsünüz.<br/>Ayrıca uygulamayı yeniden başlatmak gerekir.</p></body></html> - + Disable Regular Expression extension Kurallı İfade eklentisini devre dışı bırak - - + + Choose a directory Dizin seçiniz - + + The language will change after you restart the application. Seçilen dil uygulama yeniden başlatıldıktan sonra uygulanacaktır. - + Select extension file Eklenti dosyası seçiniz - Extensions(*.so *.dll);;All files(*) - Eklentiler(*.so *.dll);;Tüm dosyalar(*) - - - + Extensions(*.so *.dylib *.dll);;All files(*) Eklentiler(*.so *.dylib *.dll);;Tüm dosyalar(*) - - Import certificate file - Sertifika dosyası içe aktar + + Import certificate file + Sertifika dosyası içe aktar + + + + No certificates found in this file. + Bu dosyada sertifika bulunamadı. + + + + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! + Bu sertifikayı kaldırmak istediğinizden emin misiniz? Tüm sertifika verileri uygulama ayarlarından silinecektir! + + + + Are you sure you want to clear all the saved settings? +All your preferences will be lost and default values will be used. + Kaydedilen tüm ayarları silmek istediğinizden emin misiniz? +Tüm tercihleriniz kaybolacak ve varsayılan değerler kullanılacak. + + + + Save Settings File + + + + + + Initialization File (*.ini) + + + + + The settings file has been saved in location : + + - - No certificates found in this file. - Bu dosyada sertifika bulunamadı. + + Open Settings File + - - Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! - Bu sertifikayı kaldırmak istediğinizden emin misiniz? Tüm sertifika verileri uygulama ayarlarından silinecektir! + + The settings file was loaded properly. + - - Are you sure you want to clear all the saved settings? -All your preferences will be lost and default values will be used. - Kaydedilen tüm ayarları silmek istediğinizden emin misiniz? -Tüm tercihleriniz kaybolacak ve varsayılan değerler kullanılacak. + + The selected settings file is not a normal settings file. +Please check again. + @@ -5929,37 +5337,18 @@ Tüm tercihleriniz kaybolacak ve varsayılan değerler kullanılacak.Importing CSV file... CSV dosyası içe aktarılıyor... - - Decoding CSV file... - CSV dosyasının şifresi çözülüyor... - Cancel İptal - - Collation needed! Proceed? - Harmanlama gerekli! Devam edilsin mi? - - - A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. -If you choose to proceed, be aware bad things can happen to your database. -Create a backup! - Bu veritabanınındaki bir tablo özel '%1' koleksiyon fonksiyonu gerektirmektedir. -Daha fazla bilgi olmadan program bunu sağlayamaz. Eğer bu şekilde devam edecekseniz, veritabanınıza kötü şeyler olabileceğinin farkında olun ve yedek oluşturun. - - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - SQLite veritabanı dosyaları (*.db *.sqlite *.sqlite3 *.db3);;Tüm dosyalar (*) - All files (*) Tüm dosyalar (*) - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) SQLite veritabanı dosyaları (*.db *.sqlite *.sqlite3 *.db3) @@ -6059,90 +5448,60 @@ Daha fazla bilgi olmadan program bunu sağlayamaz. Eğer bu şekilde devam edece Eklentiler (* .so * .dylib * .dll) - Name - İsim - - - Commit - Commit - - - Last modified - Son değiştirilme - - - Size - Boyut + + Initialization File (*.ini) + - RemoteDatabase - - - Error when connecting to %1. -%2 - %1 adresine bağlanırken hata oluştu.%2 - - - - Error opening remote file at %1. -%2 - %1 adresinde bulunan dosya açılamadı. %2 - + RemoteCommitsModel - - Error: Invalid client certificate specified. - Hata: Geçersiz istemci sertifikası belirtildi. - - - - Please enter the passphrase for this client certificate in order to authenticate. - Kimlik doğrulaması için lütfen istemci sertifikasının parolasını girin. + + Commit ID + - - Cancel - İptal + + Message + - - Uploading remote database to -%1 - Uzak veritabanı karşıya yükleniyor -%1 + + Date + Tarih - - Downloading remote database from -%1 - Uzaktaki sunucu indiriliyor: -%1 + + Author + - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - Uzaktaki veritabanı son kontrolden sonra değiştirildi. Yerel veritabanını son sürüme güncellemek ister misiniz? Bu işlemin yerel olarak yaptığınız değişiklikleri yoksayacağını unutmayın! Yerel değişiklikleri kaybetmek istemiyorsanız, yerel sürümü açmak için Hayır butonuna tıklayın. + + Size + Boyut - - - Error: The network is not accessible. - Hata: Ağa erişilemiyor. + + Authored and committed by %1 + - - Error: Cannot open the file for sending. - Hata: Dosya gönderim için açılamadı. + + Authored by %1, committed by %2 + + + + RemoteDatabase - + Error opening local databases list. %1 Yerel veritabanı listesi açılamadı. %1 - + Error creating local databases list. %1 Yerel veritabanı listesi oluşturulamadı. @@ -6157,75 +5516,363 @@ Daha fazla bilgi olmadan program bunu sağlayamaz. Eğer bu şekilde devam edece Uzak Bilgisayar - + Identity Kmlik - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. - Seçili kimliği kullanarak uzak sunucuya bağlanın. Doğru sunucu da kimlikten alınır. + + Push currently opened database to server + Şu anda açık olan veritabanını sunucuya aktar - - Go - Git + + Upload + - - Push currently opened database to server - Şu anda açık olan veritabanını sunucuya aktar + + DBHub.io + - + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB4S. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to create a DB4S certificate (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB4S Preferences. Click the button to add a new certificate to DB4S and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html> <head /> <body> <p> Bu bölmeden, dbhub.io web sitesinden uzak veritabanları DB4S'ye eklenebilir. İlk olarak bir kimliğe ihtiyacınız var: </p> <ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;" > <li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;" > Dbhub.io web sitesine giriş yapın (GitHub veya istediğiniz bir kimlik bilgisini kullanın) </li> <li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;" > Bir DB4S sertifikası oluşturmak için butona tıklayın (bu sizin kimliğinizdir). Bu size bir sertifika dosyası verecektir (yerel diskinize kaydedin). </li> <li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;" > DB4S Tercihleri'ndeki Uzak Bilgisayar sekmesine gidin. DB4S'ye yeni bir sertifika eklemek için butona tıklayın ve indirilen sertifika dosyasını seçin. </li> </ol> <p> Artık Uzak Bilgisayar paneli kimliğinizi gösterir ve uzak veritabanları ekleyebilirsiniz. </p> </body> </html> + + Local + + + + + Current Database + + + + + Clone + + + + + User + Kullanıcı + + + + Database + Veritabanı + + + + Branch + Branch + + + + Commits + + + + + Commits for + + + + + Delete Database + + + + + Delete the local clone of this database + + + + + Open in Web Browser + + + + + Open the web page for the current database in your browser + + + + + Clone from Link + + + + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + + + + + Refresh + Yenile + + + + Reload all data and update the views + + + + + F5 + + + + + Clone Database + + + + + Open Database + + + + + Open the local copy of this database + + + + + Check out Commit + + + + + Download and open this specific commit + + + + + Check out Latest Commit + + + + + Check out the latest commit of the current branch + + + + + Save Revision to File + + + + + Saves the selected revision of the database to another file + + + + + Upload Database + + + + + Upload this database as a new commit + - + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> <html> <head /> <body> <p> Şu anda dahili, salt okunur kimlik kullanıyorsunuz. Kendi veritabanınızı yüklemek için DBHub.io hesabı kullanıp konfigure etmeniz gerekiyor. </p> <p> Henüz DBHub.io hesabınız yok mu? <a href="https://dbhub.io/" ><span style=" text-decoration: underline; color:#007af4;" >Şimdi bir tane oluşturun</span ></a > ve veritabanınızı paylaşmak için <a href="#preferences" ><span style=" text-decoration: underline; color:#007af4;" >buradan</span ></a > sertifikanızı içe aktarın. </p> <p> Çevrimiçi yardım için <a href="https://dbhub.io/about" ><span style=" text-decoration: underline; color:#007af4;" >burayı</span ></a > ziyaret edin. </p> </body> </html> - + Back Geri - + + Select an identity to connect + + + + Public + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + + + + + Invalid URL: The host name does not match the host name of the current identity. + + + + + Invalid URL: No branch name specified. + + + + + Invalid URL: No commit ID specified. + + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + + + + + The database has unsaved changes. Are you sure you want to push it before saving? + + + + + The database you are trying to delete is currently opened. Please close it before deleting. + + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + + + + + RemoteLocalFilesModel + + + Name + İsim + + + + Branch + Branch + + + + Last modified + Son değiştirilme + + + + Size + Boyut + + + + Commit + Commit + + + + File + + RemoteModel - + Name İsim - + Commit Commit - - Last modified - Son değiştirilme + + Last modified + Son değiştirilme + + + + Size + Boyut + + + + Size: + + + + + Last Modified: + + + + + Licence: + + + + + Default Branch: + + + + + RemoteNetwork + + + Choose a location to save the file + + + + + Error opening remote file at %1. +%2 + %1 adresinde bulunan dosya açılamadı. %2 + + + + Error: Invalid client certificate specified. + Hata: Geçersiz istemci sertifikası belirtildi. + + + + Please enter the passphrase for this client certificate in order to authenticate. + Kimlik doğrulaması için lütfen istemci sertifikasının parolasını girin. + + + + Cancel + İptal + + + + Uploading remote database to +%1 + Uzak veritabanı karşıya yükleniyor +%1 + + + + Downloading remote database from +%1 + Uzaktaki sunucu indiriliyor: +%1 - - Size - Boyut + + + Error: The network is not accessible. + Hata: Ağa erişilemiyor. - Version - Versiyon + + Error: Cannot open the file for sending. + Hata: Dosya gönderim için açılamadı. @@ -6245,19 +5892,6 @@ Daha fazla bilgi olmadan program bunu sağlayamaz. Eğer bu şekilde devam edece Commit message Commit mesajı - - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - Database licence @@ -6279,17 +5913,22 @@ p, li { white-space: pre-wrap; } Aktarmaya zorla - + + Username + + + + Database will be public. Everyone has read access to it. Veritabanı halka açık olacak. Herkes okuma iznine sahip olacak. - + Database will be private. Only you have access to it. Veritabanı özel olacak. Sadece sizin erişiminiz olacak. - + Use with care. This can cause remote commits to be deleted. Dikkatlice kullanın. Bu, uzaktaki değişikliklerin silinmesine sebep olabilir. @@ -6297,22 +5936,22 @@ p, li { white-space: pre-wrap; } RunSql - + Execution aborted by user Yürütme kullanıcı tarafından durduruldu - + , %1 rows affected , %1 satır etkilendi - + query executed successfully. Took %1ms%2 sorgu başarıyla yürütüldü. %1ms%2 sürdü - + executing query sorgu yürütülüyor @@ -6434,51 +6073,23 @@ p, li { white-space: pre-wrap; } Bu alan son yürütülen ifadenin durum kodlarını ve sonuçlarını gösterir. - Export to &CSV - &CSV dosyası olarak dışa aktar - - - Save as &view - &Görünümü kaydet - - - Save as view - Görünümü kaydet - - - Please specify the view name - Lütfen görünümünün ismini belirtin - - - There is already an object with that name. Please choose a different name. - Bu isme sahip obje zaten mevcut. Lütfen farklı bir isim seçiniz. - - - View successfully created. - Görünüm başarıyla oluşturuldu. - - - Error creating view: %1 - Görünüm oluşturma hatası: %1 - - - + Couldn't read file: %1. Dosya okunamadı: %1. - - + + Couldn't save file: %1. Dosya kaydedilemedi: %1. - + Your changes will be lost when reloading it! Yeniden yüklerken değişiklikleriniz kaybolacak! - + The file "%1" was modified by another program. Do you want to reload it?%2 "%1" dosyası başka bir program tarafından değiştirildi. Yeniden yüklemek istiyor musunuz?%2 @@ -6490,6 +6101,11 @@ p, li { white-space: pre-wrap; } Ctrl+/ + + + Ctrl+PgDown + + SqlUiLexer @@ -6535,287 +6151,284 @@ p, li { white-space: pre-wrap; } + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. () last_insert_rowid() fonksiyonu çağrılan veritabanı bağlantısından en son eklenen satırın ROWID değerini döndürür. - + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. (X) length() fonksiyonu X dize değeri için NULL ifadesine kadar olan karakter sayısını döndürür (bayt olarak değil). - + (X,Y) The like() function is used to implement the "Y LIKE X" expression. (X,Y) like() fonksiyonu "Y LIKE X" ifadesini uygulamak için kullanılır. - + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. (X,Y,Z) like() fonksiyonu "Y LIKE X ESCAPE Z" ifadesini uygulamak için kullanılır. - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - (X) load_extension(X) fonksiyonu SQLite eklentilerini paylaşılan kitaplık dışına X ismiyle yükler. - - - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - (X,Y) load_extension(X) fonksiyonu Y başlangıç noktasını kullanarak SQLite eklentilerini paylaşılan kitaplık dışına X ismiyle yükler. - - - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. (X) load_extension(X) fonksiyonu, SQLite eklentilerini X adlı paylaşılan kitaplık dosyasından yükler. Bu işlevin kullanımına Tercihler'den izin verilmelidir. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. (X, Y) load_extension(X) işlevi, Y giriş noktasını kullanarak X adlı paylaşılan kitaplık dosyasından SQLite eklentilerini yükler. Bu işlevin kullanımına Tercihler'den izin verilmelidir. - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. (X) lower(X) fonksiyonu tüm X dizesinin tüm ASCII karakterlerinin küçük harfe dönüştürülmüş karşılığını döndürür. - + (X) ltrim(X) removes spaces from the left side of X. (X) ltrim(X) fonksiyonu X'in sol tarafındaki boşlukları siler. - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. (X,Y) ltrim(X,Y) fonksiyonu X'in sol tarafındaki Y'de bulunan tüm karakterlerin silinmiş halini dize halinde döndürür. - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. (X,Y,...) Çok argümanlı max() fonksiyonu en büyük değere sahip argümanı döndürür. Eğer herhangi bir argüman NULL ise NULL değerini döndürür. - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. (X,Y,...) Çok argümanlı min() fonksiyonu en küçük değere sahip argümanı döndürür. - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. (X,Y) nullif(X,Y) fonksiyonu eğer argümanlar farklı ise ilk argümanı, eğer argümanlar aynı ise NULL döndürür. - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. (FORMAT,...) printf(FORMAT,...) SQL fonksiyonu C dilindeki sqlite3_mprintf() fonksiyonu ve standard C kütüphanesindeki printf() fonksiyonu ile aynı mantıkta çalışır. - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. (X) quote(X) fonksiyonu girilen argümanlardan SQL ifadesi olarak tam anlamıyla dahil edilmeye uygun olanları döndürür. - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. () random() fonksiyonu -9223372036854775808 ve +9223372036854775807 tamsayı değerli arasında rastgele değer döndürür. - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. (N) randomblob(N) fonksiyonu rastgele bayt içeren N-byte türünde blob döndürür. - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. (X,Y,Z) replace(X,Y,Z) fonksiyonu X içindeki her Y argümanını, Z argümanıyla değiştirmesiyle oluşan dizeyi döndürür. - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. (X) round(X) fonksiyonu X ondalıklı sayısının ondalıklı kısmın sıfıra yuvarlanmasıyla oluşan değeri döndürür. - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. (X,Y) round(X,Y) fonksiyonu X ondalıklı sayısının Y kadar sağındaki ondalıklı kısmı sıfıra yuvarlanmasıyla oluşan değeri döndürür. - + (X) rtrim(X) removes spaces from the right side of X. (X) rtrim(X) fonksiyonu X'in sağ tarafındaki boşlukları siler. - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. (X,Y) rtrim(X,Y) fonksiyonu X'in sağ tarafındaki Y'de bulunan tüm karakterlerin silinmiş halini dize halinde döndürür. - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. (X) soundex(X) fonksiyonu X dizesinin soundex kodlamasını string olarak döndürür. - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. (X,Y) substr(X,Y) fonksiyonu X dizesinin başlangıcından Y. indekse kadar olan string bölümünü döndürür. - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. (X,Y,Z) substr(X,Y,Z) fonksiyonu X dizesinin Y. indeksinden başlayarak Z uzunluğu kadar olan string bölümünü döndürür. - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. () total_changes() fonksiyonu geçerli veritabanı bağlantısı açıldığından itibaren INSERT, UPDATE veya DELETE ifadelerinden etkilenen toplam satır sayısını döndürür. - + (X) trim(X) removes spaces from both ends of X. (X) trim(X) fonksiyonu X'in içinde bulunan boşlukları siler. - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. (X,Y) trim(X,Y) fonksiyonu X'in içindeki Y'de bulunan tüm karakterlerin silinmiş halini dize halinde döndürür. - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. (X) typeof(X) fonksiyonu X ifadesinin veri tipini gösteren dizeyi döndürür. - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. (X) unicode(X) fonksiyonu X'in ilk karakterine karşılık gelen unicode kod noktasını döndürür. - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. (X) upper(X) fonksiyonu tüm X dizesinin tüm küçük ASCII karakterlerinin büyük harf karşılığına çevrilmiş kopyasını döndürür. - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. (N) zeroblob(N) fonksiyonu 0x00'ın N bayt kadar meydana gelmiş halini BLOB olarak döndürür. - + (timestring,modifier,modifier,...) - + (format,timestring,modifier,modifier,...) - + (X) The avg() function returns the average value of all non-NULL X within a group. (X) avg() fonksiyonu bir gruptaki NULL olmayan tüm X değerlerinin ortalama değerini döndürür. - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. (X) count(X) fonksiyonu bir gruptaki X'in kaç kere NULL olmadığının sayısını döndürür. - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. (X) group_concat() fonksiyonu X'in NULL olmayan tüm değerlerle birleşimini dize olarak döndürür. - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. (X,Y) group_concat() fonksiyonu X'in NULL olmayan tüm değerlerle birleşimini dize olarak döndürür. Eğer Y parametresi mevcutsa X'in örnekleri arasında ayraç olarak kullanılır. - + (X) The max() aggregate function returns the maximum value of all values in the group. (X) max() küme fonksiyonu gruptaki tüm değerler arasından en büyük değeri döndürür. - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. (X) min() küme fonksiyonu gruptaki NULL olmayan tüm değerler arasından en küçük değeri döndürür. - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. (X) sum() ve total() küme fonksiyonları gruptaki NULL olmayan tüm değerlerin toplamını döndürür. - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. () Geçerli bölümdeki satır sayısı. Satırlar, 1'den başlayarak, tanım penceresinde ORDER BY ifadesi tarafından tanımlanan sırada veya aksi takdirde rastgele sırada numaralandırılır. - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () row_number() her gruptaki ilk eşin - boşlukları olan geçerli satırın sırası. ORDER BY ifadesi yoksa, tüm satırlar eş olarak kabul edilir ve bu işlev her zaman 1 değerini döndürür. - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. () Geçerli satırın kendi bölümündeki eş grubunun sayısı - boşluklar olmadan geçerli satırın sırası. Bölümler, 1'den başlayarak, tanım penceresindeki ORDER BY ifadesi tarafından tanımlanan sırada numaralandırılır. ORDER BY iifadesi yoksa, tüm satırlar eş olarak kabul edilir ve bu işlev her zaman 1 değerini döndürür. - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. () İsme rağmen, bu işlev her zaman 0.0 ile 1.0 arasında (sıralama - 1) / (bölüm satırları - 1) değerine bir değer döndürür; burada sıralama, yerleşik pencere rank() fonksiyonu ve bölüm- tarafından döndürülen değerdir. satırlar, bölümdeki toplam satır sayısıdır. Bölüm yalnızca bir satır içeriyorsa, bu işlev 0,0 değerini döndürür. - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. () Kümülatif dağılım. Satır-sayısı/bölüm-satırları olarak hesaplanır; burada satır-sayısı, gruptaki son eş için row_number() tarafından döndürülen değerdir ve bölüm-satırdaki bölüm sayısıdır. - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. (N) N argümanı bir tamsayı olarak ele alınır. Bu işlev, bölümü olabildiğince eşit bir şekilde N gruplarına böler ve ORDER BY ifadesi tarafından tanımlanan sırada veya aksi takdirde rasgele sırayla her gruba 1 ve N arasında bir tam sayı atar. Gerekirse, önce daha büyük gruplar oluşur. Bu işlev, geçerli satırın parçası olduğu gruba atanan tamsayı değerini döndürür. - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. (expr) Bölümdeki önceki satıra göre expr ifade değerlendirmesinin sonucunu döndürür. Veya, önceki satır yoksa (geçerli satır ilk satır olduğu için), NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. (expr,offset) Uzaklık değişkeni sağlanırsa, negatif olmayan bir tam sayı olmalıdır. Bu durumda, döndürülen değer, bölüm içindeki geçerli satırdan önce satır ofseti satırlarına göre ifade değerlendirmesinin sonucudur. Ofset 0 ise, ifade geçerli satıra göre değerlendirilir. Geçerli satırdan önce satır kaydırma satırları yoksa, NULL döndürülür. - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. (expr,offset,default) Varsayılan da sağlanmışsa, ofset ile tanımlanan satır yoksa NULL döndürülür. - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. (expr) Bölümdeki bir sonraki satıra göre expr ifade değerlendirmesinin sonucunu döndürür. Veya, bir sonraki satır yoksa (geçerli satır son olduğu için), NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. (expr,offset) Uzaklık değişkeni sağlanırsa, negatif olmayan bir tam sayı olmalıdır. Bu durumda, döndürülen değer, bölüm içindeki geçerli satırdan sonra ifade ofset satırlarına göre ifade değerlendirmesinin sonucudur. Ofset 0 ise, ifade geçerli satıra göre değerlendirilir. Geçerli satırdan sonra satır ofseti satırı yoksa, NULL döndürülür. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. (expr) Bu yerleşik pencere işlevi, her satır için pencere çerçevesini birleştirilmiş pencere işlevi ile aynı şekilde hesaplar. Her satır için pencere çerçevesindeki ilk satıra karşı değerlendirilen ifade değerini döndürür. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. (expr) Bu yerleşik pencere işlevi, her satır için pencere çerçevesini birleştirilmiş pencere işlevi ile aynı şekilde hesaplar. Her satır için pencere çerçevesindeki son satıra göre değerlendirilen ifade değerini döndürür. - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. (expr,N) Bu yerleşik pencere işlevi, her satır için pencere çerçevesini birleştirilmiş pencere işlevi ile aynı şekilde hesaplar. Pencere çerçevesinin N satırına göre değerlendirilen ifade değerini döndürür. Satırlar, pencere çerçevesi içinde 1'den başlayarak, ORDER BY deyimi tarafından varsa veya başka bir şekilde rastgele sırada numaralandırılır. Bölümde N'inci satırı yoksa, NULL döndürülür. @@ -6823,40 +6436,41 @@ Bu işlevin kullanımına Tercihler'den izin verilmelidir. SqliteTableModel - + reading rows satırlar okunuyor - + loading... yükleniyor... - + References %1(%2) Hold %3Shift and click to jump there Referanslar %1(%2) Buraya atlamak için %3Shift'e basılı tutun ve tıklayın - + Error changing data: %1 Veri değiştirme hatası: %1 - + retrieving list of columns sütunların listesi alınıyor - + Fetching data... Veri alınıyor... - + + Cancel İptal @@ -6998,7 +6612,7 @@ Buraya atlamak için %3Shift'e basılı tutun ve tıklayın - + Replace Değiştir @@ -7013,610 +6627,631 @@ Buraya atlamak için %3Shift'e basılı tutun ve tıklayın Tümünü Değiştir - + <html><head/><body><p>Scroll to the beginning</p></body></html> <html><head/><body><p>Başa sürükle</p></body></html> - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> <html><head/><body><p>Bu butona basıldığında üstteki tablo görünümünün başlangıcına kaydırılır.</p></body></html> - + |< |< - + Scroll one page upwards Bir sayfa yukarı kaydır - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> <html><head/><body><p>Bu butona tıklamak, yukarıdaki tablo görünümünde kayıt sayfasını yukarı doğru kaydırır.</p></body></html> - + < < - + 0 - 0 of 0 0 - 0 / 0 - + Scroll one page downwards Bir sayfa aşağı kaydır - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> <html><head/><body><p>Bu butona tıklamak, yukarıdaki tablo görünümünde kayıt sayfasını aşağıya doğru kaydırır.</p></body></html> - + > > - + Scroll to the end Sona sürükle - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Bu butona basıldığında üstteki tablo görünümünün en sonuna kaydırılır.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> - + >| >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> <html><head/><body><p>İstediğiniz kayda atlamak için buraya tıklayın</p></body></html> - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> <html><head/><body><p>Bu buton belirtilen kayıt numarasına gitmek için kullanılır.</p></body></html> - + Go to: Bu kayda gidin: - + Enter record number to browse Görüntülemek için kayıt numarasını giriniz - + Type a record number in this area and click the Go to: button to display the record in the database view Bu alana veritabanı görünümünde görüntülemek istediğiniz kayıt numarasını giriniz ve Bu kayda gidin butonuna tıklayınız - + 1 1 - + Show rowid column rowid sütununu göster - + Toggle the visibility of the rowid column Rowid sütununun görünürlüğünü ayarla - + Unlock view editing Görünüm düzenlemenin kilidini aç - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. Bu, geçerli görünümün düzenleme için kilidini açar. Ancak, düzenleme için uygun tetikleyicilere ihtiyacınız olacaktır. - + Edit display format Görüntüleme formatını düzenle - + Edit the display format of the data in this column Bu sütundaki verilerin görüntüleme biçimini düzenleyin - - + + New Record Yeni Kayıt - - + + Insert a new record in the current table Geçerli tabloya yeni bir kayıt ekle - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> <html> <head /> <body> <p> Bu düğme veritabanında yeni bir kayıt oluşturur. Farklı seçeneklerin olduğu açılır menüsüyü görüntülemek için fare düğmesini basılı tutun: </p> <ul> <li> <span style=" font-weight:600;">Yeni Kayıt</span>: veritabanına varsayılan değerleri olan yeni bir kayıt ekler. </li> <li> <span style=" font-weight:600;">Değerler Ekleyin...</span>: veritabanına eklenmeden önce değerleri girmek için bir iletişim kutusu açın. Bu, farklı kısıtlamaları karşılayan değerlerin girilmesine izin verir. Bu iletişim kutusu, bu kısıtlamalar nedeniyle <span style=" font-weight:600;">Yeni Kayıt</span> seçeneği başarısız olursa da açılır. </li> </ul> </body> </html> - - + + Delete Record Kaydı Sil - + Delete the current record Geçerli kaydı sil - - + + This button deletes the record or records currently selected in the table Bu buton tabloda seçili olan kaydı veya kayıtları siler - - + + Insert new record using default values in browsed table Görüntülenen tablosundaki varsayılan değerleri kullanarak yeni kayıt ekle - + Insert Values... Değerler Ekle... - - + + Open a dialog for inserting values in a new record Yeni bir kayda değer eklemek için bir iletişim kutusu açın - + Export to &CSV &CSV dosyası olarak dışa aktar - - + + Export the filtered data to CSV Filtrelenmiş veriyi CSV olarak dışa aktar - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. Bu buton, görüntülenen tablonun verilerini şu anda görüntülendiği şekliyle (filtrelerden, görüntüleme biçimlerinden ve sütunların sıralamasına kadar) bir CSV dosyası olarak dışa aktarır. - + Save as &view &Görünüm olarak kaydet - - + + Save the current filter, sort column and display formats as a view Geçerli filtreyi, sütunu ve görüntüleme biçimlerini bir görünüm olarak kaydedin - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. Bu buton, görüntülenen tablonun geçerli ayarlarını (filtreler, görüntü formatları ve sütunların sırasına kadar) daha sonra göz atabileceğiniz veya SQL ifadelerinde kullanabileceğiniz bir SQL görünümü olarak kaydeder. - + Save Table As... Tabloyu Farklı Kaydet... - - + + Save the table as currently displayed Tabloyu şu anda gösterilen şekilde kaydet - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> <html> <head /> <body> <p> Bu açılır menü, o anda görüntülenen ve filtrelenen tablo için geçerli olan aşağıdaki seçenekleri sunar: </p> <ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;" > <li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;" > CSV olarak Dışa Aktar: Bu seçenek, görüntülenen tablonun verilerini şu anda görüntülendiği şekliyle (filtrelerden, görüntüleme biçimlerinden ve sipariş sütunun sıralamasına kadar) bir CSV dosyasına aktarır. </li> <li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;" > Görünüm olarak kaydet: Bu seçenek, göz atılan tablonun geçerli ayarlarını (filtreler, görüntü formatları ve sipariş sütun sıralamasına kadar) daha sonra göz atabileceğiniz veya SQL ifadelerinde kullanabileceğiniz bir SQL görünümü olarak kaydeder. </li> </ul> </body> </html> - + Hide column(s) Sütunları gizle - + Hide selected column(s) Seçilen sütunları gizle - + Show all columns Tüm sütunları göster - + Show all columns that were hidden Gizlenen tüm sütunları göster - - + + Set encoding Kodlama seç - + Change the encoding of the text in the table cells Tablo hücrelerindeki metnin kodlamasını değiştirme - + Set encoding for all tables Tüm tablolar için kodlama seç - + Change the default encoding assumed for all tables in the database Veritabanındaki tüm tablolar için varsayılan kodlamayı değiştirme - + Clear Filters Filtreleri Temizle - + Clear all filters Tüm filtreleri temizle - - + + This button clears all the filters set in the header input fields for the currently browsed table. Bu buton, o anda görüntülenen tablonun başlık giriş alanlarında ayarlanan tüm filtreleri temizler. - + Clear Sorting Sıralamayı Temizle - + Reset the order of rows to the default Satırların sırasını varsayılana sıfırla - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. Bu buton, o anda görüntülenen tablo için belirtilen sıralama sütunlarını temizler ve varsayılan sıraya geri döner. - + Print Yazdır - + Print currently browsed table data Şu anda görüntülenen tablo verilerini yazdır - + Print currently browsed table data. Print selection if more than one cell is selected. Şu anda görüntülenen tablo verilerini yazdırın. Birden fazla hücre seçilirse seçimi yazdırın. - + Ctrl+P - + Refresh Yenile - + Refresh the data in the selected table Seçilen tablodaki verileri yenile - + This button refreshes the data in the currently selected table. Bu buton, seçilen tablodaki verileri yeniler. - + F5 - + Find in cells Hücrelerde ara - + Open the find tool bar which allows you to search for values in the table view below. Aşağıdaki tablo görünümünde değerleri aramanıza izin veren bul araç çubuğunu açın. - Ctrl+F - + + Freeze columns + + + + + Make all columns from the first column up to this column not move when scrolling horizontally + - - + + Bold Kalın - + Ctrl+B - - + + Italic İtalik - - + + Underline Altı çizili - + Ctrl+U - - + + Align Right Sağa Hizala - - + + Align Left Sola Hizala - - + + Center Horizontally Yatayda Ortala - - + + Justify İki yana yasla - - + + Edit Conditional Formats... Koşullu Biçimlendirmeyi Düzenle... - + Edit conditional formats for the current column Geçerli sütun için koşullu biçimlendirmeyi düzenle - + Clear Format Biçimlendirmeleri Temizle - + Clear All Formats Tüm Biçimlendirmeleri Temizle - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns Seçilen hücrelerdeki tüm hücre biçimlendirmelerini ve seçilen sütunlardaki tüm koşullu biçimleri temizle - - + + Font Color Yazı Rengi - - + + Background Color Arka Plan Rengi - + Toggle Format Toolbar Biçim Araç Çubuğunu Aç/Kapat - + Show/hide format toolbar Biçim araç çubuğunu göster/gizle - - + + This button shows or hides the formatting toolbar of the Data Browser Bu düğme Veri Görüntüleyici'nin biçimlendirme araç çubuğunu gösterir veya gizler - + Select column Sütun seç - + Ctrl+Space - + Replace text in cells Hücrelerdeki metinleri değiştir - - Ctrl+H - - - Filter in all columns - Tüm sütunları filtrele + Filter in any column + - + Ctrl+R - + %n row(s) %n satır - + , %n column(s) , %n sütun - + . Sum: %1; Average: %2; Min: %3; Max: %4 . Toplam: %1; Ortalama: %2; Min: %3; Maks: %4 - + Conditional formats for "%1" "%1" için koşullu biçimlendirme - + determining row count... satır sayısı belirleniyor... - + %1 - %2 of >= %3 %1 - %2 >= %3 - + %1 - %2 of %3 %1 - %2 / %3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Bu görünümde düzenlemeyi etkinleştirmek için lütfen sözde birincil anahtar girin. Bu, görünümdeki benzersiz bir sütunun adı olmalıdır. - + Delete Records Kayıtları Sil - + Duplicate records Yinelenen kayıtlar - + Duplicate record Yinelenen kayıt - + Ctrl+" - + Adjust rows to contents Satırları içeriklere göre ayarlama - + Error deleting record: %1 Kayıt silme hatası: %1 - + Please select a record first Lütfen öncelikle kaydı seçiniz - + There is no filter set for this table. View will not be created. Bu tablo için ayarlanmış filtre yok. Görünüm oluşturulmaz. - + Please choose a new encoding for all tables. Lütfen tüm tablolar için yeni bir kodlama seçin. - + Please choose a new encoding for this table. Lütfen bu tablo için yeni bir kodlama seçin. - + %1 Leave the field empty for using the database encoding. %1 Veritabanı kodlamasını kullanmak için alanı boş bırakın. - + This encoding is either not valid or not supported. Bu kodlama geçerli değil veya desteklenmiyor. - + %1 replacement(s) made. %1 değişimi yapıldı. + + TableBrowserDock + + + New Data Browser + + + + + Rename Data Browser + + + + + Close Data Browser + + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + VacuumDialog @@ -7634,13 +7269,5 @@ Veritabanı kodlamasını kullanmak için alanı boş bırakın. Please select the databases to co&mpact: Sıkıştır&mak istediğiniz veritabanını seçiniz: - - Warning: Compacting the database will commit all changes you made. - Uyarı: Veritabanını genişletmek bütün yaptığınız değişiklikleri işleyecektir. - - - Please select the objects to compact: - Lütfen genişletilecek objeyi seçiniz: - diff --git a/src/translations/sqlb_uk_UA.ts b/src/translations/sqlb_uk_UA.ts index ca26e94e3..93c6a66ed 100644 --- a/src/translations/sqlb_uk_UA.ts +++ b/src/translations/sqlb_uk_UA.ts @@ -18,52 +18,6 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - - <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> for details.</p><p>For more information on this program please visit our website at: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - <html><head/><body><p>Оглядач БД для SQLite - це безкоштовна програма з відкритим вихідним кодом, призначена для створення і редагування баз даних SQLite.</p><p>Програма має дозволи за двома ліцензіями: Mozilla Public License Version 2 та GNU General Public License Version 3 або пізніші. Можна змінювати або розповсюджувати її за умовами цих ліцензій.</p><p>Посилання <a href="http://www.gnu.org/licenses/gpl.html"><span style="text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> та <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> для детальної інформації.</p><p>Більше інформації про програму можна отримати на веб-сайті: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">Це програмне забезпечення використовує GPL/LGPL Qt Toolkit </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>Посилання </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> для перегляду інформації про умови ліцензії.</span></p><p><span style=" font-size:small;">Ця програма також використовує набір значків Silk від Марка Джеймса (Mark James) з ліцензіями Creative Commons Attribution 2.5 та 3.0.<br />Посилання </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> для детальної інформації.</span></p> <p><span style="font-size: small;">Переклад українською здійснив Андрій Кондратьєв <a href="mailto:inbox@kondratyev.dp.ua">inbox@kondratyev.dp.ua</a><br /> Зв'язок з автором: </span><a href="https://www.facebook.com/a.s.kondratyev"><span style="font-size: small; text-decoration: underline; color: #0000ff;">https://www.facebook.com/a.s.kondratyev</span></a><span style="font-size:small;">. </p><p> Редактор - Genyk <a href="mailto:Genyk95@gmail.com">Genyk95@gmail.com</a><br/> </span></p> </body></html> - - - - Qt Version - Версія Qt - - - SQLCipher Version - Версія SQLCipher - - - SQLite Version - Версія SQLite - - - - SQLCipher Version %1 (based on SQLite %2) - - - - - Version - Версія - - - - Built for %1, running on %2 - - - - - Qt Version - Версія Qt - - - SQLCipher Version - Версія SQLCipher - - - - SQLite Version - Версія SQLite - AddRecordDialog @@ -158,115 +112,151 @@ Application - - Usage: %1 [options] [db] + + Possible command line arguments: + Доступні ключі командного рядку: + + + + The user settings file location is replaced with the argument value instead of the environment variable value. + + + + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + + + + + Usage: %1 [options] [<database>|<project>] - Використання: %1 [options] [db] + - - Possible command line arguments: - Доступні ключі командного рядку: + + -h, --help Show command line options + + + + + -q, --quit Exit application after running scripts + + + + + -s, --sql <file> Execute this SQL file after opening the DB + + + + + -t, --table <table> Browse this table after opening the DB + - - -h, --help Show command line options - -h, --help Показати довідку + + -R, --read-only Open database in read-only mode + - - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [file] Виконати цей SQL-файл після відкриття БД + + -S, --settings <settings_file> + - - -t, --table [table] Browse this table after opening the DB - -t, --table [table] Переглянути цю таблицю після відкриття БД + + Run application based on this settings file + - - This is DB Browser for SQLite version %1. + + -o, --option <group>/<setting>=<value> - - -q, --quit Exit application after running scripts - -q, --quit Вийти з програми після виконання скриптів + + Run application with this setting temporarily set to value + - - -R, --read-only Open database in read-only mode + + -O, --save-option <group>/<setting>=<value> - - -o, --option [group/setting=value] Run application with this setting temporarily set to value + + Run application saving this value for this setting - - -O, --save-option [group/setting=value] Run application saving this value for this setting + + -v, --version Display the current version - - -v, --version Display the current version + + <database> Open this SQLite database - - [file] Open this SQLite database - [file] Відкрити SQLite БД + + <project> Open this project file (*.sqbpro) + - + The -s/--sql option requires an argument -s/--sql опція вимагає аргумент - + The -t/--table option requires an argument -t/--table параметр таблиці вимагає аргумент - + + The -S/--settings option requires an argument. The option is ignored. + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value - + Invalid option/non-existant file: %1 Невірна опція/файл не існує: %1 - -h, --help Show command line options - -h, --help Показати довідку + + SQLite Version + Версія SQLite - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [file] Виконати цей SQL-файл після відкриття БД + + SQLCipher Version %1 (based on SQLite %2) + - -t, --table [table] Browse this table after opening the DB - -t, --table [table] Переглянути цю таблицю після відкриття БД + + DB Browser for SQLite Version %1. + - -q, --quit Exit application after running scripts - -q, --quit Вийти з програми після виконання сценарію + + Built for %1, running on %2 + - [file] Open this SQLite database - [file] Відкрити SQLite БД + + Qt Version %1 + - + The file %1 does not exist Файл %1 не існує - - Invalid option /non-existant file: %1 - Невірна опція /non-existant file: %1 - CipherDialog @@ -340,10 +330,6 @@ Raw key Необроблений ключ - - Page &size - Розмір &сторінки - Please set a key to encrypt the database. @@ -417,38 +403,48 @@ If any of the other settings were altered for this database file you need to pro + .NET DateTime.Ticks to date + + + + Julian day to date Дата за Юліанським календарем - + Unix epoch to local time - + Date as dd/mm/yyyy - + Lower case Нижній регістр - + + Binary GUID to text + + + + Custom display format must contain a function call applied to %1 - + Error in custom display format. Message from database engine: %1 - + Custom display format must return only one column but it returned %1. @@ -463,22 +459,22 @@ If any of the other settings were altered for this database file you need to pro Округлене число - + Unix epoch to date Unix-час - + Upper case Верхній регістр - + Windows DATE to date Windows дата - + Custom Мій формат @@ -605,281 +601,192 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - - This database has already been attached. Its schema name is '%1'. - - - - + Please specify the database name under which you want to access the attached database Будь ласка, вкажіть ім'я бази даних, під яким Ви хочете отримати доступ до під'єднаних баз даних - + Invalid file format Неправильний формат файлу - + Do you really want to close this temporary database? All data will be lost. - + Do you want to save the changes made to the database file %1? Зберегти зроблені зміни у файлі бази даних %1? - + Database didn't close correctly, probably still busy - + The database is currently busy: - + Do you want to abort that other operation? - + Exporting database to SQL file... Експорт бази даних у файл SQL... - - + + Cancel Скасувати - - + + No database file opened - + Executing SQL... Виконати код SQL... - + Action cancelled. Дію скасовано. - - + + Error in statement #%1: %2. Aborting execution%3. Помилка в операторі #%1: %2. Виконання скасовано%3. - - + + and rolling back і відкочено - + didn't receive any output from %1 - + could not execute command: %1 - + Cannot delete this object - + Cannot set data on this object Не вдається встановити дані в цей об'єкт - - + + A table with the name '%1' already exists in schema '%2'. - + No table with name '%1' exists in schema '%2'. - - + + Cannot find column %1. - + Creating savepoint failed. DB says: %1 - + Renaming the column failed. DB says: %1 - - + + Releasing savepoint failed. DB says: %1 - + Creating new table failed. DB says: %1 - + Copying data to new table failed. DB says: %1 - + Deleting old table failed. DB says: %1 - + Error renaming table '%1' to '%2'. Message from database engine: %3 - + could not get list of db objects: %1 - renameColumn: cannot find column %1. - renameColumn: не вдається знайти стовпець %1. - - - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: Не вдалося скасувати видалення деяких об'єктів, асоційованих із цією таблицею. Найімовірніша причина цього - зміна імен деяких стовпців таблиці. Ось SQL оператор, який потрібно виправити і виконати вручну: - Error renaming table '%1' to '%2'.Message from database engine: -%3 - Помилка перейменування таблиці '%1' в '%2'. Повідомлення від ядра БД: -%3 - - - ... <string can not be logged, contains binary data> ... - ... <рядок не можна записати в лог-файл, який містить двійкові дані> ... - - - + could not get list of databases: %1 - + Error loading extension: %1 Помилка завантаження розширення: %1 - + could not get column information неможливо отримати інформацію про стовпець - Error in statement #%1: %2. -Aborting execution. - Помилка в операторі #%1: %2. Виконання зупинено. - - - renameColumn: can not find table %1. - renameColumn: неможливо знайти таблицю %1. - - - renameColumn: can not find column %1. - renameColumn: неможливо знайти стовпець %1. - - - renameColumn: creating savepoint failed. DB says: %1 - renameColumn: помилка створення точки збереження. БД говорить: %1 - - - renameColumn: creating new table failed. DB says: %1 - renameColumn: помилка створення нової таблиці. БД говорить: %1 - - - renameColumn: copying data to new table failed. DB says: -%1 - renameColumn: помилка копіювання даних у нову таблицю. БД говорить: -%1 - - - renameColumn: deleting old table failed. DB says: %1 - renameColumn: помилка видалення старої таблиці. БД говорить: %1 - - - Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: - - Не вдалося скасувати видалення деяких об'єктів, асоційованих із цією таблицею. Найбільш імовірна причина цього - зміна імен деяких стовпців таблиці. Ось SQL оператор, який потрібно виправити і виконати вручну: - - - renameColumn: releasing savepoint failed. DB says: %1 - renameColumn: помилка звільнення точки збереження. БД говорить: %1 - - - Error renaming table '%1' to '%2'.message from database engine: -%3 - Помилка перейменування таблиці '%1' в '%2'. Повідомлення від ядра БД: -%3 - - - ... <string can not be logged, contains binary data > ... - ... <рядок не може бути записаний у лог-файл, оскільки містить двійкові дані >... - - - unknown object type %1 - невідомий тип об'єкту %1 - - - could not get list of db objects: %1, %2 - неможливо отримати список об'єктів БД: %1, %2 - - - could not get types - неможливо отримати типи - - - didn't receive any output from pragma %1 - не отримано жодного виходу з Прагма %1 - - - could not execute pragma command: %1, %2 - неможливо виконати комманду-прагму: %1, %2 - - - + Error setting pragma %1 to %2: %3 Помилка встановлення Прагми %1 в %2: %3 - + File not found. Файл не знайдено. @@ -906,22 +813,18 @@ Aborting execution. Schema Схема - - Browsables (%1) - Можна переглянути (%1) - Database - + Browsables - + All Все @@ -931,22 +834,22 @@ Aborting execution. - + Tables (%1) Таблиці (%1) - + Indices (%1) Індекси (%1) - + Views (%1) Перегляди (%1) - + Triggers (%1) Тригери (%1) @@ -959,260 +862,221 @@ Aborting execution. Редагування комірки бази даних - + Mode: Режим: - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. - + RTL Text - - + + Image Зображення - + JSON - + XML - - + + Automatically adjust the editor mode to the loaded data type - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. - + Auto-switch - + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. - + Open preview dialog for printing the data currently stored in the cell - + Auto-format: pretty print on loading, compact on saving. - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. - + Word Wrap - + Wrap lines on word boundaries - - + + Open in default application or browser - + Open in application - + The value is interpreted as a file or URL and opened in the default application or web browser. - + Save file reference... - + Save reference to file - - + + Open in external application - + Autoformat - + &Export... - - + + &Import... - - + + Import from file - - + + Opens a file dialog used to import any kind of data to this database cell. - + Export to file - + Opens a file dialog used to export the contents of this database cell to a file. - - + Print... - - Open preview dialog for printing displayed image - - - - - + Ctrl+P - + Open preview dialog for printing displayed text - + Copy Hex and ASCII - + Copy selected hexadecimal and ASCII columns to the clipboard - + Ctrl+Shift+C - Import text - Імпортувати текст - - - Opens a file dialog used to import text to this database cell. - Відкривається файловий діалог, щоб імпортувати текст у цю комірку бази даних. - - - &Import - &Імпортувати - - - Export text - Експортувати текст - - - Opens a file dialog used to export the contents of this database cell to a text file . - Відкриває файловий діалог, щоб експортувати вміст цієї комірки бази даних у текстовий файл. - - - &Export - &Експортувати - - - Set this cell to NULL - Присвоїти цій комірці значення NULL - - - + Set as &NULL Присвоїти &NULL - + Apply data to cell - + This button saves the changes performed in the cell editor to the database cell. - + Apply Застосувати - + Text Текст - + Binary Двійкові дані - Opens a file dialog used to export the contents of this database cell to a text file. - Відкриває файловий діалог, щоб експортувати вміст цієї комірки бази даних у текстовий файл - - - + Erases the contents of the cell Очищення вмісту комірки @@ -1222,120 +1086,110 @@ Errors are indicated with a red squiggle underline. Ця зона показує інформацію про дані, що є в цій комірці бази даних - + Type of data currently in cell Тип даних у комірці - + Size of data currently in table Розмір даних у таблиці - Choose a file - Обрати файл - - - Text files(*.txt);;Image files(%1);;All files(*) - Текстові файли(*.txt);;Файли зображень(%1);;Всі файли(*) - - - + Choose a filename to export data Вибрати ім'я файлу для експорту даних - Text files(*.txt);;All files(*) - Текстові файли(*.txt);;Всі файли(*) - - - Image data can't be viewed with the text editor - Зображення не можна показати в текстовому редакторі - - - Binary data can't be viewed with the text editor - Бінарні дані не можна показати в текстовому редакторі - - - + Type of data currently in cell: %1 Image Тип даних у комірці: %1 Зображення - + %1x%2 pixel(s) %1x%2 пікселів - + Type of data currently in cell: NULL Тип даних у комірці: NULL - - + + Type of data currently in cell: Text / Numeric Тип даних у комірці: Текст / Числове - - + + Image data can't be viewed in this mode. - - + + Try switching to Image or Binary mode. - - + + Binary data can't be viewed in this mode. - - + + Try switching to Binary mode. - - + + Image files (%1) - + Binary files (*.bin) - + + Couldn't save file: %1. + Неможливо зберегти файл: %1. + + + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + + + + Choose a file to import Оберіть файл для імпорту - + %1 Image - + Invalid data for this mode - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? - - - + + + %n character(s) %n символ @@ -1344,23 +1198,18 @@ Errors are indicated with a red squiggle underline. - + Type of data currently in cell: Valid JSON - + Type of data currently in cell: Binary Тип даних у комірці: Двійкові дані - - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. - - - - + + %n byte(s) %n байт @@ -1371,27 +1220,11 @@ Errors are indicated with a red squiggle underline. EditIndexDialog - - Create New Index - Створення нового індексу - &Name &Ім'я - - &Columns - &Стовпці - - - Column - Стовпець - - - Use in Index - Використовувати в індексі - Order @@ -1447,12 +1280,6 @@ Errors are indicated with a red squiggle underline. Index column Стовпець індексу - - Creating the index failed: -%1 - Невдале створення індексу: -%1 - Deleting the old index failed: @@ -1494,35 +1321,11 @@ Errors are indicated with a red squiggle underline. Without Rowid Без ідентифікатора - - Set this to create a temporary table that is deleted when closing the database. - Встановіть це, щоб створити тимчасову таблицю, яка видалиться після закриття бази даних. - - - Temporary table - Тимчасова таблиця - Fields Поля - - Add field - Додати поле - - - Remove field - Видалити поле - - - Move field up - Перемістити поле вгору - - - Move field down - Перемістити поле вниз - Database sche&ma @@ -1559,235 +1362,207 @@ Errors are indicated with a red squiggle underline. - - + + Name Ім'я - - + + Type Тип - + NN - + Not null Не (null) - + PK ПК - - Primary key - Первинний ключ + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + - + AI АІ - + Autoincrement Автоінкремент - + U У - - - + + + Unique Унікальне - + Default За замовчуванням - + Default value Значення за замовчуванням - - - + + + Check Перевірити - + Check constraint Перевірити обмеження - + Collation - - - + + + Foreign Key Зовнішній ключ - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + Constraints - + Add constraint - + Remove constraint - + Columns Стовпці - + SQL - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> - - + + Primary Key - + Add a primary key constraint - + Add a foreign key constraint - + Add a unique constraint - + Add a check constraint - <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result it in problems.</p></body></html> - <html><head/><body><p><span style=" font-weight: 600; color:#ff0000;">Увага: </span>Парсер не зміг зрозуміти визначення цієї таблиці. Її модифікація та збереження може призвести до подальших проблем.</p></body></html> - - - Error creating table. message from database engine: -%1 - Помилка створення таблиці. Повідомлення від ядра бази даних: -%1 - - - + There already is a field with that name. Please rename it first or choose a different name for this field. Поле з таким ім'ям уже існує. Будь ласка, переіменуйте його або виберіть інше ім'я для цього поля. - This column is referenced in a foreign key in table %1, column %2 and thus its name can not be changed. - На цей стовпець посилається зовнішній ключ у таблиці %1, стовпці %2, тому її ім'я неможливо змінити. - - - This column is referenced in a foreign key in table %1 and thus its name can not be changed. - На цей стовпець посилається зовнішній ключ у таблиці %1, тому її ім'я неможливо змінити. - - - - + + There can only be one primary key for each table. Please modify the existing primary key instead. - + Error creating table. Message from database engine: %1 Помилка створення таблиці. Повідомлення від ядра бази даних: %1 - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. На цей стовпець посилається зовнішній ключ у таблиці %1, тому її ім'я неможливо змінити. - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. Існує принаймні один рядок, де це поле встановлено в NULL. Встановити цей прапорець неможливо. Спочатку змініть дані таблиці. - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. Існує принаймні один рядок, де це поле містить нечислове значення. Встановити прапорець АІ неможливо. Спочатку змініть дані таблиці. - + Column '%1' has duplicate data. - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. - Column '%1' has no unique data. - - Стовпець '%1" не містить унікальних даних. - - - This makes it impossible to set this flag. Please change the table data first. - Неможливо поставити цей прапорець. Спочатку змініть табличні дані. - - - Modifying this column failed. Error returned from database: -%1 - Неможливо змінити цей рядок. Повідомлення про помилку від БД: -%1 - - - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. Ви впевнені, що хочете видалити поле '%1'? Всі дані, які містяться в цьому полі, будуть втрачені. - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled @@ -1795,24 +1570,6 @@ All data currently stored in this field will be lost. - встановлено прапорець первинного ключа - відімкнений автоінкремент - - Setting the temporary flag for the table failed. Error message: -%1 - Не вдалося встановити тимчасовий прапорець. Повідомлення помилки: - - - Please add a field which meets the following criteria before setting the without rowid flag: -- Primary key flag set -- Auto increment disabled - Будь ласка, додайте поле, яке відповідає насупним критеріям перед встановлення прапорцю без rowid: -- встановлено прапорець первинного ключа -- відімкнений автоінкремент - - - Setting the rowid column for the table failed. Error message: -%1 - Не вдалося встановити rowid стовпець для таблиці. Повідомлення помилки: - ExportDataDialog @@ -1821,18 +1578,6 @@ All data currently stored in this field will be lost. Export data as CSV Експортувати дані у форматі CSV - - &Table(s) - &Таблиці - - - &Column names in first line - &Імена стовпців у першому рядку - - - Field &separator - &Роздільник полів - Tab&le(s) @@ -1922,10 +1667,6 @@ All data currently stored in this field will be lost. Choose a filename to export data Виберіть ім'я файлу для експорту даних - - Text files(*.csv *.txt) - Текстові файли(*.csv *.txt) - Export data as JSON @@ -1941,10 +1682,6 @@ All data currently stored in this field will be lost. exporting JSON - - Text files(*.json *.js *.txt) - Текстові файли(*.json *.js *.txt) - Please select at least 1 table. @@ -2023,10 +1760,6 @@ All data currently stored in this field will be lost. Export schema only Експортувати тільки схему даних - - Please select at least 1 table. - Будь ласка, оберіть хоча б 1 таблицю. - Please select at least one table. @@ -2037,10 +1770,6 @@ All data currently stored in this field will be lost. Choose a filename to export Оберіть ім'я файлу для експорту - - Text files(*.sql *.txt) - Текстові файли(*.sql *.txt) - Export completed. @@ -2056,7 +1785,7 @@ All data currently stored in this field will be lost. ExtendedScintilla - + Ctrl+H @@ -2067,22 +1796,22 @@ All data currently stored in this field will be lost. - + Ctrl+P - + Find... - + Find and Replace... - + Print... @@ -2090,141 +1819,133 @@ All data currently stored in this field will be lost. ExtendedTableWidget - The content of clipboard is bigger than the range selected. -Do you want to insert it anyway? - Вміст буфера обміну більше ніж обраний діапазон. -Все одно вставити? - - - + Use as Exact Filter - + Containing - + Not containing - + Not equal to - + Greater than - + Less than - + Greater or equal - + Less or equal - + Between this and... - + Regular expression - + Edit Conditional Formats... - + Set to NULL Встановити в NULL - + + Cut + + + + Copy Копіювати - + Copy with Headers - + Copy as SQL - + Paste Вставити - + Print... - + Use in Filter Expression - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? Вміст буфера обміну більше ніж обраний діапазон. Все одно вставити? - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. - - FileDialog - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - Файли SQLite баз даних (*.db *.sqlite *.sqlite3 *.db3);;Всі файли (*) - - FileExtensionManager @@ -2533,9 +2254,38 @@ x~y Range: values between x and y Foreign key clauses (ON UPDATE, ON DELETE etc.) + + + ImageViewer + + + Image Viewer + + + + + Reset the scaling to match the original size of the image. + + + + + Set the scaling to match the size of the viewport. + + + + + Print... + + + + + Open preview dialog for printing displayed image + + - (foreign key clauses(ON UPDATE, ON DELETE etc.) - (типи зовнішніх ключів(ON UPDATE, ON DELETE тощо) + + Ctrl+P + @@ -2545,10 +2295,6 @@ x~y Range: values between x and y Import CSV file Імпортувати файл у форматі CSV - - &Table name - &Ім'я таблиці - Table na&me @@ -2576,7 +2322,7 @@ x~y Range: values between x and y - + Tab Табуляція @@ -2723,26 +2469,6 @@ x~y Range: values between x and y Select All Обрати все - - Inserting data... - Вставлення даних... - - - Cancel - Скасувати - - - There is already a table of that name and an import into an existing table is only possible if the number of columns match. - Таблиця з таким ім'ям уже існує, імпорт в існуючу таблицю можливий тільки якщо число стовпців збігається. - - - There is already a table of that name. Do you want to import the data into it? - Таблиця з таким ім'ям уже існує. Імпортувати дані в неї? - - - Import completed - Імпорт завершено - There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. @@ -2769,16 +2495,17 @@ x~y Range: values between x and y - - Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. - Missing field for record %1 - Пропущено стовпець для запису %1 + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. + - + Inserting row failed: %1 Помилка вставки рядка: %1 @@ -2791,1226 +2518,731 @@ x~y Range: values between x and y Оглядач для SQLite - + toolBar1 панельІнструментів1 - Table: - Таблиця: + + &Remote + &Віддалений - Select a table to browse data - Оберіть таблицю для перегляду даних + + &File + &Файл - Use this list to select a table to be displayed in the database view - Використовуйте цей список, щоб вибрати таблицю, яку буде показано в переглядачі баз даних + + &Import + &Імпорт - Refresh the data in the selected table. - Оновити дані в обраній таблиці. + + &Export + &Експорт - This button refreshes the data in the currently selected table. - Ця кнопка оновлює дані обраної на цей момент таблиці. + + &Edit + &Редагування - <html><head/><body><p>Click here to jump to the specified record</p></body></html> - <html><head/><body><p>Натисніть тут, щоб перейти до зазначеного запису</p></body></html> + + &View + &Вид - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Автовакум</span></a></p></body></html> + + &Help + &Довідка - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Автоматичний індекс</span></a></p></body></html> + + &Tools + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Повна контрольна точка FSYNC</span></a></p></body></html> + + DB Toolbar + Панель інструментів БД - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Foreign Keys</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Зовнішні ключі</span></a></p></body></html> + + Edit Database &Cell + Редагування &комірки БД - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Повний FSYNC</span></a></p></body></html> + + Error Log + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ігнорувати перевірку обмежень</span></a></p></body></html> + + This button clears the contents of the SQL logs + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Режим журналу</span></a></p></body></html> + + This panel lets you examine a log of all SQL commands issued by the application or by yourself + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Обмеження розміру журналу</span></a></p></body></html> + + DB Sche&ma + Схе&ма БД - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Locking Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Режим блокування</span></a></p></body></html> + + + Execute SQL + This has to be equal to the tab title in all the main tabs + Виконати SQL - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Максимальна кількість сторінок</span></a></p></body></html> + + + Execute current line + Виконати поточний рядок - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Розміри сторінки</span></a></p></body></html> + + This button executes the SQL statement present in the current editor line + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Рекурсивні тригери</span></a></p></body></html> + + Shift+F5 + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Безпечне видалення</span></a></p></body></html> + + Sa&ve Project + &Зберегти проект - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Одночасно</span></a></p></body></html> + + Opens the SQLCipher FAQ in a browser window + Відкрити SQLCiphier ЧаПи в браузері - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Тимчасове сховище</span></a></p></body></html> + + Export one or more table(s) to a JSON file + Експортувати таблиці в JSON файл - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">Користувацька версія</span></a></p></body></html> + + + Save SQL file as + Зберегти файл SQL як - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL Auto Checkpoint</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL автоматична контрольна точка</span></a></p></body></html> + + This button saves the content of the current SQL editor tab to a file + - - &Remote - &Віддалений + + &Browse Table + Пе&регляд таблиці - Web&site... - Веб-&сайт + + User + Користувачем - Refresh - Оновити + + Application + Додатком - F5 - + + &Clear + О&чистити - Insert a new record in the current table - Додати новий запис у поточну таблицю + + &New Database... + &Нова база даних... - &Table: - &Таблиця: + + + Create a new database file + Створити новий файл бази даних - This button creates a new, empty record in the database - Ця кнопка створює новий, порожній запис у таблиці + + This option is used to create a new database file. + Ця опція використовується щоб створити новий файл бази даних. - New Record - Додати запис + + Ctrl+N + - Delete the current record - Видалити поточний запис + + + &Open Database... + &Відкрити базу даних... - This button deletes the record currently selected in the database - Ця кнопка видаляє обраний запис із БД + + + + + + Open an existing database file + Відкрити існуючий файл бази даних - Delete Record - Видалити запис + + + + This option is used to open an existing database file. + Ця опція використовується, щоб відкрити існуючий файл бази даних. - This is the database view. You can double-click any record to edit its contents in the cell editor window. - Це переглядач баз даних. Зробіть подвійне клацання по будь-якому запису щоб відредагувати його вміст. + + Ctrl+O + - <html><head/><body><p>Scroll to the beginning</p></body></html> - <html><head/><body><p>Прокрутити на початок</p></body></html> + + &Close Database + &Закрити базу даних - <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - <html><head/><body><p>Натискання цієї кнопки переміщує до початку таблиці.</p></body></html> + + This button closes the connection to the currently open database file + - |< - |< + + + Ctrl+W + - Scroll 100 records upwards - Прокрутити на 100 записів вгору + + + Revert database to last saved state + Повернути базу даних до останнього збереженого стану - <html><head/><body><p>Clicking this button navigates 100 records upwards in the table view above.</p></body></html> - <html><head/><body><p>Натискання цієї кнопки переміщує на 100 записів вгору у таблиці</p></body></html> + + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. + Ця опція використовується, щоб повернути поточний файл бази даних до його останнього збереженого стану. Всі зміни, зроблені з останньої операції збереження, буде втрачено. - < - < + + + Write changes to the database file + Записати зміни у файл бази даних - 0 - 0 of 0 - 0 - 0 з 0 + + This option is used to save changes to the database file. + Ця опція використовується, щоб зберегти зміни у файлі бази даних. - <html><head/><body><p>Scroll 100 records downwards</p></body></html> - <html><head/><body><p>Прокрутити на 100 записів вниз</p></body></html> + + Ctrl+S + - <html><head/><body><p>Clicking this button navigates 100 records downwards in the table view above.</p></body></html> - <html><head/><body><p>Натискання цієї кнопки переміщує на 100 записів вниз у таблиці</p></body></html> + + Compact &Database... + - > - > + + Compact the database file, removing space wasted by deleted records + Ущільнити базу даних, видаливши простір, зайнятий видаленими записами - Scroll to the end - Прокрутити до кінця + + + Compact the database file, removing space wasted by deleted records. + Ущільнити базу даних, видаливши простір, зайнятий видаленими записами. - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Натискання цієї кнопки переміщує в кінець таблиці.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> + + E&xit + &Вихід - >| - >| + + Ctrl+Q + - <html><head/><body><p> Click here to jump to the specified record</p></body></html> - <html><head/><body><p>Натисніть тут, щоб перейти до зазначеного запису</p></body></html> + + Import data from an .sql dump text file into a new or existing database. + Імпортувати дані з текстового файлу .sql в нову або існуючу базу даних. - <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - <html><head/><body><p>Ця кнопка використовується, щоб переміститися до запису, номер якого зазначений в зоні Перейти до </p></body></html> + + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. + Ця опція дає змогу імпортувати дані з текстового файлу .sql у нову або існуючу базу даних. Файл SQL можна створити на більшості двигунів баз даних, включно з MySQL і PostgreSQL. - Go to: - Перейти до: + + Open a wizard that lets you import data from a comma separated text file into a database table. + Відкрити майстер, який дає змогу імпортувати дані з файлу CSV у таблицю бази даних. - Enter record number to browse - Введіть номер запису для перегляду + + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. + Відкрити майстер, який дає змогу імпортувати дані з файлу CSV у таблицю бази даних. Файли CSV можна створити в більшості програм баз даних і електронних таблиць. - Type a record number in this area and click the Go to: button to display the record in the database view - Надрукуйте номер запису в цій зоні й натисніть кнопку Перейти до:, щоб показати запис у базі даних + + Export a database to a .sql dump text file. + Експортувати базу даних у текстовий файл .sql. - 1 - 1 + + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. + Ця опція дає змогу експортувати базу даних у текстовий файл .sql. Файли SQL містять всі дані, необхідні для створення бази даних у більшості движків баз даних, включно з MySQL і PostgreSQL. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style="text-decoration: underline; color: #0000ff;">Auto Vacuum</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style="text-decoration: underline; color: #0000ff;">Auto Vacuum</span></a></p></body></html> + + &Table(s) as CSV file... + Таблиці у файл CSV... - None - Ні + + Export a database table as a comma separated text file. + Експортувати таблицю бази даних як CSV текстовий файл. - Full - Повний, цілий - Full + + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. + Експортувати таблицю бази даних як CSV текстовий файл, готовий для імпортування в інші бази даних або програми електронних таблиць. - Incremental - Incremental + + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database + Відкрити майстер створення таблиць, де можливо визначити ім'я і поля для нової таблиці в базі даних - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style="text-decoration: underline; color: #0000ff;">Automatic Index</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style="text-decoration: underline; color: #0000ff;">Automatic Index</span></a></p></body></html> + + Open the Delete Table wizard, where you can select a database table to be dropped. + Відкрити майстер видалення таблиці, де можна вибрати таблицю бази даних для видалення. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style="text-decoration: underline; color: #0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style="text-decoration: underline; color: #0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> + + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. + Відкрити майстер зміни таблиці, де можливо перейменувати існуючу таблиць. Можна додати або видалити поля таблиці, так само змінювати імена полів і типи. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style="text-decoration: underline; color: #0000ff;">Foreign Keys</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style="text-decoration: underline; color: #0000ff;">Foreign Keys</span></a></p></body></html> + + Open the Create Index wizard, where it is possible to define a new index on an existing database table. + Відкрити майстер створення Індексу, в якому можна визначити новий індекс для існуючої таблиці бази даних. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style="text-decoration: underline; color: #0000ff;">Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style="text-decoration: underline; color: #0000ff;">Full FSYNC</span></a></p></body></html> + + &Preferences... + &Налаштування... - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style="text-decoration: underline; color: #0000ff;">Ignore Check Constraints</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style="text-decoration: underline; color: #0000ff;">Ignore Check Constraints</span></a></p></body></html> + + + Open the preferences window. + Відкрити вікно налаштувань. - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style="text-decoration: underline; color: #0000ff;">Journal Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style="text-decoration: underline; color: #0000ff;">Journal Mode</span></a></p></body></html> + + &DB Toolbar + &Панель інструментів БД - Delete - Видалити + + Shows or hides the Database toolbar. + Показати або приховати панель інструментів БД. - Truncate - Усічення + + Shift+F1 + - Persist - Продовжити + + New &tab + - Memory - Пам'ять - - - WAL - WAL - - - Off - Вимкнути - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style="text-decoration: underline; color: #0000ff;">Journal Size Limit</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style="text-decoration: underline; color: #0000ff;">Journal Size Limit</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style="text-decoration: underline; color: #0000ff;">Locking Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style="text-decoration: underline; color: #0000ff;">Locking Mode</span></a></p></body></html> - - - Normal - Нормально - - - Exclusive - Вибірково - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style="text-decoration: underline; color: #0000ff;">Max Page Count</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style="text-decoration: underline; color: #0000ff;">Max Page Count</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style="text-decoration: underline; color: #0000ff;">Page Size</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style="text-decoration: underline; color: #0000ff;">Page Size</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style="text-decoration: underline; color: #0000ff;">Recursive Triggers</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style="text-decoration: underline; color: #0000ff;">Recursive Triggers</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style="text-decoration: underline; color: #0000ff;">Secure Delete</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style="text-decoration: underline; color: #0000ff;">Secure Delete</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style="text-decoration: underline; color: #0000ff;">Synchronous</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style="text-decoration: underline; color: #0000ff;">Synchronous</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style="text-decoration: underline; color: #0000ff;">Temp Store</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style="text-decoration: underline; color: #0000ff;">Temp Store</span></a></p></body></html> - - - Default - За замовчуванням - - - File - Файл - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style="text-decoration: underline; color: #0000ff;">User Version</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style="text-decoration: underline; color: #0000ff;">User Version</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style="text-decoration: underline; color: #0000ff;">WAL Auto Checkpoint</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style="text-decoration: underline; color: #0000ff;">WAL Auto Checkpoint</span></a></p></body></html> - - - - &File - &Файл - - - - &Import - &Імпорт - - - - &Export - &Експорт - - - Remote - Віддалений сервер - - - - &Edit - &Редагування - - - - &View - &Вид - - - - &Help - &Довідка - - - - &Tools - - - - - DB Toolbar - Панель інструментів БД - - - - Edit Database &Cell - Редагування &комірки БД - - - - Error Log - - - - - This button clears the contents of the SQL logs - - - - - This panel lets you examine a log of all SQL commands issued by the application or by yourself - - - - - DB Sche&ma - Схе&ма БД - - - - - Execute SQL - This has to be equal to the tab title in all the main tabs - Виконати SQL - - - &Load extension - Завантажити &розширення - - - - - Execute current line - Виконати поточний рядок - - - - This button executes the SQL statement present in the current editor line - - - - - Shift+F5 - - - - - Sa&ve Project - &Зберегти проект - - - Open &Project - Відкрити &проект - - - Edit display format - Формат показу - - - Edit the display format of the data in this column - Редагування формату показу для даних у цьому стовпці - - - Show rowid column - Показати стовпець rowid - - - Toggle the visibility of the rowid column - Змінити видимість стовпця rowid - - - Set encoding - Кодування - - - Change the encoding of the text in the table cells - Змінити кодування тексту в цій комірці таблиці - - - Set encoding for all tables - Встановити кодування для всіх таблиць - - - Change the default encoding assumed for all tables in the database - Змінити кодування за замовчуванням для всіх таблиць у базі даних - - - Duplicate record - Дублікат запису - - - SQLCipher &FAQ... - SQLCipher & ЧаПи... - - - - Opens the SQLCipher FAQ in a browser window - Відкрити SQLCiphier ЧаПи в браузері - - - Table(s) to JSON... - Таблиці в файл JSON... - - - - Export one or more table(s) to a JSON file - Експортувати таблиці в JSON файл - - - Open from Remote - Відкрити віддалений файл - - - Save to Remote - Зберегти в хмару - - - &Attach Database - &Прикріпити базу даних - - - - - Save SQL file as - Зберегти файл SQL як - - - - This button saves the content of the current SQL editor tab to a file - - - - - &Browse Table - Пе&регляд таблиці - - - Clear all filters - Очистити всі фільтри - - - - User - Користувачем - - - - Application - Додатком - - - - &Clear - О&чистити - - - Columns - Стовпці - - - X - X - - - Y - Y - - - _ - _ - - - Line type: - Лінія: - - - Line - Звичайна - - - StepLeft - Ступенева, зліва - - - StepRight - Ступенева, справа - - - StepCenter - Ступенева, по центру - - - Impulse - Імпульс - - - Point shape: - Форма точок: - - - Cross - Хрест - - - Plus - Плюс - - - Circle - Коло - - - Disc - Диск - - - Square - Квадрат - - - Diamond - Ромб - - - Star - Зірка - - - Triangle - Трикутник - - - TriangleInverted - Трикутник перевернутий - - - CrossSquare - Хрест у квадраті - - - PlusSquare - Плюс у квадраті - - - CrossCircle - Хрест у колі - - - PlusCircle - Плюс у колі - - - Peace - Світ - - - <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - <html><head/><body><p>Зберегти поточний графік...</p><p>Формат файлу вибирається розширенням (png, jpg, pdf, bmp)</p></body></html> - - - Save current plot... - Зберегти поточний графік... - - - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - Отримати всі дані. Діє якщо не всі дані довантажено. - - - DB Schema - Схема БД - - - - &New Database... - &Нова база даних... - - - - - Create a new database file - Створити новий файл бази даних - - - - This option is used to create a new database file. - Ця опція використовується щоб створити новий файл бази даних. - - - - Ctrl+N - - - - - - &Open Database... - &Відкрити базу даних... - - - - - - - - Open an existing database file - Відкрити існуючий файл бази даних - - - - - - This option is used to open an existing database file. - Ця опція використовується, щоб відкрити існуючий файл бази даних. - - - - Ctrl+O - - - - - &Close Database - &Закрити базу даних - - - - This button closes the connection to the currently open database file - - - - - - Ctrl+W - - - - - - Revert database to last saved state - Повернути базу даних до останнього збереженого стану - - - - This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. - Ця опція використовується, щоб повернути поточний файл бази даних до його останнього збереженого стану. Всі зміни, зроблені з останньої операції збереження, буде втрачено. - - - - - Write changes to the database file - Записати зміни у файл бази даних - - - - This option is used to save changes to the database file. - Ця опція використовується, щоб зберегти зміни у файлі бази даних. - - - - Ctrl+S - - - - - Compact &Database... + + Execute all/selected SQL - - Compact the database file, removing space wasted by deleted records - Ущільнити базу даних, видаливши простір, зайнятий видаленими записами - - - - - Compact the database file, removing space wasted by deleted records. - Ущільнити базу даних, видаливши простір, зайнятий видаленими записами. - - - - E&xit - &Вихід - - - - Ctrl+Q - - - - - Import data from an .sql dump text file into a new or existing database. - Імпортувати дані з текстового файлу .sql в нову або існуючу базу даних. - - - - This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. - Ця опція дає змогу імпортувати дані з текстового файлу .sql у нову або існуючу базу даних. Файл SQL можна створити на більшості двигунів баз даних, включно з MySQL і PostgreSQL. - - - - Open a wizard that lets you import data from a comma separated text file into a database table. - Відкрити майстер, який дає змогу імпортувати дані з файлу CSV у таблицю бази даних. - - - - Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. - Відкрити майстер, який дає змогу імпортувати дані з файлу CSV у таблицю бази даних. Файли CSV можна створити в більшості програм баз даних і електронних таблиць. - - - - Export a database to a .sql dump text file. - Експортувати базу даних у текстовий файл .sql. - - - - This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. - Ця опція дає змогу експортувати базу даних у текстовий файл .sql. Файли SQL містять всі дані, необхідні для створення бази даних у більшості движків баз даних, включно з MySQL і PostgreSQL. - - - - &Table(s) as CSV file... - Таблиці у файл CSV... - - - - Export a database table as a comma separated text file. - Експортувати таблицю бази даних як CSV текстовий файл. - - - - Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. - Експортувати таблицю бази даних як CSV текстовий файл, готовий для імпортування в інші бази даних або програми електронних таблиць. - - - - Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database - Відкрити майстер створення таблиць, де можливо визначити ім'я і поля для нової таблиці в базі даних - - - - Open the Delete Table wizard, where you can select a database table to be dropped. - Відкрити майстер видалення таблиці, де можна вибрати таблицю бази даних для видалення. - - - - Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. - Відкрити майстер зміни таблиці, де можливо перейменувати існуючу таблиць. Можна додати або видалити поля таблиці, так само змінювати імена полів і типи. - - - - Open the Create Index wizard, where it is possible to define a new index on an existing database table. - Відкрити майстер створення Індексу, в якому можна визначити новий індекс для існуючої таблиці бази даних. - - - - &Preferences... - &Налаштування... - - - - - Open the preferences window. - Відкрити вікно налаштувань. - - - - &DB Toolbar - &Панель інструментів БД - - - - Shows or hides the Database toolbar. - Показати або приховати панель інструментів БД. - - - - Shift+F1 - + + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. + - - Execute all/selected SQL + + Open SQL file(s) - - This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. + + This button opens files containing SQL statements and loads them in new editor tabs - + Execute line - + &Wiki - + F1 - + Bug &Report... - + Feature Re&quest... - + Web&site - + &Donate on Patreon... - + &Attach Database... - - + + Add another database file to the current database connection - + This button lets you add another database file to the current database connection - + &Set Encryption... - + SQLCipher &FAQ - + Table(&s) to JSON... - + Open Data&base Read Only... - + Ctrl+Shift+O - + Save results - + Save the results view - + This button lets you save the results of the last executed query - - + + Find text in SQL editor - + Find - + This button opens the search bar of the editor - + Ctrl+F - - + + Find or replace text in SQL editor - + Find or replace - + This button opens the find/replace dialog for the current editor tab - + Ctrl+H - + Export to &CSV Експортувати в &CSV - + Save as &view Зберегти як &вигляд - + Save as view Зберегти як вигляд - + Browse Table - + + Close Pro&ject + + + + + Close project and database files and return to the initial state + + + + + Ctrl+Shift+F4 + + + + + + Detach Database + + + + + + Detach database file attached to the current database connection + + + + Shows or hides the Project toolbar. - + + Recent Files + + + + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file - + This button lets you open a DB Browser for SQLite project file - + Extra DB Toolbar - + New In-&Memory Database - + Drag && Drop Qualified Names - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor - + Drag && Drop Enquoted Names - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - + &Integrity Check - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. - + &Foreign-Key Check - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - + &Quick Integrity Check - + Run a quick integrity check over the open DB - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. - + &Optimize - + Attempt to optimize the database - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. - - + + Print - + Print text from current SQL editor tab - + Open a dialog for printing the text in the current SQL editor tab - + Print the structure of the opened database - + Open a dialog for printing the structure of the opened database - + &Save Project As... - - - + + + Save the project in a file selected in a dialog - + Save A&ll - - - + + + Save DB file, project file and opened SQL files - + Ctrl+Shift+S - &About... - Про &програму... - - - + &Recently opened &Недавно відкриті - - Open &tab - Відкрити &вкладку - - - &Open Database Read Only... - &Відкрити БД тільки для читання... - - - + Open an existing database file in read only mode Відкрити існуючий файл БД у режимі тільки для читання - Unlock view editing - Розблокувати редагування вигляду - - - This unlocks the current view for editing. However, you will need appropriate triggers for editing. - Це розблоковує поточний вигляд для редагування. Проте вам необхідно виділити тригери для редагування - - - + Ctrl+T @@ -4036,82 +3268,74 @@ You can drag SQL statements from an object row and drop them into other applicat Переглянути дані - + Un/comment block of SQL code - + Un/comment block - + Comment or uncomment current line or selected block of code - + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. - + Ctrl+/ - + Stop SQL execution - + Stop execution - + Stop the currently running SQL script - ... - ... - - - - + + Edit Pragmas This has to be equal to the tab title in all the main tabs Редагувати прагму - + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. - Edit Database Cell - Редагування комірки БД - - - + SQL &Log &Журнал SQL - + Show S&QL submitted by По&казати SQL, який виконано - + &Plot &Графік - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. @@ -4119,576 +3343,464 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - - + + Project Toolbar - + Extra DB toolbar - - - + + + Close the current database file - + Ctrl+F4 - + &Revert Changes &Скасувати зміни - + &Write Changes &Записати зміни - Compact &Database - &Ущільнити базу даних - - - + &Database from SQL file... &База даних з файлу SQL... - + &Table from CSV file... &Таблиці з файлу CSV... - + &Database to SQL file... Базу &даних в файл SQL... - &Table (s) as CSV file... - &Таблиці в файл CSV... - - - + &Create Table... &Створити таблицю... - + &Delete Table... &Видалити таблицю... - + &Modify Table... &Змінити таблицю... - + Create &Index... Створити і&ндекс... - + W&hat's This? Що &це таке? - + &About - + This button opens a new tab for the SQL editor - + &Execute SQL Ви&конати код SQL - - Open SQL file - Відкрити файл SQL - - - - This button opens a file containing SQL statements and loads it in a new editor tab - - - - - - + + + Save SQL file Зберегти файл SQL - + &Load Extension... - + Ctrl+E - + Export as CSV file Експортувати у файл CSV - + Export table as comma separated values file Експортувати таблицю як CSV файл - &Wiki... - В&ікі... - - - Bug &report... - &Звіт про помилку... - - - Web &site... - &Веб-сайт... - - - - + + Save the current session to a file Зберегти поточний стан у файл - + Open &Project... - - + + Load a working session from a file Завантажити робочий стан із файлу - &Set Encryption - Ши&фрування - - - + Copy Create statement Копіювати CREATE вираз - + Copy the CREATE statement of the item to the clipboard Копіювати CREATE вираз елемента в буффер обміну - + Ctrl+Return - + Ctrl+L - - + + Ctrl+P - + Ctrl+D - + Ctrl+I - + Encrypted Зашифрований - + Read only Тільки для читання - + Database file is read only. Editing the database is disabled. База даних тільки для читання. Редагування заборонене. - + Database encoding Кодування бази даних - + Database is encrypted using SQLCipher База даних зашифрована з використанням SQLCipher - - + + Choose a database file Вибрати файл бази даних - + Could not open database file. Reason: %1 Неможливо відкрити файл бази даних. Причина: %1 - - - + + + Choose a filename to save under Вибрати ім'я, під яким зберегти дані - Error adding record: - - Помилка додавання запису: - - - - Error deleting record: -%1 - Помилка видалення запису: -%1 - - - Please select a record first - Будь ласка, спочатку оберіть запис - - - %1 - %2 of %3 - %1 - %2 з %3 - - - There is no database opened. Please open or create a new database file. - Немає відкритої бази даних. Відкрийте або створіть файл нової бази даних. - - - Are you sure you want to delete the %1 '%2'? -All data associated with the %1 will be lost. - Ви точно хочете видалити %1 '%2'? -Всі дані, пов'язані з %1, будуть втрачені. - - - Error: could not delete the %1. message from database engine: -%2 - Помилка: неможливо видалити %1. Повідомлення з движка бази даних: -%2 - - - There is no database opened. - Немає відкритої бази даних. - - - + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. Вийшла нова версія оглядача для SQLite (%1.%2.%3).<br/><br/>Вона доступна для скачування за посиланням <a href='%4'>%4</a>. - + DB Browser for SQLite project file (*.sqbpro) Файл проекту оглядача для SQLite (*.sqbpro) - Error executing query: %1 - Помилка виконання запиту: %1 - - - %1 rows returned in %2ms from: %3 - %1 рядків повернуто за %2мс з: %3 - - - ,%1 rows affected - ,%1 рядків змінено - - - Query executed successfully: %1 (took %2ms %3) - Запит успішно виконано: %1 (тривало %2мс %3) - - - Choose a text file - Вибрати текстовий файл - - - Text files (*.csv *.txt);;All files (*) - Текстові файли (*.csv *.txt);;Всі файли (*) - - - Import completed - Імпорт завершено - - - Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. -%1 - Помилка під час збереження файлу бази даних. Це означає, що не всі зміни в базу даних було збережено. Спочатку Вам потрібно розв'язати наступну помилку. - - - + Are you sure you want to undo all changes made to the database file '%1' since the last save? Скасувати всі зміни, зроблені у файлі бази даних '%1' після останнього збереження? - + Choose a file to import Оберіть файл для імпорту - Text files (*.sql *.txt);;All files (*) - Текстові файли (*.sql *.txt);;Всі файли (*) - - - + Do you want to create a new database file to hold the imported data? If you answer no we will attempt to import the data in the SQL file to the current database. Створити новий файл бази даних для збереження імпортованих даних? Якщо відповідь Ні, то здійсниться спроба імпортувати дані файлу SQL в поточну базу даних. - + File %1 already exists. Please choose a different name. Файл %1 вже існує. Оберіть інше ім'я. - + Error importing data: %1 Помилка імпортування даних: %1 - + Import completed. Імпорт завершено. - + Delete View Видалити перегляд - + Delete Trigger Видалити тригер - + Delete Index Видалити індекс - Please enter the URL of the database file to open. - Введіть URL файлу БД для його відкриття. - - - Please enter the URL of the database file to save. - Введіть URL файлу БД для його збереження. - - - Please choose a new encoding for this table. - Оберіть нову систему кодування для цієї таблиці. - - - Please choose a new encoding for all tables. - Оберіть нову систему кодування для всіх таблиць. - - - + Reset Window Layout - + Alt+0 - - Close current SQL tab - - - - + The database is currenctly busy. - + Click here to interrupt the currently running query. - + In-Memory database - + Do you want to save the changes made to the project file '%1'? - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. - + Are you sure you want to delete the view '%1'? - + Are you sure you want to delete the trigger '%1'? - + Are you sure you want to delete the index '%1'? - + Error: could not delete the table. - + Error: could not delete the view. - + Error: could not delete the trigger. - + Error: could not delete the index. - + Message from database engine: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? - + Error checking foreign keys after table modification. The changes will be reverted. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. - + + Edit View %1 + + + + + Edit Trigger %1 + + + + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. - + -- EXECUTING SELECTION IN '%1' -- - + -- EXECUTING LINE IN '%1' -- - + -- EXECUTING ALL IN '%1' -- - - + + At line %1: - + Result: %1 - + Result: %2 - + Execution finished with errors. - - Execution finished without errors. + + Execution finished without errors. + + + + + Opened '%1' in read-only mode from recent file list + + + + + Opened '%1' from recent file list - + &%1 %2%3 &%1 %2%3 - + (read only) - + Open Database or Project - + Attach Database... - + Import CSV file(s)... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. @@ -4697,118 +3809,168 @@ Are you sure you want to save the database? - + Do you want to save the changes made to SQL tabs in the project file '%1'? - + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + + + + Project saved to file '%1' - + + Yes. Don't ask again + + + + + This action will open a new SQL tab with the following statements for you to edit and run: + + + + Busy (%1) - + Rename Tab - + Duplicate Tab - + Close Tab - + Opening '%1'... - + There was an error opening '%1'... - + Value is not a valid URL or filename: %1 - + %1 rows returned in %2ms - - You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? + + Ctrl+Tab - - Import completed. Some foreign key constraints are violated. Please fix them before saving. + + Ctrl+Shift+Tab - - Do you want to save the changes made to SQL tabs in a new project file? + + Ctrl+PgUp - - Do you want to save the changes made to the SQL file %1? + + Clear List - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + Window Layout - - Could not find resource file: %1 + + Simplify Window Layout - - Choose a project file to open + + Shift+Alt+0 - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. + + Dock Windows at Bottom - - Could not open project file for writing. -Reason: %1 + + Dock Windows at Left Side - %1 -Leave the field empty for using the database encoding. - %1 -Залиште це поле порожнім якщо хочете, щоб використовувалося кодування за замовчуванням. + + Dock Windows at Top + - This encoding is either not valid or not supported. - Кодування невірне або не підтримується. + + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? + + + + + Import completed. Some foreign key constraints are violated. Please fix them before saving. + + + + + Do you want to save the changes made to SQL tabs in a new project file? + + + + + Do you want to save the changes made to the SQL file %1? + + + + + Could not find resource file: %1 + + + + + Choose a project file to open + + + + + Could not open project file for writing. +Reason: %1 + - + Collation needed! Proceed? Потрібно виконати зіставлення! Продовжити? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -4817,100 +3979,70 @@ Create a backup! Створіть резервну копію! - + creating collation - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. - + Please specify the view name Вкажіть ім'я вигляду - + There is already an object with that name. Please choose a different name. Об'єкт із зазначеним ім'ям уже існує. Виберіть інше ім'я. - + View successfully created. Вигляд успішно створений. - + Error creating view: %1 Помилка створення вигляду: %1 - + This action will open a new SQL tab for running: - + Press Help for opening the corresponding SQLite reference page. - Cancel - Скасувати - - - - + + Delete Table Видалити таблицю - &%1 %2 - &%1 %2 - - - + Setting PRAGMA values will commit your current transaction. Are you sure? Встановлення значень PRAGMA завершить поточну транзакцію. Встановити значення? - Error: could not delete the %1. Message from database engine: -%2 - Помилка: неможливо видалити %1. Повідомлення від движка БД: -%2 - - - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? - Execution aborted by user - Виконання скасовано користувачем - - - , %1 rows affected - , %1 рядків постраждало - - - Query executed successfully: %1 (took %2ms%3) - Запит виконано успішно: %1 (тривало %2мс%3) - - - + Choose text files Оберіть текстові файли - Text files(*.csv *.txt);;All files(*) - Текстові файли(*.csv *.txt);;Всі файли(*) - - - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 @@ -4919,98 +4051,66 @@ Are you sure? %1 - + Text files(*.sql *.txt);;All files(*) Текстові файли(*.sql *.txt);;Всі файли(*) - + Modify View Змінити вид - + Modify Trigger Змінити тригер - + Modify Index Змінити індекс - + Modify Table Змінити таблицю - + Select SQL file to open Обрати файл SQL для відкривання - Couldn't read file: %1. - Неможливо прочитати файл: %1. - - - Couldn't save file: %1. - Неможливо зберегти файл: %1. - - - + Select file name Обрати ім'я файлу - + Select extension file Обрати розширення файлу - Extensions(*.so *.dll);;All files(*) - Розширення(*.so *.dll);;Всі файли(*) - - - + Extension successfully loaded. Розширення успішно завантажено. - + Error loading extension: %1 Помилка завантаження розширення: %1 - - + + Don't show again Не показувати наступного разу - + New version available. Доступна нова версія. - - Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - Будь ласка, введіть псевдо-первинний ключ для можливості редагування у цьому виді. Це має бути і'мя унікального стовпця у виді - - - Choose a axis color - Вибрати колір осей - - - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Всі файли(*) - - - Choose a file to open - Вибрати файл для відкривання - - - Invalid file format. - Помилковий формат файлу. - NullLineEdit @@ -5033,45 +4133,37 @@ Are you sure? Графік - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> - + Columns Стовпці - + X X - Y - Y - - - _ - _ - - - + Y1 - + Y2 - + Axis Type - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -5082,147 +4174,139 @@ Select the axes or axes labels to drag and zoom only in that orientation. - + Line type: Тип лінії: - - + + None Ні - + Line Звичайна - + StepLeft Ступенева, зліва - + StepRight Ступенева, справа - + StepCenter Ступенева, по центру - + Impulse Імпульс - + Point shape: Форма точок: - + Cross Хрест - + Plus Плюс - + Circle Коло - + Disc Диск - + Square Квадрат - + Diamond Ромб - + Star Зірка - + Triangle Трикутник - + TriangleInverted Трикутник перевернутий - + CrossSquare Хрест у квадраті - + PlusSquare Плюс у квадраті - + CrossCircle Хрест у колі - + PlusCircle Плюс у колі - + Peace Світ - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> <html><head/><body><p>Зберегти поточний графік...</p><p>Формат файлу вибирається розширенням (png, jpg, pdf, bmp)</p></body></html> - + Save current plot... Зберегти поточний графік... - - + + Load all data and redraw plot - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - Отримати всі дані. Діє, якщо не всі дані довантажено. - - - - - + + + Row # Рядок # - - Choose a axis color - Вибрати колір осей - Copy @@ -5244,75 +4328,67 @@ Select the axes or axes labels to drag and zoom only in that orientation. - + Date/Time - + Date - + Time - - + + Numeric - + Label - + Invalid - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. - + Choose an axis color - + Choose a filename to save under Вибрати ім'я, під яким зберегти дані - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;Всі файли(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. - + Loading all remaining data for this table took %1ms. - - Fetching all data... - Отримання всіх даних... - - - Cancel - Відмінити - PreferencesDialog @@ -5322,34 +4398,36 @@ Warning: not all data has been fetched from the table yet due to the partial fet Налаштування - + &Database &База даних - + Database &encoding &Кодування бази даних - + Open databases with foreign keys enabled. Відкривати бази даних з увімкненими зовнішніми ключами. - + &Foreign keys &Зовнішні ключі - - - - - - + + + + + + + + enabled увімкнені @@ -5360,8 +4438,8 @@ Warning: not all data has been fetched from the table yet due to the partial fet - - + + ... ... @@ -5456,25 +4534,17 @@ Warning: not all data has been fetched from the table yet due to the partial fet - + SQ&L to execute after opening database SQ&L,який треба виконання після відкривання бази даних - + Data &Browser Оглядач &даних - NULL fields - NULL поля - - - &Text - &Текст - - - + Remove line breaks in schema &view Видалити розрив рядка в &схемі даних @@ -5484,237 +4554,192 @@ Warning: not all data has been fetched from the table yet due to the partial fet Показати віддалені опції - Remote server - Сервер - - - + Prefetch block si&ze Розмір блоку &вибірки - - Advanced - Додатково - - - SQL to execute after opening database - SQL, який потрібно виконати після відкриття БД - - - + Default field type Тип даних за замовчуванням - + Font Шрифт - + &Font &Шрифт - Font si&ze: - Ро&змір шрифту: - - - + Content Вміст - + Symbol limit in cell Кількість символів у осередку - Field colors - Кольорове оформлення полів - - - + NULL NULL - + Regular Звичайні - Text - Текст - - - + Binary Двійкові дані - + Background Фон - + Filters Фільтри - + Threshold for completion and calculation on selection - + Show images in cell - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. - + Escape character Символ екранування - + Delay time (&ms) Час затримки (&мс) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. Час затримки перед застосуванням нового фільтра. Нульове значення припиняє очікування. - + &SQL Р&едактор SQL - + Settings name Ім'я налаштувань - context - Контекст - - - + Context Контекст - + Colour Колір - + Bold Жирний - + Italic Курсив - + Underline Підкреслення - + Keyword Ключове слово - function - функція - - - + Function Функція - + Table Таблиця - + Comment Коментар - + Identifier Ідентифікатор - + String Рядок - currentline - поточний рядок - - - + Current line Поточна рядок - + SQL &editor font size Розмір шрифту в &редакторі SQL - SQL &log font size - Розмір шрифту в &журналі SQL - - - + Tab size Розмір табуляції - + SQL editor &font &Шрифт у редакторі SQL - + Error indicators Індикатори помилок - Enabling error indicators highlights the SQL code lines that caused errors during the last execution - Підсвічування в SQL коді рядків, виконання яких призвело до помилок - - - + Hori&zontal tiling Гори&зонтальний розподіл - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. Якщо ця опція увімкнена, то SQL редактор і результат запиту будуть розташовані поруч по горизонталі. - + Code co&mpletion Авто&доповнення коду @@ -5764,17 +4789,48 @@ Warning: not all data has been fetched from the table yet due to the partial fet - + + This sets the font size for all UI elements which do not have their own font size option. + + + + + Font size + + + + + Max Recent Files + + + + + Prompt to save SQL tabs +in new project file + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. - + + Database structure font size + + + + Font si&ze - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. @@ -5782,300 +4838,376 @@ Can be set to 0 for disabling the functionalities. - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. - + Field display - + Displayed &text - - - + - - + + + + Click to set this color - + Text color - + Background color - + Preview only (N/A) - + Foreground - + + selected_bg + + + + + Selection background + + + + + selected_fg + + + + + Selection foreground + + + + + highlight + + + + + Highlight + + + + SQL &results font size - + &Wrap lines - + Never - + At word boundaries - + At character boundaries - + At whitespace boundaries - + &Quotes for identifiers - + Choose the quoting mechanism used by the application for identifiers in SQL code. - + "Double quotes" - Standard SQL (recommended) - + `Grave accents` - Traditional MySQL quotes - + [Square brackets] - Traditional MS SQL Server quotes - + Keywords in &UPPER CASE - + When set, the SQL keywords are completed in UPPER CASE letters. - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background - + + Close button on tabs + + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + + + + &Extensions Р&озширення - + Select extensions to load for every database: Оберіть розширення, щоб завантажувати їх для кожної бази даних: - + Add extension Додати розширення - + Remove extension Видалити розширення - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> <html><head/><body><p>Оглядач для SQLite дає змогу використовувати оператор REGEXP 'з коробки'. Але попри<br/>це, можливі кілька різних варіантів реалізацій цього оператора й Ви вільні<br/>у виборі, який саме використовувати. Можна відімкнути нашу реалізацію та використовувати іншу -<br/>шляхом завантаження відповідного розширення. В цьому випадку потрібно перезавантажити програму.</p></body></html> - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> - + Allow loading extensions from SQL code - + Clone databases into Клонувати бази даних до - + Proxy - + Configure - <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/> algorithm but calls back the running application. DB Browser for SQLite implements this <br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/> implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> - <html><head/><body><p>Оглядач для SQLite дозволяє використовувати оператор REGEXP 'з коробки'. Але тим<br/>не менше, можливі кілька різних варіантів реалізацій даного оператора і Ви вільні<br/>у виборі яку саме використовувати. Можна відключити нашу реалізацію і використовувати іншу -<br/>шляхом завантаження відповідного розширення. В цьому випадку потрібно перезавантажити програму.</p></body></html> + + Export Settings + - + + Import Settings + + + + Disable Regular Expression extension Відімкнути розширення Регулярних Виразів - + Remote Віддалений сервер - + CA certificates СА-сертифікати - - + + Subject CN Об'єкт CN - + Common Name Звичайне ім'я - + Subject O Об'єкт O - + Organization Організація - - + + Valid from Дійсний з - - + + Valid to Дійсний до - - + + Serial number Серійний номер - + Your certificates Ваш сертифікат - + File Файл - + Subject Common Name Звичайне ім'я об'єкта - + Issuer CN Розповсюдник CN - + Issuer Common Name Звичайне ім'я розповсюдника - - + + Choose a directory Оберіть каталог - + + The language will change after you restart the application. Мова зміниться після перезапуску програми. - + Select extension file Обираємо файл розширення - Extensions(*.so *.dll);;All files(*) - Розширення(*.so *.dll);;Всі файли(*) - - - + Extensions(*.so *.dylib *.dll);;All files(*) - + Import certificate file Імпортувати файл сертифіката - + No certificates found in this file. Для цього файлу не знайдено сертифікатів. - + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! Ви впевнені, що хочете видалити цей сертифікат? Всі дані сертифіката видаляться з налаштувань програми! - + Are you sure you want to clear all the saved settings? All your preferences will be lost and default values will be used. + + + Save Settings File + + + + + + Initialization File (*.ini) + + + + + The settings file has been saved in location : + + + + + + Open Settings File + + + + + The settings file was loaded properly. + + + + + The selected settings file is not a normal settings file. +Please check again. + + ProxyDialog @@ -6137,14 +5269,6 @@ All your preferences will be lost and default values will be used. QObject - - Error importing data - Помилка імпортування даних - - - from record number %1 - з запису номер %1 - Error importing data @@ -6159,38 +5283,18 @@ All your preferences will be lost and default values will be used. . %1 - . -%1 - - - - Importing CSV file... - - - - - Cancel - Скасувати - - - Decoding CSV file... - Розшифровка CSV файлу... - - - Collation needed! Proceed? - Потрібно виконати зіставлення! Продовжити? + . +%1 - A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. -If you choose to proceed, be aware bad things can happen to your database. -Create a backup! - Таблиця в базі даних вимагає виконання спеціальної функції зіставлення '%1'. -Якщо Ви продовжите, то можливе псування Вашої бази даних. -Створіть резервну копію! + + Importing CSV file... + - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - Файли SQLite баз даних (*.db *.sqlite *.sqlite3 *.db3);;Всі файли (*) + + Cancel + Скасувати @@ -6198,7 +5302,7 @@ Create a backup! - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) @@ -6298,100 +5402,60 @@ Create a backup! - Name - Ім'я - - - Last modified - Востаннє змінений - - - Size - Розмір + + Initialization File (*.ini) + - RemoteDatabase - - - Error when connecting to %1. -%2 - Помилка під час під'єднання до %1. -%2 - - - - Error opening remote file at %1. -%2 - Помилка під час відкривання віддаленого файлу %1. -%2 - - - - Error: Invalid client certificate specified. - Помилка: Вказано неправильний сертифікат клієнта. - - - - Please enter the passphrase for this client certificate in order to authenticate. - Будь ласка, введіть парольну фразу для цього сертифіката клієнта, для автентифікації - - - - Cancel - Скасувати - + RemoteCommitsModel - - Uploading remote database to -%1 - Вивантаження віддаленої бази даних до -%1. {1?} + + Commit ID + - - Downloading remote database from -%1 - Завантаження віддаленої бази даних із -%1. {1?} + + Message + - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. + + Date - Uploading remote database to -%1. - Вивантаження віддаленої бази даних до -%1. + + Author + - Downloading remote database from -%1. - Завантаження віддаленої бази даних із -%1. + + Size + Розмір - - - Error: The network is not accessible. - Помилка: Мережа не доступна. + + Authored and committed by %1 + - - Error: Cannot open the file for sending. - Помилка: Неможливо відкрити файл для відправлення. + + Authored by %1, committed by %2 + + + + RemoteDatabase - + Error opening local databases list. %1 Помилка відкривання списку локальних баз даних. %1 - + Error creating local databases list. %1 Помилка створення списку локальних баз даних. @@ -6406,83 +5470,364 @@ Create a backup! Віддалений - B&rowse - В&ідкрити - - + Local - Локальний + Локальний - + Identity Ідентичний - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. + + Push currently opened database to server - - Go - Перейти + + Upload + - - Push currently opened database to server + + DBHub.io - + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - + + Current Database + + + + + Clone + + + + + User + Користувачем + + + + Database + + + + + Branch + + + + + Commits + + + + + Commits for + + + + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> - + Back - + + Delete Database + + + + + Delete the local clone of this database + + + + + Open in Web Browser + + + + + Open the web page for the current database in your browser + + + + + Clone from Link + + + + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + + + + + Refresh + Оновити + + + + Reload all data and update the views + + + + + F5 + + + + + Clone Database + + + + + Open Database + + + + + Open the local copy of this database + + + + + Check out Commit + + + + + Download and open this specific commit + + + + + Check out Latest Commit + + + + + Check out the latest commit of the current branch + + + + + Save Revision to File + + + + + Saves the selected revision of the database to another file + + + + + Upload Database + + + + + Upload this database as a new commit + + + + + Select an identity to connect + + + + Public + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + + + + + Invalid URL: The host name does not match the host name of the current identity. + + + + + Invalid URL: No branch name specified. + + + + + Invalid URL: No commit ID specified. + + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + + + + + The database has unsaved changes. Are you sure you want to push it before saving? + + + + + The database you are trying to delete is currently opened. Please close it before deleting. + + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + + - RemoteModel + RemoteLocalFilesModel - + Name - Ім'я + Ім'я - Version - Версія + + Branch + + + + + Last modified + Востаннє змінений + + + + Size + Розмір + + + + Commit + + + + + File + + + + + RemoteModel + + + Name + Ім'я - + Last modified Востаннє змінений - + Size Розмір - + Commit - bytes - байтів + + Size: + + + + + Last Modified: + + + + + Licence: + + + + + Default Branch: + + + + + RemoteNetwork + + + Choose a location to save the file + + + + + Error opening remote file at %1. +%2 + Помилка під час відкривання віддаленого файлу %1. +%2 + + + + Error: Invalid client certificate specified. + Помилка: Вказано неправильний сертифікат клієнта. + + + + Please enter the passphrase for this client certificate in order to authenticate. + Будь ласка, введіть парольну фразу для цього сертифіката клієнта, для автентифікації + + + + Cancel + + + + + Uploading remote database to +%1 + Вивантаження віддаленої бази даних до +%1. {1?} + + + + Downloading remote database from +%1 + Завантаження віддаленої бази даних із +%1. {1?} + + + + + Error: The network is not accessible. + Помилка: Мережа не доступна. + + + + Error: Cannot open the file for sending. + Помилка: Неможливо відкрити файл для відправлення. @@ -6502,15 +5847,6 @@ Create a backup! Commit message - - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - - Database licence @@ -6532,17 +5868,22 @@ p, li { white-space: pre-wrap; } - + + Username + + + + Database will be public. Everyone has read access to it. - + Database will be private. Only you have access to it. - + Use with care. This can cause remote commits to be deleted. @@ -6550,22 +5891,22 @@ p, li { white-space: pre-wrap; } RunSql - + Execution aborted by user Виконання скасовано користувачем - + , %1 rows affected , %1 рядків постраждало - + query executed successfully. Took %1ms%2 - + executing query @@ -6687,51 +6028,23 @@ p, li { white-space: pre-wrap; } Це поле показує результати та коди статусів останніх виконаних операторів. - Export to &CSV - Експортувати в &CSV - - - Save as &view - Зберегти як &вигляд - - - Save as view - Зберегти як вигляд - - - Please specify the view name - Вкажіть ім'я вигляду - - - There is already an object with that name. Please choose a different name. - Об'єкт із зазначеним ім'ям уже існує. Виберіть інше ім'я. - - - View successfully created. - Вигляд успішно створений. - - - Error creating view: %1 - Помилка створення вигляду: %1 - - - + Couldn't read file: %1. Неможливо прочитати файл: %1. - - + + Couldn't save file: %1. Неможливо зберегти файл: %1. - + Your changes will be lost when reloading it! - + The file "%1" was modified by another program. Do you want to reload it?%2 @@ -6743,6 +6056,11 @@ p, li { white-space: pre-wrap; } Ctrl+/ + + + Ctrl+PgDown + + SqlUiLexer @@ -6756,19 +6074,11 @@ p, li { white-space: pre-wrap; } () The changes() function returns the number of database rows that were changed or inserted or deleted by the most recently completed INSERT, DELETE, or UPDATE statement. () Функція changes() повертає кількість рядків у базі даних, які було змінено, вставлено або видалено після вдалого виконання INSERT, DELETE або UPDATE. - - (X1,X2,...) The char(X1,X2,...,XN) function returns a string composed of characters having the unicode code point values of integers X1 through XN, respectively. - (X1,X2,...) Функція char(X1,X2,...,XN) повертає рядок складений із символів, переданих в якості аргументів. - (X,Y,...) The coalesce() function returns a copy of its first non-NULL argument, or NULL if all arguments are NULL (X,Y,...) Функція coalesce() повертає копію першого аргументу не-NULL, якщо такого немає, то повертає NULL - - (X,Y) The glob (X,Y) function is equivalent to the expression "Y GLOB X". - (X,Y) Функція glob (X,Y) еквівалентна виразу "Y GLOB X". - (X,Y) The ifnull() function returns a copy of its first non-NULL argument, or NULL if both arguments are NULL. @@ -6786,46 +6096,39 @@ p, li { white-space: pre-wrap; } + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + + + + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. () Функція last_insert_rowid() повертає ROWID останнього вставленого рядка. - + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. (X) Для строкового значення X, функція length(X) повертає кількість символів (НЕ байтів) від початку рядка до першого символу '\0'. - + (X,Y) The like() function is used to implement the "Y LIKE X" expression. (X,Y) фукнція like() еквівалентна виразу "Y LIKE X". - + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. (X,Y,Z) Функція like() еквівалент вираження "Y LIKE X ESCAPE Z". - (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. - (X) Функція load_extension(X) завантажує розширення SQLite з файлу бібліотеки динамічного компонування X. - - - (X,Y) The load_extension(X,Y) function loads SQLite extensions out of the shared library file named X using the entry point Y. - (X,Y) Функція load_extension (X,Y) завантажує розширення SQLite з файлу бібліотеки динамічного компонування X, використовуючи точку входу Y. - - - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. (X) Функція lower(X) повертає копію рядка X, в якій усі ACSII символи переведені в нижній регістр. - + (X) ltrim(X) removes spaces from the left side of X. (X) ltrim(X) видаляє символи пробілів зліва для рядка X. - - (X,Y) The ltrim (X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. - (X,Y) Функція ltrim (X,Y) повертає новий рядок шляхом видалення з рядка X зліва будь-якого символу з Y. - (X1,X2,...) The char(X1,X2,...,XN) function returns a string composed of characters having the unicode code point values of integers X1 through XN, respectively. @@ -6837,257 +6140,249 @@ p, li { white-space: pre-wrap; } (X,Y) функція glob(X,Y) еквівалент вираження "Y GLOB X". - (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. - (X,Y) функція load_extension(X) завантажує розширення SQLite з файлу бібліотеки динамічного компонування X використовуючи точку входу Y. - - - + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. (X,Y) Функція ltrim (X,Y) повертає новий рядок шляхом видалення з рядка X зліва будь-якого символу з Y. - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. (X,Y,...) Функція max() повертає аргумент з максимальним значенням, або NULL, якщо хоча б один аргумент дорівнює NULL. - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. (X,Y,...) Функція min() повертає аргумент з мінімальним значенням. - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. (X,Y) Функція nullif(X,Y) повертає перший аргумент, якщо аргументи різні, або NULL, якщо вони однакові. - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. (FORMAT,...) Функція printf(FORMAT,...) працює так само, як printf() зі стандартної бібліотеки мови програмування Сі. - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. (X) Функція quote(X) повертає змінений рядок X, який можна використовувати в SQL виразах. - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. () Функція random() повертає псевдовипадкове цілочисельне значення з діапозона від -9223372036854775808 до +9223372036854775807. - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. (N) Функція randomblob(N) повертає N-байтний BLOB, що містить псевдовипадкові байти. - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. (X,Y,Z) Функція replace(X,Y,Z) повертає новий рядок на основі рядка X, заміною всіх підрядків Y на Z. - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. (X) Функція round(X) округлює X до цілого значення. - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. (X,Y) Функція round(X,Y) округлює X до Y чисел після коми праворуч. - + (X) rtrim(X) removes spaces from the right side of X. (X) rtrim(X) видаляє символи пробілу праворуч від рядка X. - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. (X,Y) Функція rtrim(X,Y) повертає новий рядок шляхом видалення з рядка X праворуч будь-якого символу з рядка Y. - + (timestring,modifier,modifier,...) (timestring,modifier,modifier,...) - + (format,timestring,modifier,modifier,...) (format,timestring,modifier,modifier,...) - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. - (X,Y) The rtrim (X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. - (X,Y) Функція rtrim(X,Y) повертає новий рядок шляхом видалення з рядка X праворуч будь-якого символу з рядка Y. - - - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. (X) Функція soundex(X) повертає копію рядка X, кодовану в форматі soundex. - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. (X,Y) substr(X,Y) повертає підрядок з рядка X, починаючи з Y-го символу. - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. (X,Y,Z) Функція substr(X,Y,Z) повертає підрядок з рядка X, починаючи з Y-го символу, завдовжки Z-символів. - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. () Функція total_changes() повертає кількість рядків, змінених за допомогою INSERT, UPDATE або DELETE, починаючи з того моменту, коли під'єднання до бази даних було відкрито. - + (X) trim(X) removes spaces from both ends of X. (X) trim(X) видаляє пробіли з обох сторін рядка X. - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. (X,Y) Функція trim(X,Y) створює новий рядок з X шляхом видалення з обох кінців символів, які присутні в рядку Y. - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. (X) Функція typeof(X) повертає рядок із типом даних вираження X. - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. (X) Функція unicode(X) повертає числове значення UNICODE коду символу. - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. (X) Функція upper(X) повертає копію рядка X, в якій для кожного ASCII символу регістр буде перетворений з нижнього у верхній. - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. (N) Функція zeroblob(N) повертає BLOB розміром N байт зі значеннями 0x00. - + (X) The avg() function returns the average value of all non-NULL X within a group. (X) Функція avg() повертає середнє значення для всіх не-NULL значень групи. - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. (X) Функція count(X) повертає кількість рядків, у яких X не-NULL у групі. - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. (X) Функція group_concat() повертає рядок з усіх значень X не-NULL. - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. (X,Y) Функція group_concat() повертає рядок з усіх значень X не-NULL. Y - роздільник між значеннями X. - + (X) The max() aggregate function returns the maximum value of all values in the group. (X) Агрегатна функція max() повертає максимальне значення для X. - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. (X) Агрегатна функція min() повертає мінімальне не-NULL значення для X. - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. (X) Агрегатні функції sum() і total() повертають суму всіх не-NULL значень для X. @@ -7095,52 +6390,41 @@ Use of this function must be authorized from Preferences. SqliteTableModel - References %1 (%2) -Hold Ctrl+Shift and click to jump there - Налаштування %1 (%2) -Натисніть Ctrl+Shift і клік щоб переміститися туди - - - References %1(%2) -Hold Ctrl+Shift and click to jump there - Налаштування %1(%2) -Затисніть Ctrl+Shift і клік, щоб переміститися туди - - - + reading rows - + loading... - + References %1(%2) Hold %3Shift and click to jump there - + Error changing data: %1 Помилка зміни даних: %1 - + retrieving list of columns - + Fetching data... - + + Cancel @@ -7276,7 +6560,7 @@ Hold %3Shift and click to jump there - + Replace @@ -7291,490 +6575,496 @@ Hold %3Shift and click to jump there - + <html><head/><body><p>Scroll to the beginning</p></body></html> <html><head/><body><p>Прокрутити на початок</p></body></html> - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> <html><head/><body><p>Натискання цієї кнопки переміщує до початку таблиці.</p></body></html> - + |< |< - + Scroll one page upwards - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - + < < - + 0 - 0 of 0 0 - 0 з 0 - + Scroll one page downwards - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - + > > - + Scroll to the end Прокрутити до кінця - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Натискання цієї кнопки переміщує в кінець таблиці.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> - + >| >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> <html><head/><body><p>Натисніть тут, щоб перейти до зазначеного запису</p></body></html> - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> <html><head/><body><p>Ця кнопка використовується, щоб переміститися до запису, номер якого зазначений в зоні Перейти до </p></body></html> - + Go to: Перейти до: - + Enter record number to browse Введіть номер запису для перегляду - + Type a record number in this area and click the Go to: button to display the record in the database view Надрукуйте номер запису в цій зоні й натисніть кнопку Перейти до:, щоб показати запис у базі даних - + 1 1 - + Show rowid column Показати стовпець rowid - + Toggle the visibility of the rowid column Змінити видимість стовпця rowid - + Unlock view editing Розблокувати редагування вигляду - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. Це розблоковує поточний вигляд для редагування. Проте вам необхідно виділити тригери для редагування - + Edit display format Формат показу - + Edit the display format of the data in this column Редагування формату показу для даних у цьому стовпці - - + + New Record Додати запис - - + + Insert a new record in the current table Додати новий запис у поточну таблицю - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - - + + Delete Record Видалити запис - + Delete the current record Видалити поточний запис - - + + This button deletes the record or records currently selected in the table - - + + Insert new record using default values in browsed table - + Insert Values... - - + + Open a dialog for inserting values in a new record - + Export to &CSV Експортувати в &CSV - - + + Export the filtered data to CSV - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - + Save as &view Зберегти як &вигляд - - + + Save the current filter, sort column and display formats as a view - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - + Save Table As... - - + + Save the table as currently displayed - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - + Hide column(s) - + Hide selected column(s) - + Show all columns - + Show all columns that were hidden - - + + Set encoding Кодування - + Change the encoding of the text in the table cells Змінити кодування тексту в цій комірці таблиці - + Set encoding for all tables Встановити кодування для всіх таблиць - + Change the default encoding assumed for all tables in the database Змінити кодування за замовчуванням для всіх таблиць у базі даних - + Clear Filters - + Clear all filters Очистити всі фільтри - - + + This button clears all the filters set in the header input fields for the currently browsed table. - + Clear Sorting - + Reset the order of rows to the default - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. - + Print - + Print currently browsed table data - + Print currently browsed table data. Print selection if more than one cell is selected. - + Ctrl+P - + Refresh Оновити - + Refresh the data in the selected table - + This button refreshes the data in the currently selected table. Ця кнопка оновлює дані обраної на цей момент таблиці. - + F5 - + Find in cells - + Open the find tool bar which allows you to search for values in the table view below. - - + + Bold Жирний - + Ctrl+B - - + + Italic Курсив - - + + Underline Підкреслення - + Ctrl+U - - + + Align Right - - + + Align Left - - + + Center Horizontally - - + + Justify - - + + Edit Conditional Formats... - + Edit conditional formats for the current column - + Clear Format - + Clear All Formats - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns - - + + Font Color - - + + Background Color - + Toggle Format Toolbar - + Show/hide format toolbar - - + + This button shows or hides the formatting toolbar of the Data Browser - + Select column - + Ctrl+Space - + Replace text in cells + + + Freeze columns + + + + + Make all columns from the first column up to this column not move when scrolling horizontally + + - Filter in all columns + Filter in any column - + Ctrl+R - + %n row(s) @@ -7783,7 +7073,7 @@ Hold %3Shift and click to jump there - + , %n column(s) @@ -7792,105 +7082,128 @@ Hold %3Shift and click to jump there - + . Sum: %1; Average: %2; Min: %3; Max: %4 - + Conditional formats for "%1" - + determining row count... - + %1 - %2 of >= %3 - + %1 - %2 of %3 %1 - %2 з %3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. Будь ласка, введіть псевдо-первинний ключ для можливості редагування у цьому виді. Це має бути і'мя унікального стовпця у виді - + Delete Records - + Duplicate records - + Duplicate record Дублікат запису - + Ctrl+" - + Adjust rows to contents - + Error deleting record: %1 Помилка видалення запису: %1 - + Please select a record first Будь ласка, спочатку оберіть запис - + There is no filter set for this table. View will not be created. - + Please choose a new encoding for all tables. Оберіть нову систему кодування для всіх таблиць. - + Please choose a new encoding for this table. Оберіть нову систему кодування для цієї таблиці. - + %1 Leave the field empty for using the database encoding. %1 Залиште це поле порожнім якщо хочете, щоб використовувалося кодування за замовчуванням. - + This encoding is either not valid or not supported. Кодування невірне або не підтримується. - + %1 replacement(s) made. + + TableBrowserDock + + + New Data Browser + + + + + Rename Data Browser + + + + + Close Data Browser + + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + VacuumDialog @@ -7909,13 +7222,5 @@ Leave the field empty for using the database encoding. Please select the databases to co&mpact: - - Warning: Compacting the database will commit all changes you made. - Попередження: Ущільнення бази даних зафіксує всі зміни, які було зроблено. - - - Please select the objects to compact: - Виберіть об'єкти для ущільнення: - diff --git a/src/translations/sqlb_zh.ts b/src/translations/sqlb_zh.ts index bbb4e15e5..7a300139d 100644 --- a/src/translations/sqlb_zh.ts +++ b/src/translations/sqlb_zh.ts @@ -16,44 +16,7 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - <html><head/><body><p>DB Browser for SQLite 是一个开源免费的可视化工具,用于创建、设计和编辑 SQLite 数据库文件。</p><p>它以第 2 版 Mozilla 公共许可,以及第 3 版及之后版本的 GNU 通用许可方式授权。你可以在遵循这些许可的条件下修改或重新发布它。</p><p>参阅 <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> 了解细节。</p><p>要获得本程序的更多信息,请访问我们的网站: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">这个软件使用了来自于 </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a> <span style=" font-size:small;">的 GPL/LGPL Qt Toolkit。<br/>参阅 </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> 了解许可条款和其他信息。</span></p><p><span style=" font-size:small;">它还使用了 Mark James 的 Silk 图标集,以第 2.5 和 3.0 版知识共享署名(CCA)许可方式授权。<br/>参阅 </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> 了解细节。</span></p></body></html> - - - <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> for details.</p><p>For more information on this program please visit our website at: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - <html><head/><body><p>DB Browser for SQLite 是一个开源的免费可视化工具,用于创建、设计和编辑 SQLite 数据库文件。</p><p>它是以第 2 版 Mozilla 公共许可,以及第 3 版及之后版本的 GNU 通用许可方式授权。你可以在遵循这些许可的条件下修改或重新发布它。</p><p>参阅 <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> 和 <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> 了解细节。</p><p>要获得本程序的更多信息,请访问我们的网站: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">这个软件使用了 GPL/LGPL Qt Toolkit: </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>参阅 </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> 了解许可条款和信息。</span></p><p><span style=" font-size:small;">它还是用了由 Mark James 提供的 Silk 图标集,以第 2.5 和 3.0 版知识共享署名(CCA)许可方式授权。<br/>参阅 </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> 了解细节。</span></p></body></html> - - - (based on SQLite %1) - (基于 SQLite %1) - - - - SQLCipher Version %1 (based on SQLite %2) - SQLCipher 版本 %1 (基于 SQLite %2) - - - - Version - 版本 - - - - Built for %1, running on %2 - 为 %1 构建,运行于 %2 - - - - Qt Version - Qt 版本 - - - SQLCipher Version - SQLCipher 版本 - - - - SQLite Version - SQLite 版本 + <html><head/><body><p>DB Browser for SQLite 是一个开源、免费的可视化工具,用于创建、设计和编辑 SQLite 数据库文件。</p><p>它的授权遵循 Mozilla 公共许可证第二版,以及 GNU 通用公共许可证第三版或更新版。你可以在遵循这些许可证的前提下对其修改或再分发。</p><p>细则详见 <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> 和 <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a>。</p><p>有关此程序的更多信息,请访问我们的网站: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">本软件使用了 </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a> <span style=" font-size:small;">的 GPL/LGPL Qt Toolkit。<br/>许可条款和其他信息详见 </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;">。</span></p><p><span style=" font-size:small;">它也使用了 Mark James 的 Silk 图标集,按知识共享-署名的 2.5 和 3.0 版许可证。<br/>详见 </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;">。</span></p></body></html> @@ -71,7 +34,7 @@ In the Value column you can specify the value for the field identified in the Name column. The Type column indicates the type of the field. Default values are displayed in the same style as NULL values. - 在值列,你可以选择给对应名字列的值。类型列显示了字段的类型。默认值的显示样式和 NULL 值一样。 + 在“值”列中指定对应“名称”列的值。“类型”提供字段的类型。默认值的显示样式等同 NULL 值。 @@ -91,17 +54,17 @@ Values to insert. Pre-filled default values are inserted automatically unless they are changed. - 要插入的值。如果没有修改,就会插入事先填好的默认值。 + 要插入的值。不做修改则会使用默认填好的默认值。 When you edit the values in the upper frame, the SQL query for inserting this new record is shown here. You can edit manually the query before saving. - 当你在上面编辑值时,这里会显示插入新记录所用的 SQL 语句。你可以在保存前手动修改这些语句。 + 你在上方编辑值时,这里会显示插入新记录所用的 SQL 语句。你可以在保存前手动修改语句。 <html><head/><body><p><span style=" font-weight:600;">Save</span> will submit the shown SQL statement to the database for inserting the new record.</p><p><span style=" font-weight:600;">Restore Defaults</span> will restore the initial values in the <span style=" font-weight:600;">Value</span> column.</p><p><span style=" font-weight:600;">Cancel</span> will close this dialog without executing the query.</p></body></html> - <html><head/><body><p><span style=" font-weight:600;">保存</span> 将会把显示的 SQL 语句提交到数据库以插入新记录。</p><p><span style=" font-weight:600;">恢复默认</span> 将会把 <span style=" font-weight:600;">值</span> 恢复成默认值。</p><p><span style=" font-weight:600;">取消</span> 将会关闭此界面,不执行 SQL 语句。</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">保存</span> 将会把显示的 SQL 语句提交到数据库以插入新记录。</p><p><span style=" font-weight:600;">恢复默认</span> 将会把 <span style=" font-weight:600;">值</span> 列恢复为初始值。</p><p><span style=" font-weight:600;">取消</span> 将会关闭此界面,不执行语句。</p></body></html> @@ -156,96 +119,152 @@ Application - - Usage: %1 [options] [db] + + Possible command line arguments: + 可用命令行参数: + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value + -o/--option 和 -O/--save-option 选项需要 group/setting=value 格式的参数 + + + + The user settings file location is replaced with the argument value instead of the environment variable value. + 用户设置文件的位置将使用参数值而非环境变量值。 + + + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + 忽略的环境变量 (DB4S_SETTINGS_FILE) 值 : + + + + Usage: %1 [options] [<database>|<project>] - 用法: %1 [选项] [数据库] + 用法: %1 [选项] [<数据库>|<项目>] - - Possible command line arguments: - 可用命令行参数: + + -h, --help Show command line options + -h, --help 显示命令行选项 - - -h, --help Show command line options - -h, --help 显示命令行选项 + + -q, --quit Exit application after running scripts + -q, --quit 运行脚本后退出应用程序 - - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [文件] 在打开数据库后执行此 SQL 文件 + + -s, --sql <file> Execute this SQL file after opening the DB + -s, --sql <文件> 打开数据库后执行此 SQL 文件 - - -t, --table [table] Browse this table after opening the DB - -t, --table [表] 在打开数据库后浏览此表 + + -t, --table <table> Browse this table after opening the DB + -t, --table <表> 打开数据库后浏览此表 - - -o, --option [group/setting=value] Run application with this setting temporarily set to value - -o, --option [分组/设置=值] 临时以此设置运行程序 + + -R, --read-only Open database in read-only mode + -R, --read-only 在只读模式下打开数据库 - - -O, --save-option [group/setting=value] Run application saving this value for this setting - -O, --save-option [分组/设置=值] 以此设置运行程序并保存设置 + + -S, --settings <settings_file> + -S, --settings <设置文件> - - This is DB Browser for SQLite version %1. - 这是 DB Browser for SQLite 版本 %1%2. {1.?} + + Run application based on this settings file + 基于此设置文件运行应用程序 - - The -o/--option and -O/--save-option options require an argument in the form group/setting=value - -o/--option 和 -O/--save-option 选项需要 group/setting=value 格式的参数 + + -o, --option <group>/<setting>=<value> + -o, --option <组>/<设置>=<值> - - -q, --quit Exit application after running scripts - -q, --quit 在运行脚本后退出应用程序 + + Run application with this setting temporarily set to value + 临时使用设定的设置/值来运行应用程序 - - -R, --read-only Open database in read-only mode - -R, --read-only 用只读模式打开数据库 + + -O, --save-option <group>/<setting>=<value> + -O, --save-option <组>/<设置>=<值> - - -v, --version Display the current version - -v, --version 显示当前版本 + + Run application saving this value for this setting + 运行应用程序,为此设置保存此值 - - [file] Open this SQLite database - [文件] 打开这个 SQLite 数据库 + + -v, --version Display the current version + -v, --version 显示当前版本 - This is DB Browser for SQLite version %1%2. - 这是 DB Browser for SQLite 版本 %1%2. + + <database> Open this SQLite database + <数据库> 打开该 SQLite 数据库 - + + <project> Open this project file (*.sqbpro) + <项目> 打开该项目文件 (*.sqbpro) + + + The -s/--sql option requires an argument -s/--sql 选项需要一个参数 - + The file %1 does not exist 文件 %1 不存在 - + The -t/--table option requires an argument -t/--table 选项需要一个参数 - + + The -S/--settings option requires an argument. The option is ignored. + -S/--settings 选项需要一个参数。此选项已忽略。 + + + Invalid option/non-existant file: %1 无效选项/不存在的文件: %1 + + + SQLite Version + SQLite 版本 + + + + SQLCipher Version %1 (based on SQLite %2) + SQLCipher 版本 %1 (基于 SQLite %2) + + + + DB Browser for SQLite Version %1. + DB Browser for SQLite 版本 %1。 + + + + Built for %1, running on %2 + 为 %1 构建,运行于 %2 + + + + Qt Version %1 + Qt 版本 %1 + CipherDialog @@ -319,10 +338,6 @@ Raw key 原始密钥 - - Page &size - 页大小(&S) - Please set a key to encrypt the database. @@ -357,7 +372,7 @@ If any of the other settings were altered for this database file you need to pro Choose a display format for the column '%1' which is applied to each value prior to showing it. - 为列 '%1' 选择显示格式,将在显示之前应用到值。 + 为列 '%1' 选择显示格式,将在显示每个值时使用。 @@ -372,7 +387,7 @@ If any of the other settings were altered for this database file you need to pro Exponent notation - 指数 + 指数表示法 @@ -396,38 +411,48 @@ If any of the other settings were altered for this database file you need to pro + .NET DateTime.Ticks to date + .NET DateTime.Ticks 到日期 + + + Julian day to date 儒略日 (Julian day) 到日期 - + Unix epoch to local time Unix 时间戳到本地时间 - + Date as dd/mm/yyyy 日期,格式为 dd/mm/yyyy - + Lower case 小写 - + + Binary GUID to text + 二进制 GUID 到文本 + + + Custom display format must contain a function call applied to %1 自定义显示格式必须包含处理 %1 的函数 - + Error in custom display format. Message from database engine: %1 自定义显示格式有误。数据库引擎提供的错误信息为:\n\n%1 - + Custom display format must return only one column but it returned %1. 自定义显示格式必须只返回1列,但目前返回 %1 。 @@ -442,22 +467,22 @@ If any of the other settings were altered for this database file you need to pro 取整数 - + Unix epoch to date Unix 时间到日期 - + Upper case 大写 - + Windows DATE to date Windows 日期到日期 - + Custom 自定义 @@ -469,14 +494,6 @@ If any of the other settings were altered for this database file you need to pro Conditional Format Manager 条件格式管理器 - - &Up - 上(&U) - - - &Down - 下(&D) - This dialog allows creating and editing conditional formats. Each cell style will be selected by the first accomplished condition for that cell data. Conditional formats can be moved up and down, where those at higher rows take precedence over those at lower. Syntax for conditions is the same as for filters and an empty condition applies to all values. @@ -592,202 +609,167 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - + Please specify the database name under which you want to access the attached database 请指明想要附加的数据库名 - + Invalid file format 无效的文件格式 - + Do you want to save the changes made to the database file %1? 您是否想保存对数据库文件 %1 做出的更改? - + Exporting database to SQL file... 正在导出数据库到 SQL 文件... - - + + Cancel 取消 - + Executing SQL... 正在执行 SQL... - + Action cancelled. 操作已取消。 - Error in statement #%1: %2. -Aborting execution. - 错误在语句 #%1: %2。 -正在放弃执行。 - - - renameColumn: cannot find table %1. - 重命名列: 不能查找表 %1。 - - - - This database has already been attached. Its schema name is '%1'. - 此数据库已被附加。它的架构名是 '%1'. - - - + Do you really want to close this temporary database? All data will be lost. 你确定要关闭此临时数据库吗?所有数据都会丢失。 - + Database didn't close correctly, probably still busy 数据库未正确关闭,可能正忙 - + The database is currently busy: 数据库正忙: - + Do you want to abort that other operation? 确定要放弃操作吗? - - + + No database file opened 没有打开数据库文件 - - + + Error in statement #%1: %2. Aborting execution%3. 错误在语句 #%1: %2. 正在放弃执行%3. - - + + and rolling back 并回滚 - + didn't receive any output from %1 未收到来自 %1 的任何输出 - + could not execute command: %1 未能执行命令: %1 - + Cannot delete this object 无法删除此对象 - + Cannot set data on this object 不能为此数据设置对象 - - + + A table with the name '%1' already exists in schema '%2'. 一个与 '%1' 同名的表已经存在于架构 '%2' 中。 - + No table with name '%1' exists in schema '%2'. 架构 '%2' 中不存在表 '%1' 。 - - + + Cannot find column %1. 找不到列 %1 。 - + Creating savepoint failed. DB says: %1 创建保存点失败。数据库显示:%1 - + Renaming the column failed. DB says: %1 重命名列失败。数据库显示:\n%1 - - + + Releasing savepoint failed. DB says: %1 释放保存点失败。数据库显示:%1 - + Creating new table failed. DB says: %1 建立新表失败。数据库显示:%1 - + Copying data to new table failed. DB says: %1 复制数据到新表失败。数据库显示:\n%1 - + Deleting old table failed. DB says: %1 删除旧表失败。数据库显示:%1 - + Error renaming table '%1' to '%2'. Message from database engine: %3 - 将表 '%1' 重命名为 '%2' 时出错。\n数据库引擎的错误信息:\n%1 + 将表 '%1' 重命名为 '%2' 时出错。 +数据库引擎给出的错误信息: +%1 - + could not get list of db objects: %1 未能获取数据库对象列表:%1 - renameColumn: cannot find column %1. - 重命名列: 不能查找列 %1。 - - - renameColumn: creating savepoint failed. DB says: %1 - 重命名列: 创建保存点时失败。数据库显示: %1 - - - renameColumn: creating new table failed. DB says: %1 - 重命名列: 创建新表时失败。数据库显示: %1 - - - renameColumn: copying data to new table failed. DB says: -%1 - 重命名列: 复制数据到新表时失败。数据库显示: -%1 - - - renameColumn: deleting old table failed. DB says: %1 - 重命名列: 删除旧表失败。数据库显示: %1 - - - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -796,61 +778,27 @@ Message from database engine: - renameColumn: releasing savepoint failed. DB says: %1 - 重命名列: 释放保存点时失败。数据库显示: %1 - - - Error renaming table '%1' to '%2'.Message from database engine: -%3 - 重命名表 '%1' 为 '%2' 时失败。来自数据库引擎的消息: -%3 - - - ... <string can not be logged, contains binary data> ... - ... <字符串不能记录,包含二进制数据> ... - - - + could not get list of databases: %1 无法获取数据库列表: %1 - + Error loading extension: %1 加载扩展时出错: %1 - + could not get column information 无法获取列信息 - unknown object type %1 - 未知对象类型 %1 - - - could not get list of db objects: %1, %2 - 不能获取数据库对象的列表: %1, %2 - - - could not get types - 不能获取类型 - - - didn't receive any output from pragma %1 - 没有接收到来自杂注 %1 的任何输出 - - - could not execute pragma command: %1, %2 - 不能执行杂注命令: %1, %2 - - - + Error setting pragma %1 to %2: %3 设置杂注 %1 为 %2 时出错: %3 - + File not found. 文件找不到。 @@ -877,22 +825,18 @@ Message from database engine: Schema 架构 - - Browsables (%1) - 可浏览的 (%1) - Database 数据库 - + Browsables 可浏览的 - + All 所有 @@ -902,22 +846,22 @@ Message from database engine: 临时的 - + Tables (%1) 表 (%1) - + Indices (%1) 索引 (%1) - + Views (%1) 视图 (%1) - + Triggers (%1) 触发器 (%1) @@ -930,220 +874,192 @@ Message from database engine: 编辑数据库单元格 - + Mode: 模式: - - + + Image 图像 - Import text - 导入文本 - - - Opens a file dialog used to import text to this database cell. - 打开一个文件对话框用于导入文本到这个数据库单元格。 - - - &Import - 导入(&I) - - - Export text - 导出文本 - - - Opens a file dialog used to export the contents of this database cell to a text file. - 打开一个文件对话框用于导出这个数据库单元格的内容到一个文本文件。 - - - &Export - 导出(&E) - - - Set this cell to NULL - 设置此单元格为空 - - - + Set as &NULL 设为&空 - + Apply data to cell 将数据应用到单元格 - + This button saves the changes performed in the cell editor to the database cell. 此按钮把单元格编辑器中的修改应用到数据库单元格中。 - + Apply 应用 - + Text 文本 - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. 这是单元格编辑器支持的模式列表。选择一种模式以查看或编辑当前单元格的数据。 - + RTL Text 右到左文本 - + Binary 二进制 - + JSON JSON - + XML XML - - + + Automatically adjust the editor mode to the loaded data type 自动调整编辑器模式为加载的数据的类型 - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. 此复选按钮可启用或禁用编辑器模式的自动切换。当新单元格被选中或新数据被导入时,如果启用了自动切换,模式会调整为检测到的数据类型。之后你也手动切换编辑器的模式。如果你希望浏览各单元格的时候都保持手动选择的模式,请把此按钮切到关闭状态。 - + Auto-switch 自动切换 - + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. 此文本编辑器允许你编辑纯文本。还支持JSON或XML格式的代码高亮,自动格式化和验证。\n\n格式错误用红色波浪线表示。 - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. 此Qt编辑器用于右到左的文本(默认文本编辑器不支持这种格式)。当检测到右到左字符时,会自动选择这种编辑器模式。 - + Open preview dialog for printing the data currently stored in the cell - 打印预览此单元格中的数据 + 为此单元格中目前存储的数据打开“打印预览”对话框 - + Auto-format: pretty print on loading, compact on saving. 自动格式: 读取时格式化,存储时紧凑化。 - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. 当启用时,自动格式特性将在数据加载时格式化数据,增加换行并缩进以提高可读性。在保存数据时,自动格式特性会通过删除换行、不必要的空白字符的方式来紧凑化数据。 - + Word Wrap 自动换行 - + Wrap lines on word boundaries 在单词边界自动换行 - - + + Open in default application or browser 用默认程序或浏览器打开 - + Open in application 用外部程序打开 - + The value is interpreted as a file or URL and opened in the default application or web browser. 将单元格的值视为文件路径或URL,在默认程序或浏览器中打开。 - + Save file reference... 保留文件引用... - + Save reference to file I'm not sure 将引用保存到文件 - - + + Open in external application 在外部程序中编辑 - + Autoformat 自动格式 - + &Export... - 导出(&E) + 导出(&E)... - - + + &Import... - 导入(&I) + 导入(&I)... - - + + Import from file 从文件导入 - - + + Opens a file dialog used to import any kind of data to this database cell. 打开文件选择对话框,导入任何类型的数据到此数据库单元格。 - + Export to file 导出到文件 - + Opens a file dialog used to export the contents of this database cell to a file. 打开文件选择对话框,导出此数据库单元格的内容到一个文件里。 - + Erases the contents of the cell 删除单元格的内容 @@ -1153,212 +1069,158 @@ Errors are indicated with a red squiggle underline. 这个区域显示存在于这个数据库单元格中的数据的相关信息 - This editor mode lets you edit JSON or XML data with syntax highlighting, automatic formatting and validation before saving. - -Errors are indicated with a red squiggle underline. - 此编辑器模式允许你在有语法高亮的情况下编辑 JSON 或 XML 数据,并在保存前自动格式化与验证。 - -错误会用红色波浪下划线标出。 - - - + Type of data currently in cell 当前在单元格中的数据的类型 - + Size of data currently in table 当前在表中的数据的大小 - - + Print... 打印... - - Open preview dialog for printing displayed image - 打开打印预览对话框,预览图像 - - - - + Ctrl+P - + Open preview dialog for printing displayed text 打开打印预览对话框,预览文本 - + Copy Hex and ASCII 拷贝十六进制和 ASCII - + Copy selected hexadecimal and ASCII columns to the clipboard 拷贝选中的十六进制和 ASCII 列到剪贴板中 - + Ctrl+Shift+C - Choose a file - 选择一个文件 - - - Text files(*.txt);;Image files(%1);;All files(*) - 文本文件(*.txt);;图像文件(%1);;所有文件(*) - - - + Choose a filename to export data 选择一个导出数据的文件名 - Text files(*.txt);;All files(*) - 文本文件(*.txt);;所有文件(*) - - - Image data can't be viewed with the text editor - 图像数据不能用文本编辑器查看 - - - Binary data can't be viewed with the text editor - 二进制数据不能用文本编辑器查看 - - - + Type of data currently in cell: %1 Image 当前在单元格中的数据的类型: %1 图像 - + %1x%2 pixel(s) %1x%2 像素 - + Type of data currently in cell: NULL 当前在单元格中的数据的类型: 空 - - + + Type of data currently in cell: Text / Numeric 当前在单元格中的数据的类型: 文本/ 数值 - - + + Image data can't be viewed in this mode. 此模式下无法查看图像数据。 - - + + Try switching to Image or Binary mode. 尝试切换到图像或二进制模式。 - - + + Binary data can't be viewed in this mode. 此模式下无法查看二进制数据。 - - + + Try switching to Binary mode. 尝试切换到二进制模式。 - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. - 单元格内数据已被保存到临时文件并用默认程序打开。你可以编辑文件并保存,然后将更改应用到单元格。 - - - Text files (*.txt) - 文本文件 (*.txt) - - - JSON files (*.json) - JSON 文件 (*.json) + + Couldn't save file: %1. + 保存文件失败:%1。 - XML files (*.xml) - XML 文件 (*.xml) + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + 数据已保存到临时文件,并使用默认应用程序打开。您现在可以编辑该文件,并在准备就绪后将新数据应用到单元格或取消更改。 - - + + Image files (%1) 图像文件 (%1) - + Binary files (*.bin) 二进制文件 (*.bin) - All files (*) - 所有文件 (*) - - - + Choose a file to import 选择一个要导入的文件 - + %1 Image %1 图像 - SVG files (*.svg) - SVG 文件 (*.svg) - - - Hex dump files (*.txt) - 十六进制转储文件 (*.txt) - - - + Invalid data for this mode 数据对此模式非法 - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? 单元格中包含非法的 %1 数据。原因: %2. 你确实想把它应用到单元格中吗? - - - + + + %n character(s) %n 个字符 - + Type of data currently in cell: Valid JSON 当前在单元格中的数据的类型: 合法的JSON - + Type of data currently in cell: Binary 当前在单元格中的数据的类型: 二进制 - - + + %n byte(s) %n 字节 @@ -1367,27 +1229,11 @@ Errors are indicated with a red squiggle underline. EditIndexDialog - - Create New Index - 创建新索引 - &Name 名称(&N) - - &Columns - 列(&C) - - - Column - - - - Use in Index - 在索引中使用 - Order @@ -1475,10 +1321,6 @@ Errors are indicated with a red squiggle underline. Advanced 高级 - - Database schema - 数据库架构 - Make this a 'WITHOUT rowid' table. Setting this flag requires a field of type INTEGER with the primary key flag set and the auto increment flag unset. @@ -1489,35 +1331,11 @@ Errors are indicated with a red squiggle underline. Without Rowid 无 Rowid - - Set this to create a temporary table that is deleted when closing the database. - 设置以创建一个临时表,临时表在关闭数据库时会被删除。 - - - Temporary table - 临时表 - Fields 字段 - - Add field - 添加字段 - - - Remove field - 删除字段 - - - Move field up - 上移字段 - - - Move field down - 下移字段 - Database sche&ma @@ -1554,221 +1372,207 @@ Errors are indicated with a red squiggle underline. 移到最下 - - + + Name 名称 - - + + Type 类型 - + NN 非空 - + Not null 非NULL - + PK 主键 - - Primary key - 主键 + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + <html><head/><body><p><img src=":/icons/field_key"/> 主键</p></body></html> - + AI 自增 - + Autoincrement 自动增值 - + U 唯一 - - - + + + Unique 唯一 - + Default 默认 - + Default value 默认值 - - - + + + Check 检查 - + Check constraint 检查约束条件 - + Collation 排序规则 - - - + + + Foreign Key 外键 - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + <html><head/><body><p><img src=":/icons/field_fk"/> 外键</p></body></html> + + + Constraints 约束 - + Add constraint 增加约束 - + Remove constraint 删除约束 - + Columns - + SQL SQL - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">警告: </span>表中有一些无法解析的定义。编辑并保存表可能会带来问题。</p></body></html> - - + + Primary Key 主键 - + Add a primary key constraint 增加主键约束 - + Add a foreign key constraint 增加外键约束 - + Add a unique constraint 增加唯一性约束 - + Add a check constraint 增加检查约束 - + Error creating table. Message from database engine: %1 创建表时出错。来自数据库引擎的消息: %1 - + There already is a field with that name. Please rename it first or choose a different name for this field. 已存在同名字段。请先重命名已有字段,或为此字段选一个不同的名字。 - This column is referenced in a foreign key in table %1, column %2 and thus its name cannot be changed. - 此列是表 %1, 列 %2 的外键,因此它的名字不能改变。 - - - - + + There can only be one primary key for each table. Please modify the existing primary key instead. 每个表只能有一个主键。请修改已有的主键。 - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. 此列是表 %1 的外键,因此它的名字不能改变。 - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. 至少有一行带本字段的记录被设为空。这使得它不可能设置这个标志。请首先更改表数据。 - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. 在这个字段中至少有一行带有一个非整数的值。这使得它不可能设置自增标志。请首先更改表数据。 - + Column '%1' has duplicate data. 列 '%1' 有重复数据。 - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. 所以无法启用“唯一”标记。请删除重复数据才能启用。 - Column '%1' has no unique data. - - 列 '%1' 中存在不唯一的数据。 - - - This makes it impossible to set this flag. Please change the table data first. - 这导致无法设置此标志。请先修改表中数据。 - - - Modifying this column failed. Error returned from database: -%1 - 修改此列失败。数据库返回的错误: -%1 - - - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. 您是否确认您想删除字段 '%1'? 当前存储在这个字段中的所有数据将会丢失。 - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled @@ -1776,24 +1580,6 @@ All data currently stored in this field will be lost. - 设置为主键 - 禁止自增 - - Setting the rowid column for the table failed. Error message: -%1 - 设置表的 rowid 列失败。错误信息: -%1 - - - Changing the table schema failed. Error message: -%1 - 修改表格架构失败。错误信息: -%1 - - - Setting the temporary flag for the table failed. Error message: -%1 - 将表标记为临时时失败。错误信息: -%1 - ExportDataDialog @@ -1802,18 +1588,6 @@ All data currently stored in this field will be lost. Export data as CSV 导出数据为 CSV - - &Table(s) - 表(&T) - - - &Column names in first line - 列名在首行(&C) - - - Field &separator - 字段分隔符(&S) - Tab&le(s) @@ -1903,10 +1677,6 @@ All data currently stored in this field will be lost. Choose a filename to export data 选择导出数据的文件名 - - Text files(*.csv *.txt) - 文本文件(*.csv *.txt) - Export data as JSON @@ -1922,14 +1692,10 @@ All data currently stored in this field will be lost. exporting JSON 导出 JSON - - Text files(*.json *.js *.txt) - 文本文件(*.json *.js *.txt) - Please select at least 1 table. - 请至少选1个表 + 请选择至少1个表。 @@ -2004,10 +1770,6 @@ All data currently stored in this field will be lost. Overwrite old schema (DROP TABLE, then CREATE TABLE) 覆盖旧架构 (DROP TABLE, 然后 CREATE TABLE) - - Please select at least 1 table. - 请至少选1个表 - Please select at least one table. @@ -2018,10 +1780,6 @@ All data currently stored in this field will be lost. Choose a filename to export 选择要导出的文件名 - - Text files(*.sql *.txt) - 文本文件(*.sql *.txt) - Export completed. @@ -2037,7 +1795,7 @@ All data currently stored in this field will be lost. ExtendedScintilla - + Ctrl+H @@ -2048,22 +1806,22 @@ All data currently stored in this field will be lost. - + Ctrl+P - + Find... 查找... - + Find and Replace... 查找并替换... - + Print... 打印... @@ -2071,141 +1829,133 @@ All data currently stored in this field will be lost. ExtendedTableWidget - The content of clipboard is bigger than the range selected. -Do you want to insert it anyway? - 剪贴板中的内容比所选范围更大。 -您是否依然要插入? - - - + Use as Exact Filter 用于精确过滤 - + Containing 包含 - + Not containing 不包含 - + Not equal to 不等于 - + Greater than 大于 - + Less than 小于 - + Greater or equal 大于等于 - + Less or equal 小于等于 - + Between this and... 在此值和...之间 - + Regular expression 正则表达式 - + Edit Conditional Formats... 编辑条件格式... - + Set to NULL 设置为 NULL - + + Cut + 剪切 + + + Copy 复制 - + Copy with Headers - 带表头一起拷贝 + 复制(带表头) - + Copy as SQL - 拷贝为 SQL + 复制为 SQL - + Paste 粘贴 - + Print... 打印... - + Use in Filter Expression 在过滤器表达式中使用 - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? 剪贴板中的数据范围超过了选择的范围。 是否仍要插入? - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. <p>部分数据没有被加载。<b>在选择所有行之前是否要加载所有数据?</b><p><p>选择<b>否</b>表示不加载数据并放弃全选。<br/>选择<b>是</b>表示加载所有数据(可能花费一些时间)并进行全选。</p>警告:加载所有数据对于大表格可能占用大量内存。 - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. 不能将当前单元格设置为 NULL。列 %1 有 NOT NULL 约束。 - - FileDialog - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - SQLite 数据库文件 (*.db *.sqlite *.sqlite3 *.db3);;所有文件 (*) - - FileExtensionManager @@ -2257,30 +2007,6 @@ Do you want to insert it anyway? Filter 过滤 - - These input fields allow you to perform quick filters in the currently selected table. -By default, the rows containing the input text are filtered out. -The following operators are also supported: -% Wildcard -> Greater than -< Less than ->= Equal to or greater -<= Equal to or less -= Equal to: exact match -<> Unequal: exact inverse match -x~y Range: values between x and y - 这些输入框能让你快速在当前所选表中进行过滤。 -默认情况下,包含输入文本的行会被过滤出来。 -以下操作也支持: -% 通配符 -> 大于 -< 小于 ->= 大于等于 -<= 小于等于 -= 等于: 精确匹配 -<> 不等于: 精确反向匹配 -x~y 范围: 值在 x 和 y 之间 - These input fields allow you to perform quick filters in the currently selected table. @@ -2429,7 +2155,7 @@ x~y 范围: 值在 x 和 y 之间 When enabled, the search continues from the other end when it reaches one end of the page - 启用时,搜索到页结尾时,搜索会继续从另一边开始。 + 如果启用,搜索到末端时,搜索继续从另一端开始 @@ -2439,7 +2165,7 @@ x~y 范围: 值在 x 和 y 之间 When set, the search goes backwards from cursor position, otherwise it goes forward - 设置时,搜索从当前位置往回进行。否则向前搜索。 + 如果启用,搜索从当前光标位置向前。未启用时向后 @@ -2469,7 +2195,7 @@ x~y 范围: 值在 x 和 y 之间 Find the next occurrence from the cursor position and in the direction set by "Search backwards" - 从当前位置查找下一出现的位置,按 "反向查找" 处所选的方向进行查找。 + 从当前位置开始查找下一次出现的位置。查找方向遵循“反向查找”的设置状态 @@ -2550,6 +2276,39 @@ x~y 范围: 值在 x 和 y 之间 外键子句 (ON UPDATE, ON DELETE 等等) + + ImageViewer + + + Image Viewer + 图像查看器 + + + + Reset the scaling to match the original size of the image. + 重置缩放比例以匹配图像的原始尺寸。 + + + + Set the scaling to match the size of the viewport. + 设定缩放比例以匹配视界的大小。 + + + + Print... + 打印... + + + + Open preview dialog for printing displayed image + 打开“打印预览”对话框以打印显示的图像 + + + + Ctrl+P + Ctrl+P + + ImportCsvDialog @@ -2557,10 +2316,6 @@ x~y 范围: 值在 x 和 y 之间 Import CSV file 导入 CSV 文件 - - &Table name - 表名称(&T) - Table na&me @@ -2588,7 +2343,7 @@ x~y 范围: 值在 x 和 y 之间 - + Tab Tab @@ -2735,26 +2490,6 @@ x~y 范围: 值在 x 和 y 之间 Select All 全选 - - Inserting data... - 正在插入数据... - - - Cancel - 取消 - - - There is already a table of that name and an import into an existing table is only possible if the number of columns match. - 已有同名的表,并且导入只有在列数匹配的情况下才能导入到一个现有的表。 - - - There is already a table of that name. Do you want to import the data into it? - 已有同名的表。您是否想导入数据到其中? - - - Import completed - 导入完成 - There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. @@ -2781,16 +2516,17 @@ x~y 范围: 值在 x 和 y 之间 导入 CSV - - Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. - 导入文件 '%1' 用时 %2ms. 其中 %3ms 用在行方程上。 + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + 意外的文件结束。请确认已正确配置引号字符,并确认文件没有格式错误。 - Missing field for record %1 - 记录 %1 缺字段 + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. + 导入文件 '%1' 用时 %2ms. 其中 %3ms 用在行方程上。 - + Inserting row failed: %1 插入行失败: %1 @@ -2803,920 +2539,442 @@ x~y 范围: 值在 x 和 y 之间 DB Browser for SQLite - + toolBar1 工具栏1 - Table: - 表: - - - Select a table to browse data - 选择一个表以浏览数据 - - - Use this list to select a table to be displayed in the database view - 使用这个列表选择一个要显示在数据库视图中的表 - - - Refresh the data in the selected table. - 刷新选择的表中的数据。 - - - This button refreshes the data in the currently selected table. - 这个按钮刷新在当前选择的表中的数据。 - - - + &Wiki 百科(&W) - + Bug &Report... Bug 上报(&R)... - + Feature Re&quest... 特性请求(&Q)... - + Web&site 网站(&S) - + &Donate on Patreon... 在 Patreon 上捐赠(&D)... - Sa&ve Project... - 保存工程(&V)... - - - This button lets you save all the settings associated to the open DB to a DB4S project file - 此按钮能保存与打开的数据库有关的所有设置到一个 DB4S 工程文件中 - - - + Open &Project... - 打开工程(&P)... - - - This button lets you open a DB4S project file - 此按钮能打开 DB4S 工程文件 + 打开项目(&P)... - + &Attach Database... 附加数据库(&A)... - - + + Add another database file to the current database connection 添加另一个数据库到当前的数据库连接中 - + This button lets you add another database file to the current database connection 此按钮能添加另一个数据库到当前的数据库连接中 - + &Set Encryption... 设置加密(&S)... - + This button saves the content of the current SQL editor tab to a file 此按钮把当前 SQL 编辑器页的内容保存到一个文件 - + SQLCipher &FAQ - SQLCipher 常见问题(&F)... + SQLCipher 常见问题(&F) - + Table(&s) to JSON... 表到 JSON (&S)... - + Export one or more table(s) to a JSON file 导出一个或多个表到 JSON 文件 - Refresh - 刷新 - - - F5 - - - - + Un/comment block of SQL code - 注释/取消注释SQL代码 + 注释/取消注释 SQL 代码 - + Un/comment block 注释/取消注释 - + Comment or uncomment current line or selected block of code - 注释或取消注释当前行或选中的代码段 + 注释/取消注释当前行或选中的代码段 - + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. - 注释或取消注释当前选中的代码段。当没有选中时为当前行。代码段的注释状态由第一行决定。 + 注释/取消注释选中的代码段,没有选中时为当前行。代码段的注释状态由第一行决定。 - + Ctrl+/ - + Stop SQL execution - 停止执行SQL + 停止 SQL 执行 - + Stop execution 停止执行 - + Stop the currently running SQL script - 停止当前运行的SQL脚本 + 停止当前运行的 SQL 脚本 - Insert a new record in the current table - 在当前表中插入一条新记录 + + &File + 文件(&F) - This button creates a new, empty record in the database - 这个按钮在数据库中创建一条新的空白记录 + + &Import + 导入(&I) - New Record - 新建记录 + + &Export + 导出(&E) - Delete the current record - 删除当前记录 + + &Edit + 编辑(&E) - This button deletes the record currently selected in the database - 这个按钮删除在数据库中当前选择的记录 + + &View + 查看(&V) - Delete Record - 删除记录 + + &Help + 帮助(&H) - This is the database view. You can double-click any record to edit its contents in the cell editor window. - 这是数据库视图。您可以双击任何记录,在单元格编辑器窗口中编辑记录内容。 + + &Remote + 远程(&R) - < - < + + Execute all/selected SQL + 执行所有/选中的 SQL - 0 - 0 of 0 - 0 - 0 / 0 + + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. + 此按钮执行当前选中的 SQL 语句。如果没有选中文本,就执行所有的 SQL 语句。 - > - > + + &Load Extension... + 加载扩展(&L)... - Scroll 100 records upwards - 上滚 100 条记录 + + This button executes the SQL statement present in the current editor line + 此按钮执行编辑器当前行中的 SQL 语句 - &Table: - 表(&T): + + Shift+F5 + - Clear all filters - 清除所有过滤 + + Sa&ve Project + 保存项目(&V) - <html><head/><body><p>Scroll to the beginning</p></body></html> - <html><head/><body><p>滚动到开始</p></body></html> + + + Save SQL file as + SQL 文件另存为 - <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - <html><head/><body><p>点击这个按钮在上面的表视图中导航到最前。</p></body></html> + + &Browse Table + 浏览表(&B) - |< - |< + + Copy Create statement + 复制 Create 语句 - <html><head/><body><p>Clicking this button navigates 100 records upwards in the table view above.</p></body></html> - <html><head/><body><p>点击这个按钮在上面的表视图中向上导航 100 条记录。</p></body></html> + + Copy the CREATE statement of the item to the clipboard + 复制选中项的 CREATE 语句到剪贴板 - <html><head/><body><p>Scroll 100 records downwards</p></body></html> - <html><head/><body><p>下滚 100 条记录</p></body></html> + + Open an existing database file in read only mode + 用只读方式打开一个已有的数据库文件 - <html><head/><body><p>Clicking this button navigates 100 records downwards in the table view above.</p></body></html> - <html><head/><body><p>点击这个按钮在上面的表视图中向下导航 100 条记录。</p></body></html> + + Opens the SQLCipher FAQ in a browser window + 用浏览器窗口打开 SQLCipher 常见问题 - Scroll to the end - 滚动到结束 + + User + 用户 - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;点击这个按钮在上面的表视图中导航到最后。&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> + + Application + 应用程序 - >| - >| + + &Clear + 清除(&C) - <html><head/><body><p>Click here to jump to the specified record</p></body></html> - <html><head/><body><p>点击这里跳到指定的记录</p></body></html> + + DB Sche&ma + 数据库架构(&M) - <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - <html><head/><body><p>这个按钮用于导航到在“转到”区域中指定的记录号。</p></body></html> + + &New Database... + 新建数据库(&N)... - Go to: - 转到: + + + Create a new database file + 创建一个新的数据库文件 - Enter record number to browse - 输入要浏览的记录号 + + This option is used to create a new database file. + 这个选项用于创建一个新的数据库文件。 - Type a record number in this area and click the Go to: button to display the record in the database view - 在这个区域中输入一个记录号,并点击“转到:”按钮以在数据库视图中显示记录 + + Ctrl+N + - 1 - 1 + + + &Open Database... + 打开数据库(&O)... - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">自动真空</span></a></p></body></html> + + + + + + Open an existing database file + 打开一个现有的数据库文件 - None - + + + + This option is used to open an existing database file. + 这个选项用于打开一个现有的数据库文件。 - Full - 完整 + + Ctrl+O + - Incremental - 增加 + + &Close Database + 关闭数据库(&C) - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">自动化索引</span></a></p></body></html> + + + Ctrl+W + - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">检查点完全 FSYNC</span></a></p></body></html> + + + Revert database to last saved state + 把数据库会退到先前保存的状态 - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Foreign Keys</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">外键</span></a></p></body></html> + + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. + 这个选项用于倒退当前的数据库文件为它最后的保存状态。从最后保存操作开始做出的所有更改将会丢失。 - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">完全 FSYNC</span></a></p></body></html> + + + Write changes to the database file + 把更改写入到数据库文件 - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">忽略检查约束</span></a></p></body></html> + + This option is used to save changes to the database file. + 这个选项用于保存更改到数据库文件。 - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">日志模式</span></a></p></body></html> + + Ctrl+S + - Delete - 删除 + + Compact &Database... + 压缩数据库(&D)... - Truncate - 裁截 + + Compact the database file, removing space wasted by deleted records + 压缩数据库文件,去除已删除记录所占用的空间 - Persist - 永久 + + + Compact the database file, removing space wasted by deleted records. + 压缩数据库文件,去除已删除记录所占用的空间。 - Memory - 内存 + + E&xit + 退出(&X) - WAL - WAL + + Ctrl+Q + - Off - + + Import data from an .sql dump text file into a new or existing database. + 从一个 .sql 转储文本文件中导入数据到一个新的或已有的数据库。 - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">日志大小限制</span></a></p></body></html> + + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. + 这个选项让你从一个 .sql 转储文本文件中导入数据到一个新的或现有的数据库。SQL 转储文件可以在大多数数据库引擎上创建,包括 MySQL 和 PostgreSQL。 - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Locking Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">锁定模式</span></a></p></body></html> + + Open a wizard that lets you import data from a comma separated text file into a database table. + 打开一个向导让您从一个逗号间隔的文本文件导入数据到一个数据库表中。 - Normal - 正常 + + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. + 打开一个向导让您从一个逗号间隔的文本文件导入数据到一个数据库表中。CSV 文件可以在大多数数据库和电子表格应用程序上创建。 - Exclusive - 独占 + + Export a database to a .sql dump text file. + 导出一个数据库导一个 .sql 转储文本文件。 - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">最大页数</span></a></p></body></html> + + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. + 这个选项让你导出一个数据库导一个 .sql 转储文本文件。SQL 转储文件包含在大多数数据库引擎上(包括 MySQL 和 PostgreSQL)重新创建数据库所需的所有数据。 - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">页面大小</span></a></p></body></html> + + Export a database table as a comma separated text file. + 导出一个数据库表为逗号间隔的文本文件。 - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">递归触发器</span></a></p></body></html> + + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. + 导出一个数据库表为逗号间隔的文本文件,准备好被导入到其他数据库或电子表格应用程序。 - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">安全删除</span></a></p></body></html> + + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database + 打开“创建表”向导,在那里可以定义在数据库中的一个新表的名称和字段 - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">同步</span></a></p></body></html> + + Open the Delete Table wizard, where you can select a database table to be dropped. + 打开“删除表”向导,在那里你可以选择要丢弃的一个数据库表。 - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">临时存储</span></a></p></body></html> + + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. + 打开“修改表”向导,在其中可以重命名一个现有的表。也可以从一个表中添加或删除字段,以及修改字段名称和类型。 - Default - 默认 + + Open the Create Index wizard, where it is possible to define a new index on an existing database table. + 打开“创建索引”向导,在那里可以在一个现有的数据库表上定义一个新索引。 - File - 文件 + + &Preferences... + 首选项(&P)... - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">用户版本</span></a></p></body></html> + + + Open the preferences window. + 打开首选项窗口。 - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL Auto Checkpoint</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL 自动检查点</span></a></p></body></html> + + &DB Toolbar + 数据库工具栏(&D) - - &File - 文件(&F) - - - - &Import - 导入(&I) - - - - &Export - 导出(&E) - - - Remote - 远程 - - - - &Edit - 编辑(&E) - - - - &View - 查看(&V) - - - - &Help - 帮助(&H) - - - - &Remote - 远程(&R) - - - - Execute all/selected SQL - 执行所有/选中的 SQL - - - - This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. - 此按钮执行当前选中的 SQL 语句。如果没有选中文本,就执行所有的 SQL 语句。 - - - - This button opens a file containing SQL statements and loads it in a new editor tab - 此按钮打开一个包含 SQL 语句的文件,并加载到一个新的编辑器标签中 - - - - &Load Extension... - 加载扩展(&L)... - - - - This button executes the SQL statement present in the current editor line - 此按钮执行编辑器当前行中的 SQL 语句 - - - - Shift+F5 - - - - - Sa&ve Project - 保存工程(&V) - - - Open &Project - 打开工程(&P) - - - &Attach Database - 附加数据库(&A) - - - &Set Encryption - 设置加密(&S) - - - - - Save SQL file as - SQL 文件另存为 - - - - &Browse Table - 浏览表 - - - - Copy Create statement - 复制 Create 语句 - - - - Copy the CREATE statement of the item to the clipboard - 复制选中项的 CREATE 语句到剪贴板 - - - Edit display format - 编辑显示格式 - - - Edit the display format of the data in this column - 编辑列中数据的显示格式 - - - Show rowid column - 显示 rowid 列 - - - Toggle the visibility of the rowid column - 切换 rowid 列的可见性 - - - Set encoding - 设置编码 - - - Change the encoding of the text in the table cells - 更改表单元格中文本的编码 - - - Set encoding for all tables - 设置所有表的编码 - - - Change the default encoding assumed for all tables in the database - 修改数据库中所有表的默认编码 - - - &Open Database Read Only... - 只读方式打开数据库(&O)... - - - - Open an existing database file in read only mode - 用只读方式打开一个已有的数据库文件 - - - Unlock view editing - 解锁视图编辑 - - - This unlocks the current view for editing. However, you will need appropriate triggers for editing. - 解锁当前视图以编辑。然而,你需要合适的触发器来编辑。 - - - Duplicate record - 重复的记录 - - - SQLCipher FAQ... - SQLCipher 常见问题... - - - - Opens the SQLCipher FAQ in a browser window - 用浏览器窗口打开 SQLCipher 常见问题 - - - Open from Remote - 从远端打开 - - - Save to Remote - 保存到远端 - - - - User - 用户 - - - - Application - 应用程序 - - - - &Clear - 清除(&C) - - - Columns - - - - X - X - - - Y - Y - - - _ - _ - - - Line type: - 线形: - - - Line - 折线 - - - StepLeft - 左阶梯 - - - StepRight - 右阶梯 - - - StepCenter - 中阶梯 - - - Impulse - 脉冲 - - - Point shape: - 点形: - - - Cross - - - - Plus - - - - Circle - - - - Disc - 实心点 - - - Square - 方形 - - - Diamond - 菱形 - - - Star - - - - Triangle - 三角 - - - TriangleInverted - 倒三角 - - - CrossSquare - 叉与方形 - - - PlusSquare - 加与方形 - - - CrossCircle - 叉与圈 - - - PlusCircle - 加与圈 - - - Peace - 和平符号 - - - Save current plot... - 保存当前图表... - - - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - 载入所有数据。仅在不是所有数据都已经从表中取出时有效果。 - - - DB Schema - 数据库架构 - - - - DB Sche&ma - 数据库架构(&M) - - - - &New Database... - 新建数据库(&N)... - - - - - Create a new database file - 创建一个新的数据库文件 - - - - This option is used to create a new database file. - 这个选项用于创建一个新的数据库文件。 - - - - Ctrl+N - - - - - - &Open Database... - 打开数据库(&O)... - - - - - - - - Open an existing database file - 打开一个现有的数据库文件 - - - - - - This option is used to open an existing database file. - 这个选项用于打开一个现有的数据库文件。 - - - - Ctrl+O - - - - - &Close Database - 关闭数据库(&C) - - - - - Ctrl+W - - - - - - Revert database to last saved state - 把数据库会退到先前保存的状态 - - - - This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. - 这个选项用于倒退当前的数据库文件为它最后的保存状态。从最后保存操作开始做出的所有更改将会丢失。 - - - - - Write changes to the database file - 把更改写入到数据库文件 - - - - This option is used to save changes to the database file. - 这个选项用于保存更改到数据库文件。 - - - - Ctrl+S - - - - - Compact &Database... - 压缩数据库(&D)... - - - - Compact the database file, removing space wasted by deleted records - 压缩数据库文件,通过删除记录去掉浪费的空间 - - - - - Compact the database file, removing space wasted by deleted records. - 压缩数据库文件,通过删除记录去掉浪费的空间。 - - - - E&xit - 退出(&X) - - - - Ctrl+Q - - - - - Import data from an .sql dump text file into a new or existing database. - 从一个 .sql 转储文本文件中导入数据到一个新的或已有的数据库。 - - - - This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. - 这个选项让你从一个 .sql 转储文本文件中导入数据到一个新的或现有的数据库。SQL 转储文件可以在大多数数据库引擎上创建,包括 MySQL 和 PostgreSQL。 - - - - Open a wizard that lets you import data from a comma separated text file into a database table. - 打开一个向导让您从一个逗号间隔的文本文件导入数据到一个数据库表中。 - - - - Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. - 打开一个向导让您从一个逗号间隔的文本文件导入数据到一个数据库表中。CSV 文件可以在大多数数据库和电子表格应用程序上创建。 - - - - Export a database to a .sql dump text file. - 导出一个数据库导一个 .sql 转储文本文件。 - - - - This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. - 这个选项让你导出一个数据库导一个 .sql 转储文本文件。SQL 转储文件包含在大多数数据库引擎上(包括 MySQL 和 PostgreSQL)重新创建数据库所需的所有数据。 - - - &Table(s) CSV file... - 表为 CSV 文件(&T)... - - - - Export a database table as a comma separated text file. - 导出一个数据库表为逗号间隔的文本文件。 - - - - Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. - 导出一个数据库表为逗号间隔的文本文件,准备好被导入到其他数据库或电子表格应用程序。 - - - - Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database - 打开“创建表”向导,在那里可以定义在数据库中的一个新表的名称和字段 - - - - Open the Delete Table wizard, where you can select a database table to be dropped. - 打开“删除表”向导,在那里你可以选择要丢弃的一个数据库表。 - - - - Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. - 打开“修改表”向导,在其中可以重命名一个现有的表。也可以从一个表中添加或删除字段,以及修改字段名称和类型。 - - - - Open the Create Index wizard, where it is possible to define a new index on an existing database table. - 打开“创建索引”向导,在那里可以在一个现有的数据库表上定义一个新索引。 - - - - &Preferences... - 首选项(&P)... - - - - - Open the preferences window. - 打开首选项窗口。 - - - - &DB Toolbar - 数据库工具栏(&D) - - - + Shows or hides the Database toolbar. 显示或隐藏数据库工具栏。 - + Shift+F1 - &About... - 关于(&A)... - - - + &Recently opened 最近打开(&R) - - Open &tab - 打开标签页(&T) - - - + Ctrl+T @@ -3744,755 +3002,593 @@ You can drag SQL statements from an object row and drop them into other applicat 浏览数据 - Refresh the data in the selected table - 刷新选中表中的数据 - - - This button clears all the filters set in the header input fields for the currently browsed table. - 此按钮将清除当前浏览表的所有在头部输入区的过滤器。 - - - Save the table as currently displayed - 按当前显示的样子保存表 - - - <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - <html><head/><body><p>此菜单提供以下可应用到当前浏览、过滤的表的选项:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">导出到CSV: 导出当前浏览、过滤的表的数据 (过滤后,显示格式和列的顺序) 到一个CSV文件。</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">保存为视图: 此选项保存当前浏览表格的设置 (过滤,显示格式和列的顺序) 为SQL视图,之后可以再用SQL语句浏览。</li></ul></body></html> - - - ... - ... - - - Print currently browsed table data - 打印当前浏览表中的数据 - - - Print currently browsed table data. Print selection if more than one cell is selected. - 打印当前正在浏览的表中的数据。如果选中了多于一个的单元格,就打印选中区域。 - - - <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - <html><head/><body><p>此按钮在数据库中创建新记录。按住鼠标按钮以打开菜单选择不同选项:</p><ul><li><span style=" font-weight:600;">新记录</span>: 用默认值插入一条新记录到数据库中。</li><li><span style=" font-weight:600;">插入值...</span>: 打开对话框编辑要插入的值。可以输入满足约束的值。如果 <span style=" font-weight:600;">新记录</span> 选项失败,对话框也会打开。</li></ul></body></html> - - - This button deletes the record or records currently selected in the table - 此按钮删除表里当前选中的记录 - - - This is the database table view. You can do the following actions: - - Start writing for editing inline the value. - - Double-click any record to edit its contents in the cell editor window. - - Alt+Del for deleting the cell content to NULL. - - Ctrl+" for duplicating the current record. - - Ctrl+' for copying the value from the cell above. - - Standard selection and copy/paste operations. - 这是数据库表视图。你可以进行以下操作: - - 直接打字以在这里直接编辑。 - - 双击记录以打开单元格编辑窗口。 - - Alt+Del 删除单元格内容,变成NULL。 - - Ctrl+" 重复一份当前记录。 - - Ctrl+' 从上面的单元格拷贝。 - - 标准的复制/粘贴操作。 - - - Scroll one page upwards - 上翻一页 - - - <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - <html><head/><body><p>点击按钮将表中显示的记录向上翻一页。</p></body></html> - - - Scroll one page downwards - 下翻一页 - - - <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - <html><head/><body><p>点击按钮将表中显示的记录向下翻一页。</p></body></html> - - - - + + Edit Pragmas This has to be equal to the tab title in all the main tabs 编辑杂注 - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">Case Sensitive Like</a></p></body></html> - <html><head/><body><p><a href="https://www.sqlite.org/pragma.html#pragma_case_sensitive_like">LIKE表达式的大小写敏感</a></p></body></html> - - - + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. 警告: 此杂注无法读取,此值为推断得到。编辑杂注可能会覆盖由 SQLite 扩展重定义的 LIKE。 - - + + Execute SQL This has to be equal to the tab title in all the main tabs 执行 SQL - + + Recent Files + 最近的文件 + + + &Tools 工具(&T) - + DB Toolbar 数据库工具栏 - + Edit Database &Cell 编辑数据库单元格(&C) - + SQL &Log SQL 日志(&L) - + Show S&QL submitted by 显示 SQL 提交自(&Q) - + Error Log 错误记录 - + This button clears the contents of the SQL logs 此按钮清除 SQL 日志的内容 - + This panel lets you examine a log of all SQL commands issued by the application or by yourself - 此面板可以让你自行检查本应用程序执行的所有 SQL 命令的日志。 + 此面板可以让你自行检查本应用程序执行的所有 SQL 命令的日志 - + &Plot 图表(&P) - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. - 这是当前打开的数据库的结构。 -你可以从名字列拖拽多个对象名字到 SQL 编辑器中,可以用菜单调节拖拽名字的属性。这可以帮助你构建 SQL 语句。 -你可以从架构列拖拽 SQL 语句到 SQL 编辑器或其他应用中。 + 这是已打开数据库的结构。 +你可以从名字列拖拽多个对象名称到 SQL 编辑器中,并可以用右键菜单调节所拖拽名称的属性。这可以帮助你编写 SQL 语句。 +你可以从架构列拖拽 SQL 语句到 SQL 编辑器或其他的应用程序。 - - + + Project Toolbar - 工程工具栏 + 项目工具栏 - + Extra DB toolbar 其他数据库工具栏 - - - + + + Close the current database file 关闭当前数据库文件 - + This button closes the connection to the currently open database file 此按钮关闭到当前打开的数据库文件的连接 - + Ctrl+F4 - + &Revert Changes 倒退更改(&R) - + &Write Changes 写入更改(&W) - + + New &tab + 新建标签页(&T) + + + + Open SQL file(s) + 打开 SQL 文件 + + + + This button opens files containing SQL statements and loads them in new editor tabs + 此按钮可打开包含 SQL 语句的一个或多个文件,将它们加载到新的编辑器标签页中 + + + Execute line 执行行 - + F1 - + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file - 此按钮让你将所有关于打开的数据库的设置保存到一个 DB Browser for SQLite 工程文件。 + 此按钮允许你将与已打开的数据库相关联的所有设置保存到一个本软件可用的项目文件中 - + This button lets you open a DB Browser for SQLite project file - 此按钮让你打开一个 DB Browser for SQLite 工程文件。 + 此按钮允许你打开一个 DB Browser for SQLite 的项目文件 - + Open Data&base Read Only... 只读打开数据库(&B)... - + Ctrl+Shift+O - + Save results 保存结果 - + Save the results view 保存结果视图 - + This button lets you save the results of the last executed query 此按钮让你保存上次执行的查询的结果 - - + + Find text in SQL editor 在 SQL 编辑器中查找文本 - + Find 查找 - + This button opens the search bar of the editor 此按钮打开编辑器的查找栏 - + Ctrl+F - - + + Find or replace text in SQL editor 在 SQL 编辑器中查找或替换文本 - + Find or replace 查找或替换 - + This button opens the find/replace dialog for the current editor tab 此按钮为当前的编辑器标签页打开查找/替换对话框 - + Ctrl+H - + Export to &CSV 导出到 &CSV - + Save as &view 保存为视图(&V) - + Save as view 保存为视图 - + Browse Table 浏览表 - Hide column(s) - 隐藏列 + + Close Pro&ject + 关闭项目(&J) - Hide selected column(s) - 隐藏选中的列 + + Close project and database files and return to the initial state + 关闭项目和数据库文件并返回初始状态 - Show all columns - 显示所有列 + + Ctrl+Shift+F4 + Ctrl+Shift+F4 - Show all columns that were hidden - 显示所有被隐藏的列 + + + Detach Database + 断开数据库 - + + + Detach database file attached to the current database connection + 断开已附加到当前数据库连接的数据库文件 + + + Shows or hides the Project toolbar. - 显示或隐藏工程工具栏 + 显示或隐藏项目工具栏。 - + Extra DB Toolbar 其他数据库工具栏 - Export the filtered data to CSV - 导出过滤的数据到 CSV - - - This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - 此按钮导出当前浏览、过滤的表的数据 (过滤后,显示格式和列的顺序) 到一个CSV文件。 - - - Save the current filter, sort column and display formats as a view - 保存当前过滤,列排序和显示格式为视图 - - - This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - 此按钮保存当前浏览表格的设置 (过滤,显示格式和列的顺序) 为SQL视图,之后可以再用SQL语句浏览。 - - - Insert Values... - 插入值... - - - Open a dialog for inserting values in a new record - 打开对话框以插入值到新记录中 - - - Insert new record using default values in browsed table - 用默认值插入一条新记录到当前浏览的表中 - - - + New In-&Memory Database 新建内存数据库(&M) - + Drag && Drop Qualified Names 拖拽限定名称 - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor 当拖拽对象到编辑器中时,使用限定名称 (例如 "Table"."Field") - + Drag && Drop Enquoted Names 拖拽引用名字 - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - 当拖拽对象到编辑器中时,使用转移标识符 (例如 "Table1") + 当拖拽对象到编辑器中时,使用转义的标识符 (例如 "Table1") - + &Integrity Check 完全性检查(&I) - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. 对打开的数据库运行 integrity_check 杂注并在执行 SQL 标签页返回结果。此杂注对整个数据库进行完全性检查。 - + &Foreign-Key Check 外键检查(&F) - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - 对打开的数据库运行 foreign_key_check 杂注并在执行 SQL 标签页返回结果。 + 对打开的数据库运行 foreign_key_check 杂注并在“执行 SQL”标签页中返回结果 - + &Quick Integrity Check 快速完全性检查(&Q) - + Run a quick integrity check over the open DB 对打开的数据库执行快速完全性检查 - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. 对打开的数据库运行 quick_check 杂注并在执行 SQL 标签页返回结果。此命令会执行 integrity_check 的多数检查,但是要快得多。 - + &Optimize 优化(&O) - + Attempt to optimize the database 尝试优化数据库 - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. 对打开的数据库运行 optimize 杂注。可能会执行对未来查询性能有帮助的优化。 - - + + Print 打印 - + Print text from current SQL editor tab 从当前的 SQL 编辑器标签页打印文本 - + Open a dialog for printing the text in the current SQL editor tab 打开对话框以从当前的 SQL 编辑器标签页打印文 - + Print the structure of the opened database 打印当前打开的数据库的结构 - + Open a dialog for printing the structure of the opened database 打开对话框以打印当前打开的数据库的结构 - + &Save Project As... - 另存为工程(&S)... + 另存为项目(&S)... - - - + + + Save the project in a file selected in a dialog - 将工程保存为文件 + 将项目保存为文件 - + Save A&ll 全部保存(&L) - - - + + + Save DB file, project file and opened SQL files - 保存数据库文件,工程文件,打开的SQL文件 + 保存数据库文件、项目文件和打开的 SQL 文件 - + Ctrl+Shift+S - Compact &Database - 压缩数据库(&D) - - - + &Database from SQL file... 从 SQL 文件导入数据库(&D)... - + &Table from CSV file... 从 CSV 文件导入表(&T)... - + &Database to SQL file... 导出数据库到 SQL 文件(&D)... - + &Table(s) as CSV file... 导出表到 CSV 文件(&T)... - SQLCipher &FAQ... - SQLCipher &FAQ... - - - Table(s) to JSON... - 导出表到 JSON 文件(&T)... - - - + &Create Table... 创建表(&C)... - + &Delete Table... 删除表(&D)... - + &Modify Table... 修改表(&M)... - + Create &Index... 创建索引(&I)... - + W&hat's This? 这是什么(&W)? - + &About 关于(&A) - + This button opens a new tab for the SQL editor 此按钮打开一个 SQL 编辑器的新标签页 - + &Execute SQL 执行 SQL(&E) - &Load extension - 加载扩展(&L) - - - &Wiki... - 维基(&W)... - - - Bug &report... - 错误报告(&R)... - - - Web&site... - 网站(&S)... - - - - + + Save the current session to a file 保存当前会话到一个文件 - - + + Load a working session from a file 从一个文件加载工作会话 - - Open SQL file - 打开 SQL 文件 - - - <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - <html><head/><body><p>保存当前图表...</p><p>文件格式按扩展名选择(png, jpg, pdf, bmp)</p></body></html> - - - - - + + + Save SQL file 保存 SQL 文件 - - + + Execute current line 执行当前行 - + Ctrl+E - + Export as CSV file 导出为 CSV 文件 - + Export table as comma separated values file 导出表为逗号间隔值文件 - + Ctrl+L - - + + Ctrl+P - + Database encoding 数据库编码 - - + + Choose a database file 选择一个数据库文件 - - Ctrl+Return - - - - - Ctrl+D - - - - - Ctrl+I - - - - - Encrypted - 加密的 - - - - Database is encrypted using SQLCipher - 数据库使用 SQLCipher 进行了加密 - - - - Read only - 只读 - - - - Database file is read only. Editing the database is disabled. - 数据库是只读的。编辑被禁止。 - - - - Could not open database file. -Reason: %1 - 无法打开数据库文件。 -原因: %1 - - - - - - Choose a filename to save under - 选择一个文件名保存 - - - Error adding record: - - 添加记录时出错: - - - - Error deleting record: -%1 - 删除记录时出错: -%1 - - - Please select a record first - 请首先选择一条记录 - - - %1 - %2 of %3 - %1 - %2 / %3 + + Ctrl+Return + - There is no database opened. Please open or create a new database file. - 没有打开数据库。请打开或创建一个新的数据库文件。 + + Ctrl+D + - Are you sure you want to delete the %1 '%2'? -All data associated with the %1 will be lost. - 您是否确认您想删除 %1 '%2'? -所有和 %1 关联的数据将会丢失。 + + Ctrl+I + - Error: could not delete the %1. Message from database engine: -%2 - 错误: 不能删除 %1。消息来自数据库引擎: -%2 + + Encrypted + 加密的 - - Setting PRAGMA values or vacuuming will commit your current transaction. -Are you sure? - 设置或清除杂注值会提交你的当前事务。 -你确定吗? + + Database is encrypted using SQLCipher + 数据库使用 SQLCipher 进行了加密 - Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - 请输入一个伪主键以在当前视图启用编辑。这需要是视图中的一个满足唯一性的列的名字。 + + Read only + 只读 - There is no database opened. - 没有数据库打开。 + + Database file is read only. Editing the database is disabled. + 数据库是只读的。编辑被禁止。 - %1 rows returned in %2ms from: %3 - %1 行数据在 %2ms 内返回自: %3 + + Could not open database file. +Reason: %1 + 无法打开数据库文件。 +原因: %1 - , %1 rows affected - ,%1 行数据受影响 + + + + Choose a filename to save under + 选择一个文件名保存 - Query executed successfully: %1 (took %2ms%3) - 查询执行成功: %1 (耗时 %2ms%3) + + Setting PRAGMA values or vacuuming will commit your current transaction. +Are you sure? + 设置或清除杂注值会提交你的当前事务。 +你确定吗? - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 @@ -4501,516 +3597,505 @@ Are you sure? %1 - + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. 有新版本的 DB Browser for SQLite (%1.%2.%3)可用。<br/><br/>请从 <a href='%4'>%4</a> 下载。 - Please enter the URL of the database file to save. - 请输入要保存的数据库文件的 URL. - - - + DB Browser for SQLite project file (*.sqbpro) - DB Browser for SQLite 工程文件 (*.sqbpro) - - - Please choose a new encoding for this table. - 请为此表选择新的编码 - - - Please choose a new encoding for all tables. - 请为所有表选择新的编码 + DB Browser for SQLite 项目文件 (*.sqbpro) - + Reset Window Layout 重置窗口布局 - + Alt+0 - - Close current SQL tab - 关闭当前SQL标签 - - - + The database is currenctly busy. 数据库正忙。 - + Click here to interrupt the currently running query. 点击此处中断当前运行的查询。 - + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? 你正在执行SQL语句。关闭数据库会停止执行,可能使数据库处于不准确的状态。确实要关闭数据库吗? - + Do you want to save the changes made to the project file '%1'? - 是否要保存对工程文件 '%1' 的修改? + 是否要保存对项目文件 '%1' 的修改? - + Error checking foreign keys after table modification. The changes will be reverted. 修改表格后的外键检查错误。修改会被回退。 - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. 此表格没有通过外键检查。<br/>你需要执行 '工具 | 外键检查' 并修复发现的问题。 - - + + Edit View %1 + 编辑视图 %1 + + + + Edit Trigger %1 + 编辑触发器 %1 + + + + At line %1: 在行 %1: - + Result: %1 结果: %1 - + Result: %2 结果: %2 - + Execution finished with errors. 执行已完成,但有错误。 - + Execution finished without errors. - 执行完成。 + 执行完成,无错误。 - + + Opened '%1' in read-only mode from recent file list + 已从最近文件列表中打开 '%1' (只读模式) + + + + Opened '%1' from recent file list + 已从最近文件列表中打开 '%1' + + + &%1 %2%3 &%1 %2%3 - + (read only) (只读) - + Open Database or Project - 打开数据库或工程 + 打开数据库或项目 - + Attach Database... 附加数据库... - + Import CSV file(s)... 导入CSV文件... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. - 选择要应用到拖放的文件的操作。<br/>注意:只有“导入”会处理多个文件。 + 选择拖放文件所要应用的操作。<br/>注意:只有“导入”会处理多个文件。 - + Do you want to save the changes made to SQL tabs in a new project file? - 是否要把对SQL的修改保存为工程文件? + 是否要将对 SQL 标签页的修改保存为项目文件? + + + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + 标签页 '%1' 中的语句仍在执行。关闭该标签页将停止执行。这可能使数据库处于不一致状态。确定关闭标签页吗? + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + 此项目文件使用了 DB Browser for SQLite 3.10 或更旧版本使用的旧文件格式。这种文件格式的加载已不再充分支持。如要完全加载该文件,请使用 DB Browser for SQLite 3.12 版本将其转换为新型文件格式。 - + + Yes. Don't ask again + 是,不再询问 + + + + This action will open a new SQL tab with the following statements for you to edit and run: + 此操作将打开一个新的 SQL 标签页,其中包含以下语句供您编辑和运行: + + + Rename Tab 重命名标签 - + Duplicate Tab 复制标签 - + Close Tab 关闭标签 - + Opening '%1'... 正在打开 '%1'... - + There was an error opening '%1'... 打开 '%1' 时出错... - + Value is not a valid URL or filename: %1 不是正确的URL或文件名:%1 - + Do you want to save the changes made to the SQL file %1? 是否要保存对SQL文件 %1 的修改? - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? - 此标签内的SQL语句正在被执行。关闭标签会停止执行,可能使数据库处于不准确的状态。确实要关闭标签吗? - - - + Could not find resource file: %1 不能找到资源文件:%1 - + Choose a project file to open - 选择一个要打开的工程文件 + 选择一个要打开的项目文件 - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - 此工程文件使用了旧的文件格式,因为它是由 DB Browser for SQLite version 3.10 或更低版本创建的。加载此文件格式依然完全支持,但我们建议你把工程转换到新的格式,因为旧格式支持将来可能会失效。你可以通过打开并重新保存的方式来转换。 - - - + Could not open project file for writing. Reason: %1 - 未能写入工程文件。 + 未能写入项目文件。 原因:%1 - Duplicate records - 重复记录 + + Busy (%1) + 正忙 (%1) - %1 -Leave the field empty for using the database encoding. - %1 -留空此字段以使用数据库默认编码。 + + Are you sure you want to undo all changes made to the database file '%1' since the last save? + 您是否确定想撤销自上次保存以来对数据库文件“%1”所做的所有更改? - This encoding is either not valid or not supported. - 这种编码非法或者不支持。 + + Choose a file to import + 选择要导入的一个文件 - - Busy (%1) - 正忙 (%1) + + Text files(*.sql *.txt);;All files(*) + 文本文件(*.sql *.txt);;所有文件(*) - Cancel - 取消 + + Do you want to create a new database file to hold the imported data? +If you answer no we will attempt to import the data in the SQL file to the current database. + 您是否确认您想创建一个新的数据库文件用来存放导入的数据? +如果您会到“否”的话,我们将尝试导入 SQL 文件中的数据到当前数据库。 - Error executing query: %1 - 执行查询时出错: %1 + + Ctrl+Tab + Ctrl+Tab - Choose a text file - 选择一个文本文件 + + Ctrl+Shift+Tab + Ctrl+Shift+Tab - Text files(*.csv *.txt);;All files(*) - 文本文件(*.csv *.txt);;所有文件(*) + + Ctrl+PgUp + Ctrl+PgUp - Import completed - 导入完成 + + Clear List + 清除列表 - - Are you sure you want to undo all changes made to the database file '%1' since the last save? - 您是否确认您想撤销从上次保存以来对数据库文件‘%1’做出的所有更改。? + + Window Layout + 窗口布局 - - Choose a file to import - 选择要导入的一个文件 + + Simplify Window Layout + 简化窗口布局 - - Text files(*.sql *.txt);;All files(*) - 文本文件(*.sql *.txt);;所有文件(*) + + Shift+Alt+0 + Shift+Alt+0 - - Do you want to create a new database file to hold the imported data? -If you answer no we will attempt to import the data in the SQL file to the current database. - 您是否确认您想创建一个新的数据库文件用来存放导入的数据? -如果您会到“否”的话,我们将尝试导入 SQL 文件中的数据到当前数据库。 + + Dock Windows at Bottom + 窗口停靠底部 + + + + Dock Windows at Left Side + 窗口停靠左侧 + + + + Dock Windows at Top + 窗口停靠顶部 - + File %1 already exists. Please choose a different name. 文件 %1 已存在。请选择一个不同的名称。 - + Error importing data: %1 导入数据时出错: %1 - + Import completed. 导入完成。 - + Delete View 删除视图 - + Modify View 修改视图 - + Delete Trigger 删除触发器 - + Modify Trigger 修改触发器 - + Delete Index 删除索引 - - + + Delete Table 删除表 - &%1 %2 - &%1 %2 - - - + Setting PRAGMA values will commit your current transaction. Are you sure? 设置 PRAGMA 值将会提交您的当前事务。 您确定吗? - Execution aborted by user - 操作被用户终止 - - - + In-Memory database 内存数据库 - determining row count... - 正在决定行数... - - - + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. 你确定要删除表 '%1' 吗? 所有关联的数据都会丢失。 - + Are you sure you want to delete the view '%1'? 你确定要删除视图 '%1' 吗? - + Are you sure you want to delete the trigger '%1'? 你确定要删除触发器 '%1' 吗? - + Are you sure you want to delete the index '%1'? 你确定要删除索引 '%1' 吗? - + Error: could not delete the table. 错误: 无法删除表。 - + Error: could not delete the view. 错误: 无法删除视图。 - + Error: could not delete the trigger. 错误: 无法删除触发器。 - + Error: could not delete the index. 错误: 无法删除索引。 - + Message from database engine: %1 来自数据库引擎的消息: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? 编辑表格之前需要立刻保存所有修改。 你确定要保存数据库吗? - + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. 你已经在执行SQL语句。是否要停止执行并改为执行当前语句?注意,这可能使数据库处于不准确的状态。 - + -- EXECUTING SELECTION IN '%1' -- -- 执行 '%1' 中所选 -- - + -- EXECUTING LINE IN '%1' -- -- 执行 '%1' 中的行 -- - + -- EXECUTING ALL IN '%1' -- -- 执行 '%1' 中所有 -- - executing query - 执行查询 - - - + %1 rows returned in %2ms %1 行返回,耗时 %2ms - query executed successfully. Took %1ms%2 - 查询执行成功。耗时 %1ms%2 - - - -- At line %1: -%4 --- Result: %3 - -- 在行号 %1: -%4 --- 结果: %3 - - - + Choose text files 选择文本文件 - + Import completed. Some foreign key constraints are violated. Please fix them before saving. 导入完成。一些外键约束被违反了。请在保存之前修复。 - + Modify Index 修改索引 - + Modify Table 修改表 - + Do you want to save the changes made to SQL tabs in the project file '%1'? - 是否要把对SQL的修改保存到工程文件 '%1' ? + 是否要将对 SQL 标签页的修改保存到项目文件 '%1'? - + Select SQL file to open 选择要打开的 SQL 文件 - Couldn't read file: %1. - 无法读取文件: %1 - - - Couldn't save file: %1. - 无法保存文件: %1 - - - + Select file name 选择文件名 - + Select extension file 选择扩展文件 - Extensions(*.so *.dll);;All files(*) - 扩展(*.so *.dll);;所有文件(*) - - - + Extension successfully loaded. 扩展成功加载。 - + Error loading extension: %1 加载扩展时出错: %1 - - + + Don't show again 不再显示 - + New version available. 新版本可用。 - + Project saved to file '%1' - 工程已保存到文件 '%1' + 项目已保存到文件 '%1' - + Collation needed! Proceed? 需要整理! 继续? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! @@ -5019,69 +4104,45 @@ Create a backup! 记得备份! - + creating collation 创建整理 - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. 为 SQL 标签页设置新名称。使用 '&&' 字符来允许它作为键盘快捷键。 - + Please specify the view name 请指定视图名称 - + There is already an object with that name. Please choose a different name. 已有同名的对象。请选择一个不同的名称。 - + View successfully created. - 视图成功创建。 + 视图创建成功。 - + Error creating view: %1 - 创建视图时出错: %1 - - - There is no filter set for this table. View will not be created. - 此表没有过滤。视图不会被创建。 - - - Delete Records - 删除记录 + 创建视图出错: %1 - + This action will open a new SQL tab for running: 此动作会打开新的 SQL 标签页以运行: - + Press Help for opening the corresponding SQLite reference page. 按下帮助以打开对应的 SQLite 参考页。 - - Choose a axis color - 选择一个轴的颜色 - - - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;所有文件(*) - - - Choose a file to open - 选择要打开的一个文件 - - - Invalid file format. - 无效文件格式。 - NullLineEdit @@ -5104,45 +4165,37 @@ Create a backup! 绘图 - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> <html><head/><body><p>此面板显示当前表或者刚刚执行的查询的列。你可以选择列用做在下面画图时的 X 轴和 Y 轴。表中显示检测到的会影响绘图结果的轴类型。Y 轴只允许选择数值类型,但 X 轴可以选择:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">日期/时间</span>: 格式化的字符串 &quot;yyyy-MM-dd hh:mm:ss&quot; 或 &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">日期</span>: 格式化的字符串 &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">时间</span>: 格式化的字符串 &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">标签</span>: 其他格式的字符串。选这项作为x轴,会绘制条形图,并用值作为条形的标签</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">数值</span>: 整数或实数值</li></ul><p>双击 Y 单元格可以改变图中所用的颜色。</p></body></html> - + Columns - + X X - Y - Y - - - _ - _ - - - + Y1 Y1 - + Y2 Y2 - + Axis Type 轴类型 - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -5159,147 +4212,139 @@ Select the axes or axes labels to drag and zoom only in that orientation. - + Line type: 线形: - - + + None - + Line 折线 - + StepLeft 左阶梯 - + StepRight 右阶梯 - + StepCenter 中阶梯 - + Impulse 脉冲 - + Point shape: 点形: - + Cross - + Plus - + Circle - + Disc 实心点 - + Square 方形 - + Diamond 菱形 - + Star - + Triangle 三角 - + TriangleInverted 倒三角 - + CrossSquare 叉与方形 - + PlusSquare 加与方形 - + CrossCircle 叉与圈 - + PlusCircle 加与圈 - + Peace 和平符号 - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> <html><head/><body><p>保存当前图表...</p><p>文件格式按扩展名选择(png, jpg, pdf, bmp)</p></body></html> - + Save current plot... 保存当前图表... - - + + Load all data and redraw plot 载入所有数据并重新绘图 - Load all data. This has only an effect if not all data has been fetched from the table yet due to the partial fetch mechanism. - 载入所有数据。仅在不是所有数据都已经从表中取出时有效果。 - - - - - + + + Row # 行 # - - Choose a axis color - 选择一个轴的颜色 - Copy @@ -5321,76 +4366,68 @@ Select the axes or axes labels to drag and zoom only in that orientation.堆叠的条形 - + Date/Time 日期/时间 - + Date 日期 - + Time 时间 - - + + Numeric 数值 - + Label 标签 - + Invalid 无效的 - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. 载入所有数据并重新绘图。 警告:由于部分加载机制,现在并没有加载所有的数据。 - + Choose an axis color 选一个坐标轴颜色 - + Choose a filename to save under 选择一个文件名保存 - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;所有文件(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. 图中有曲线,选择的线形只能用到按 X 排列的图中。要么对表排序或者用 X 查询,要么选一种曲线支持的线形:无或者折线。 - + Loading all remaining data for this table took %1ms. 加载表中全部剩余数据花费了%1毫秒。 - - Fetching all data... - 读取所有数据... - - - Cancel - 取消 - PreferencesDialog @@ -5430,34 +4467,36 @@ Warning: not all data has been fetched from the table yet due to the partial fet 自动更新(&A) - + &Database 数据库(&D) - + Database &encoding 数据库编码(&E) - + Open databases with foreign keys enabled. 打开启用了外键的数据库。 - + &Foreign keys 外键(&F) - - - - - - + + + + + + + + enabled 启用 @@ -5468,13 +4507,13 @@ Warning: not all data has been fetched from the table yet due to the partial fet - - + + ... ... - + Remove line breaks in schema &view 删除架构视图中的换行(&V) @@ -5484,251 +4523,202 @@ Warning: not all data has been fetched from the table yet due to the partial fet 显示远程选项 - Remote server - 远程服务器 - - - + Prefetch block si&ze 预取块尺寸(&Z) - - Advanced - 高级 - - - SQL to execute after opening database - 打开数据库后执行的 SQL - - - + SQ&L to execute after opening database 打开数据库后执行的 SQL(&L) - + Default field type 默认字段类型 - + Data &Browser 数据浏览器(&B) - + Font 字体 - + &Font 字体(&F) - Font si&ze: - 字号(&Z) - - - + Content 内容 - + Symbol limit in cell 单元格字符数限制 - NULL fields - 空字段 - - - &Text - 文本(&T) - - - Field colors - 字段颜色 - - - + NULL - + Regular 常规 - Text - 文本 - - - + Binary 二进制 - + Background 背景 - + Filters 过滤 - + Threshold for completion and calculation on selection 自动完成与汇总限制 - + Show images in cell 显示单元格中图片 - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. 启用此选项可以预览单元格BOLB中包含的图片。但这会影响浏览数据的性能。 - + Escape character 转义字符 - + Delay time (&ms) 延时(毫秒)(&M) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. 设置应用新过滤值前的等待时间。设为0以禁用等待。 - + &SQL &SQL - + Settings name 设置名称 - + Context 上下文 - + Colour 颜色 - + Bold 粗体 - + Italic 斜体 - + Underline 下划线 - + Keyword 关键字 - function - 函数 - - - + Function 函数 - + Table - + Comment 注释 - + Identifier 识别符 - + String 字符串 - currentline - 当前行 - - - + Current line 当前行 - + SQL &editor font size SQL 编辑器字体大小(&E) - SQL &log font size - SQL 日志字体大小(&L) - - - + Tab size Tab 长度 - + SQL editor &font SQL 编辑器字体(&F) - + Error indicators 显示代码错误 - Enabling error indicators highlights the SQL code lines that caused errors during the last execution - 启用错误指示器将高亮 SQL 代码中导致最近一次执行出错的行 - - - + Hori&zontal tiling 水平平铺(&Z) - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. 如果启用,SQL 编辑器和结果表视图将并排显示,而不是上下显示。 - + Code co&mpletion 自动补全(&M) @@ -5838,17 +4828,48 @@ Warning: not all data has been fetched from the table yet due to the partial fet 界面风格 - + + This sets the font size for all UI elements which do not have their own font size option. + 此项设定所有无专门字号选项的界面元素的字号。 + + + + Font size + 字体大小 + + + + Max Recent Files + “最近的文件”上限 + + + + Prompt to save SQL tabs +in new project file + 关闭 SQL 标签页时提示保存到项目文件 + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + 如果启用,在 SQL 编辑器的标签页中做出更改后,关闭那些标签页将引出一个是否保存新“项目文件”的确认对话框。 + + + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. 当启用时,数据库结构标签页中的架构列里的换行,显示、打印时被移除。 - + + Database structure font size + 数据库结构字体大小 + + + Font si&ze 字体大小(&Z) - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. @@ -5859,302 +4880,380 @@ Can be set to 0 for disabling the functionalities. 可以设置为0以禁用这些功能。 - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. 这是表启用根据当前值的自动补完的最大的列数量。 设置成0以禁用补完。 - Row count threshold for completion - 自动补完的列数阈值 - - - + Field display 字段显示 - + Displayed &text 显示的文本(&T) - - - + - - + + + + Click to set this color 点击设置颜色 - + Text color 文本颜色 - + Background color 背景颜色 - + Preview only (N/A) 仅预览 (N/A) - + Foreground 前景 - + + selected_bg + Entity name? + selected_bg + + + + Selection background + 选中项背景色 + + + + selected_fg + selected_fg + + + + Selection foreground + 选中项前景色 + + + + highlight + highlight + + + + Highlight + 高亮 + + + SQL &results font size SQL 结果的字体大小(&R) - + &Wrap lines 换行(&W) - + Never 永不 - + At word boundaries 按照词边界 - + At character boundaries 按照字母边界 - + At whitespace boundaries 按照空白字符边界 - + &Quotes for identifiers 标识转义(&Q) - + Choose the quoting mechanism used by the application for identifiers in SQL code. 选择 SQL 代码中标识的转义方式。 - + "Double quotes" - Standard SQL (recommended) "双引号" - 标准 SQL (推荐) - + `Grave accents` - Traditional MySQL quotes `重音符` - 经典的 MySQL 转义 - + [Square brackets] - Traditional MS SQL Server quotes [方括号] - 经典的 MS SQL Server 转义 - + Keywords in &UPPER CASE 关键字大写(&U) - + When set, the SQL keywords are completed in UPPER CASE letters. 设置时,SQL 关键字被自动补全为大写字母。 - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background - 设置时,导致上次执行出错的 SQL 代码行会被高亮。 + 设置时,导致上次执行期间出错的 SQL 代码行会被高亮,并在结果面板中标亮 + + + + Close button on tabs + 标签页上的关闭按钮 + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + 如果启用,SQL 编辑器的标签页将有一个关闭按钮。无论该项是否启用,右键菜单和键盘快捷键都可关闭标签页。 - + &Extensions 扩展(&E) - + Select extensions to load for every database: 选择每个数据库要加载的扩展: - + Add extension 添加扩展 - + Remove extension 删除扩展 - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> <html><head/><body><p>虽然支持 REGEXP 运算符,但是 SQLite 并没有实现任何正则表达式算法,<br/>而是回调应用程序。DB Browser for SQLite 为您实现了算法,以便您可以<br/>打破常规使用 REGEXP。由于算法有多种可能的实现,您可能想用其他的,<br/>所以您可以禁用算法实现并通过扩展加载您的实现。需要重启应用程序。</p></body></html> - + Disable Regular Expression extension 禁用正则表达式扩展 - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> <html><head/><body><p>SQLite 提供了 SQL 函数用于从共享库中加载扩展。启用这个选项以在SQL代码中使用 <span style=" font-style:italic;">load_extension()</span> 函数。</p><p>因安全原因,加载扩展功能默认被关闭,须在此处手动启用。但即使此选项未启用,仍能通过上方的界面加载扩展。</p></body></html> - + Allow loading extensions from SQL code 允许在SQL代码里加载扩展 - + Remote 远程 - + CA certificates CA 证书 - + Proxy 代理服务器 - + Configure 配置 - - + + Export Settings + 导出设置 + + + + Import Settings + 导入设置 + + + + Subject CN 主题 CN (Subject CN) - + Common Name 公用名称 (Common Name) - + Subject O 主题 O (Subject O) - + Organization 组织 (Organization) - - + + Valid from 有效期从 - - + + Valid to 有效期到 - - + + Serial number 序列号 - + Your certificates 您的证书 - + File 文件 - + Subject Common Name 主题公用名称 (Subject Common Name) - + Issuer CN 签发人 CN (Issuer CN) - + Issuer Common Name 签发人公用名称 (Issuer Common Name) - + Clone databases into 克隆数据库信息 - - + + Choose a directory 选择一个目录 - + + The language will change after you restart the application. 语言将在重启应用程序后改变。 - + Select extension file 选择扩展文件 - Extensions(*.so *.dll);;All files(*) - 扩展(*.so *.dll);;所有文件(*) - - - + Extensions(*.so *.dylib *.dll);;All files(*) 扩展(*.so *.dylib *.dll);;所有文件(*) - + Import certificate file 导入证书文件 - + No certificates found in this file. 在文件中找不到证书。 - + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! 您确定要删除此证书吗?所有的证书数据都会被从应用设置中删除! - + Are you sure you want to clear all the saved settings? All your preferences will be lost and default values will be used. 你确定要清除所有保存的设置吗? 所有你做的设置都会丢失,并使用默认值。 + + + Save Settings File + 保存设置文件 + + + + + Initialization File (*.ini) + 初始化文件 (*.ini) + + + + The settings file has been saved in location : + + 设置文件已保存到: + + + + Open Settings File + 打开设置文件 + + + + The settings file was loaded properly. + 设置文件成功加载。 + + + + The selected settings file is not a normal settings file. +Please check again. + 所选的设置文件格式不正常。 +请复查。 + ProxyDialog @@ -6166,12 +5265,12 @@ All your preferences will be lost and default values will be used. Pro&xy Type - 代理服务器类型 + 代理服务器类型(&X) Host Na&me - 主机名 + 主机名(&M) @@ -6181,12 +5280,12 @@ All your preferences will be lost and default values will be used. Authentication Re&quired - 要求验证 + 需要身份验证(&Q) &User Name - 用户名 + 用户名(&U) @@ -6224,7 +5323,7 @@ All your preferences will be lost and default values will be used. from record number %1 - 自记录编号 %1 + 自记录编号 %1 @@ -6236,40 +5335,20 @@ All your preferences will be lost and default values will be used. Importing CSV file... - 导入CSV文件... + 导入 CSV 文件... Cancel 取消 - - Decoding CSV file... - 正在解码 CSV 文件... - - - Collation needed! Proceed? - 需要整理! 继续? - - - A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. -If you choose to proceed, be aware bad things can happen to your database. -Create a backup! - 数据库中的一个表需要特定的整理方法 '%1' 但本应用程序不了解故无法提供。 -如果您选择继续,小心可能会有不好的事情发生。 -记得备份! - - - SQLite database files (*.db *.sqlite *.sqlite3 *.db3);;All files (*) - SQLite 数据库文件 (*.db *.sqlite *.sqlite3 *.db3);;所有文件 (*) - All files (*) 所有文件 (*) - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) SQLite 数据库文件 (*.db *.sqlite *.sqlite3 *.db3) @@ -6281,7 +5360,7 @@ Create a backup! Right - + @@ -6301,7 +5380,7 @@ Create a backup! DB Browser for SQLite Project Files (*.sqbpro) - DB Browser for SQLite 工程文件 (*.sqbpro) + DB Browser for SQLite 项目文件 (*.sqbpro) @@ -6369,199 +5448,434 @@ Create a backup! 扩展 (*.so *.dylib *.dll) - Name - 名称 + + Initialization File (*.ini) + 初始化文件 (*.ini) + + + RemoteCommitsModel - Commit - 提交 + + Commit ID + 提交 ID - Last modified - 上次修改 + + Message + 消息 + + + + Date + 日期 + + + + Author + 作者 + Size - 大小 + 大小 + + + + Authored and committed by %1 + 经 %1 认证并提交 + + + + Authored by %1, committed by %2 + 由 %1 认证,由 %2 提交 RemoteDatabase - - Error when connecting to %1. -%2 - 连接到 %1 时出错. -%2 + + Error opening local databases list. +%1 + 打开本地数据库列表时出错。 +%1 - - Error opening remote file at %1. -%2 - 在 %1 打开远程文件时出错. -%2 + + Error creating local databases list. +%1 + 创建本地数据库列表时出错。 +%1 + + + RemoteDock - - Error: Invalid client certificate specified. - 错误: 指定了错误的客户端证书。 + + Remote + 远程 - - Please enter the passphrase for this client certificate in order to authenticate. - 请输入客户端证书的口令以进行身份认证。 + + Local + 本地 - - Cancel - 取消 + + Identity + 身份 - - Uploading remote database to -%1 - 正在上传远程数据库到 -%1. {1?} + + Push currently opened database to server + 推送当前打开的数据库到服务器 - - Downloading remote database from -%1 - 正在下载远程数据库于 -%1. {1?} + + Upload + 上传 - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. - 从上次检入以后,远程数据库已更新。你想把本地数据库更新到最新版本吗?注意这将会丢弃你在本地做的所有修改!如果你不希望丢掉本地修改,选择否以使用本地版本。 + + DBHub.io + DBHub.io - Uploading remote database to -%1. - 正在上传远程数据库到 -%1. + + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> + <html><head/><body><p>在此面板,来自 dbhub.io 网站的远程数据库可以被添加到 DB4S。首先你需要一个身份:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">登录 dbhub.io 网站 (使用你的 GitHub 认证或其他什么)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">点击按钮创建 DB4S 证书 (那是你的身份)。 这会给你一个证书文件 (保存到你的本地硬盘里)。</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">前往 DB4S 的设置中的远程选项卡。点击添加证书,选择刚才下载的文件。</li></ol><p>这样,远程面板就会显示你的身份,之后可以添加远程数据库。</p></body></html> - Downloading remote database from -%1. - 正在下载远程数据库于 -%1. + + Current Database + 当前数据库 - - - Error: The network is not accessible. - 错误: 网络无法访问。 + + Clone + 克隆 - - Error: Cannot open the file for sending. - 错误: 无法打开文件用于发送。 + + User + 用户 - - Error opening local databases list. -%1 - 打开本地数据库列表时出错。 -%1 + + Database + 数据库 - - Error creating local databases list. -%1 - 创建本地数据库列表时出错。 -%1 + + Branch + 分支 - - - RemoteDock - - Remote - 远程 + + Commits + 提交 - B&rowse - 浏览(&r) + + Commits for + 提交于 - Local - 本地 + + Delete Database + 删除数据库 - - Identity - 身份 + + Delete the local clone of this database + 删除此数据库的本地副本 - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. - 用当前所选身份连接远程服务器。正确的服务器也来自此身份。 + + Open in Web Browser + 在网页浏览器中打开 - - Go - 连接 + + Open the web page for the current database in your browser + 在您的网页浏览器中打开网页以查看当前数据库 - - Push currently opened database to server - 推送当前打开的数据库到服务器 + + Clone from Link + 从链接克隆 - - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>在此面板,来自 dbhub.io 网站的远程数据库可以被添加到 DB4S。首先你需要一个身份:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">登录 dbhub.io 网站 (使用你的 GitHub 认证或其他什么)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">点击按钮创建 DB4S 证书 (那是你的身份)。 这会给你一个证书文件 (保存到你的本地硬盘里)。</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">前往 DB4S 的设置中的远程选项卡。点击添加证书,选择刚才下载的文件。</li></ol><p>这样,远程面板就会显示你的身份,之后可以添加远程数据库。</p></body></html> + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + 用它来从数据库网页提供的链接来下载一个远程数据库以供本地编辑。 + + + + Refresh + 刷新 + + + + Reload all data and update the views + 刷新所有数据并更新视图 + + + + F5 + F5 + + + + Clone Database + 克隆数据库 + + + + Open Database + 打开数据库 + + + + Open the local copy of this database + 打开此数据库的本地副本 + + + + Check out Commit + 检出提交 + + + + Download and open this specific commit + 下载并打开此提交 + + + + Check out Latest Commit + 检出最新提交 + + + + Check out the latest commit of the current branch + 检出当前分支的最新提交 + + + + Save Revision to File + 保存修订版本到文件 - <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB4S. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to create a DB4S certificate (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB4S Preferences. Click the button to add a new certificate to DB4S and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - <html><head/><body><p>在此面板,来自 dbhub.io 网站的远程数据库可以被添加到 DB4S。首先你需要一个身份:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">登录 dbhub.io 网站 (使用你的 GitHub 认证或其他什么)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">点击按钮创建 DB4S 证书 (那是你的身份)。 这会给你一个证书文件 (保存到你的本地硬盘里)。</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">前往 DB4S 的设置中的远程选项卡。点击添加证书,选择刚才下载的文件。</li></ol><p>这样,远程面板就会显示你的身份,之后可以添加远程数据库。</p></body></html> + + Saves the selected revision of the database to another file + 保存所选的数据库修订版本到其他文件 - + + Upload Database + 上传数据库 + + + + Upload this database as a new commit + 上传此数据库为新的提交 + + + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> <html><head/><body><p>你正在使用内置的,只读的凭据。要上传你的数据库,你需要配置使用你的 DBHub.io 账号。</p><p>还没有 DBHub.io 账号?<a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">注册一个</span></a> 并在 <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">此处</span></a> 导入你的证书。</p><p>要获得在线帮助,点击<a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">这里</span></a>。</p></body></html> - + Back 返回 - + + Select an identity to connect + 选择用来连接的身份 + + + Public 公用证书 + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + 这将从远程服务器下载数据库以供本地编辑。 +请输入要从哪个网址克隆。您可以经如下方式生成此网址:点击数据库的网页所提供的“在 DB4S 中克隆数据库”(Clone Database in DB4S)的按钮。 + + + + Invalid URL: The host name does not match the host name of the current identity. + 无效网址:主机名称与当前身份的主机名称不匹配。 + + + + Invalid URL: No branch name specified. + 无效网址:未指定分支名称。 + + + + Invalid URL: No commit ID specified. + 无效网址:未指定提交 ID。 + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + 您已修改了这个数据库的本地副本。获取此提交将覆盖本地的更改。 +是否继续? + + + + The database has unsaved changes. Are you sure you want to push it before saving? + 数据库有未保存的更改。确定要在保存前推送吗? + + + + The database you are trying to delete is currently opened. Please close it before deleting. + 您尝试删除的数据库目前仍是打开状态。请先关闭,再尝试删除。 + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + 这将删除此数据库的本地副本,包括其中未提交的所有更改。确定删除吗? + - RemoteModel + RemoteLocalFilesModel - + Name 名称 - Version - 版本 + + Branch + 分支 + + + + Last modified + 上次修改 + + + + Size + 大小 + + + + Commit + 提交 + + + + File + 文件 + + + + RemoteModel + + + Name + 名称 - + Last modified 上次修改 - + Size 大小 - + Commit 提交 - bytes - 字节 + + Size: + 大小: + + + + Last Modified: + 上次修改: + + + + Licence: + 许可协议: + + + + Default Branch: + 默认分支: + + + + RemoteNetwork + + + Choose a location to save the file + 选择保存该文件的位置 + + + + Error opening remote file at %1. +%2 + 打开远程文件 %1 时出错。 +%2 + + + + Error: Invalid client certificate specified. + 错误:指定的客户端证书无效。 + + + + Please enter the passphrase for this client certificate in order to authenticate. + 请输入此客户端证书的口令以进行身份验证。 + + + + Cancel + 取消 + + + + Uploading remote database to +%1 + 正在上传远程数据库到 +%1 + + + + Downloading remote database from +%1 + 正在下载远程数据库自 +%1 + + + + + Error: The network is not accessible. + 错误:网络不可达。 + + + + Error: Cannot open the file for sending. + 错误:无法打开文件以进行发送。 @@ -6581,19 +5895,6 @@ Create a backup! Commit message 提交信息 - - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - Database licence @@ -6615,44 +5916,45 @@ p, li { white-space: pre-wrap; } 强制推送 - + + Username + 用户名 + + + Database will be public. Everyone has read access to it. 数据库将是公有的。所有人都可以读取它。 - + Database will be private. Only you have access to it. 数据库将是私有的。只有您可以访问它。 - + Use with care. This can cause remote commits to be deleted. 小心使用。这可能会导致远程提交被删除。 - - Unspecified - 未指定的 - RunSql - + Execution aborted by user 操作被用户终止 - + , %1 rows affected ,%1 行数据受影响 - + query executed successfully. Took %1ms%2 查询执行成功。耗时 %1ms%2 - + executing query 执行查询 @@ -6774,51 +6076,23 @@ p, li { white-space: pre-wrap; } 这个字段显示最后执行的语句的结果和状态码。 - Export to &CSV - 导出到 &CSV - - - Save as &view - 保存为视图(&V) - - - Save as view - 保存为视图 - - - Please specify the view name - 请指定视图名称 - - - There is already an object with that name. Please choose a different name. - 已有同名的对象。请选择一个不同的名称。 - - - View successfully created. - 视图成功创建。 - - - Error creating view: %1 - 创建视图时出错: %1 - - - + Couldn't read file: %1. 无法读取文件: %1。 - - + + Couldn't save file: %1. 无法保存文件: %1。 - + Your changes will be lost when reloading it! 重新加载时,你的更改将会丢失! - + The file "%1" was modified by another program. Do you want to reload it?%2 文件 "%1" 已被其他程序修改。是否要重新加载?%2 @@ -6830,323 +6104,335 @@ p, li { white-space: pre-wrap; } Ctrl+/ + + + Ctrl+PgDown + Ctrl+PgDown + SqlUiLexer (X) The abs(X) function returns the absolute value of the numeric argument X. - + (X) abs(X) 函数返回数字参数 X 的绝对值。 () The changes() function returns the number of database rows that were changed or inserted or deleted by the most recently completed INSERT, DELETE, or UPDATE statement. - + () changes() 函数返回最后完成的 INSERT、DELETE 或 UPDATE 语句所更改、插入或删除的数据库行数。 (X1,X2,...) The char(X1,X2,...,XN) function returns a string composed of characters having the unicode code point values of integers X1 through XN, respectively. - + (X1,X2,...) char(X1,X2,...,XN) 函数返回一个字符串,分别由整数 X1 至 XN 所代表的特定 Unicode 码点的字符组成。 (X,Y,...) The coalesce() function returns a copy of its first non-NULL argument, or NULL if all arguments are NULL - + (X,Y,...) coalesce() 函数返回第一个非 NULL 的参数的副本,所有参数均为 NULL 则返回 NULL (X,Y) The glob(X,Y) function is equivalent to the expression "Y GLOB X". - + (X,Y) glob(X,Y) 函数等效于表达式 "Y GLOB X"。 (X,Y) The ifnull() function returns a copy of its first non-NULL argument, or NULL if both arguments are NULL. - + (X,Y) ifnull() 函数返回第一个非 NULL 的参数的副本,两个参数均为 NULL 则返回 NULL。 (X,Y) The instr(X,Y) function finds the first occurrence of string Y within string X and returns the number of prior characters plus 1, or 0 if Y is nowhere found within X. - + (X,Y) instr(X,Y) 函数查找字符串 Y 在字符串 X 中的第一处匹配,返回之前字符数加 1;如果 X 中找不到 Y,则返回 0。 (X) The hex() function interprets its argument as a BLOB and returns a string which is the upper-case hexadecimal rendering of the content of that blob. - + (X) hex() 函数将其参数解释为一个 BLOB 并返回一个字符串,该字符串是该 Blob 内容的大写十六进制表现形式。 - () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. - + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. + (X,Y,Z) iif(X,Y,Z) 函数在 X 为真(true)时返回 Y,否则返回 Z。 - (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. - + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. + () last_insert_rowid() 函数返回调用该函数的数据库连接所插入的最后一行的 ROWID。 - (X,Y) The like() function is used to implement the "Y LIKE X" expression. - + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. + (X) 对字符串值 X,length(X) 函数返回 X 的字符数(非字节数)(截至首个 NUL 字符)。 - (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. - + (X,Y) The like() function is used to implement the "Y LIKE X" expression. + (X,Y) like() 函数用于实现"Y LIKE X" 表达式。 + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. + (X,Y,Z) like() 函数用于实现 "Y LIKE X ESCAPE Z" 表达式。 + + + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. - + (X) load_extension(X) 函数从共享库文件 X 加载 SQLite 扩展。 +必须在“首选项”中授权使用此功能。 - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. - + (X,Y) load_extension(X) 函数从共享库文件 X 的 入口点 Y 加载 SQLite 扩展。 +必须在“首选项”中授权使用此功能。 - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. - + (X) lower(X) 函数返回字符串 X 的副本,其中将所有 ASCII 字符转换为小写。 - + (X) ltrim(X) removes spaces from the left side of X. - + (X) ltrim(X) 移除 X 中左侧的空白字符。 - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. - + (X,Y) ltrim(X,Y) 函数返回一个字符串,该字符串是从 X 中的左侧删除所有 Y 而组成。 - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. - + (X,Y,...) 多参数的 max() 函数返回有最大值的参数,如有任何参数为 NULL 则返回 NULL。 - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. - + (X,Y,...) 多参数的 min() 函数返回有最小值的参数。 - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. - + (X,Y) nullif(X,Y) 函数在传入的两个参数不同时返回首个参数;两个参数相同则返回 NULL。 - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. - + (FORMAT,...) printf(FORMAT,...) SQL 函数的功效类似 sqlite3_mprintf() C 语言函数和标准 C 语言库中的 printf() 函数。 - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. - + (X) quote(X) 函数返回一个 SQL 语法的文本形式,适合在各种 SQL 语句中用作参数值。 - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. - + () random() 函数返回一个伪随机整数,范围在 -9223372036854775808 至 +9223372036854775807 之间。 - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. - + (N) randomblob(N) 函数返回一个长度为 N 字节的 Blob,包含伪随机的字节。 - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. - + (X,Y,Z) replace(X,Y,Z) 函数返回一个字符串,其中是将字符串 X 中的每个 Y 字符串替换为 Z 字符串。 - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. - + (X) round(X) 函数返回一个浮点值,X 被四舍五入为 0 个小数。 - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. - + (X) round(X) 函数返回一个浮点值,X 被四舍五入为 Y 个小数。 - + (X) rtrim(X) removes spaces from the right side of X. - + (X) rtrim(X) 移除 X 中右侧的空白字符。 - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. - + (X,Y) rtrim(X,Y) 函数返回一个字符串,该字符串是从 X 中的右侧删除所有 Y 而组成。 - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. - + (X) soundex(X) 函数返回一个字符串,由字符串 X 的 soundex 编码组成。 - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. - + (X,Y) substr(X,Y) 函数返回字符串 X 中第 Y 个字符开始的所有字符。 - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. - + (X,Y,Z) substr(X,Y,Z) 函数返回输入字符串 X 中第 Y 个字符开始的 Z 个长字符。 - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. - + () total_changes() 函数返回当前数据库连接打开以来 INSERT、UPDATE 或 DELETE 语句更改的行数总计。 - + (X) trim(X) removes spaces from both ends of X. - + (X) trim(X) 移除 X 中左右两侧的空白字符。 - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. - + (X,Y) trim(X,Y) 函数返回一个字符串,从 X 的左右两端删除所有 Y 字符。 - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. - + (X) typeof(X) 函数返回一个字符串,表示表达式 X 的数据类型。 - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. - + (X) unicode(X) 函数字符串 X 的第一个字符所对应的 Unicode 代码点数字。 - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. - + (X) upper(X) 函数返回输入字符串的副本,其中所有小写 ASCII 字符转换为等效的大写字母。 - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. - + (N) zeroblob(N) 函数返回一个 BLOB,由 N 个字节的 0x00 组成。 - + (timestring,modifier,modifier,...) - + (时间字符串,修饰符,修饰符,...) - + (format,timestring,modifier,modifier,...) - + (格式,时间字符串,修饰符,修饰符,...) - + (X) The avg() function returns the average value of all non-NULL X within a group. - + (X) avg() 函数返回一个组中所有非 NULL 的 X 的平均值。 - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. - + (X) count(X) 函数返回一个组中所有非 NULL 的 X 的数量。 - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. - + (X) group_concat() 函数返回一个字符串,由 X 的所有非 NULL 值串联而成。 - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. - + (X,Y) group_concat() 函数返回一个字符串,由 X 的所有非 NULL 值串联而成。如果提供了 Y,Y 作为串联 X 时的分隔符。 - + (X) The max() aggregate function returns the maximum value of all values in the group. - + (X) max() 聚合函数返回组中所有值的最大值。 - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. - + (X) min() 聚合函数返回组中所有值的非 NULL 的最小值。 - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. - + (X) sum() 和 total() 聚合函数返回组中所有值的非 NULL 值的总计。 - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. - + () 当前分区内的行数。行数从 1 开始,以 ORDER BY 子句指定的顺序排列(未提供则以任意顺序排列)。 - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. - + (N) 参数 N 被视为一个整数。此函数将分区尽可能均匀地划分为 N 个组,并按照 ORDER BY 字句定义的顺序(或任意顺序),为每个组分配一个 1 至 N 之间的整数。如不得已,较大的组会先出现。此函数返回分配给当前行的代表所属组的整数值。 - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. - + (表达式) 返回对分区中上一行的表达式评估结果。如果当前行是第一行,返回 NULL。 - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. - + (表达式,偏移) 如果提供偏移参数,它须是非负数整数。此时返回针对分区中当前行减去行偏移所对应的行来评估表达式的结果。如果偏移为0,则评估当前行。如果当前行之前没有对应偏移的行,返回 NULL。 - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. - + (表达式,偏移,默认值) 如果还提供默认值参数,在偏移所标定的行不存在时,返回默认值而非 NULL。 - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. - + (表达式) 返回对分区中下一行的表达式评估结果。如果没有下一行,返回 NULL。 - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. - + (表达式,偏移) 如果提供偏移参数,它须是非负数整数。此时返回针对分区中当前行加上行偏移所对应的行来评估表达式的结果。如果偏移为0,则评估当前行。如果当前行之前没有对应偏移的行,返回 NULL。 - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. @@ -7154,47 +6440,42 @@ Use of this function must be authorized from Preferences. SqliteTableModel - References %1(%2) -Hold Ctrl+Shift and click to jump there - 引用 %1(%2) -按住 Ctrl+Shift 并点击以跳转 - - - + reading rows 读取行 - + loading... 正在加载... - + References %1(%2) Hold %3Shift and click to jump there 引用 %1(%2) 按住 %3Shift 并点击以跳转 - + Error changing data: %1 更改数据库时出错: %1 - + retrieving list of columns 正在检索列的列表 - + Fetching data... 正在拉取数据... - + + Cancel 取消 @@ -7281,7 +6562,7 @@ Hold %3Shift and click to jump there The found pattern must match in letter case - 搜索必须大小写匹配 + 查找结果须是相同的大小写形式 @@ -7291,17 +6572,17 @@ Hold %3Shift and click to jump there The found pattern must be a whole word - 找到的必须是一个完整的词 + 查找结果需是完整字词而非拆分出的一部分 Whole Cell - 单元格匹配 + 全词匹配 Interpret search pattern as a regular expression - 解析查找目标为正则表达式 + 查找内容解析为一个正则表达式 @@ -7336,7 +6617,7 @@ Hold %3Shift and click to jump there - + Replace 替换 @@ -7351,611 +6632,634 @@ Hold %3Shift and click to jump there 全部替换 - + <html><head/><body><p>Scroll to the beginning</p></body></html> <html><head/><body><p>滚动到开始</p></body></html> - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> <html><head/><body><p>点击这个按钮在上面的表视图中导航到最前。</p></body></html> - + |< |< - + Scroll one page upwards 上翻一页 - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> <html><head/><body><p>点击按钮将表中显示的记录向上翻一页。</p></body></html> - + < < - + 0 - 0 of 0 0 - 0 / 0 - + Scroll one page downwards 下翻一页 - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> <html><head/><body><p>点击按钮将表中显示的记录向下翻一页。</p></body></html> - + > > - + Scroll to the end 滚动到结束 - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clicking this button navigates up to the end in the table view above.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - <html><head/><body><p>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;点击这个按钮在上面的表视图中导航到最后。&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</p></body></html> - - - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> <html><head/><body><p>点击这个按钮在上面的表视图中导航到最后。</p></body></html> - + >| >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> <html><head/><body><p>点击这里跳到指定的记录</p></body></html> - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> <html><head/><body><p>这个按钮用于导航到在“转到”区域中指定的记录号。</p></body></html> - + Go to: 转到: - + Enter record number to browse 输入要浏览的记录号 - + Type a record number in this area and click the Go to: button to display the record in the database view 在这个区域中输入一个记录号,并点击“转到:”按钮以在数据库视图中显示记录 - + 1 1 - + Show rowid column 显示 rowid 列 - + Toggle the visibility of the rowid column 切换 rowid 列的可见性 - + Unlock view editing 解锁视图编辑 - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. 解锁当前视图以编辑。然而,你需要合适的触发器来编辑。 - + Edit display format 编辑显示格式 - + Edit the display format of the data in this column 编辑列中数据的显示格式 - - + + New Record 新建记录 - - + + Insert a new record in the current table 在当前表中插入一条新记录 - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> <html><head/><body><p>此按钮在数据库中创建新记录。按住鼠标按钮以打开菜单选择不同选项:</p><ul><li><span style=" font-weight:600;">新记录</span>: 用默认值插入一条新记录到数据库中。</li><li><span style=" font-weight:600;">插入值...</span>: 打开对话框编辑要插入的值。可以输入满足约束的值。如果 <span style=" font-weight:600;">新记录</span> 选项失败,对话框也会打开。</li></ul></body></html> - - + + Delete Record 删除记录 - + Delete the current record 删除当前记录 - - + + This button deletes the record or records currently selected in the table 此按钮删除表里当前选中的记录 - - + + Insert new record using default values in browsed table 用默认值插入一条新记录到当前浏览的表中 - + Insert Values... 插入值... - - + + Open a dialog for inserting values in a new record 打开对话框以插入值到新记录中 - + Export to &CSV 导出到 &CSV - - + + Export the filtered data to CSV 导出当前数据到 CSV - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. 此按钮导出当前浏览、过滤的表的数据 (过滤后,显示格式和列的顺序) 到一个CSV文件。 - + Save as &view 保存为视图(&V) - - + + Save the current filter, sort column and display formats as a view 保存当前过滤,列排序和显示格式为视图 - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. 此按钮保存当前浏览表格的设置 (过滤,显示格式和列的顺序) 为SQL视图,之后可以再用SQL语句浏览。 - + Save Table As... 表另存为... - - + + Save the table as currently displayed 按当前显示的样子保存表 - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> <html><head/><body><p>此菜单提供以下可应用到当前浏览、过滤的表的选项:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">导出到CSV: 导出当前浏览、过滤的表的数据 (过滤后,显示格式和列的顺序) 到一个CSV文件。</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">保存为视图: 此选项保存当前浏览表格的设置 (过滤,显示格式和列的顺序) 为SQL视图,之后可以再用SQL语句浏览。</li></ul></body></html> - + Hide column(s) 隐藏列 - + Hide selected column(s) 隐藏选中的列 - + Show all columns 显示所有列 - + Show all columns that were hidden 显示所有被隐藏的列 - - + + Set encoding 设置编码 - + Change the encoding of the text in the table cells 更改表单元格中文本的编码 - + Set encoding for all tables 设置所有表的编码 - + Change the default encoding assumed for all tables in the database 修改数据库中所有表的默认编码 - + Clear Filters 清除过滤 - + Clear all filters 清除所有过滤 - - + + This button clears all the filters set in the header input fields for the currently browsed table. 此按钮将清除当前浏览表的所有在头部输入区的过滤器。 - + Clear Sorting 清除排序 - + Reset the order of rows to the default 将行的顺序重置为默认 - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. 此按钮清除当前浏览的表的列排序,重置为默认值。 - + Print 打印 - + Print currently browsed table data 打印当前浏览表中的数据 - + Print currently browsed table data. Print selection if more than one cell is selected. 打印当前正在浏览的表中的数据。如果选中了多于一个的单元格,就打印选中区域。 - + Ctrl+P - + Refresh 刷新 - + Refresh the data in the selected table 刷新选中表中的数据 - + This button refreshes the data in the currently selected table. 这个按钮刷新在当前选择的表中的数据。 - + F5 - + Find in cells - 在单元格中查找 + 缩减文本标签长度 + 单元格查找 - + Open the find tool bar which allows you to search for values in the table view below. - 打开查找栏,可以在其中搜索表内数据。 + 打开查找工具栏,你可以用它搜索当前表中的数据。 - Ctrl+F - + + Freeze columns + 冻结列 - - + + Make all columns from the first column up to this column not move when scrolling horizontally + 水平滚动时,第一列至此列的所有列保持不动 + + + + Bold 粗体 - + Ctrl+B - - + + Italic 斜体 - - + + Underline 下划线 - + Ctrl+U - - + + Align Right 右对齐 - - + + Align Left 左对齐 - - + + Center Horizontally 垂直居中 - - + + Justify 两端对齐 - - + + Edit Conditional Formats... 编辑条件格式... - + Edit conditional formats for the current column 为当前列设置条件格式 - + Clear Format 清除格式 - + Clear All Formats 清除全部格式 - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns 清除当前选择的单元格的格式和当前选择的列的条件格式 - - + + Font Color 字体颜色 - - + + Background Color 背景颜色 - + Toggle Format Toolbar - 切换格式工具栏 + 缩减文本标签长度,不失语义 + 格式工具栏 - + Show/hide format toolbar 显示或隐藏格式工具栏 - - + + This button shows or hides the formatting toolbar of the Data Browser 此按钮显示或隐藏浏览数据窗口的格式工具栏 - + Select column 选择列 - + Ctrl+Space - + Replace text in cells 在单元格中替换 - - Ctrl+H - - - Filter in all columns - 在所有列中过滤 + Filter in any column + 过滤任何列 - + Ctrl+R - + %n row(s) %n 行 - + , %n column(s) , %n 列 - + . Sum: %1; Average: %2; Min: %3; Max: %4 . 求和: %1; 平均值: %2; 最小值: %3; 最大值: %4 . Sum: %1; Average: %2; Min: %3; Max: %4 - + Conditional formats for "%1" "%1" 的条件格式 - + determining row count... 正在决定行数... - + %1 - %2 of >= %3 %1 - %2 / 超过 %3 - + %1 - %2 of %3 %1 - %2 / %3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. 请输入一个伪主键以在当前视图启用编辑。这需要是视图中的一个满足唯一性的列的名字。 - + Delete Records 删除记录 - + Duplicate records 重复记录 - + Duplicate record 重复的记录 - + Ctrl+" - + Adjust rows to contents 按内容调整行高 - + Error deleting record: %1 删除记录时出错: %1 - + Please select a record first 请首先选择一条记录 - + There is no filter set for this table. View will not be created. 此表没有过滤。视图不会被创建。 - + Please choose a new encoding for all tables. 请为所有表选择新的编码。 - + Please choose a new encoding for this table. 请为此表选择新的编码。 - + %1 Leave the field empty for using the database encoding. %1 留空此字段以使用数据库默认编码。 - + This encoding is either not valid or not supported. 这种编码非法或者不支持。 - + %1 replacement(s) made. 进行了 %1 次替换。 + + TableBrowserDock + + + New Data Browser + 新建数据浏览器 + + + + Rename Data Browser + 更名数据浏览器 + + + + Close Data Browser + 关闭数据浏览器 + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + 设定数据浏览器的新名称。被“&&”标记的字符可作为键盘快捷键的字符。 + + VacuumDialog @@ -7971,15 +7275,7 @@ Leave the field empty for using the database encoding. Please select the databases to co&mpact: - 请选择要压缩的数据库(&M) - - - Warning: Compacting the database will commit all changes you made. - 警告: 压缩数据库将会提交您做出的所有更改。 - - - Please select the objects to compact: - 请选择要压缩的对象: + 请选择要压缩的数据库(&M): diff --git a/src/translations/sqlb_zh_TW.ts b/src/translations/sqlb_zh_TW.ts index cb5bd2300..42cacd586 100644 --- a/src/translations/sqlb_zh_TW.ts +++ b/src/translations/sqlb_zh_TW.ts @@ -3,10 +3,6 @@ AboutDialog - - About SqliteBrowser - 關於 SqliteBrowser - About DB Browser for SQLite @@ -22,43 +18,6 @@ <html><head/><body><p>DB Browser for SQLite is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt">https://www.mozilla.org/MPL/2.0/index.txt</a> for details.</p><p>For more information on this program please visit our website at: <a href="http://sqlitebrowser.org">http://sqlitebrowser.org</a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - - Qt Version - Qt 版本 - - - SQLite Version - SQLite 版本 - - - <html><head/><body><p>SQLite Database Browser is an open source, freeware visual tool used to create, design and edit SQLite database files.</p><p>It is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses.</p><p>See <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> and <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> for details.</p><p>For more information on this program please visit our website at: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">This software uses the GPL/LGPL Qt Toolkit from </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>See </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> for licensing terms and information.</span></p><p><span style=" font-size:small;">It also uses the Silk icon set by Mark James licensed under a Creative Commons Attribution 2.5 and 3.0 license.<br/>See </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> for details.</span></p></body></html> - <html><head/><body><p>SQLite Database Browser 是一個開放原始碼的免費視覺化工具,用於建立、設計和編輯 SQLite 資料庫檔案。</p><p>它是以第 2 版 Mozilla 公共許可,以及第 3 版及之後版本的 GNU 通用許可方式授權。你可以在遵循這些許可的條件下修改或重新發佈它。</p><p>參閱 <a href="http://www.gnu.org/licenses/gpl.html"><span style=" text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a> 和 <a href="https://www.mozilla.org/MPL/2.0/index.txt"><span style=" text-decoration: underline; color:#0000ff;">https://www.mozilla.org/MPL/2.0/index.txt</span></a> 瞭解細節。</p><p>要獲得本程式的更多資訊,請訪問我們的網站: <a href="https://sqlitebrowser.org"><span style=" text-decoration: underline; color:#0000ff;">https://sqlitebrowser.org</span></a></p><p><span style=" font-size:small;">這個軟體使用了 GPL/LGPL Qt Toolkit: </span><a href="http://qt-project.org/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/</span></a><span style=" font-size:small;"><br/>參閱 </span><a href="http://qt-project.org/doc/qt-5/licensing.html"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://qt-project.org/doc/qt-5/licensing.html</span></a><span style=" font-size:small;"> 瞭解許可條款和資訊。</span></p><p><span style=" font-size:small;">它還是用了由 Mark James 提供的 Silk 圖示集,以第 2.5 和 3.0 版知識共用署名(CCA)許可方式授權。<br/>參閱 </span><a href="http://www.famfamfam.com/lab/icons/silk/"><span style=" font-size:small; text-decoration: underline; color:#0000ff;">http://www.famfamfam.com/lab/icons/silk/</span></a><span style=" font-size:small;"> 瞭解細節。</span></p></body></html> - - - - SQLCipher Version %1 (based on SQLite %2) - - - - - Version - - - - - Built for %1, running on %2 - - - - - Qt Version - - - - - SQLite Version - - AddRecordDialog @@ -153,108 +112,151 @@ Application - - Usage: %1 [options] [db] - - 用法: %1 [選項] [資料庫] - - - - + Possible command line arguments: 可用命令列參數: - -h, --help Show command line options - -h, --help 顯示命令列選項 + + The user settings file location is replaced with the argument value instead of the environment variable value. + + + + + Ignored environment variable(DB4S_SETTINGS_FILE) value : + + + + + Usage: %1 [options] [<database>|<project>] + + + + + + -h, --help Show command line options + - -s, --sql [file] Execute this SQL file after opening the DB - -s, --sql [檔] 在打開資料庫後執行這個 SQL 檔案 + + -q, --quit Exit application after running scripts + - -q, --quit Exit application after running scripts - -q, --quit 在執行腳本後退出應用程式 + + -s, --sql <file> Execute this SQL file after opening the DB + - [file] Open this SQLite database - [檔] 打開這個 SQLite 資料庫 + + -t, --table <table> Browse this table after opening the DB + - - -h, --help Show command line options + + -R, --read-only Open database in read-only mode - - -s, --sql [file] Execute this SQL file after opening the DB + + -S, --settings <settings_file> - - -t, --table [table] Browse this table after opening the DB + + Run application based on this settings file - - -q, --quit Exit application after running scripts + + -o, --option <group>/<setting>=<value> - - -R, --read-only Open database in read-only mode + + Run application with this setting temporarily set to value - - -o, --option [group/setting=value] Run application with this setting temporarily set to value + + -O, --save-option <group>/<setting>=<value> - - -O, --save-option [group/setting=value] Run application saving this value for this setting + + Run application saving this value for this setting - - -v, --version Display the current version + + -v, --version Display the current version - - [file] Open this SQLite database + + <database> Open this SQLite database - - This is DB Browser for SQLite version %1. + + <project> Open this project file (*.sqbpro) - + The -s/--sql option requires an argument -s/--sql 選項需要一個參數 - + The file %1 does not exist 檔案 %1 不存在 - + The -t/--table option requires an argument - + + The -S/--settings option requires an argument. The option is ignored. + + + + The -o/--option and -O/--save-option options require an argument in the form group/setting=value - + Invalid option/non-existant file: %1 無效選項/不存在的檔案: %1 + + + SQLite Version + + + + + SQLCipher Version %1 (based on SQLite %2) + + + + + DB Browser for SQLite Version %1. + + + + + Built for %1, running on %2 + + + + + Qt Version %1 + + CipherDialog @@ -397,38 +399,48 @@ If any of the other settings were altered for this database file you need to pro + .NET DateTime.Ticks to date + + + + Julian day to date - + Unix epoch to local time - + Date as dd/mm/yyyy - + Lower case - + + Binary GUID to text + + + + Custom display format must contain a function call applied to %1 - + Error in custom display format. Message from database engine: %1 - + Custom display format must return only one column but it returned %1. @@ -443,22 +455,22 @@ If any of the other settings were altered for this database file you need to pro - + Unix epoch to date - + Upper case - + Windows DATE to date - + Custom @@ -585,201 +597,164 @@ If any of the other settings were altered for this database file you need to pro DBBrowserDB - + Please specify the database name under which you want to access the attached database - + Invalid file format - + Do you want to save the changes made to the database file %1? 您是否想儲存對資料庫檔案 %1 做出的修改? - + Exporting database to SQL file... 正在匯出資料庫到 SQL 檔案... - - + + Cancel 取消 - + Executing SQL... 正在執行 SQL... - + Action cancelled. 操作已取消。 - Error in statement #%1: %2. -Aborting execution. - 錯誤在語句 #%1: %2。 -正在放棄執行。 - - - renameColumn: cannot find table %1. - renameColumn: 無法查閱資料資料表 %1。 - - - - This database has already been attached. Its schema name is '%1'. - - - - + Do you really want to close this temporary database? All data will be lost. - + Database didn't close correctly, probably still busy - + The database is currently busy: - + Do you want to abort that other operation? - - + + No database file opened - - + + Error in statement #%1: %2. Aborting execution%3. - - + + and rolling back - + didn't receive any output from %1 - + could not execute command: %1 - + Cannot delete this object - + Cannot set data on this object - - + + A table with the name '%1' already exists in schema '%2'. - + No table with name '%1' exists in schema '%2'. - - + + Cannot find column %1. - + Creating savepoint failed. DB says: %1 - + Renaming the column failed. DB says: %1 - - + + Releasing savepoint failed. DB says: %1 - + Creating new table failed. DB says: %1 - + Copying data to new table failed. DB says: %1 - + Deleting old table failed. DB says: %1 - + Error renaming table '%1' to '%2'. Message from database engine: %3 - + could not get list of db objects: %1 - renameColumn: cannot find column %1. - renameColumn: 無法查詢列 %1。 - - - renameColumn: creating savepoint failed. DB says: %1 - renameColumn: 建立保存點時失敗。DB 說: %1 - - - renameColumn: creating new table failed. DB says: %1 - renameColumn: 建立新資料表時失敗。DB 說: %1 - - - renameColumn: copying data to new table failed. DB says: -%1 - renameColumn: 複製資料到新資料表時失敗。DB 說: -%1 - - - renameColumn: deleting old table failed. DB says: %1 - renameColumn: 刪除舊資料表失敗。DB 說: %1 - - - + Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: @@ -788,61 +763,27 @@ Message from database engine: - renameColumn: releasing savepoint failed. DB says: %1 - renameColumn: 釋放保存點時失敗。DB 說: %1 - - - Error renaming table '%1' to '%2'.Message from database engine: -%3 - 重命名資料表 '%1' 為 '%2'時失敗。消息來自資料庫引擎: -%3 - - - ... <string can not be logged, contains binary data> ... - ... <字串無法記錄,包含二進位資料> ... - - - + could not get list of databases: %1 - + Error loading extension: %1 載入擴充套件時出現錯誤: %1 - + could not get column information - unknown object type %1 - 未知對象類型 %1 - - - could not get list of db objects: %1, %2 - 無法取得資料庫物件的列表: %1, %2 - - - could not get types - 無法取得類型 - - - didn't receive any output from pragma %1 - 無法接受來自雜注 %1 的任何輸出 - - - could not execute pragma command: %1, %2 - 無法執行雜注命令: %1, %2 - - - + Error setting pragma %1 to %2: %3 設定雜注 %1 為 %2 時出現錯誤: %3 - + File not found. 找不到檔案。 @@ -875,12 +816,12 @@ Message from database engine: - + Browsables - + All @@ -890,22 +831,22 @@ Message from database engine: - + Tables (%1) 資料表 (%1) - + Indices (%1) 索引 (%1) - + Views (%1) 視圖 (%1) - + Triggers (%1) 觸發器 (%1) @@ -918,410 +859,352 @@ Message from database engine: 編輯資料庫儲存格 - + Mode: - + This is the list of supported modes for the cell editor. Choose a mode for viewing or editing the data of the current cell. - + RTL Text - - + + Image - + JSON - + XML - - + + Automatically adjust the editor mode to the loaded data type - + This checkable button enables or disables the automatic switching of the editor mode. When a new cell is selected or new data is imported and the automatic switching is enabled, the mode adjusts to the detected data type. You can then change the editor mode manually. If you want to keep this manually switched mode while moving through the cells, switch the button off. - + Auto-switch - + The text editor modes let you edit plain text, as well as JSON or XML data with syntax highlighting, automatic formatting and validation before saving. Errors are indicated with a red squiggle underline. - + This Qt editor is used for right-to-left scripts, which are not supported by the default Text editor. The presence of right-to-left characters is detected and this editor mode is automatically selected. - + Open preview dialog for printing the data currently stored in the cell - + Auto-format: pretty print on loading, compact on saving. - + When enabled, the auto-format feature formats the data on loading, breaking the text in lines and indenting it for maximum readability. On data saving, the auto-format feature compacts the data removing end of lines, and unnecessary whitespace. - + Word Wrap - + Wrap lines on word boundaries - - + + Open in default application or browser - + Open in application - + The value is interpreted as a file or URL and opened in the default application or web browser. - + Save file reference... - + Save reference to file - - + + Open in external application - + Autoformat - + &Export... - - + + &Import... - - + + Import from file - - + + Opens a file dialog used to import any kind of data to this database cell. - + Export to file - + Opens a file dialog used to export the contents of this database cell to a file. - - + Print... - - Open preview dialog for printing displayed image - - - - - + Ctrl+P - + Open preview dialog for printing displayed text - + Copy Hex and ASCII - + Copy selected hexadecimal and ASCII columns to the clipboard - + Ctrl+Shift+C - Import text - 匯入純文字檔案 - - - Opens a file dialog used to import text to this database cell. - 打開一個檔對話方塊用於匯入純文字檔案到這個資料庫儲存格。 - - - &Import - 匯入(&I) - - - Export text - 匯出純文字檔案 - - - Opens a file dialog used to export the contents of this database cell to a text file. - 打開一個檔對話方塊用於匯出這個資料庫儲存格的內容到一個文字檔案。 - - - &Export - 匯出(&E) - - - + Set as &NULL - + Apply data to cell - + This button saves the changes performed in the cell editor to the database cell. - + Apply - + Text 純文字檔案 - + Binary 二進位 - Clear cell data - 清除儲存格資料 - - - + Erases the contents of the cell 刪除儲存格的內容 - - &Clear - 清除(&C) - - - <html><head/><body><p><span style=" font-weight:600; color:#c00000;">Warning: Editing binary content in text mode may result in corrupted data!</span></p></body></html> - <html><head/><body><p><span style=" font-weight:600; color:#c00000;">警告: 在文字模式中編輯二進位內容可能會導致資料損壞!</span></p></body></html> - This area displays information about the data present in this database cell 這個區域顯示存在於這個資料庫儲存格中的資料的相關資訊 - + Type of data currently in cell 目前在儲存格中的資料的類型 - + Size of data currently in table 目前在資料表中的資料的大小 - Choose a file - 選擇一個檔案 - - - Text files(*.txt);;Image files(%1);;All files(*) - 文字檔案(*.txt);;影像檔案(%1);;所有擋檔案(*) - - - + Choose a filename to export data 選擇一個匯出資料的檔案名稱 - Text files(*.txt);;All files(*) - 文字檔案(*.txt);;所有擋檔案(*) - - - + Type of data currently in cell: %1 Image - + %1x%2 pixel(s) - + Type of data currently in cell: NULL - - + + Type of data currently in cell: Text / Numeric 目前在儲存格中的資料的類型: Text 純文字檔案/ Numeric 數值 - - + + Image data can't be viewed in this mode. - - + + Try switching to Image or Binary mode. - - + + Binary data can't be viewed in this mode. - - + + Try switching to Binary mode. - - + + Image files (%1) - + Binary files (*.bin) - + + Couldn't save file: %1. + + + + + The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell or cancel any changes. + + + + Choose a file to import 選擇要匯入的一個檔案 - + %1 Image - + Invalid data for this mode - + The cell contains invalid %1 data. Reason: %2. Do you really want to apply it to the cell? - - - + + + %n character(s) %n 個字元 - + Type of data currently in cell: Valid JSON - - The data has been saved to a temporary file and has been opened with the default application. You can now edit the file and, when you are ready, apply the saved new data to the cell editor or cancel any changes. - - - - Type of data currently in cell: Image - 目前在儲存格中的資料的類型: Image 圖像 - - - %1x%2 pixel - %1x%2 圖元 - - - + Type of data currently in cell: Binary 目前在儲存格中的資料的類型: Binary 二進位 - - + + %n byte(s) %n 位元組 @@ -1330,27 +1213,11 @@ Errors are indicated with a red squiggle underline. EditIndexDialog - - Create New Index - 建立新索引 - &Name 名稱(&N) - - &Columns - 列(&C) - - - Column - - - - Use in Index - 在索引中使用 - Order @@ -1457,22 +1324,6 @@ Errors are indicated with a red squiggle underline. Fields 欄位 - - Add field - 加入欄位 - - - Remove field - 刪除欄位 - - - Move field up - 上移欄位 - - - Move field down - 下移欄位 - Add @@ -1504,202 +1355,207 @@ Errors are indicated with a red squiggle underline. - - + + Name 名稱 - - + + Type 類型 - + NN - + Not null 非空 - + PK PK - - Primary key - 主鍵 + + <html><head/><body><p><img src=":/icons/field_key"/> Primary key</p></body></html> + - + AI AI - + Autoincrement 自動增值 - + U - - - + + + Unique - + Default 預設 - + Default value 預設值 - - - + + + Check 檢查 - + Check constraint 檢查約束條件 - + Collation - - - + + + Foreign Key - + + <html><head/><body><p><img src=":/icons/field_fk"/> Foreign Key</p></body></html> + + + + Constraints - + Add constraint - + Remove constraint - + Columns 列列 - + SQL - + <html><head/><body><p><span style=" font-weight:600; color:#ff0000;">Warning: </span>There is something with this table definition that our parser doesn't fully understand. Modifying and saving this table might result in problems.</p></body></html> - - + + Primary Key - + Add a primary key constraint - + Add a foreign key constraint - + Add a unique constraint - + Add a check constraint - + Error creating table. Message from database engine: %1 建立資料表時出現錯誤。來自資料庫引擎的消息: %1 - + There already is a field with that name. Please rename it first or choose a different name for this field. - + There is at least one row with this field set to NULL. This makes it impossible to set this flag. Please change the table data first. 至少有一行帶本欄位的記錄被設為空。這使得它不可能設定這個標誌。請首先修改資料表資料。 - + There is at least one row with a non-integer value in this field. This makes it impossible to set the AI flag. Please change the table data first. 在這個欄位中至少有一行帶有一個非整數的值。這使得它不可能設定 AI 標誌。請首先修改資料表資料。 - + Column '%1' has duplicate data. - + This makes it impossible to enable the 'Unique' flag. Please remove the duplicate data, which will allow the 'Unique' flag to then be enabled. - + This column is referenced in a foreign key in table %1 and thus its name cannot be changed. - - + + There can only be one primary key for each table. Please modify the existing primary key instead. - + Are you sure you want to delete the field '%1'? All data currently stored in this field will be lost. 您是否確認您想刪除欄位 '%1'? 目前存儲在這個欄位中的所有資料將會遺失。 - + Please add a field which meets the following criteria before setting the without rowid flag: - Primary key flag set - Auto increment disabled @@ -1713,18 +1569,6 @@ All data currently stored in this field will be lost. Export data as CSV 匯出資料為 CSV - - &Table - 資料表(&T) - - - &Column names in first line - 列名在首行(&C) - - - Field &separator - 欄位分隔符號(&S) - Tab&le(s) @@ -1814,10 +1658,6 @@ All data currently stored in this field will be lost. Choose a filename to export data 選擇匯出資料的檔案名稱 - - Text files(*.csv *.txt) - 文字檔案(*.csv *.txt) - Export data as JSON @@ -1848,10 +1688,6 @@ All data currently stored in this field will be lost. Export completed. 匯出完成。 - - Could not open output file. - 無法打開輸出檔案。 - ExportSqlDialog @@ -1925,10 +1761,6 @@ All data currently stored in this field will be lost. Choose a filename to export 選擇要匯出的檔案名稱 - - Text files(*.sql *.txt) - 文字檔案(*.sql *.txt) - Export completed. @@ -1944,7 +1776,7 @@ All data currently stored in this field will be lost. ExtendedScintilla - + Ctrl+H @@ -1955,22 +1787,22 @@ All data currently stored in this field will be lost. - + Ctrl+P - + Find... - + Find and Replace... - + Print... @@ -1978,123 +1810,128 @@ All data currently stored in this field will be lost. ExtendedTableWidget - + Use as Exact Filter - + Containing - + Not containing - + Not equal to - + Greater than - + Less than - + Greater or equal - + Less or equal - + Between this and... - + Regular expression - + Edit Conditional Formats... - + Set to NULL - + + Cut + + + + Copy - + Copy with Headers - + Copy as SQL - + Paste - + Print... - + Use in Filter Expression - + Alt+Del - + Ctrl+Shift+C - + Ctrl+Alt+C - + The content of the clipboard is bigger than the range selected. Do you want to insert it anyway? - + <p>Not all data has been loaded. <b>Do you want to load all data before selecting all the rows?</b><p><p>Answering <b>No</b> means that no more data will be loaded and the selection will not be performed.<br/>Answering <b>Yes</b> might take some time while the data is loaded but the selection will be complete.</p>Warning: Loading all the data might require a great amount of memory for big tables. - + Cannot set selection to NULL. Column %1 has a NOT NULL constraint. @@ -2257,13 +2094,6 @@ x~y Range: values between x and y - - FilterTableHeader - - Filter - 過濾 - - FindReplaceDialog @@ -2416,15 +2246,44 @@ x~y Range: values between x and y - ImportCsvDialog + ImageViewer - - Import CSV file - 匯入 CSV 檔案 + + Image Viewer + + + + + Reset the scaling to match the original size of the image. + + + + + Set the scaling to match the size of the viewport. + + + + + Print... + + + + + Open preview dialog for printing displayed image + + + + + Ctrl+P + + + + ImportCsvDialog - &Table name - 資料表名稱(&T) + + Import CSV file + 匯入 CSV 檔案 @@ -2453,7 +2312,7 @@ x~y Range: values between x and y - + Tab Tab @@ -2600,26 +2459,6 @@ x~y Range: values between x and y Select All - - Inserting data... - 正在插入資料... - - - Cancel - 取消 - - - There is already a table of that name and an import into an existing table is only possible if the number of columns match. - 已有同名的資料表,並且匯入只有在列數相符的情況下才能匯入到一個現有的資料表。 - - - There is already a table of that name. Do you want to import the data into it? - 已有同名的資料表。您是否想匯入資料到其中? - - - Import completed - 匯入完成 - There is already a table named '%1' and an import into an existing table is only possible if the number of columns match. @@ -2646,12 +2485,17 @@ x~y Range: values between x and y - + + Unexpected end of file. Please make sure that you have configured the correct quote characters and the file is not malformed. + + + + Importing the file '%1' took %2ms. Of this %3ms were spent in the row function. - + Inserting row failed: %1 @@ -2659,674 +2503,337 @@ x~y Range: values between x and y MainWindow - SQLiteBrowser - SQLiteBrowser - - - Database &Structure - 資料庫結構(&S) - - - + toolBar1 - &Browse Data - 瀏覽資料(&B) - - - Table: - 資料表: - - - Select a table to browse data - 選擇一個資料表以瀏覽資料 - - - Use this list to select a table to be displayed in the database view - 使用這個清單選擇一個要顯示在資料庫視圖中的資料表 - - - Refresh the data in the selected table. - 更新選擇的資料表中的資料。 - - - This button refreshes the data in the currently selected table. - 這個按鈕更新在目前選擇的資料表中的資料。 - - - + Opens the SQLCipher FAQ in a browser window - + Export one or more table(s) to a JSON file - - F5 - - - - Insert a new record in the current table - 在目前資料表中插入一條新記錄 - - - This button creates a new, empty record in the database - 這個按鈕在資料庫中建立一條新的空白記錄 - - - New Record - 新建記錄 - - - Delete the current record - 刪除目前記錄 - - - This button deletes the record currently selected in the database - 這個按鈕刪除在資料庫中目前選擇的記錄 - - - Delete Record - 刪除記錄 - - - This is the database view. You can double-click any record to edit its contents in the cell editor window. - 這是資料庫視圖。您可以按兩下任何記錄,在儲存格編輯器視窗中編輯記錄內容。 - - - < - < - - - 0 - 0 of 0 - 0 - 0 / 0 - - - > - > - - - Scroll 100 records upwards - 上滾 100 條記錄 - DB Browser for SQLite - <html><head/><body><p>Clicking this button navigates 100 records upwards in the table view above.</p></body></html> - <html><head/><body><p>點擊這個按鈕在上面的資料表視圖中向上導航 100 條記錄。</p></body></html> - - - <html><head/><body><p>Scroll 100 records downwards</p></body></html> - <html><head/><body><p>下滾 100 條記錄</p></body></html> - - - <html><head/><body><p>Clicking this button navigates 100 records downwards in the table view above.</p></body></html> - <html><head/><body><p>點擊這個按鈕在上面的資料表視圖中向下導航 100 條記錄。</p></body></html> - - - <html><head/><body><p>Click here to jump to the specified record</p></body></html> - <html><head/><body><p>點擊這裡跳到指定的記錄</p></body></html> - - - <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> - <html><head/><body><p>這個按鈕用於導航到在“轉到”區域中指定的記錄編號。</p></body></html> - - - Go to: - 轉到: - - - Enter record number to browse - 輸入要瀏覽的記錄編號 - - - Type a record number in this area and click the Go to: button to display the record in the database view - 在這個區域中輸入一個記錄編號,並點擊“轉到:”按鈕以在資料庫視圖中顯示記錄 - - - 1 - 1 - - - Edit &Pragmas - 編輯雜注(&P) - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">Auto Vacuum</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_auto_vacuum"><span style=" text-decoration: underline; color:#0000ff;">自動真空</span></a></p></body></html> - - - None - - - - Full - 完整 - - - Incremental - 增加 - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">Automatic Index</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_automatic_index"><span style=" text-decoration: underline; color:#0000ff;">自動化索引</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Checkpoint Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_checkpoint_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">檢查點完全 FSYNC</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">Foreign Keys</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_foreign_keys"><span style=" text-decoration: underline; color:#0000ff;">外鍵</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">Full FSYNC</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_fullfsync"><span style=" text-decoration: underline; color:#0000ff;">完全 FSYNC</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">Ignore Check Constraints</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_ignore_check_constraints"><span style=" text-decoration: underline; color:#0000ff;">忽略檢查約束</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">Journal Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_mode"><span style=" text-decoration: underline; color:#0000ff;">日誌模式</span></a></p></body></html> - - - Delete - 刪除 - - - Truncate - 裁截 - - - Persist - 永久 - - - Memory - 記憶體 - - - WAL - WAL - - - Off - - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">Journal Size Limit</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_journal_size_limit"><span style=" text-decoration: underline; color:#0000ff;">日誌大小限制</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">Locking Mode</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_locking_mode"><span style=" text-decoration: underline; color:#0000ff;">鎖定模式</span></a></p></body></html> - - - Normal - 正常 - - - Exclusive - 獨佔 - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">Max Page Count</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_max_page_count"><span style=" text-decoration: underline; color:#0000ff;">最大頁數</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">Page Size</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_page_size"><span style=" text-decoration: underline; color:#0000ff;">頁面大小</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">Recursive Triggers</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_recursive_triggers"><span style=" text-decoration: underline; color:#0000ff;">遞迴觸發器</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">Secure Delete</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_secure_delete"><span style=" text-decoration: underline; color:#0000ff;">安全刪除</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">Synchronous</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_synchronous"><span style=" text-decoration: underline; color:#0000ff;">同步</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">Temp Store</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_temp_store"><span style=" text-decoration: underline; color:#0000ff;">臨時存儲</span></a></p></body></html> - - - Default - 預設 - - - File - 檔案 - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">User Version</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_user_version"><span style=" text-decoration: underline; color:#0000ff;">用戶版本</span></a></p></body></html> - - - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL Auto Checkpoint</span></a></p></body></html> - <html><head/><body><p><a href="http://www.sqlite.org/pragma.html#pragma_wal_autocheckpoint"><span style=" text-decoration: underline; color:#0000ff;">WAL 自動檢查點</span></a></p></body></html> - - - + Open an existing database file in read only mode - E&xecute SQL - 執行 SQL(&X) - - - + &File 檔案(&F) - + &Import 匯入(&I) - + &Export 匯出(&E) - + &Edit 編輯(&E) - + &View 查看(&V) - + &Help 幫助(&H) - + Edit Database &Cell - + DB Sche&ma - + &Remote - - + + Execute current line 執行目前行 - + This button executes the SQL statement present in the current editor line - + Shift+F5 - + Sa&ve Project - - + + Save SQL file as - + This button saves the content of the current SQL editor tab to a file - + &Browse Table - + Copy Create statement - + Copy the CREATE statement of the item to the clipboard - toolBar - toolBar - - - SQL Log - SQL 日誌 - - - &Show SQL submitted by - 顯示 SQL 提交自(&S) - - - + User 用戶 - + Application 應用程式 - + &Clear 清除(&C) - Plot - 圖表 - - - Columns - 列列 - - - X - X - - - Y - Y - - - _ - _ - - - Save current plot... - 儲存目前圖表... - - - + &New Database... 新建資料庫(&N)... - - + + Create a new database file 建立一個新的資料庫檔 - + This option is used to create a new database file. 這個選項用於建立一個新的資料庫檔案。 - + Ctrl+N - - + + &Open Database... 打開資料庫(&O)... - - - - - + + + + + Open an existing database file 打開一個現有的資料庫檔 - - - + + + This option is used to open an existing database file. 這個選項用於打開一個現有的資料庫檔案。 - + Ctrl+O - + &Close Database 關閉資料庫(&C) - - + + Ctrl+W - Revert Changes - 復原修改 - - - - + + Revert database to last saved state 把資料庫退回到先前儲存的狀態 - + This option is used to revert the current database file to its last saved state. All changes made since the last save operation are lost. 這個選項用於倒退目前的資料庫檔為它最後的儲存狀態。從最後儲存操作開始做出的所有修改將會遺失。 - Write Changes - 寫入修改 - - - - + + Write changes to the database file 把修改寫入到資料庫檔 - + This option is used to save changes to the database file. 這個選項用於儲存修改到資料庫檔案。 - + Ctrl+S - Compact Database - 壓縮資料庫 - - - + Compact the database file, removing space wasted by deleted records 壓縮資料庫檔,通過刪除記錄去掉浪費的空間 - - + + Compact the database file, removing space wasted by deleted records. 壓縮資料庫檔,通過刪除記錄去掉浪費的空間。 - + E&xit 退出(&X) - + Ctrl+Q - Database from SQL file... - 來自 SQL 檔案的資料庫... - - - + Import data from an .sql dump text file into a new or existing database. 從一個 .sql 轉儲文字檔中匯入資料到一個新的或已有的資料庫。 - + This option lets you import data from an .sql dump text file into a new or existing database. SQL dump files can be created on most database engines, including MySQL and PostgreSQL. 這個選項讓你從一個 .sql 轉儲文字檔中匯入資料到一個新的或現有的資料庫。SQL 轉儲檔可以在大多數資料庫引擎上建立,包括 MySQL 和 PostgreSQL。 - Table from CSV file... - 資料表來自 CSV 檔案... - - - + Open a wizard that lets you import data from a comma separated text file into a database table. 打開一個引導精靈讓您從一個逗號間隔的文字檔匯入資料到一個資料庫資料表中。 - + Open a wizard that lets you import data from a comma separated text file into a database table. CSV files can be created on most database and spreadsheet applications. 打開一個引導精靈讓您從一個逗號間隔的文字檔匯入資料到一個資料庫資料表中。CSV 檔可以在大多數資料庫和試算資料表應用程式上建立。 - Database to SQL file... - 資料庫到 SQL 檔案... - - - + Export a database to a .sql dump text file. 匯出一個資料庫導一個 .sql 轉儲文字檔案。 - + This option lets you export a database to a .sql dump text file. SQL dump files contain all data necessary to recreate the database on most database engines, including MySQL and PostgreSQL. 這個選項讓你匯出一個資料庫導一個 .sql 轉儲文字檔案。SQL 轉儲檔包含在大多數資料庫引擎上(包括 MySQL 和 PostgreSQL)重新建立資料庫所需的所有資料。 - Table as CSV file... - 資料表為 CSV 檔案... - - - + Export a database table as a comma separated text file. 匯出一個資料庫資料表為逗號間隔的文字檔案。 - + Export a database table as a comma separated text file, ready to be imported into other database or spreadsheet applications. 匯出一個資料庫資料表為逗號間隔的文字檔,準備好被匯入到其他資料庫或試算資料表應用程式。 - Create Table... - 建立資料表... - - - + Open the Create Table wizard, where it is possible to define the name and fields for a new table in the database 打開“建立資料表”引導精靈,在那裡可以定義在資料庫中的一個新資料表的名稱和欄位 - Delete Table... - 刪除資料表... - - - + Open the Delete Table wizard, where you can select a database table to be dropped. 打開“刪除資料表”引導精靈,在那裡你可以選擇要丟棄的一個資料庫資料表。 - Modify Table... - 修改資料表... - - - + Open the Modify Table wizard, where it is possible to rename an existing table. It is also possible to add or delete fields form a table, as well as modify field names and types. 打開“修改資料表”引導精靈,在其中可以重命名一個現有的資料表。也可以從一個資料表中加入或刪除欄位,以及修改欄位名稱和類型。 - Create Index... - 建立索引... - - - + Open the Create Index wizard, where it is possible to define a new index on an existing database table. 打開“建立索引”引導精靈,在那裡可以在一個現有的資料庫資料表上定義一個新索引。 - + &Preferences... 偏好選項(&P)... - - + + Open the preferences window. 打開首選項視窗。 - + &DB Toolbar 資料庫工具列(&D) - + Shows or hides the Database toolbar. 顯示或隱藏資料庫工具列。 - What's This? - 這是什麼? - - - + Shift+F1 - &About... - 關於(&A)... - - - + &Recently opened 最近打開(&R) - - Open &tab - 打開標籤頁(&T) - - - + Ctrl+T @@ -3352,110 +2859,106 @@ You can drag SQL statements from an object row and drop them into other applicat - + Un/comment block of SQL code - + Un/comment block - + Comment or uncomment current line or selected block of code - + Comment or uncomment the selected lines or the current line, when there is no selection. All the block is toggled according to the first line. - + Ctrl+/ - + Stop SQL execution - + Stop execution - + Stop the currently running SQL script - ... - ... - - - - + + Edit Pragmas This has to be equal to the tab title in all the main tabs - + Warning: this pragma is not readable and this value has been inferred. Writing the pragma might overwrite a redefined LIKE provided by an SQLite extension. - - + + Execute SQL This has to be equal to the tab title in all the main tabs 執行 SQL - + &Tools - + DB Toolbar - + SQL &Log - + Show S&QL submitted by - + Error Log - + This button clears the contents of the SQL logs - + This panel lets you examine a log of all SQL commands issued by the application or by yourself - + &Plot - + This is the structure of the opened database. You can drag multiple object names from the Name column and drop them into the SQL editor and you can adjust the properties of the dropped names using the context menu. This would help you in composing SQL statements. You can drag SQL statements from the Schema column and drop them into the SQL editor or into other applications. @@ -3463,1167 +2966,1135 @@ You can drag SQL statements from the Schema column and drop them into the SQL ed - - + + Project Toolbar - + Extra DB toolbar - - - + + + Close the current database file - + This button closes the connection to the currently open database file - + Ctrl+F4 - + &Revert Changes - + &Write Changes - + Compact &Database... - + Execute all/selected SQL - + This button executes the currently selected SQL statements. If no text is selected, all SQL statements are executed. - - This button opens a file containing SQL statements and loads it in a new editor tab - - - - + &Load Extension... - + Execute line - + &Wiki - + F1 - + Bug &Report... - + Feature Re&quest... - + Web&site - + &Donate on Patreon... - + Open &Project... - + &Attach Database... - - + + Add another database file to the current database connection - + This button lets you add another database file to the current database connection - + &Set Encryption... - + SQLCipher &FAQ - + Table(&s) to JSON... - + Open Data&base Read Only... - + Ctrl+Shift+O - + Save results - + Save the results view - + This button lets you save the results of the last executed query - - + + Find text in SQL editor - + Find - + This button opens the search bar of the editor - + Ctrl+F - - + + Find or replace text in SQL editor - + Find or replace - + This button opens the find/replace dialog for the current editor tab - + Ctrl+H - + Export to &CSV 匯出到 &CSV - + Save as &view 儲存為視圖(&V) - + Save as view 儲存為視圖 - + Browse Table - + Shows or hides the Project toolbar. - + + Recent Files + + + + + New &tab + + + + + Open SQL file(s) + + + + + This button opens files containing SQL statements and loads them in new editor tabs + + + + This button lets you save all the settings associated to the open DB to a DB Browser for SQLite project file - + This button lets you open a DB Browser for SQLite project file - + Extra DB Toolbar - + New In-&Memory Database - + Drag && Drop Qualified Names - - + + Use qualified names (e.g. "Table"."Field") when dragging the objects and dropping them into the editor - + Drag && Drop Enquoted Names - - + + Use escaped identifiers (e.g. "Table1") when dragging the objects and dropping them into the editor - + &Integrity Check - + Runs the integrity_check pragma over the opened database and returns the results in the Execute SQL tab. This pragma does an integrity check of the entire database. - + &Foreign-Key Check - + Runs the foreign_key_check pragma over the opened database and returns the results in the Execute SQL tab - + &Quick Integrity Check - + Run a quick integrity check over the open DB - + Runs the quick_check pragma over the opened database and returns the results in the Execute SQL tab. This command does most of the checking of PRAGMA integrity_check but runs much faster. - + &Optimize - + Attempt to optimize the database - + Runs the optimize pragma over the opened database. This pragma might perform optimizations that will improve the performance of future queries. - - + + Print - + Print text from current SQL editor tab - + Open a dialog for printing the text in the current SQL editor tab - + Print the structure of the opened database - + Open a dialog for printing the structure of the opened database - + &Save Project As... - - - + + + Save the project in a file selected in a dialog - + Save A&ll - - - + + + Save DB file, project file and opened SQL files - + Ctrl+Shift+S - + + Close Pro&ject + + + + + Close project and database files and return to the initial state + + + + + Ctrl+Shift+F4 + + + + + + Detach Database + + + + + + Detach database file attached to the current database connection + + + + &Database from SQL file... - + &Table from CSV file... - + &Database to SQL file... - + &Table(s) as CSV file... - + &Create Table... - + &Delete Table... - + &Modify Table... - + Create &Index... - + W&hat's This? - + &About - + This button opens a new tab for the SQL editor - + &Execute SQL 執行 SQL(&E) - &Wiki... - 維基百科(&W)... - - - Bug &report... - 錯誤報告(&R)... - - - Web&site... - 網站(&S)... - - - Save Project - 儲存專案 - - - - + + Save the current session to a file 儲存目前會話到一個檔案 - Open Project - 打開專案 - - - - + + Load a working session from a file 從一個檔載入工作會話 - - Open SQL file - 打開 SQL 檔案 - - - <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> - <html><head/><body><p>儲存目前圖表...</p><p>檔案格式按副檔名選擇(png, jpg, pdf, bmp)</p></body></html> - - - - - + + + Save SQL file 儲存 SQL 檔案 - Load extension - 載入擴充套件 - - - + Ctrl+E - + Export as CSV file 匯出為 CSV 檔案 - + Export table as comma separated values file 匯出資料表為逗號間隔值檔案 - + Ctrl+L - - + + Ctrl+P - + Database encoding 資料庫編碼 - - + + Choose a database file 選擇一個資料庫檔案 - + Ctrl+Return - + Ctrl+D - + Ctrl+I - + Reset Window Layout - + Alt+0 - - Close current SQL tab - - - - + The database is currenctly busy. - + Click here to interrupt the currently running query. - + Encrypted - + Database is encrypted using SQLCipher - + Read only - + Database file is read only. Editing the database is disabled. - + Could not open database file. Reason: %1 - - - + + + Choose a filename to save under 選擇一個檔案名稱儲存 - Error adding record: - - 加入記錄時出現錯誤: - - - - Error deleting record: -%1 - 刪除記錄時出現錯誤: -%1 - - - Please select a record first - 請首先選擇一條記錄 - - - %1 - %2 of %3 - %1 - %2 / %3 - - - There is no database opened. Please open or create a new database file. - 沒有打開資料庫。請打開或建立一個新的資料庫檔案。 - - - Are you sure you want to delete the %1 '%2'? -All data associated with the %1 will be lost. - 您是否確認您想刪除 %1 '%2'? -所有和 %1 關聯的資料將會遺失。 - - - Error: could not delete the %1. Message from database engine: -%2 - 錯誤: 無法刪除 %1。消息來自資料庫引擎: -%2 - - - There is no database opened. - 沒有資料庫打開。 - - - + Error while saving the database file. This means that not all changes to the database were saved. You need to resolve the following error first. %1 - + Do you want to save the changes made to SQL tabs in the project file '%1'? - + A new DB Browser for SQLite version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. - + DB Browser for SQLite project file (*.sqbpro) - + Error checking foreign keys after table modification. The changes will be reverted. - + This table did not pass a foreign-key check.<br/>You should run 'Tools | Foreign-Key Check' and fix the reported issues. - + Execution finished with errors. - + Execution finished without errors. - Cancel - 取消 - - - %1 Rows returned from: %2 (took %3ms) - %1 行返回自: %2 (耗時 %3毫秒) - - - Error executing query: %1 - 執行查詢時出現錯誤: %1 - - - Query executed successfully: %1 (took %2ms) - 查詢執行成功: %1 (耗時 %2毫秒) - - - Choose a text file - 選擇一個文字檔 - - - Text files(*.csv *.txt);;All files(*) - 文字檔案(*.csv *.txt);;所有擋檔案(*) - - - Import completed - 匯入完成 - - - + Are you sure you want to undo all changes made to the database file '%1' since the last save? 您是否確認您想撤銷從上次儲存以來對資料庫檔‘%1’做出的所有修改。? - Choose a filename to export - 選擇要匯出的檔案名稱 - - - Text files(*.sql *.txt) - 文字檔案(*.sql *.txt) - - - Export cancelled or failed. - 匯出取消或失敗。 - - - Export completed. - 匯出完成。 - - - + Choose a file to import 選擇要匯入的一個檔案 - + Text files(*.sql *.txt);;All files(*) 文字檔案(*.sql *.txt);;所有擋檔案(*) - + Do you want to create a new database file to hold the imported data? If you answer no we will attempt to import the data in the SQL file to the current database. 您是否確認您想建立一個新的資料庫檔用來存放匯入的資料? 如果您會到“否”的話,我們將嘗試匯入 SQL 檔中的資料到目前資料庫。 - + File %1 already exists. Please choose a different name. 檔案 %1 已存在。請選擇一個不同的名稱。 - + Error importing data: %1 匯入資料時出現錯誤: %1 - + Import completed. 匯入完成。 - + Delete View 刪除視圖 - + Delete Trigger 刪除觸發器 - + Delete Index 刪除索引 - - + + Delete Table 刪除資料表 - &%1 %2 - &%1 %2 - - - + Setting PRAGMA values will commit your current transaction. Are you sure? 設定 PRAGMA 值將會提交您的目前事務。. 您確認嗎? - + In-Memory database - + + Ctrl+Tab + + + + + Ctrl+Shift+Tab + + + + + Ctrl+PgUp + + + + + Clear List + + + + + Window Layout + + + + + Simplify Window Layout + + + + + Shift+Alt+0 + + + + + Dock Windows at Bottom + + + + + Dock Windows at Left Side + + + + + Dock Windows at Top + + + + Are you sure you want to delete the table '%1'? All data associated with the table will be lost. - + Are you sure you want to delete the view '%1'? - + Are you sure you want to delete the trigger '%1'? - + Are you sure you want to delete the index '%1'? - + Error: could not delete the table. - + Error: could not delete the view. - + Error: could not delete the trigger. - + Error: could not delete the index. - + Message from database engine: %1 - + Editing the table requires to save all pending changes now. Are you sure you want to save the database? - + + Edit View %1 + + + + + Edit Trigger %1 + + + + You are already executing SQL statements. Do you want to stop them in order to execute the current statements instead? Note that this might leave the database in an inconsistent state. - + -- EXECUTING SELECTION IN '%1' -- - + -- EXECUTING LINE IN '%1' -- - + -- EXECUTING ALL IN '%1' -- - - + + At line %1: - + Result: %1 - + Result: %2 - + Setting PRAGMA values or vacuuming will commit your current transaction. Are you sure? - + + Opened '%1' in read-only mode from recent file list + + + + + Opened '%1' from recent file list + + + + + The statements in the tab '%1' are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? + + + + + This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is no longer fully supported. If you want to load it completely, please use DB Browser for SQLite version 3.12 to convert it to the new file format. + + + + Project saved to file '%1' - + + Yes. Don't ask again + + + + + This action will open a new SQL tab with the following statements for you to edit and run: + + + + Rename Tab - + Duplicate Tab - + Close Tab - + Opening '%1'... - + There was an error opening '%1'... - + Value is not a valid URL or filename: %1 - + %1 rows returned in %2ms - + You are still executing SQL statements. Closing the database now will stop their execution, possibly leaving the database in an inconsistent state. Are you sure you want to close the database? - + Do you want to save the changes made to the project file '%1'? - + Choose text files - + Import completed. Some foreign key constraints are violated. Please fix them before saving. - + Modify View - + Modify Trigger - + Modify Index - + Modify Table - + &%1 %2%3 &%1 %2%3 - + (read only) - + Open Database or Project - + Attach Database... - + Import CSV file(s)... - + Select the action to apply to the dropped file(s). <br/>Note: only 'Import' will process more than one file. - + Do you want to save the changes made to SQL tabs in a new project file? - + Do you want to save the changes made to the SQL file %1? - - The statements in this tab are still executing. Closing the tab will stop the execution. This might leave the database in an inconsistent state. Are you sure you want to close the tab? - - - - + Select SQL file to open 選擇要打開的 SQL 檔案 - + Select file name 選擇檔案名稱 - + Select extension file 選擇擴充套件檔 - Extensions(*.so *.dll);;All files(*) - 擴充套件(*.so *.dll);;所有擋檔案(*) - - - + Extension successfully loaded. 擴充套件成功載入。 - + Error loading extension: %1 載入擴充套件時出現錯誤: %1 - + Could not find resource file: %1 - - + + Don't show again 不再顯示 - + New version available. 新版本可用。 - + Choose a project file to open - - This project file is using an old file format because it was created using DB Browser for SQLite version 3.10 or lower. Loading this file format is still fully supported but we advice you to convert all your project files to the new file format because support for older formats might be dropped at some point in the future. You can convert your files by simply opening and re-saving them. - - - - + Could not open project file for writing. Reason: %1 - + Collation needed! Proceed? - + A table in this database requires a special collation function '%1' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup! - + creating collation - + Set a new name for the SQL tab. Use the '&&' character to allow using the following character as a keyboard shortcut. - + Please specify the view name 請指定視圖名稱 - + There is already an object with that name. Please choose a different name. 已有相同名稱的對象。請選擇一個不同的名稱。 - + View successfully created. 成功建立視圖。 - + Error creating view: %1 建立視圖時出現錯誤: %1 - + This action will open a new SQL tab for running: - + Press Help for opening the corresponding SQLite reference page. - + Busy (%1) - - A new sqlitebrowser version is available (%1.%2.%3).<br/><br/>Please download at <a href='%4'>%4</a>. - 有新版本的 sqlitebrowser (%1.%2.%3)可用。<br/><br/>請從 <a href='%4'>%4</a> 下載。 - - - Choose a axis color - 選擇一個軸的顏色 - - - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) - PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;所有擋檔案(*) - - - Choose a file to open - 選擇要打開的一個檔案 - - - SQLiteBrowser project(*.sqbpro) - SQLiteBrowser 工程(*.sqbpro) - - - Invalid file format. - 無效檔案格式。 - NullLineEdit @@ -4646,45 +4117,37 @@ Create a backup! 圖表 - + <html><head/><body><p>This pane shows the list of columns of the currently browsed table or the just executed query. You can select the columns that you want to be used as X or Y axis for the plot pane below. The table shows detected axis type that will affect the resulting plot. For the Y axis you can only select numeric columns, but for the X axis you will be able to select:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date/Time</span>: strings with format &quot;yyyy-MM-dd hh:mm:ss&quot; or &quot;yyyy-MM-ddThh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Date</span>: strings with format &quot;yyyy-MM-dd&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Time</span>: strings with format &quot;hh:mm:ss&quot;</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Label</span>: other string formats. Selecting this column as X axis will produce a Bars plot with the column values as labels for the bars</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Numeric</span>: integer or real values</li></ul><p>Double-clicking the Y cells you can change the used color for that graph.</p></body></html> - + Columns 列列 - + X X - Y - Y - - - _ - _ - - - + Y1 - + Y2 - + Axis Type - + Here is a plot drawn when you select the x and y values above. Click on points to select them in the plot and in the table. Ctrl+Click for selecting a range of points. @@ -4695,143 +4158,139 @@ Select the axes or axes labels to drag and zoom only in that orientation. - + Line type: - - + + None - + Line - + StepLeft - + StepRight - + StepCenter - + Impulse - + Point shape: - + Cross - + Plus - + Circle - + Disc - + Square - + Diamond - + Star - + Triangle - + TriangleInverted - + CrossSquare - + PlusSquare - + CrossCircle - + PlusCircle - + Peace - + <html><head/><body><p>Save current plot...</p><p>File format chosen by extension (png, jpg, pdf, bmp)</p></body></html> <html><head/><body><p>儲存目前圖表...</p><p>檔案格式按副檔名選擇(png, jpg, pdf, bmp)</p></body></html> - + Save current plot... 儲存目前圖表... - - + + Load all data and redraw plot - - - + + + Row # - - Choose a axis color - 選擇一個軸的顏色 - Copy @@ -4853,71 +4312,67 @@ Select the axes or axes labels to drag and zoom only in that orientation. - + Date/Time - + Date - + Time - - + + Numeric - + Label - + Invalid - + Load all data and redraw plot. Warning: not all data has been fetched from the table yet due to the partial fetch mechanism. - + Choose an axis color - + Choose a filename to save under 選擇一個檔案名稱儲存 - + PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;All Files(*) PNG(*.png);;JPG(*.jpg);;PDF(*.pdf);;BMP(*.bmp);;所有擋檔案(*) - + There are curves in this plot and the selected line style can only be applied to graphs sorted by X. Either sort the table or query by X to remove curves or select one of the styles supported by curves: None or Line. - + Loading all remaining data for this table took %1ms. - - Cancel - 取消 - PreferencesDialog @@ -4962,34 +4417,36 @@ Warning: not all data has been fetched from the table yet due to the partial fet - + &Database 資料庫(&D) - + Database &encoding 資料庫編碼(&E) - + Open databases with foreign keys enabled. 打開啟用了外鍵的資料庫。 - + &Foreign keys 外鍵(&F) - - - - - - + + + + + + + + enabled 啟用 @@ -5000,238 +4457,213 @@ Warning: not all data has been fetched from the table yet due to the partial fet - - + + ... ... - &Prefetch block size - 預取塊尺寸(&P) - - - + Remove line breaks in schema &view - + Prefetch block si&ze - - Advanced - - - - + SQ&L to execute after opening database - + Default field type - + Data &Browser - + Font - + &Font - + Content - + Symbol limit in cell - + Threshold for completion and calculation on selection - + Show images in cell - + Enable this option to show a preview of BLOBs containing image data in the cells. This can affect the performance of the data browser, however. - + NULL - + Regular - Text - 純文字檔案 - - - + Binary 二進位 - + Background - + Filters - + Escape character - + Delay time (&ms) - + Set the waiting time before a new filter value is applied. Can be set to 0 for disabling waiting. - + &SQL &SQL - + Settings name 設定名稱 - + Context 上下文 - + Colour 顏色 - + Bold 粗體 - + Italic 斜體 - + Underline 底線 - + Keyword 關鍵字 - function - 函數 - - - + Function 函數 - + Table 資料表 - + Comment 注釋 - + Identifier 識別符 - + String 字串 - currentline - 目前行 - - - + Current line 目前行 - + SQL &editor font size SQL 編輯器字體大小(&E) - SQL &log font size - SQL 日誌字體大小(&L) - - - + Tab size - + SQL editor &font - + Error indicators - + Hori&zontal tiling - + If enabled the SQL code editor and the result table view are shown side by side instead of one over the other. - + Code co&mpletion @@ -5341,17 +4773,48 @@ Warning: not all data has been fetched from the table yet due to the partial fet - + + This sets the font size for all UI elements which do not have their own font size option. + + + + + Font size + + + + + Max Recent Files + + + + + Prompt to save SQL tabs +in new project file + + + + + If this is turned on, then changes to the SQL editor generate a save a project confirmation dialog when closing the SQL editor tab. + + + + When enabled, the line breaks in the Schema column of the DB Structure tab, dock and printed output are removed. - + + Database structure font size + + + + Font si&ze - + This is the maximum number of items allowed for some computationally expensive functionalities to be enabled: Maximum number of rows in a table for enabling the value completion based on current values in the column. Maximum number of indexes in a selection for calculating sum and average. @@ -5359,296 +4822,376 @@ Can be set to 0 for disabling the functionalities. - + This is the maximum number of rows in a table for enabling the value completion based on current values in the column. Can be set to 0 for disabling completion. - + Field display - + Displayed &text - - - + - - + + + + Click to set this color - + Text color - + Background color - + Preview only (N/A) - + Foreground - - SQL &results font size + + selected_bg - + + Selection background + + + + + selected_fg + + + + + Selection foreground + + + + + highlight + + + + + Highlight + + + + + SQL &results font size + + + + &Wrap lines - + Never - + At word boundaries - + At character boundaries - + At whitespace boundaries - + &Quotes for identifiers - + Choose the quoting mechanism used by the application for identifiers in SQL code. - + "Double quotes" - Standard SQL (recommended) - + `Grave accents` - Traditional MySQL quotes - + [Square brackets] - Traditional MS SQL Server quotes - + Keywords in &UPPER CASE - + When set, the SQL keywords are completed in UPPER CASE letters. - + When set, the SQL code lines that caused errors during the last execution are highlighted and the results frame indicates the error in the background - + + Close button on tabs + + + + + If enabled, SQL editor tabs will have a close button. In any case, you can use the contextual menu or the keyboard shortcut to close them. + + + + &Extensions 擴充套件(&E) - + Select extensions to load for every database: 選擇每個資料庫要載入的擴充套件: - + Add extension 加入擴充套件 - + Remove extension 刪除擴充套件 - + <html><head/><body><p>While supporting the REGEXP operator SQLite doesn't implement any regular expression<br/>algorithm but calls back the running application. DB Browser for SQLite implements this<br/>algorithm for you to let you use REGEXP out of the box. However, as there are multiple possible<br/>implementations of this and you might want to use another one, you're free to disable the<br/>application's implementation and load your own by using an extension. Requires restart of the application.</p></body></html> - + Disable Regular Expression extension - + <html><head/><body><p>SQLite provides an SQL function for loading extensions from a shared library file. Activate this if you want to use the <span style=" font-style:italic;">load_extension()</span> function from SQL code.</p><p>For security reasons, extension loading is turned off by default and must be enabled through this setting. You can always load extensions through the GUI, even though this option is disabled.</p></body></html> - + Allow loading extensions from SQL code - + Remote - + CA certificates - + Proxy - + Configure - - + + Export Settings + + + + + Import Settings + + + + + Subject CN - + Common Name - + Subject O - + Organization - - + + Valid from - - + + Valid to - - + + Serial number - + Your certificates - + File 檔案 - + Subject Common Name - + Issuer CN - + Issuer Common Name - + Clone databases into - - + + Choose a directory 選擇一個目錄 - + + The language will change after you restart the application. - + Select extension file 選擇擴充套件檔 - Extensions(*.so *.dll);;All files(*) - 擴充套件(*.so *.dll);;所有擋檔案(*) - - - + Extensions(*.so *.dylib *.dll);;All files(*) - + Import certificate file - + No certificates found in this file. - + Are you sure you want do remove this certificate? All certificate data will be deleted from the application settings! - + Are you sure you want to clear all the saved settings? All your preferences will be lost and default values will be used. + + + Save Settings File + + + + + + Initialization File (*.ini) + + + + + The settings file has been saved in location : + + + + + + Open Settings File + + + + + The settings file was loaded properly. + + + + + The selected settings file is not a normal settings file. +Please check again. + + ProxyDialog @@ -5710,30 +5253,6 @@ All your preferences will be lost and default values will be used. QObject - - Error importing data. Message from database engine: %1 - 匯入資料庫時出現錯誤。消息來自資料庫引擎: %1 - - - File is not a SQLite 3 database - 檔案不是 SQLite 3 資料庫 - - - File could not be read - 檔案無法讀取 - - - no error - 無錯誤 - - - Do you want to save the changes made to the database file %1? - 您是否想儲存對資料庫檔案 %1 做出的修改? - - - Exporting database to SQL file... - 正在匯出資料庫到 SQL 檔案... - Error importing data @@ -5760,107 +5279,13 @@ All your preferences will be lost and default values will be used. Cancel 取消 - - Executing SQL... - 正在執行 SQL... - - - Action cancelled. - 操作已取消。 - - - Error in statement #%1: %2. -Aborting execution. - 錯誤在語句 #%1: %2。 -正在放棄執行。 - - - renameColumn: cannot find table %1. - renameColumn: 無法查閱資料資料表 %1。 - - - renameColumn: cannot find column %1. - renameColumn: 無法查詢列 %1。 - - - renameColumn: creating savepoint failed. DB says: %1 - renameColumn: 建立保存點時失敗。DB 說: %1 - - - renameColumn: creating new table failed. DB says: %1 - renameColumn: 建立新資料表時失敗。DB 說: %1 - - - renameColumn: copying data to new table failed. DB says: -%1 - renameColumn: 複製資料到新資料表時失敗。DB 說: -%1 - - - renameColumn: deleting old table failed. DB says: %1 - renameColumn: 刪除舊資料表失敗。DB 說: %1 - - - Restoring some of the objects associated with this table failed. This is most likely because some column names changed. Here's the SQL statement which you might want to fix and execute manually: - - - 還原某些和這個資料表關聯的物件失敗。這個最可能是因為某些列的名稱修改了。這裡是您可能需要手動修復和執行的 SQL 語句: - - - - - renameColumn: releasing savepoint failed. DB says: %1 - renameColumn: 釋放保存點時失敗。DB 說: %1 - - - Error renaming table '%1' to '%2'.Message from database engine: -%3 - 重命名資料表 '%1' 為 '%2'時失敗。消息來自資料庫引擎: -%3 - - - ... <string can not be logged, contains binary data> ... - ... <字串無法記錄,包含二進位資料> ... - - - unknown object type %1 - 未知對象類型 %1 - - - could not get list of db objects: %1, %2 - 無法取得資料庫物件的列表: %1, %2 - - - could not get types - 無法取得類型 - - - Decoding CSV file... - 正在解析 CSV 檔... - - - didn't receive any output from pragma %1 - 無法接受來自雜注 %1 的任何輸出 - - - could not execute pragma command: %1, %2 - 無法執行雜注命令: %1, %2 - - - Error setting pragma %1 to %2: %3 - 設定雜注 %1 為 %2 時出現錯誤: %3 - - - File not found. - 找不到檔案。 - All files (*) - + SQLite database files (*.db *.sqlite *.sqlite3 *.db3) @@ -5960,75 +5385,59 @@ Aborting execution. - Name - 名稱 + + Initialization File (*.ini) + - RemoteDatabase - - - Error when connecting to %1. -%2 - - - - - Error opening remote file at %1. -%2 - - + RemoteCommitsModel - - Error: Invalid client certificate specified. + + Commit ID - - Please enter the passphrase for this client certificate in order to authenticate. + + Message - - Cancel - 取消 - - - - Uploading remote database to -%1 + + Date - - Downloading remote database from -%1 + + Author - - The remote database has been updated since the last checkout. Do you want to update the local database to the newest version? Note that this discards any changes you have made locally! If you don't want to lose local changes, click No to open the local version. + + Size - - - Error: The network is not accessible. + + Authored and committed by %1 - - Error: Cannot open the file for sending. + + Authored by %1, committed by %2 + + + RemoteDatabase - + Error opening local databases list. %1 - + Error creating local databases list. %1 @@ -6042,71 +5451,361 @@ Aborting execution. - + Identity - - Connect to the remote server using the currently selected identity. The correct server is taken from the identity as well. + + Push currently opened database to server - - Go + + Upload - - Push currently opened database to server + + DBHub.io - + <html><head/><body><p>In this pane, remote databases from dbhub.io website can be added to DB Browser for SQLite. First you need an identity:</p><ol style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Login to the dbhub.io website (use your GitHub credentials or whatever you want)</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click the button to &quot;Generate client certificate&quot; (that's your identity). That'll give you a certificate file (save it to your local disk).</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Go to the Remote tab in DB Browser for SQLite Preferences. Click the button to add a new certificate to DB Browser for SQLite and choose the just downloaded certificate file.</li></ol><p>Now the Remote panel shows your identity and you can add remote databases.</p></body></html> - + + Local + + + + + Current Database + + + + + Clone + + + + + User + 用戶 + + + + Database + + + + + Branch + + + + + Commits + + + + + Commits for + + + + <html><head/><body><p>You are currently using a built-in, read-only identity. For uploading your database, you need to configure and use your DBHub.io account.</p><p>No DBHub.io account yet? <a href="https://dbhub.io/"><span style=" text-decoration: underline; color:#007af4;">Create one now</span></a> and import your certificate <a href="#preferences"><span style=" text-decoration: underline; color:#007af4;">here</span></a> to share your databases.</p><p>For online help visit <a href="https://dbhub.io/about"><span style=" text-decoration: underline; color:#007af4;">here</span></a>.</p></body></html> - - Back + + Back + + + + + Delete Database + + + + + Delete the local clone of this database + + + + + Open in Web Browser + + + + + Open the web page for the current database in your browser + + + + + Clone from Link + + + + + Use this to download a remote database for local editing using a URL as provided on the web page of the database. + + + + + Refresh + + + + + Reload all data and update the views + + + + + F5 + + + + + Clone Database + + + + + Open Database + + + + + Open the local copy of this database + + + + + Check out Commit + + + + + Download and open this specific commit + + + + + Check out Latest Commit + + + + + Check out the latest commit of the current branch + + + + + Save Revision to File + + + + + Saves the selected revision of the database to another file + + + + + Upload Database + + + + + Upload this database as a new commit + + + + + Select an identity to connect + + + + + Public + + + + + This downloads a database from a remote server for local editing. +Please enter the URL to clone from. You can generate this URL by +clicking the 'Clone Database in DB4S' button on the web page +of the database. + + + + + Invalid URL: The host name does not match the host name of the current identity. + + + + + Invalid URL: No branch name specified. + + + + + Invalid URL: No commit ID specified. + + + + + You have modified the local clone of the database. Fetching this commit overrides these local changes. +Are you sure you want to proceed? + + + + + The database has unsaved changes. Are you sure you want to push it before saving? + + + + + The database you are trying to delete is currently opened. Please close it before deleting. + + + + + This deletes the local version of this database with all the changes you have not committed yet. Are you sure you want to delete this database? + + + + + RemoteLocalFilesModel + + + Name + 名稱 + + + + Branch + + + + + Last modified + + + + + Size + + + + + Commit + + + + + File + 檔案 + + + + RemoteModel + + + Name + 名稱 + + + + Commit + + + + + Last modified + + + + + Size + + + + + Size: + + + + + Last Modified: + + + + + Licence: + + + + + Default Branch: + + + + + RemoteNetwork + + + Choose a location to save the file + + + + + Error opening remote file at %1. +%2 + + + + + Error: Invalid client certificate specified. - - Public + + Please enter the passphrase for this client certificate in order to authenticate. - - - RemoteModel - - Name - 名稱 + + Cancel + 取消 - - Commit + + Uploading remote database to +%1 - - Last modified + + Downloading remote database from +%1 - - Size + + + Error: The network is not accessible. - Version - 版本 + + Error: Cannot open the file for sending. + @@ -6126,15 +5825,6 @@ Aborting execution. Commit message - - - <!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:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - - Database licence @@ -6156,17 +5846,22 @@ p, li { white-space: pre-wrap; } - + + Username + + + + Database will be public. Everyone has read access to it. - + Database will be private. Only you have access to it. - + Use with care. This can cause remote commits to be deleted. @@ -6174,22 +5869,22 @@ p, li { white-space: pre-wrap; } RunSql - + Execution aborted by user - + , %1 rows affected - + query executed successfully. Took %1ms%2 - + executing query @@ -6311,51 +6006,23 @@ p, li { white-space: pre-wrap; } 這個欄位顯示最後執行的語句的結果和狀態碼。 - Export to &CSV - 匯出到 &CSV - - - Save as &view - 儲存為視圖(&V) - - - Save as view - 儲存為視圖 - - - Please specify the view name - 請指定視圖名稱 - - - There is already an object with that name. Please choose a different name. - 已有相同名稱的對象。請選擇一個不同的名稱。 - - - View successfully created. - 成功建立視圖。 - - - Error creating view: %1 - 建立視圖時出現錯誤: %1 - - - + Couldn't read file: %1. - - + + Couldn't save file: %1. - + Your changes will be lost when reloading it! - + The file "%1" was modified by another program. Do you want to reload it?%2 @@ -6367,6 +6034,11 @@ p, li { white-space: pre-wrap; } Ctrl+/ + + + Ctrl+PgDown + + SqlUiLexer @@ -6412,278 +6084,283 @@ p, li { white-space: pre-wrap; } - () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. + (X,Y,Z) The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. - (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. + () The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. - (X,Y) The like() function is used to implement the "Y LIKE X" expression. + (X) For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. - (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. + (X,Y) The like() function is used to implement the "Y LIKE X" expression. + (X,Y,Z) The like() function is used to implement the "Y LIKE X ESCAPE Z" expression. + + + + (X) The load_extension(X) function loads SQLite extensions out of the shared library file named X. Use of this function must be authorized from Preferences. - + (X,Y) The load_extension(X) function loads SQLite extensions out of the shared library file named X using the entry point Y. Use of this function must be authorized from Preferences. - + (X) The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. - + (X) ltrim(X) removes spaces from the left side of X. - + (X,Y) The ltrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the left side of X. - + (X,Y,...) The multi-argument max() function returns the argument with the maximum value, or return NULL if any argument is NULL. - + (X,Y,...) The multi-argument min() function returns the argument with the minimum value. - + (X,Y) The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. - + (FORMAT,...) The printf(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. - + (X) The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. - + () The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. - + (N) The randomblob(N) function return an N-byte blob containing pseudo-random bytes. - + (X,Y,Z) The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. - + (X) The round(X) function returns a floating-point value X rounded to zero digits to the right of the decimal point. - + (X,Y) The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. - + (X) rtrim(X) removes spaces from the right side of X. - + (X,Y) The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. - + (X) The soundex(X) function returns a string that is the soundex encoding of the string X. - + (X,Y) substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. - + (X,Y,Z) The substr(X,Y,Z) function returns a substring of input string X that begins with the Y-th character and which is Z characters long. - + () The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. - + (X) trim(X) removes spaces from both ends of X. - + (X,Y) The trim(X,Y) function returns a string formed by removing any and all characters that appear in Y from both ends of X. - + (X) The typeof(X) function returns a string that indicates the datatype of the expression X. - + (X) The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. - + (X) The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. - + (N) The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. - + (timestring,modifier,modifier,...) - + (format,timestring,modifier,modifier,...) - + (X) The avg() function returns the average value of all non-NULL X within a group. - + (X) The count(X) function returns a count of the number of times that X is not NULL in a group. - + (X) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. - + (X,Y) The group_concat() function returns a string which is the concatenation of all non-NULL values of X. If parameter Y is present then it is used as the separator between instances of X. - + (X) The max() aggregate function returns the maximum value of all values in the group. - + (X) The min() aggregate function returns the minimum non-NULL value of all values in the group. - + (X) The sum() and total() aggregate functions return sum of all non-NULL values in the group. - + () The number of the row within the current partition. Rows are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition, or in arbitrary order otherwise. - + () The row_number() of the first peer in each group - the rank of the current row with gaps. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () The number of the current row's peer group within its partition - the rank of the current row without gaps. Partitions are numbered starting from 1 in the order defined by the ORDER BY clause in the window definition. If there is no ORDER BY clause, then all rows are considered peers and this function always returns 1. - + () Despite the name, this function always returns a value between 0.0 and 1.0 equal to (rank - 1)/(partition-rows - 1), where rank is the value returned by built-in window function rank() and partition-rows is the total number of rows in the partition. If the partition contains only one row, this function returns 0.0. - + () The cumulative distribution. Calculated as row-number/partition-rows, where row-number is the value returned by row_number() for the last peer in the group and partition-rows the number of rows in the partition. - + (N) Argument N is handled as an integer. This function divides the partition into N groups as evenly as possible and assigns an integer between 1 and N to each group, in the order defined by the ORDER BY clause, or in arbitrary order otherwise. If necessary, larger groups occur first. This function returns the integer value assigned to the group that the current row is a part of. - + (expr) Returns the result of evaluating expression expr against the previous row in the partition. Or, if there is no previous row (because the current row is the first), NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows before the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows before the current row, NULL is returned. - - + + (expr,offset,default) If default is also provided, then it is returned instead of NULL if the row identified by offset does not exist. - + (expr) Returns the result of evaluating expression expr against the next row in the partition. Or, if there is no next row (because the current row is the last), NULL. - + (expr,offset) If the offset argument is provided, then it must be a non-negative integer. In this case the value returned is the result of evaluating expr against the row offset rows after the current row within the partition. If offset is 0, then expr is evaluated against the current row. If there is no row offset rows after the current row, NULL is returned. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the first row in the window frame for each row. - + (expr) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the last row in the window frame for each row. - + (expr,N) This built-in window function calculates the window frame for each row in the same way as an aggregate window function. It returns the value of expr evaluated against the row N of the window frame. Rows are numbered within the window frame starting from 1 in the order defined by the ORDER BY clause if one is present, or in arbitrary order otherwise. If there is no Nth row in the partition, then NULL is returned. @@ -6691,40 +6368,41 @@ Use of this function must be authorized from Preferences. SqliteTableModel - + reading rows - + loading... - + References %1(%2) Hold %3Shift and click to jump there - + Error changing data: %1 修改資料庫時出現錯誤: %1 - + retrieving list of columns - + Fetching data... - + + Cancel 取消 @@ -6860,7 +6538,7 @@ Hold %3Shift and click to jump there - + Replace @@ -6875,597 +6553,630 @@ Hold %3Shift and click to jump there - + <html><head/><body><p>Scroll to the beginning</p></body></html> - + <html><head/><body><p>Clicking this button navigates to the beginning in the table view above.</p></body></html> - + |< - + Scroll one page upwards - + <html><head/><body><p>Clicking this button navigates one page of records upwards in the table view above.</p></body></html> - + < < - + 0 - 0 of 0 0 - 0 / 0 - + Scroll one page downwards - + <html><head/><body><p>Clicking this button navigates one page of records downwards in the table view above.</p></body></html> - + > > - + Scroll to the end - + <html><head/><body><p>Clicking this button navigates up to the end in the table view above.</p></body></html> - + >| - + <html><head/><body><p>Click here to jump to the specified record</p></body></html> <html><head/><body><p>點擊這裡跳到指定的記錄</p></body></html> - + <html><head/><body><p>This button is used to navigate to the record number specified in the Go to area.</p></body></html> <html><head/><body><p>這個按鈕用於導航到在“轉到”區域中指定的記錄編號。</p></body></html> - + Go to: 轉到: - + Enter record number to browse 輸入要瀏覽的記錄編號 - + Type a record number in this area and click the Go to: button to display the record in the database view 在這個區域中輸入一個記錄編號,並點擊“轉到:”按鈕以在資料庫視圖中顯示記錄 - + 1 1 - + Show rowid column - + Toggle the visibility of the rowid column - + Unlock view editing - + This unlocks the current view for editing. However, you will need appropriate triggers for editing. - + Edit display format - + Edit the display format of the data in this column - - + + New Record 新建記錄 - - + + Insert a new record in the current table 在目前資料表中插入一條新記錄 - + <html><head/><body><p>This button creates a new record in the database. Hold the mouse button to open a pop-up menu of different options:</p><ul><li><span style=" font-weight:600;">New Record</span>: insert a new record with default values in the database.</li><li><span style=" font-weight:600;">Insert Values...</span>: open a dialog for entering values before they are inserted in the database. This allows to enter values acomplishing the different constraints. This dialog is also open if the <span style=" font-weight:600;">New Record</span> option fails due to these constraints.</li></ul></body></html> - - + + Delete Record 刪除記錄 - + Delete the current record 刪除目前記錄 - - + + This button deletes the record or records currently selected in the table - - + + Insert new record using default values in browsed table - + Insert Values... - - + + Open a dialog for inserting values in a new record - + Export to &CSV 匯出到 &CSV - - + + Export the filtered data to CSV - + This button exports the data of the browsed table as currently displayed (after filters, display formats and order column) as a CSV file. - + Save as &view 儲存為視圖(&V) - - + + Save the current filter, sort column and display formats as a view - + This button saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements. - + Save Table As... - - + + Save the table as currently displayed - + <html><head/><body><p>This popup menu provides the following options applying to the currently browsed and filtered table:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Export to CSV: this option exports the data of the browsed table as currently displayed (after filters, display formats and order column) to a CSV file.</li><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Save as view: this option saves the current setting of the browsed table (filters, display formats and order column) as an SQL view that you can later browse or use in SQL statements.</li></ul></body></html> - + Hide column(s) - + Hide selected column(s) - + Show all columns - + Show all columns that were hidden - - + + Set encoding - + Change the encoding of the text in the table cells - + Set encoding for all tables - + Change the default encoding assumed for all tables in the database - + Clear Filters - + Clear all filters - - + + This button clears all the filters set in the header input fields for the currently browsed table. - + Clear Sorting - + Reset the order of rows to the default - - + + This button clears the sorting columns specified for the currently browsed table and returns to the default order. - + Print - + Print currently browsed table data - + Print currently browsed table data. Print selection if more than one cell is selected. - + Ctrl+P - + Refresh - + Refresh the data in the selected table - + This button refreshes the data in the currently selected table. 這個按鈕更新在目前選擇的資料表中的資料。 - + F5 - + Find in cells - + Open the find tool bar which allows you to search for values in the table view below. - - + + Bold 粗體 - + Ctrl+B - - + + Italic 斜體 - - + + Underline 底線 - + Ctrl+U - - + + Align Right - - + + Align Left - - + + Center Horizontally - - + + Justify - - + + Edit Conditional Formats... - + Edit conditional formats for the current column - + Clear Format - + Clear All Formats - - + + Clear all cell formatting from selected cells and all conditional formats from selected columns - - + + Font Color - - + + Background Color - + Toggle Format Toolbar - + Show/hide format toolbar - - + + This button shows or hides the formatting toolbar of the Data Browser - + Select column - + Ctrl+Space - + Replace text in cells + + + Freeze columns + + + + + Make all columns from the first column up to this column not move when scrolling horizontally + + - Filter in all columns + Filter in any column - + Ctrl+R - + %n row(s) - + , %n column(s) - + . Sum: %1; Average: %2; Min: %3; Max: %4 - + Conditional formats for "%1" - + determining row count... - + %1 - %2 of >= %3 - + %1 - %2 of %3 %1 - %2 / %3 - + Please enter a pseudo-primary key in order to enable editing on this view. This should be the name of a unique column in the view. - + Delete Records - + Duplicate records - + Duplicate record - + Ctrl+" - + Adjust rows to contents - + Error deleting record: %1 刪除記錄時出現錯誤: %1 - + Please select a record first 請首先選擇一條記錄 - + There is no filter set for this table. View will not be created. - + Please choose a new encoding for all tables. - + Please choose a new encoding for this table. - + %1 Leave the field empty for using the database encoding. - + This encoding is either not valid or not supported. - + %1 replacement(s) made. + + TableBrowserDock + + + New Data Browser + + + + + Rename Data Browser + + + + + Close Data Browser + + + + + Set a new name for the data browser. Use the '&&' character to allow using the following character as a keyboard shortcut. + + + VacuumDialog @@ -7483,13 +7194,5 @@ Leave the field empty for using the database encoding. Please select the databases to co&mpact: - - Warning: Compacting the database will commit all changes you made. - 警告: 壓縮資料庫將會提交您做出的所有修改。 - - - Please select the objects to compact: - 請選擇要壓縮的物件: - diff --git a/src/translations/translations.qrc b/src/translations/translations.qrc index 9bdd1affa..27625dda1 100644 --- a/src/translations/translations.qrc +++ b/src/translations/translations.qrc @@ -16,5 +16,7 @@ sqlb_uk_UA.qm sqlb_it.qm sqlb_ja.qm + sqlb_nl.qm + sqlb_sv.qm diff --git a/src/version.h b/src/version.h deleted file mode 100644 index 7873930db..000000000 --- a/src/version.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef GEN_VERSION_H -#define GEN_VERSION_H -#define MAJOR_VERSION 3 -#define MINOR_VERSION 12 -#define PATCH_VERSION 99 - -#define str(s) #s -#define xstr(s) str(s) -#define APP_VERSION xstr(MAJOR_VERSION) "." xstr(MINOR_VERSION) "." xstr(PATCH_VERSION) - -// If it is defined by the compiler, then it is a nightly build, and in the YYYYMMDD format. -#ifndef BUILD_VERSION - #define BUILD_VERSION 0 -#endif - -#endif diff --git a/src/version.h.in b/src/version.h.in new file mode 100644 index 000000000..bc96177ec --- /dev/null +++ b/src/version.h.in @@ -0,0 +1,15 @@ +// version file to be preprocessed by CMake +#ifndef GEN_VERSION_H +#define GEN_VERSION_H +#define MAJOR_VERSION @PROJECT_VERSION_MAJOR@ +#define MINOR_VERSION @PROJECT_VERSION_MINOR@ +#define PATCH_VERSION @PROJECT_VERSION_PATCH@ + +#define APP_VERSION "@PROJECT_VERSION@" + +// If it is defined by the compiler, then it is a nightly build, and in the YYYYMMDD format. +#ifndef BUILD_VERSION + #define BUILD_VERSION 0 +#endif + +#endif diff --git a/src/winapp.rc b/src/winapp.rc index 2acbe5db4..cc9d3ab10 100644 --- a/src/winapp.rc +++ b/src/winapp.rc @@ -11,8 +11,8 @@ BEGIN BEGIN BLOCK "000004B0" BEGIN - VALUE "FileVersion", APP_VERSION "." xstr(BUILD_VERSION) - VALUE "ProductVersion", APP_VERSION "." xstr(BUILD_VERSION) + VALUE "FileVersion", APP_VERSION "." BUILD_VERSION + VALUE "ProductVersion", APP_VERSION "." BUILD_VERSION VALUE "FileDescription", "DB Browser for SQLite" VALUE "ProductName", "DB Browser for SQLite" VALUE "InternalName", "DB Browser for SQLite"