diff --git a/.gitattributes b/.gitattributes
index 9f713b466..9d1ecabf4 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,6 +1,7 @@
src/version.h.cmake export-subst
.gitattributes export-ignore
.gitignore export-ignore
+.github export-ignore
.travis.yml export-ignore
.tx export-ignore
snapcraft.yaml export-ignore
diff --git a/AppImage-Recipe.sh b/AppImage-Recipe.sh
index 9575f077b..dc30cb696 100755
--- a/AppImage-Recipe.sh
+++ b/AppImage-Recipe.sh
@@ -39,26 +39,54 @@ mkdir -p $APP.AppDir
wget -q https://github.com/probonopd/AppImages/raw/master/functions.sh -O ./functions.sh
. ./functions.sh
+LIB_DIR=./usr/lib
+if [ -d ./usr/lib/x86_64-linux-gnu ]; then
+ LIB_DIR=./usr/lib/x86_64-linux-gnu
+fi
+
cd $APP.AppDir
cp -a ../../bin-release/* .
-mv ./usr/local/* ./usr
-rmdir ./usr/local
-patch_strings_in_file /usr/local ./
+cp -a ./usr/local/* ./usr
+rm -R ./usr/local
+rmdir ./opt 2> /dev/null
+patch_strings_in_file /usr/local ././
patch_strings_in_file /usr ./
+# bundle Qt platform plugins and themes
+QXCB_PLUGIN="$(find /usr/lib -name 'libqxcb.so' 2> /dev/null)"
+if [ "$QXCB_PLUGIN" == "" ]; then
+ QXCB_PLUGIN="$(find /opt/qt*/plugins -name 'libqxcb.so' 2> /dev/null)"
+fi
+QT_PLUGIN_PATH="$(dirname $(dirname $QXCB_PLUGIN))"
+mkdir -p ".${QT_PLUGIN_PATH}/platforms"
+cp "$QXCB_PLUGIN" ".${QT_PLUGIN_PATH}/platforms/"
+
get_apprun
copy_deps
delete_blacklisted
+# remove dbus and systemd libs as they are not blacklisted
+find . -name libdbus-1.so.3 -exec rm {} \;
+find . -name libsystemd.so.0 -exec rm {} \;
+
get_desktop
get_icon
+cat << EOF > ./usr/bin/keepassxc_env
+#!/usr/bin/env bash
+#export QT_QPA_PLATFORMTHEME=gtk2
+export LD_LIBRARY_PATH="../opt/qt58/lib:\${LD_LIBRARY_PATH}"
+export QT_PLUGIN_PATH="..${QT_PLUGIN_PATH}"
+exec keepassxc "\$@"
+EOF
+chmod +x ./usr/bin/keepassxc_env
+sed -i 's/Exec=keepassxc/Exec=keepassxc_env/' keepassxc.desktop
get_desktopintegration $LOWERAPP
GLIBC_NEEDED=$(glibc_needed)
cd ..
-generate_appimage
+generate_type2_appimage
mv ../out/*.AppImage ..
rmdir ../out > /dev/null 2>&1
diff --git a/CHANGELOG b/CHANGELOG
index 9051703cb..24ed5ea73 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,13 @@
+2.1.1 (2017-02-06)
+=========================
+
+- Enabled HTTP plugin build; plugin is disabled by default and limited to localhost [#147]
+- Escape HTML in dialog boxes [#247]
+- Corrected crashes in favicon download and password generator [#233, #226]
+- Increase font size of password meter [#228]
+- Fixed compatibility with Qt 5.8 [#211]
+- Use consistent button heights in password generator [#229]
+
2.1.0 (2017-01-22)
=========================
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 051aba199..3b5df29b1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,8 +38,8 @@ option(WITH_XC_AUTOTYPE "Include Autotype." OFF)
option(WITH_XC_HTTP "Include KeePassHTTP." OFF)
option(WITH_XC_YUBIKEY "Include Yubikey support." OFF)
-set(KEEPASSXC_VERSION "2.1.0")
-set(KEEPASSXC_VERSION_NUM "2.1.0")
+set(KEEPASSXC_VERSION "2.1.1")
+set(KEEPASSXC_VERSION_NUM "2.1.1")
if("${CMAKE_C_COMPILER}" MATCHES "clang$" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
set(CMAKE_COMPILER_IS_CLANG 1)
@@ -172,6 +172,8 @@ set(CMAKE_AUTOMOC ON)
# Make sure we don't enable asserts there.
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_NONE QT_NO_DEBUG)
+find_package(LibGPGError REQUIRED)
+
find_package(Gcrypt 1.6.0 REQUIRED)
if (WITH_XC_HTTP)
diff --git a/Dockerfile b/Dockerfile
index 3aee19e3c..9623b60dd 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -14,21 +14,41 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
-FROM ubuntu:16.04
+FROM ubuntu:14.04
-RUN set -x && apt-get update
RUN set -x \
+ && apt-get update \
+ && apt-get install --yes software-properties-common
+
+RUN set -x \
+ && add-apt-repository --yes ppa:beineri/opt-qt58-trusty
+
+RUN set -x \
+ && apt-get update \
&& apt-get install --yes \
+ g++ \
cmake \
libgcrypt20-dev \
- qtbase5-dev \
- qttools5-dev-tools \
+ qt58base \
+ qt58tools \
+ qt58x11extras \
libmicrohttpd-dev \
- libqt5x11extras5-dev \
libxi-dev \
libxtst-dev \
- zlib1g-dev
+ zlib1g-dev \
+ wget \
+ file \
+ fuse \
+ python
+RUN set -x \
+ && apt-get install --yes mesa-common-dev
+
VOLUME /keepassxc/src
VOLUME /keepassxc/out
WORKDIR /keepassxc
+
+ENV CMAKE_PREFIX_PATH=/opt/qt58/lib/cmake
+ENV LD_LIBRARY_PATH=/opt/qt58/lib
+RUN set -x \
+ && echo /opt/qt58/lib > /etc/ld.so.conf.d/qt58.conf
diff --git a/cmake/FindLibGPGError.cmake b/cmake/FindLibGPGError.cmake
new file mode 100644
index 000000000..fe9ef9123
--- /dev/null
+++ b/cmake/FindLibGPGError.cmake
@@ -0,0 +1,9 @@
+
+find_path(GPGERROR_INCLUDE_DIR gpg-error.h)
+
+find_library(GPGERROR_LIBRARIES gpg-error)
+
+mark_as_advanced(GPGERROR_LIBRARIES GPGERROR_INCLUDE_DIR)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LibGPGError DEFAULT_MSG GPGERROR_LIBRARIES GPGERROR_INCLUDE_DIR)
diff --git a/make_release.sh b/make_release.sh
deleted file mode 100755
index 19c661b38..000000000
--- a/make_release.sh
+++ /dev/null
@@ -1,350 +0,0 @@
-#!/usr/bin/env bash
-#
-# KeePassXC Release Preparation Helper
-# Copyright (C) 2017 KeePassXC team
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 2 or (at your option)
-# version 3 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-echo -e "\e[1m\e[32mKeePassXC\e[0m Release Preparation Helper"
-echo -e "Copyright (C) 2017 KeePassXC Team \n"
-
-
-# default values
-RELEASE_NAME=""
-APP_NAME="KeePassXC"
-APP_NAME_LOWER="keepassxc"
-SRC_DIR="."
-GPG_KEY="CFB4C2166397D0D2"
-GPG_GIT_KEY=""
-OUTPUT_DIR="release"
-BRANCH=""
-RELEASE_BRANCH="master"
-TAG_NAME=""
-BUILD_SOURCES=false
-DOCKER_IMAGE=""
-DOCKER_CONTAINER_NAME="${APP_NAME_LOWER}-build-container"
-CMAKE_OPTIONS=""
-COMPILER="g++"
-MAKE_OPTIONS="-j8"
-BUILD_PLUGINS="autotype"
-INSTALL_PREFIX="/usr/local"
-
-ORIG_BRANCH="$(git rev-parse --abbrev-ref HEAD 2> /dev/null)"
-ORIG_CWD="$(pwd)"
-
-
-# helper functions
-printUsage() {
- echo -e "\e[1mUsage:\e[0m $(basename $0) [options]"
- cat << EOF
-
-Options:
- -v, --version Release version number or name (required)
- -a, --app-name Application name (default: '${APP_NAME}')
- -s, --source-dir Source directory (default: '${SRC_DIR}')
- -k, --gpg-key GPG key used to sign the release tarball
- (default: '${GPG_KEY}')
- -g, --gpg-git-key GPG key used to sign the merge commit and release tag,
- leave empty to let Git choose your default key
- (default: '${GPG_GIT_KEY}')
- -o, --output-dir Output directory where to build the release
- (default: '${OUTPUT_DIR}')
- --develop-branch Development branch to merge from (default: 'release/VERSION')
- --release-branch Target release branch to merge to (default: '${RELEASE_BRANCH}')
- -t, --tag-name Override release tag name (defaults to version number)
- -b, --build Build sources after exporting release
- -d, --docker-image Use the specified Docker image to compile the application.
- The image must have all required build dependencies installed.
- This option has no effect if --build is not set.
- --container-name Docker container name (default: '${DOCKER_CONTAINER_NAME}')
- The container must not exist already
- -c, --cmake-options Additional CMake options for compiling the sources
- --compiler Compiler to use (default: '${COMPILER}')
- -m, --make-options Make options for compiling sources (default: '${MAKE_OPTIONS}')
- -i, --install-prefix Install prefix (default: '${INSTALL_PREFIX}')
- -p, --plugins Space-separated list of plugins to build
- (default: ${BUILD_PLUGINS})
- -h, --help Show this help
-
-EOF
-}
-
-logInfo() {
- echo -e "\e[1m[ \e[34mINFO\e[39m ]\e[0m $1"
-}
-
-logError() {
- echo -e "\e[1m[ \e[31mERROR\e[39m ]\e[0m $1" >&2
-}
-
-exitError() {
- logError "$1"
- if [ "" != "$ORIG_BRANCH" ]; then
- git checkout "$ORIG_BRANCH" > /dev/null 2>&1
- fi
- cd "$ORIG_CWD"
- exit 1
-}
-
-
-# parse command line options
-while [ $# -ge 1 ]; do
- arg="$1"
-
- case "$arg" in
- -a|--app-name)
- APP_NAME="$2"
- shift ;;
-
- -s|--source-dir)
- SRC_DIR"$2"
- shift ;;
-
- -v|--version)
- RELEASE_NAME="$2"
- shift ;;
-
- -k|--gpg-key)
- GPG_KEY="$2"
- shift ;;
-
- -g|--gpg-git-key)
- GPG_GIT_KEY="$2"
- shift ;;
-
- -o|--output-dir)
- OUTPUT_DIR="$2"
- shift ;;
-
- --develop-branch)
- BRANCH="$2"
- shift ;;
-
- --release-branch)
- RELEASE_BRANCH="$2"
- shift ;;
-
- -t|--tag-name)
- TAG_NAME="$2"
- shift ;;
-
- -b|--build)
- BUILD_SOURCES=true ;;
-
- -d|--docker-image)
- DOCKER_IMAGE="$2"
- shift ;;
-
- --container-name)
- DOCKER_CONTAINER_NAME="$2"
- shift ;;
-
- -c|--cmake-options)
- CMAKE_OPTIONS="$2"
- shift ;;
-
- -m|--make-options)
- MAKE_OPTIONS="$2"
- shift ;;
-
- --compiler)
- COMPILER="$2"
- shift ;;
-
- -p|--plugins)
- BUILD_PLUGINS="$2"
- shift ;;
-
- -h|--help)
- printUsage
- exit ;;
-
- *)
- logError "Unknown option '$arg'\n"
- printUsage
- exit 1 ;;
- esac
- shift
-done
-
-
-if [ "" == "$RELEASE_NAME" ]; then
- logError "Missing arguments, --version is required!\n"
- printUsage
- exit 1
-fi
-
-if [ "" == "$TAG_NAME" ]; then
- TAG_NAME="$RELEASE_NAME"
-fi
-if [ "" == "$BRANCH" ]; then
- BRANCH="release/${RELEASE_NAME}"
-fi
-APP_NAME_LOWER="$(echo "$APP_NAME" | tr '[:upper:]' '[:lower:]')"
-APP_NAME_UPPER="$(echo "$APP_NAME" | tr '[:lower:]' '[:upper:]')"
-
-SRC_DIR="$(realpath "$SRC_DIR")"
-OUTPUT_DIR="$(realpath "$OUTPUT_DIR")"
-if [ ! -d "$SRC_DIR" ]; then
- exitError "Source directory '${SRC_DIR}' does not exist!"
-fi
-
-logInfo "Changing to source directory..."
-cd "${SRC_DIR}"
-
-logInfo "Performing basic checks..."
-
-if [ -e "$OUTPUT_DIR" ]; then
- exitError "Output directory '$OUTPUT_DIR' already exists. Please choose a different location!"
-fi
-
-if [ ! -d .git ] || [ ! -f CHANGELOG ]; then
- exitError "Source directory is not a valid Git repository!"
-fi
-
-git tag | grep -q "$RELEASE_NAME"
-if [ $? -eq 0 ]; then
- exitError "Release '$RELEASE_NAME' already exists!"
-fi
-
-git diff-index --quiet HEAD --
-if [ $? -ne 0 ]; then
- exitError "Current working tree is not clean! Please commit or unstage any changes."
-fi
-
-git checkout "$BRANCH" > /dev/null 2>&1
-if [ $? -ne 0 ]; then
- exitError "Source branch '$BRANCH' does not exist!"
-fi
-
-grep -q "${APP_NAME_UPPER}_VERSION \"${RELEASE_NAME}\"" CMakeLists.txt
-if [ $? -ne 0 ]; then
- exitError "${APP_NAME_UPPER}_VERSION version not updated to '${RELEASE_NAME}' in CMakeLists.txt!"
-fi
-
-grep -q "${APP_NAME_UPPER}_VERSION_NUM \"${RELEASE_NAME}\"" CMakeLists.txt
-if [ $? -ne 0 ]; then
- exitError "${APP_NAME_UPPER}_VERSION_NUM version not updated to '${RELEASE_NAME}' in CMakeLists.txt!"
-fi
-
-if [ ! -f CHANGELOG ]; then
- exitError "No CHANGELOG file found!"
-fi
-
-grep -qPzo "${RELEASE_NAME} \(\d{4}-\d{2}-\d{2}\)\n=+\n" CHANGELOG
-if [ $? -ne 0 ]; then
- exitError "CHANGELOG does not contain any information about the '${RELEASE_NAME}' release!"
-fi
-
-git checkout "$RELEASE_BRANCH" > /dev/null 2>&1
-if [ $? -ne 0 ]; then
- exitError "Release branch '$RELEASE_BRANCH' does not exist!"
-fi
-
-logInfo "All checks pass, getting our hands dirty now!"
-
-logInfo "Merging '${BRANCH}' into '${RELEASE_BRANCH}'..."
-
-CHANGELOG=$(grep -Pzo "(?<=${RELEASE_NAME} \(\d{4}-\d{2}-\d{2}\)\n)=+\n\n(?:.|\n)+?\n(?=\n)" \
- CHANGELOG | grep -Pzo '(?<=\n\n)(.|\n)+' | tr -d \\0)
-COMMIT_MSG="Release ${RELEASE_NAME}"
-
-git merge "$BRANCH" --no-ff -m "$COMMIT_MSG" -m "${CHANGELOG}" "$BRANCH" -S"$GPG_GIT_KEY"
-
-logInfo "Creating tag '${RELEASE_NAME}'..."
-if [ "" == "$GPG_GIT_KEY" ]; then
- git tag -a "$RELEASE_NAME" -m "$COMMIT_MSG" -m "${CHANGELOG}" -s
-else
- git tag -a "$RELEASE_NAME" -m "$COMMIT_MSG" -m "${CHANGELOG}" -s -u "$GPG_GIT_KEY"
-fi
-
-logInfo "Merge done, creating target directory..."
-mkdir -p "$OUTPUT_DIR"
-
-if [ $? -ne 0 ]; then
- exitError "Failed to create output directory!"
-fi
-
-logInfo "Creating source tarball..."
-TARBALL_NAME="${APP_NAME_LOWER}-${RELEASE_NAME}-src.tar.bz2"
-git archive --format=tar "$RELEASE_BRANCH" --prefix="${APP_NAME_LOWER}-${RELEASE_NAME}/" \
- | bzip2 -9 > "${OUTPUT_DIR}/${TARBALL_NAME}"
-
-
-if $BUILD_SOURCES; then
- logInfo "Creating build directory..."
- mkdir -p "${OUTPUT_DIR}/build-release"
- mkdir -p "${OUTPUT_DIR}/bin-release"
- cd "${OUTPUT_DIR}/build-release"
-
- logInfo "Configuring sources..."
- for p in $BUILD_PLUGINS; do
- CMAKE_OPTIONS="${CMAKE_OPTIONS} -DWITH_XC_$(echo $p | tr '[:lower:]' '[:upper:]')=On"
- done
-
- if [ "$COMPILER" == "g++" ]; then
- export CC=gcc
- elif [ "$COMPILER" == "clang++" ]; then
- export CC=clang
- fi
- export CXX="$COMPILER"
-
- if [ "" == "$DOCKER_IMAGE" ]; then
- cmake -DCMAKE_BUILD_TYPE=Release -DWITH_TESTS=Off $CMAKE_OPTIONS \
- -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" "$SRC_DIR"
-
- logInfo "Compiling sources..."
- make $MAKE_OPTIONS
-
- logInfo "Installing to bin dir..."
- make DESTDIR="${OUTPUT_DIR}/bin-release" install/strip
- else
- logInfo "Launching Docker container to compile sources..."
-
- docker run --name "$DOCKER_CONTAINER_NAME" --rm \
- -e "CC=${CC}" -e "CXX=${CXX}" \
- -v "$(realpath "$SRC_DIR"):/keepassxc/src:ro" \
- -v "$(realpath "$OUTPUT_DIR"):/keepassxc/out:rw" \
- "$DOCKER_IMAGE" \
- bash -c "cd /keepassxc/out/build-release && \
- cmake -DCMAKE_BUILD_TYPE=Release -DWITH_TESTS=Off $CMAKE_OPTIONS \
- -DCMAKE_INSTALL_PREFIX=\"${INSTALL_PREFIX}\" /keepassxc/src && \
- make $MAKE_OPTIONS && make DESTDIR=/keepassxc/out/bin-release install/strip"
-
- logInfo "Build finished, Docker container terminated."
- fi
-
- logInfo "Creating AppImage..."
- ${SRC_DIR}/AppImage-Recipe.sh "$APP_NAME" "$RELEASE_NAME"
-
- cd ..
- logInfo "Signing source tarball..."
- gpg --output "${TARBALL_NAME}.sig" --armor --local-user "$GPG_KEY" --detach-sig "$TARBALL_NAME"
-
- logInfo "Signing AppImage..."
- APPIMAGE_NAME="${APP_NAME}-${RELEASE_NAME}-x86_64.AppImage"
- gpg --output "${APPIMAGE_NAME}.sig" --armor --local-user "$GPG_KEY" --detach-sig "$APPIMAGE_NAME"
-
- logInfo "Creating digests..."
- sha256sum "$TARBALL_NAME" > "${TARBALL_NAME}.DIGEST"
- sha256sum "$APPIMAGE_NAME" > "${APPIMAGE_NAME}.DIGEST"
-fi
-
-logInfo "Leaving source directory..."
-cd "$ORIG_CWD"
-git checkout "$ORIG_BRANCH" > /dev/null 2>&1
-
-logInfo "All done!"
-logInfo "Please merge the release branch back into the develop branch now and then push your changes."
-logInfo "Don't forget to also push the tags using \e[1mgit push --tags\e[0m."
diff --git a/release-tool b/release-tool
new file mode 100755
index 000000000..7bc54cda0
--- /dev/null
+++ b/release-tool
@@ -0,0 +1,682 @@
+#!/usr/bin/env bash
+#
+# KeePassXC Release Preparation Helper
+# Copyright (C) 2017 KeePassXC team
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 or (at your option)
+# version 3 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+echo -e "\e[1m\e[32mKeePassXC\e[0m Release Preparation Helper"
+echo -e "Copyright (C) 2017 KeePassXC Team \n"
+
+
+# -----------------------------------------------------------------------
+# global default values
+# -----------------------------------------------------------------------
+RELEASE_NAME=""
+APP_NAME="KeePassXC"
+SRC_DIR="."
+GPG_KEY="CFB4C2166397D0D2"
+GPG_GIT_KEY=""
+OUTPUT_DIR="release"
+SOURCE_BRANCH=""
+TARGET_BRANCH="master"
+TAG_NAME=""
+DOCKER_IMAGE=""
+DOCKER_CONTAINER_NAME="keepassxc-build-container"
+CMAKE_OPTIONS=""
+COMPILER="g++"
+MAKE_OPTIONS="-j8"
+BUILD_PLUGINS="autotype"
+INSTALL_PREFIX="/usr/local"
+BUILD_SOURCE_TARBALL=true
+ORIG_BRANCH=""
+ORIG_CWD="$(pwd)"
+
+# -----------------------------------------------------------------------
+# helper functions
+# -----------------------------------------------------------------------
+printUsage() {
+ local cmd
+ if [ "" == "$1" ] || [ "help" == "$1" ]; then
+ cmd="COMMAND"
+ elif [ "merge" == "$1" ] || [ "build" == "$1" ] || [ "sign" == "$1" ]; then
+ cmd="$1"
+ else
+ logError "Unknown command: '$1'\n"
+ cmd="COMMAND"
+ fi
+
+ echo -e "\e[1mUsage:\e[0m $(basename $0) $cmd [options]"
+
+ if [ "COMMAND" == "$cmd" ]; then
+ cat << EOF
+
+Commands:
+ merge Merge release branch into main branch and create release tags
+ build Build and package binary release from sources
+ sign Sign previously compiled release packages
+ help Show help for the given command
+EOF
+ elif [ "merge" == "$cmd" ]; then
+ cat << EOF
+
+Merge release branch into main branch and create release tags
+
+Options:
+ -v, --version Release version number or name (required)
+ -a, --app-name Application name (default: '${APP_NAME}')
+ -s, --source-dir Source directory (default: '${SRC_DIR}')
+ -g, --gpg-key GPG key used to sign the merge commit and release tag,
+ leave empty to let Git choose your default key
+ (default: '${GPG_GIT_KEY}')
+ -r, --release-branch Source release branch to merge from (default: 'release/VERSION')
+ --target-branch Target branch to merge to (default: '${TARGET_BRANCH}')
+ -t, --tag-name Override release tag name (defaults to version number)
+ -h, --help Show this help
+EOF
+ elif [ "build" == "$cmd" ]; then
+ cat << EOF
+
+Build and package binary release from sources
+
+Options:
+ -v, --version Release version number or name (required)
+ -a, --app-name Application name (default: '${APP_NAME}')
+ -s, --source-dir Source directory (default: '${SRC_DIR}')
+ -o, --output-dir Output directory where to build the release
+ (default: '${OUTPUT_DIR}')
+ -t, --tag-name Release tag to check out (defaults to version number)
+ -b, --build Build sources after exporting release
+ -d, --docker-image Use the specified Docker image to compile the application.
+ The image must have all required build dependencies installed.
+ This option has no effect if --build is not set.
+ --container-name Docker container name (default: '${DOCKER_CONTAINER_NAME}')
+ The container must not exist already
+ -c, --cmake-options Additional CMake options for compiling the sources
+ --compiler Compiler to use (default: '${COMPILER}')
+ -m, --make-options Make options for compiling sources (default: '${MAKE_OPTIONS}')
+ -i, --install-prefix Install prefix (default: '${INSTALL_PREFIX}')
+ -p, --plugins Space-separated list of plugins to build
+ (default: ${BUILD_PLUGINS})
+ -n, --no-source-tarball Don't build source tarball
+ -h, --help Show this help
+EOF
+ elif [ "sign" == "$cmd" ]; then
+ cat << EOF
+
+Sign previously compiled release packages
+
+Options:
+ -f, --files Files to sign (required)
+ -g, --gpg-key GPG key used to sign the files (default: '${GPG_KEY}')
+ -h, --help Show this help
+EOF
+ fi
+}
+
+logInfo() {
+ echo -e "\e[1m[ \e[34mINFO\e[39m ]\e[0m $1"
+}
+
+logError() {
+ echo -e "\e[1m[ \e[31mERROR\e[39m ]\e[0m $1" >&2
+}
+
+init() {
+ ORIG_CWD="$(pwd)"
+ cd "$SRC_DIR" > /dev/null 2>&1
+ ORIG_BRANCH="$(git rev-parse --abbrev-ref HEAD 2> /dev/null)"
+ cd "$ORIG_CWD"
+}
+
+cleanup() {
+ logInfo "Checking out original branch..."
+ if [ "" != "$ORIG_BRANCH" ]; then
+ git checkout "$ORIG_BRANCH" > /dev/null 2>&1
+ fi
+ logInfo "Leaving source directory..."
+ cd "$ORIG_CWD"
+}
+
+exitError() {
+ logError "$1"
+ cleanup
+ exit 1
+}
+
+exitTrap() {
+ exitError "Existing upon user request..."
+}
+
+checkSourceDirExists() {
+ if [ ! -d "$SRC_DIR" ]; then
+ exitError "Source directory '${SRC_DIR}' does not exist!"
+ fi
+}
+
+checkOutputDirDoesNotExist() {
+ if [ -e "$OUTPUT_DIR" ]; then
+ exitError "Output directory '$OUTPUT_DIR' already exists. Please choose a different location!"
+ fi
+}
+
+checkGitRepository() {
+ if [ ! -d .git ] || [ ! -f CHANGELOG ]; then
+ exitError "Source directory is not a valid Git repository!"
+ fi
+}
+
+checkTagExists() {
+ git tag | grep -q "$TAG_NAME"
+ if [ $? -ne 0 ]; then
+ exitError "Tag '${TAG_NAME}' does not exist!"
+ fi
+}
+
+checkReleaseDoesNotExist() {
+ git tag | grep -q "$TAG_NAME"
+ if [ $? -eq 0 ]; then
+ exitError "Release '$RELEASE_NAME' (tag: '$TAG_NAME') already exists!"
+ fi
+}
+
+checkWorkingTreeClean() {
+ git diff-index --quiet HEAD --
+ if [ $? -ne 0 ]; then
+ exitError "Current working tree is not clean! Please commit or unstage any changes."
+ fi
+}
+
+checkSourceBranchExists() {
+ git rev-parse "$SOURCE_BRANCH" > /dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ exitError "Source branch '$SOURCE_BRANCH' does not exist!"
+ fi
+}
+
+checkTargetBranchExists() {
+ git rev-parse "$TARGET_BRANCH" > /dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ exitError "Target branch '$TARGET_BRANCH' does not exist!"
+ fi
+}
+
+checkVersionInCMake() {
+ local app_name_upper="$(echo "$APP_NAME" | tr '[:lower:]' '[:upper:]')"
+
+ grep -q "${app_name_upper}_VERSION \"${RELEASE_NAME}\"" CMakeLists.txt
+ if [ $? -ne 0 ]; then
+ exitError "${app_name_upper}_VERSION version not updated to '${RELEASE_NAME}' in CMakeLists.txt!"
+ fi
+
+ grep -q "${app_name_upper}_VERSION_NUM \"${RELEASE_NAME}\"" CMakeLists.txt
+ if [ $? -ne 0 ]; then
+ exitError "${app_name_upper}_VERSION_NUM version not updated to '${RELEASE_NAME}' in CMakeLists.txt!"
+ fi
+}
+
+checkChangeLog() {
+ if [ ! -f CHANGELOG ]; then
+ exitError "No CHANGELOG file found!"
+ fi
+
+ grep -qPzo "${RELEASE_NAME} \(\d{4}-\d{2}-\d{2}\)\n=+\n" CHANGELOG
+ if [ $? -ne 0 ]; then
+ exitError "CHANGELOG does not contain any information about the '${RELEASE_NAME}' release!"
+ fi
+}
+
+checkTransifexCommandExists() {
+ command -v tx > /dev/null
+ if [ 0 -ne $? ]; then
+ exitError "Transifex tool 'tx' not installed! Please install it using 'pip install transifex-client'"
+ fi
+}
+
+# re-implement realpath for OS X (thanks mschrag)
+# https://superuser.com/questions/205127/
+if $(command -v realpath > /dev/null); then
+ realpath() {
+ pushd . > /dev/null
+ if [ -d "$1" ]; then
+ cd "$1"
+ dirs -l +0
+ else
+ cd "$(dirname "$1")"
+ cur_dir=$(dirs -l +0)
+
+ if [ "$cur_dir" == "/" ]; then
+ echo "$cur_dir$(basename "$1")"
+ else
+ echo "$cur_dir/$(basename "$1")"
+ fi
+ fi
+ popd > /dev/null
+ }
+fi
+
+
+trap exitTrap SIGINT SIGTERM
+
+
+# -----------------------------------------------------------------------
+# merge command
+# -----------------------------------------------------------------------
+merge() {
+ while [ $# -ge 1 ]; do
+ local arg="$1"
+ case "$arg" in
+ -v|--version)
+ RELEASE_NAME="$2"
+ shift ;;
+
+ -a|--app-name)
+ APP_NAME="$2"
+ shift ;;
+
+ -s|--source-dir)
+ SRC_DIR="$2"
+ shift ;;
+
+ -g|--gpg-key)
+ GPG_GIT_KEY="$2"
+ shift ;;
+
+ -r|--release-branch)
+ SOURCE_BRANCH="$2"
+ shift ;;
+
+ --target-branch)
+ TARGET_BRANCH="$2"
+ shift ;;
+
+ -t|--tag-name)
+ TAG_NAME="$2"
+ shift ;;
+
+ -h|--help)
+ printUsage "merge"
+ exit ;;
+
+ *)
+ logError "Unknown option '$arg'\n"
+ printUsage "merge"
+ exit 1 ;;
+ esac
+ shift
+ done
+
+ if [ "" == "$RELEASE_NAME" ]; then
+ logError "Missing arguments, --version is required!\n"
+ printUsage "merge"
+ exit 1
+ fi
+
+ if [ "" == "$TAG_NAME" ]; then
+ TAG_NAME="$RELEASE_NAME"
+ fi
+
+ if [ "" == "$SOURCE_BRANCH" ]; then
+ SOURCE_BRANCH="release/${RELEASE_NAME}"
+ fi
+
+ init
+
+ SRC_DIR="$(realpath "$SRC_DIR")"
+
+ logInfo "Performing basic checks..."
+
+ checkSourceDirExists
+
+ logInfo "Changing to source directory..."
+ cd "${SRC_DIR}"
+
+ checkTransifexCommandExists
+ checkGitRepository
+ checkReleaseDoesNotExist
+ checkWorkingTreeClean
+ checkSourceBranchExists
+ checkTargetBranchExists
+ checkVersionInCMake
+ checkChangeLog
+
+ logInfo "All checks pass, getting our hands dirty now!"
+
+ logInfo "Checking out source branch..."
+ git checkout "$SOURCE_BRANCH"
+
+ logInfo "Updating language files..."
+ ./share/translations/update.sh
+ if [ 0 -ne $? ]; then
+ exitError "Updating translations failed!"
+ fi
+ git diff-index --quiet HEAD --
+ if [ $? -ne 0 ]; then
+ git add ./share/translations/*
+ logInfo "Committing changes..."
+ if [ "" == "$GPG_GIT_KEY" ]; then
+ git commit -m "Update translations"
+ else
+ git commit -m "Update translations" -S"$GPG_GIT_KEY"
+ fi
+ fi
+
+ logInfo "Checking out target branch '${TARGET_BRANCH}'..."
+ git checkout "$TARGET_BRANCH"
+
+ logInfo "Merging '${SOURCE_BRANCH}' into '${TARGET_BRANCH}'..."
+
+ CHANGELOG=$(grep -Pzo "(?<=${RELEASE_NAME} \(\d{4}-\d{2}-\d{2}\)\n)=+\n\n?(?:.|\n)+?\n(?=\n)" \
+ CHANGELOG | grep -Pzo '(?<=\n\n)(.|\n)+' | tr -d \\0)
+ COMMIT_MSG="Release ${RELEASE_NAME}"
+
+ git merge "$SOURCE_BRANCH" --no-ff -m "$COMMIT_MSG" -m "${CHANGELOG}" "$SOURCE_BRANCH" -S"$GPG_GIT_KEY"
+
+ logInfo "Creating tag '${TAG_NAME}'..."
+ if [ "" == "$GPG_GIT_KEY" ]; then
+ git tag -a "$TAG_NAME" -m "$COMMIT_MSG" -m "${CHANGELOG}" -s
+ else
+ git tag -a "$TAG_NAME" -m "$COMMIT_MSG" -m "${CHANGELOG}" -s -u "$GPG_GIT_KEY"
+ fi
+
+ cleanup
+
+ logInfo "All done!"
+ logInfo "Please merge the release branch back into the develop branch now and then push your changes."
+ logInfo "Don't forget to also push the tags using \e[1mgit push --tags\e[0m."
+}
+
+# -----------------------------------------------------------------------
+# build command
+# -----------------------------------------------------------------------
+build() {
+ while [ $# -ge 1 ]; do
+ local arg="$1"
+ case "$arg" in
+ -v|--version)
+ RELEASE_NAME="$2"
+ shift ;;
+
+ -a|--app-name)
+ APP_NAME="$2"
+ shift ;;
+
+ -s|--source-dir)
+ SRC_DIR="$2"
+ shift ;;
+
+ -o|--output-dir)
+ OUTPUT_DIR="$2"
+ shift ;;
+
+ -t|--tag-name)
+ TAG_NAME="$2"
+ shift ;;
+
+ -d|--docker-image)
+ DOCKER_IMAGE="$2"
+ shift ;;
+
+ --container-name)
+ DOCKER_CONTAINER_NAME="$2"
+ shift ;;
+
+ -c|--cmake-options)
+ CMAKE_OPTIONS="$2"
+ shift ;;
+
+ --compiler)
+ COMPILER="$2"
+ shift ;;
+
+ -m|--make-options)
+ MAKE_OPTIONS="$2"
+ shift ;;
+
+ -i|--install-prefix)
+ INSTALL_PREFIX="$2"
+ shift ;;
+
+ -p|--plugins)
+ BUILD_PLUGINS="$2"
+ shift ;;
+
+ -n|--no-source-tarball)
+ BUILD_SOURCE_TARBALL=false ;;
+
+ -h|--help)
+ printUsage "build"
+ exit ;;
+
+ *)
+ logError "Unknown option '$arg'\n"
+ printUsage "build"
+ exit 1 ;;
+ esac
+ shift
+ done
+
+ if [ "" == "$RELEASE_NAME" ]; then
+ logError "Missing arguments, --version is required!\n"
+ printUsage "build"
+ exit 1
+ fi
+
+ if [ "" == "$TAG_NAME" ]; then
+ TAG_NAME="$RELEASE_NAME"
+ fi
+
+ init
+
+ SRC_DIR="$(realpath "$SRC_DIR")"
+ OUTPUT_DIR="$(realpath "$OUTPUT_DIR")"
+
+ logInfo "Performing basic checks..."
+
+ checkSourceDirExists
+
+ logInfo "Changing to source directory..."
+ cd "${SRC_DIR}"
+
+ checkTagExists
+ checkGitRepository
+ checkWorkingTreeClean
+ checkOutputDirDoesNotExist
+
+ logInfo "All checks pass, getting our hands dirty now!"
+
+ logInfo "Checking out release tag '${TAG_NAME}'..."
+ git checkout "$TAG_NAME"
+
+ logInfo "Creating output directory..."
+ mkdir -p "$OUTPUT_DIR"
+
+ if [ $? -ne 0 ]; then
+ exitError "Failed to create output directory!"
+ fi
+
+ if $BUILD_SOURCE_TARBALL; then
+ logInfo "Creating source tarball..."
+ local app_name_lower="$(echo "$APP_NAME" | tr '[:upper:]' '[:lower:]')"
+ TARBALL_NAME="${app_name_lower}-${RELEASE_NAME}-src.tar.xz"
+ git archive --format=tar "$TAG_NAME" --prefix="${app_name_lower}-${RELEASE_NAME}/" \
+ | xz -6 > "${OUTPUT_DIR}/${TARBALL_NAME}"
+ fi
+
+ logInfo "Creating build directory..."
+ mkdir -p "${OUTPUT_DIR}/build-release"
+ cd "${OUTPUT_DIR}/build-release"
+
+ logInfo "Configuring sources..."
+ for p in $BUILD_PLUGINS; do
+ CMAKE_OPTIONS="${CMAKE_OPTIONS} -DWITH_XC_$(echo $p | tr '[:lower:]' '[:upper:]')=On"
+ done
+
+ if [ "$COMPILER" == "g++" ]; then
+ export CC=gcc
+ elif [ "$COMPILER" == "clang++" ]; then
+ export CC=clang
+ fi
+ export CXX="$COMPILER"
+
+ if [ "" == "$DOCKER_IMAGE" ]; then
+ if [ "$(uname -s)" == "Darwin" ]; then
+ # Building on OS X
+ local qt_vers="$(ls /usr/local/Cellar/qt5 2> /dev/null | sort -r | head -n1)"
+ if [ "" == "$qt_vers" ]; then
+ exitError "Couldn't find Qt5! Please make sure it is available in '/usr/local/Cellar/qt5'."
+ fi
+ export MACOSX_DEPLOYMENT_TARGET=10.7
+
+ logInfo "Configuring build..."
+ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" \
+ -DCMAKE_OSX_ARCHITECTURES=x86_64 -DWITH_CXX11=OFF \
+ -DCMAKE_PREFIX_PATH="/usr/local/Cellar/qt5/${qt_vers}/lib/cmake" \
+ -DQT_BINARY_DIR="/usr/local/Cellar/qt5/${qt_vers}/bin" $CMAKE_OPTIONS "$SRC_DIR"
+
+ logInfo "Compiling and packaging sources..."
+ make $MAKE_OPTIONS package
+
+ mv "./${APP_NAME}-${RELEASE_NAME}.dmg" ../
+ elif [ "$(uname -o)" == "Msys" ]; then
+ # Building on Windows with Msys
+ logInfo "Configuring build..."
+ cmake -DCMAKE_BUILD_TYPE=Release -DWITH_TESTS=Off -G"MSYS Makefiles" \
+ -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" $CMAKE_OPTIONS "$SRC_DIR"
+
+ logInfo "Compiling and packaging sources..."
+ make $MAKE_OPTIONS package
+
+ mv "./${APP_NAME}-${RELEASE_NAME}-"*.{exe,zip} ../
+ else
+ mkdir -p "${OUTPUT_DIR}/bin-release"
+
+ # Building on Linux without Docker container
+ logInfo "Configuring build..."
+ cmake -DCMAKE_BUILD_TYPE=Release -DWITH_TESTS=Off $CMAKE_OPTIONS \
+ -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" "$SRC_DIR"
+
+ logInfo "Compiling sources..."
+ make $MAKE_OPTIONS
+
+ logInfo "Installing to bin dir..."
+ make DESTDIR="${OUTPUT_DIR}/bin-release" install/strip
+
+ logInfo "Creating AppImage..."
+ ${SRC_DIR}/AppImage-Recipe.sh "$APP_NAME" "$RELEASE_NAME"
+ fi
+ else
+ mkdir -p "${OUTPUT_DIR}/bin-release"
+
+ logInfo "Launching Docker container to compile sources..."
+
+ docker run --name "$DOCKER_CONTAINER_NAME" --rm \
+ --cap-add SYS_ADMIN --device /dev/fuse \
+ -e "CC=${CC}" -e "CXX=${CXX}" \
+ -v "$(realpath "$SRC_DIR"):/keepassxc/src:ro" \
+ -v "$(realpath "$OUTPUT_DIR"):/keepassxc/out:rw" \
+ "$DOCKER_IMAGE" \
+ bash -c "cd /keepassxc/out/build-release && \
+ cmake -DCMAKE_BUILD_TYPE=Release -DWITH_TESTS=Off $CMAKE_OPTIONS \
+ -DCMAKE_INSTALL_PREFIX=\"${INSTALL_PREFIX}\" /keepassxc/src && \
+ make $MAKE_OPTIONS && make DESTDIR=/keepassxc/out/bin-release install/strip && \
+ /keepassxc/src/AppImage-Recipe.sh "$APP_NAME" "$RELEASE_NAME""
+
+ if [ 0 -ne $? ]; then
+ exitError "Docker build failed!"
+ fi
+
+ logInfo "Build finished, Docker container terminated."
+ fi
+
+ cleanup
+
+ logInfo "All done!"
+}
+
+
+# -----------------------------------------------------------------------
+# sign command
+# -----------------------------------------------------------------------
+sign() {
+ SIGN_FILES=()
+
+ while [ $# -ge 1 ]; do
+ local arg="$1"
+ case "$arg" in
+ -f|--files)
+ while [ "${2:0:1}" != "-" ] && [ $# -ge 2 ]; do
+ SIGN_FILES+=("$2")
+ shift
+ done ;;
+
+ -g|--gpg-key)
+ GPG_KEY="$2"
+ shift ;;
+
+ -h|--help)
+ printUsage "sign"
+ exit ;;
+
+ *)
+ logError "Unknown option '$arg'\n"
+ printUsage "sign"
+ exit 1 ;;
+ esac
+ shift
+ done
+
+ if [ -z "$SIGN_FILES" ]; then
+ logError "Missing arguments, --files is required!\n"
+ printUsage "sign"
+ exit 1
+ fi
+
+ for f in "${SIGN_FILES[@]}"; do
+ if [ ! -f "$f" ]; then
+ exitError "File '${f}' does not exist!"
+ fi
+
+ logInfo "Signing file '${f}'..."
+ gpg --output "${f}.sig" --armor --local-user "$GPG_KEY" --detach-sig "$f"
+
+ if [ 0 -ne $? ]; then
+ exitError "Signing failed!"
+ fi
+
+ logInfo "Creating digest for file '${f}'..."
+ sha256sum "$f" > "${f}.DIGEST"
+ done
+
+ logInfo "All done!"
+}
+
+
+# -----------------------------------------------------------------------
+# parse global command line
+# -----------------------------------------------------------------------
+MODE="$1"
+shift
+if [ "" == "$MODE" ]; then
+ logError "Missing arguments!\n"
+ printUsage
+ exit 1
+elif [ "help" == "$MODE" ]; then
+ printUsage "$1"
+ exit
+elif [ "merge" == "$MODE" ] || [ "build" == "$MODE" ] || [ "sign" == "$MODE" ]; then
+ $MODE "$@"
+else
+ printUsage "$MODE"
+fi
diff --git a/share/translations/keepassx_cs.ts b/share/translations/keepassx_cs.ts
index 3a85ff723..b0e4ca8f9 100644
--- a/share/translations/keepassx_cs.ts
+++ b/share/translations/keepassx_cs.ts
@@ -1,14 +1,6 @@
-
+AboutDialog
-
-
- O KeePassX
-
-
-
- KeePassX je šířeno za podmínek licence GNU General Public License (GPL) verze 2 a (případně) 3.
- Revize
@@ -17,17 +9,56 @@
S použitím:
+
+
+ O aplikaci KeePassXC
+
+
+
+ KeePassXC je šířeno pod GNU obecnou veřejnou licencí (GPL) verze 2 a (případně) 3.
+
+
+
+ Rozšíření:
+
+
+
+
+ AccessControlDialog
+
+
+ Zapamatovat si toto rozhodnutí
+
+
+
+ Povolit
+
+
+
+ Zamítnout
+
+
+
+ %1 si vyžádalo přístup k heslům u následujících položek.
+Umožnit přístup? ()
+
+
+
+ Potvrzení přístupu KeePassXC HTTP
+ AutoType
-
-
- Automatické vyplňování – KeePassX
- Nedaří se nalézt položku, která by se shodovala s titulkem okna:
+
+
+ Automatické vyplňování – KeePassXC
+ AutoTypeAssociationsModel
@@ -46,14 +77,14 @@
AutoTypeSelectDialog
-
-
- Automatické vyplňování – KeePassX
- Vyberte položku, kterou se bude automaticky vyplňovat:
+
+
+ Automatické vyplňování – KeePassXC
+ ChangeMasterKeyWidget
@@ -319,16 +350,6 @@ Uložit změny?
zamčeno
-
-
- Pro databázi, kterou se pokoušíte otevřít, existuje zámek úprav (stejnojmenný
-.lock soubor). To znamená, že je nejspíš už otevřená v jiném okně KeePassX
-(v případě sdíleného úložiště, třeba i na jiném počítači). Pokud tomu tak není,
-je zámek nejspíš pozůstatkem předchozího neočekávaného ukončení aplikace
-a je možné ho smazat. V každém případě, dotčenou databázi je možné otevřít
- i tak, ale pouze pro čtení. Chcete?
- Uzamknout databázi
@@ -372,14 +393,24 @@ Přesto zavřít a zahodit změny?
Zápis do CSV souboru se nezdařil.
-
- Databáze, kterou se pokoušíte uložit, je uzamčena jinou instancí KeePassX.
-Přesto uložit?
+
+ Nepodařilo se otevřít databázi.
-
-
+
+ Databáze kterou se pokoušíte otevřít je právě používaná jinou instancí KeePassXC.
+Chcete ji přesto otevřít? Případně je možné databázi otevřít pouze pro čtení.
+
+
+
+ Sloučit databáze
+
+
+
+ Databáze kterou se pokoušíte uložit je právě používaná jinou instancí KeePassXC.
+Chcete ji přesto uložit?
@@ -420,10 +451,6 @@ Přesto uložit?
Opravdu chcete nenávratně smazat skupinu „%1“?
-
-
- Stávající skupina
- Chyba
@@ -434,11 +461,71 @@ Přesto uložit?
-
+ Přesunout položku do koše?
-
+ Opravdu si přejete přesunout položku "%1" do koše?
+
+
+
+ Hledání…
+
+
+
+ Aktuálně žádná databáze.
+
+
+
+ Není zvolena zdrojová databáze, není co dělat.
+
+
+
+ Výsledky vyhledávání (%1)
+
+
+
+ Žádné výsledky
+
+
+
+ Spustit příkaz?
+
+
+
+ Opravdu chcete spustit následující příkaz?<br><br>%1<br>
+
+
+
+ Zapamatovat si pro příště
+
+
+
+ Požadavek na automatické opětovné načtení
+
+
+
+ Soubor s databází byl změněn. Přejete si načíst změny?
+
+
+
+ Požadavek na sloučení
+
+
+
+ Soubor s databází byl mezitím změněn a vaše změny nejsou uložené. Přejete si vaše změny sloučit?
+
+
+
+ Automatické opětovné načtení se nezdařilo
+
+
+
+ Nepodařilo se zpracovat nebo odemknout nový soubor s databází během pokusu o její opětovné načtení.
+
+
+
+ Nepodařilo se otevřít nový soubor s databází během pokusu o její opětovné načtení.
@@ -629,10 +716,6 @@ Přesto uložit?
Zopakování hesla:
-
-
- Tvoř
- URL adresa:
@@ -750,17 +833,25 @@ Přesto uložit?
Ikonu nelze smazat!
-
-
- Ikonu není možné smazat. Je používána %n položkou.Ikonu není možné smazat. Je používána %n položkami.Ikonu není možné smazat. Ještě jí používá %n položek.
-
-
+ Chyba
-
-
+
+ Stáhnout favicon
+
+
+
+ Favicon se nepodařilo stáhnout.
+
+
+
+ Nepodařilo se načíst ikonu
+
+
+
+ Ikonu nelze smazat. Ještě ji používá %1 položek.
@@ -782,6 +873,13 @@ Přesto uložit?
Univerzálně jedinečný identifikátor:
+
+ Entry
+
+
+ - Klon
+
+EntryAttributesModel
@@ -834,6 +932,61 @@ Přesto uložit?
Koš
+
+ HttpPasswordGeneratorWidget
+
+
+ Délka:
+
+
+
+ Typy znaků
+
+
+
+ Velká písmena
+
+
+
+ A-Z
+
+
+
+ Malá písmena
+
+
+
+ a-z
+
+
+
+ Čísla
+
+
+
+ 0-9
+
+
+
+ Zvláštní znaky
+
+
+
+ /*_& ...
+
+
+
+ Vyloučit podobné znaky
+
+
+
+ Heslo musí obsahovat znak z každé skupiny
+
+
+
+ Přijmout
+
+KeePass1OpenWidget
@@ -877,7 +1030,7 @@ Přesto uložit?
-
+ Byl zadán chybný klíč, nebo je poškozen databázový soubor.
@@ -916,8 +1069,8 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev
Při ověřování šifrovacích funkcí byl zjištěn fatální nedostatek.
-
- KeePassX – chyba
+
+ KeePassXC – chyba
@@ -926,102 +1079,14 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev
Databáze
-
-
- Nedávno otevřené databáze
-
-
-
- Nápověda
-
-
-
- Položky
-
-
-
- Zkopírovat atribut do schránky
-
-
-
- Skupiny
-
-
-
- Zobrazit
-
-
-
- Ukončit aplikaci
-
-
-
- O aplikaci
- Otevřít databázi
-
-
- Uložit databázi
-
-
-
- Zavřít databázi
-
-
-
- Nová databáze
-
-
-
- Přidat novou položku
-
-
-
- Zobrazit/upravit položku
-
-
-
- Smazat položku
-
-
-
- Přidat novou skupinu
-
-
-
- Upravit skupinu
-
-
-
- Smazat skupinu
-
-
-
- Uložit databázi jako
-
-
-
- Změnit hlavní klíč
- Nastavení databáze
-
-
- Importovat databázi aplikace KeePass verze 1
-
-
-
- Klonovat položku
-
-
-
- Najít
- Zkopírovat uživatelské jméno do schránky
@@ -1034,30 +1099,6 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev
Nastavení
-
-
- Provést automatické vyplnění
-
-
-
- Otevřít URL adresu
-
-
-
- Uzamknout databáze
-
-
-
- Titulek
-
-
-
- URL adresa
-
-
-
- Poznámky
- Zobrazit lištu nástrojů
@@ -1074,22 +1115,6 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev
Nástroje
-
-
- Zkopírovat uživatelské jméno
-
-
-
- Zkopírovat heslo
-
-
-
- Exportovat do CSV souboru
-
-
-
- Opravit databázi
- Databáze ve formátu KeePass 2
@@ -1110,6 +1135,265 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev
Zápis do databáze se nezdařil.
+
+
+ Nedávno otevřené databáze
+
+
+
+ Nápověda
+
+
+
+ Položky
+
+
+
+ Zkopí&rovat atribut do schránky
+
+
+
+ Skupniny
+
+
+
+ Zobrazit
+
+
+
+ Ukončit
+
+
+
+ O &aplikaci
+
+
+
+ &Otevřít databázi
+
+
+
+ Uložit databázi
+
+
+
+ Zavřít databázi
+
+
+
+ &Nová databáze
+
+
+
+ Sloučit s databází KeePassX
+
+
+
+ Přid&at novou položku
+
+
+
+ Zobrazit/Upra&vit položku
+
+
+
+ Smazat položku
+
+
+
+ Přid&at novou skupinu
+
+
+
+ Upravit skupinu
+
+
+
+ Smazat skupinu
+
+
+
+ Uložit databázi jako
+
+
+
+ Z&měnit hlavní klíč
+
+
+
+ Nastavení &databáze
+
+
+
+ &Importovat databázi ve formátu KeePass 1
+
+
+
+ Klonovat položku
+
+
+
+ Najít
+
+
+
+ Zkopírovat &uživatelské jméno
+
+
+
+ Zkopírovat heslo
+
+
+
+ Na&stavení
+
+
+
+ &Provést automatické vyplnění
+
+
+
+ &Otevřít URL adresu
+
+
+
+ Uzamknout databázi
+
+
+
+ Nadpis
+
+
+
+ &URL adresa
+
+
+
+ Poz&námky
+
+
+
+ &Exportovat do CSV souboru
+
+
+
+ O&pravit databázi
+
+
+
+ Generátor hesel
+
+
+
+ OptionDialog
+
+
+ Dialog
+
+
+
+ Obecné
+
+
+
+ Z&obrazit oznámení když jsou požadovány přihlašovací údaje
+
+
+
+ V%rátit pouze položky, které nejlépe odpovídají dané
+URL adrese namísto položek pro celou doménu
+
+
+
+ &Odpovídající schémata URL adres
+Jsou vráceny pouze položky se stejným schématem (http://, https://, ftp://, atp.)
+
+
+
+ Seřadit odpovídající položky dle &uživatelského jména
+
+
+
+ Z právě otevřené databáze od&ebrat veškeré sdílené šifrovací klíče
+
+
+
+ Z právě otevřené databáze odebrat veškerá uložená oprávnění
+
+
+
+ Generátor hesel
+
+
+
+ Pokročilé
+
+
+
+ Následující zapněte pouze pokud víte, co děláte!
+
+
+
+ Vždy umožnit přístup k veškerým položkám
+
+
+
+ Vždy umožnit akt&ualizovat položky
+
+
+
+ Vy&hledat odpovídající položky ve všech otevřených databázích
+
+
+
+ Je třeba, aby ke klientovi byly připojené pouze vybrané databáze!
+
+
+
+ V&rátit také pokročilé textové řetězce které začínají na „KPH:“
+
+
+
+ Automatická vytváření nebo aktualizace nejsou u textových kolonek podporované!
+
+
+
+ HTTP port:
+
+
+
+ Výchozí port: 19455
+
+
+
+ Vyžádat odemknutí zamčené databáze
+
+
+
+ Seřadit odpovídající položky dle názvu
+
+
+
+ Zapnout protokol KeePassXC HTTP
+Toto je zapotřebí pro přístup do databáze z ChromeIPass nebo PassIFox
+
+
+
+ Na tomto portu bude KeePassXC očekávat spojení na adrese 127.0.0.1
+
+
+
+ S oprávněními uživatele není možné navázat na porty, pro které je třeba oprávnění správce systému
+
+
+
+ Není možné navázat na porty s číslem nižším, než 1024!
+Náhradně bude použit port 19455.
+ PasswordGeneratorWidget
@@ -1117,10 +1401,6 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev
Heslo:
-
-
- Délka:
- Typy znaků
@@ -1145,71 +1425,72 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev
Vynechat podobně vypadající znaky (předejití záměně)
-
-
- Zajistit, aby heslo obsahovalo znaky ze všech zvolených skupin znaků
- Přijmout
-
-
- QCommandLineParser
-
- Zobrazí informace o verzi.
+
+ %p%
-
- Zobrazí tuto nápovědu.
+
+ odolnost
-
- Neznámá předvolba %1.
+
+ náhodnost
-
- Neznámé předvolby: %1.
+
+ Dé&lka:
-
- Chybějící hodnota, následující za %1.
+
+ Použít znaky ze všech skupin
-
- Neočekávaná hodnota, následující za %1.
+
+ Vytvořit
-
- [předvolby]
+
+ Zavřít
-
- Použití: %1
+
+ Použít
-
- Předvolby:
+
+ Náhodnost: %1 bit
-
- Argumenty:
+
+ Odolnost hesla: %1
+
+
+
+ Velmi nízká
+
+
+
+ Slabá
+
+
+
+ Dobrá
+
+
+
+ Skvělá
- QSaveFile
+ QObject
-
- Do stávajícího souboru %1 nelze zapisovat
-
-
-
- Zápis byl zrušen aplikací
-
-
-
- Zápis nebylo možné zcela dokončit. Nedostatek volného místa?
+
+ Http
@@ -1249,20 +1530,111 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev
SearchWidget
-
- Najít:
+
+ Rozlišovat velikost písmen
-
- Rozlišovat malá/velká písmena
+
+ Hledat
-
- Stávající skupina
+
+ Najít
-
- Kořenová skupina
+
+ Vyčistit
+
+
+
+ Service
+
+
+ Už existuje sdílený šifrovací klíč s názvem „%1“.
+Přejete si ho přepsat?
+
+
+
+ Přejete si aktualizovat informaci v %1 – %2?
+
+
+
+ Právě otevřená databáze je uzamčená!
+Buď jí odemkněte, nebo vyberte jinou, odemčenou.
+
+
+
+ Z nastavení KeePassX/Http bylo úspěšně odebráno %1 šifrování-%2.
+
+
+
+ V nastavení KeePassHttp nebyly nalezeny žádné sdílené šifrovací klíče.
+
+
+
+ Právě otevřená databáze neobsahuje žádnou položku nastavení KeePassHttp.
+
+
+
+ Odstraňuji uložená oprávnění...
+
+
+
+ Přerušit
+
+
+
+ Oprávnění %1 %2 úspěšně odebrána.
+
+
+
+ Právě otevřená databáze neobsahuje položku s oprávněními.
+
+
+
+ KeePassXC: nový požadavek na přiřazení klíče
+
+
+
+ Pokud jste obdrželi požadavek na přiřazení pro výše uvedený klíč.
+Pokud chcete umožnit přístup do KeePassXC databáze, dejte jí
+jedinečný název pro její identifikaci a potvrďte ho.
+
+
+
+ KeePassXC: Přepsat stávající klíč?
+
+
+
+ KeePassXC: Aktualizovat položku
+
+
+
+ KeePassXC: Databáze uzamčena!
+
+
+
+ KeePassXC: Odebrány klíče z databáze
+
+
+
+ KeePassXC: Klíče nebyly nalezeny
+
+
+
+ KeePassXC: Nastavení nejsou k dispozici!
+
+
+
+ KeePassXC: Odebraná oprávnění
+
+
+
+ KeePassXC: Nebyla nalezena položka s oprávněními!
@@ -1286,10 +1658,6 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev
Pamatovat si nedávno otevřené databáze
-
-
- Při spuštění aplikace otevřít minule otevřené databáze
- Před ukončením aplikace automaticky uložit případné změny
@@ -1300,7 +1668,7 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev
- Po zkopírování údaje do schránky automaticky minimalizovat okno KeePassX (do popředí se tak dostane okno, do kterého se zkopírovaný údaj bude vkládat)
+ Po zkopírování údaje do schránky automaticky minimalizovat
@@ -1331,12 +1699,20 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev
Pamatovat si nedávno otevřené soubory s klíči
-
-
+
+ Při spuštění aplikace načíst minule otevřené databáze
-
-
+
+ V okamžiku zásahu do databáze zvenčí ji načíst znovu
+
+
+
+ Namísto zavření minimalizovat okno aplikace do oznamovací oblasti systémového panelu
+
+
+
+ Spouštět aplikaci s minimalizovaným oknem
@@ -1361,6 +1737,14 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev
Před provedením automatického vyplnění se vždy dotázat
+
+
+ Při minimalizaci okna uzamknout databáze
+
+
+
+ Pokud jsou zobrazená, nevyžadovat zopakování hesel
+ UnlockDatabaseWidget
@@ -1378,14 +1762,6 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev
main
-
-
- KeePassX – správce hesel, fungující napříč rozličnými operačními systémy
-
-
-
- který soubor s databází hesel (*.kdbx) otevřít
- umístění souboru s vlastními nastaveními
@@ -1394,5 +1770,17 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev
soubor s klíčem k databázi
+
+
+ názvy databází s hesly (*.kdbx) které otevřít ()()
+
+
+
+ KeePassXC – aplikace pro správu hesel, fungující na vícero operačních systémech
+
+
+
+ načíst heslo k databázi ze standardního vstupu
+
\ No newline at end of file
diff --git a/share/translations/keepassx_de.ts b/share/translations/keepassx_de.ts
index 2742de484..20bd5daeb 100644
--- a/share/translations/keepassx_de.ts
+++ b/share/translations/keepassx_de.ts
@@ -1,14 +1,6 @@
-
+AboutDialog
-
-
- Über KeePassX
-
-
-
- KeePassX steht unter der GNU General Public License (GPL) version 2 (version 3).
- Überarbeitung
@@ -17,17 +9,56 @@
In Benutzung:
+
+
+ Über KeePassXC
+
+
+
+ KeePassXC steht unter der GNU General Public License (GPL) version 2 (version 3).
+
+
+
+ Erweiterungen:
+
+
+
+
+ AccessControlDialog
+
+
+ Diese Entscheidung merken
+
+
+
+ Erlauben
+
+
+
+ Ablehnen
+
+
+
+ %1 hat Zugriff auf Passwörter für folgende Element(e) angefordert.
+Bitte wählen Sie, ob Sie den Zugriff erlauben möchten.
+
+
+
+ KeePassXC HTTP Erlaube Zugriff
+ AutoType
-
-
- Auto-Type - KeePassX
- Konnte keinen Eintrag finden, welcher mit dem Fenstertitel übereinstimmt:
+
+
+ Auto-Type - KeePassXC
+ AutoTypeAssociationsModel
@@ -46,14 +77,14 @@
AutoTypeSelectDialog
-
-
- Auto-Type - KeePassX
- Wählen Sie einen Eintrag für Auto-Type:
+
+
+ Auto-Type - KeePassXC
+ ChangeMasterKeyWidget
@@ -318,11 +349,6 @@ Save changes?
gesperrt
-
-
- Die Datenbank, die geöffnet werden soll, ist aktuell von einer anderen Instanz von KeePassX blockiert. Soll sie dennoch geöffnet werden? Andererseits wird die Datenbank schreibgeschützt geöffnet.
- Datenbank sperren
@@ -366,14 +392,24 @@ Discard changes and close anyway?
Die CSV Datei konnte nicht gespeichert werden.
-
- Die Datenbank, die gespeichert werden soll, ist von einer anderen Instanz von KeePassX blockiert.
-Soll sie dennoch gespeichert werden?
+
+ Öffnen der Datenbank ist nicht möglich.
-
-
+
+ Die Datenbank, die geöffnet werden soll, ist aktuell von einer anderen Instanz von KeePassXC blockiert.
+Soll sie dennoch geöffnet werden? Alternativ wird die Datenbank schreibgeschützt geöffnet.
+
+
+
+ Datenbank zusammenführen
+
+
+
+ Die Datenbank, die gespeichert werden soll, ist von einer anderen Instanz von KeePassXC blockiert.
+Soll sie dennoch gespeichert werden?
@@ -414,10 +450,6 @@ Soll sie dennoch gespeichert werden?
Wollen Sie die Gruppe "%1" wirklich löschen?
-
-
- Aktuelle Gruppe
- Fehler
@@ -428,11 +460,71 @@ Soll sie dennoch gespeichert werden?
-
+ Eintrag in den Papierkorb verschieben?
-
+ Möchten Sie wirklich Eintrag "%1" in den Papierkorb verschieben?
+
+
+
+ Am suchen...
+
+
+
+ Keine aktuelle Datenbank
+
+
+
+ Keine Quelldatenbank, es gibt nichts zu tun.
+
+
+
+ Suchergebnisse (%1)
+
+
+
+ Keine Ergebnisse
+
+
+
+ Befehl ausführen?
+
+
+
+ Den folgenden Befehl wirklich ausführen?<br><br>%1<br>
+
+
+
+ Meine Auswahl merken
+
+
+
+ Autoreload Anfrage
+
+
+
+ Die Datenbank wurde verändert. Möchten Sie die Änderungen laden?
+
+
+
+ Zusammenführ-Anfrage
+
+
+
+ Die Datenbank wurde verändert und Sie haben ungespeicherte Änderungen. Möchten Sie Ihre Änderungen zusammenfügen?
+
+
+
+ Autoreload fehlgeschlagen
+
+
+
+ Kann Datenbank nicht durchsuchen oder entsperren während dem Autoreload-Versuch dieser Datenbank.
+
+
+
+ Kann die Datenbank nicht öffnen während dem Versuch, diese Datenbank automatisch neu zu laden.
@@ -622,10 +714,6 @@ Soll sie dennoch gespeichert werden?
Wiederholen:
-
-
- Gen.
- URL:
@@ -743,17 +831,25 @@ Soll sie dennoch gespeichert werden?
Symbol kann nicht gelöscht werden!
-
-
- Symbol kann nicht gelöscht werden. Es wird von %n Eintrag verwendet.Symbol kann nicht gelöscht werden. Es wird von %n Einträgen verwendet.
-
-
+ Fehler
-
-
+
+ Favicon herunterladen
+
+
+
+ Abrufen des Favicons nicht möglich
+
+
+
+ Icon kann nicht gelesen werden
+
+
+
+ Symbol kann nicht gelöscht werden. Es wird noch von %1 Einträgen verwendet.
@@ -775,6 +871,13 @@ Soll sie dennoch gespeichert werden?
Uuid:
+
+ Entry
+
+
+ - Klone
+
+EntryAttributesModel
@@ -827,6 +930,61 @@ Soll sie dennoch gespeichert werden?
Papierkorb
+
+ HttpPasswordGeneratorWidget
+
+
+ Länge:
+
+
+
+ Zeichenarten
+
+
+
+ Großbuchstaben
+
+
+
+ A-Z
+
+
+
+ Kleinbuchstaben
+
+
+
+ a-z
+
+
+
+ Zahlen
+
+
+
+ 0-9
+
+
+
+ Sonderzeichen
+
+
+
+ /*_& ...
+
+
+
+ Gleich aussehende Zeichen ausschließen
+
+
+
+ Sicherstellen, dass das Passwort Zeichen aus allen Gruppen enthält.
+
+
+
+ Akzeptieren
+
+KeePass1OpenWidget
@@ -870,7 +1028,7 @@ Soll sie dennoch gespeichert werden?
-
+ Falscher Schlüssel oder die Datenbank ist beschädigt.
@@ -909,8 +1067,8 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann
Fataler Fehler beim Testen der kryptografischen Funktionen.
-
- KeePassX - Fehler
+
+ KeePassXC - Fehler
@@ -919,102 +1077,14 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann
Datenbank
-
-
- Aktuelle Datenbanken
-
-
-
- Hilfe
-
-
-
- Einträge
-
-
-
- Eingenschaft in die Zwischenablage kopieren
-
-
-
- Gruppen
-
-
-
- Ansicht
-
-
-
- Beenden
-
-
-
- Über
- Datenbank öffnen
-
-
- Datenbank speichern
-
-
-
- Datenbank schließen
-
-
-
- Neue Datenbank
-
-
-
- Neuen Eintrag hinzufügen
-
-
-
- Eintrag anzeigen/bearbeiten
-
-
-
- Eintrag löschen
-
-
-
- Neue Gruppe hinzufügen
-
-
-
- Gruppe bearbeiten
-
-
-
- Gruppe löschen
-
-
-
- Datenbank speichern als
-
-
-
- Hauptschlüssel ändern
- Datenbankeinstellungen
-
-
- KeePass 1 Datenbank importieren
-
-
-
- Eintrag klonen
-
-
-
- Suchen
- Benutzername in die Zwischenablage kopieren
@@ -1027,30 +1097,6 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann
Einstellungen
-
-
- Auto-Type ausführen
-
-
-
- URL öffnen
-
-
-
- Datenbank sperren
-
-
-
- Titel
-
-
-
- URL
-
-
-
- Notizen
- Symbolleiste anzeigen
@@ -1067,22 +1113,6 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann
Tools
-
-
- Benutzername kopieren
-
-
-
- Passwort kopieren
-
-
-
- Als CSV Datei exportieren
-
-
-
- Datenbank reparieren
- KeePass 2 Datenbank
@@ -1103,6 +1133,265 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann
Schreiben der Datenbank fehlgeschlagen.
+
+
+ &Letzte Datenbanken
+
+
+
+ Hi&lfe
+
+
+
+ Ei&nträge
+
+
+
+ Eigenschaft in &Zwischenablage kopieren
+
+
+
+ &Gruppen
+
+
+
+ &Ansicht
+
+
+
+ &Beenden
+
+
+
+ &Über
+
+
+
+ &Öffne Datenbank
+
+
+
+ Datenbank &speichern
+
+
+
+ &Datenbank schließen
+
+
+
+ &Neue Datenbank
+
+
+
+ Von KeePassX-Datenbank zusammenführen
+
+
+
+ Neuen Eintrag &hinzufügen
+
+
+
+ Eintrag &anzeigen/bearbeiten
+
+
+
+ Eintrag &löschen
+
+
+
+ &Neue Gruppe hinzufügen
+
+
+
+ Gruppe b&earbeiten
+
+
+
+ Gruppe &löschen
+
+
+
+ Datenbank s&peichern als
+
+
+
+ &Hauptschlüssel ändern
+
+
+
+ &Datenbankeinstellungen
+
+
+
+ &KeePass 1 Datenbank importieren
+
+
+
+ Eintrag &klonen
+
+
+
+ &Suchen
+
+
+
+ &Benutzername kopieren
+
+
+
+ Passwort kop&ieren
+
+
+
+ &Einstellungen
+
+
+
+ &Auto-Type ausführen
+
+
+
+ URL &öffnen
+
+
+
+ Datenbank &sperren
+
+
+
+ &Titel
+
+
+
+ &URL
+
+
+
+ &Notizen
+
+
+
+ Als CSV Datei &exportieren
+
+
+
+ Datenbank re&parieren
+
+
+
+ Passwortgenerator
+
+
+
+ OptionDialog
+
+
+ Dialog
+
+
+
+ Allgemein
+
+
+
+ Zeig&e eine Benachrichtigung, wenn Anmeldedaten angefordert werden.
+
+
+
+ Zeige nur die passendsten Einträge für eine URL, statt
+alle Einträge der ganzen Domäne.
+
+
+
+ Passendes URL Schema
+Nur Einträge mit dem gleichen Schema (hhtp://, https://, ftp://, ...) werden angezeigt
+
+
+
+ Sortiere gefundene Einträge nach &Benutzername
+
+
+
+ Entferne alle freigegebenen Chiffrierschlüssel aus der aktiven Datenbank
+
+
+
+ Entferne alle gespeicherten Berechtigungen von Einträgen in der aktiven Datenbank
+
+
+
+ Passwortgenerator
+
+
+
+ Fortgeschritten
+
+
+
+ Aktivieren Sie das Nachfolgende nur dann, wenn Sie sich sicher sind, was sie tun!
+
+
+
+ &Zugriff auf Einträge immer erlauben
+
+
+
+ &Aktualisierung von Einträgen immer erlauben
+
+
+
+ Suche in allen offenen Datenbanken nach übereinstimmenden Einträgen
+
+
+
+ Nur die ausgewählte Datenbank muss mit dem Client verbunden sein.
+
+
+
+ Zeige auch erweiterte Zeichenfelder, welche mit "KPH: " beginnen
+
+
+
+ Automatisches Erstellen und Aktualisieren von Zeichenfeldern wird nicht unterstützt!
+
+
+
+ HTTP Port:
+
+
+
+ Standard Port:19455
+
+
+
+ Verlange Entsperrung, wenn die Datenbank gesperrt ist.
+
+
+
+ Sortiere gefundene Einträge nach Titel
+
+
+
+ Aktiviere KeePassXC HTTP Protokoll
+Dies wird benötigt um von ChromeIPass oder PassIFox auf Deine Datenbank zu zugreifen
+
+
+
+ KeePassXC überwacht diesen Port auf 127.0..0.1
+
+
+
+ Kann nicht zu privilegierte Ports verbinden
+
+
+
+ Kann nicht zu privilegierten Ports unter 1024 verbinden!
+Benutze Standardport 19455.
+ PasswordGeneratorWidget
@@ -1110,10 +1399,6 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann
Passwort:
-
-
- Länge:
- Zeichenarten
@@ -1138,71 +1423,72 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann
Gleich aussehende Zeichen ausschließen
-
-
- Sicher stellen, dass das Passwort Zeichen aller Gruppen enthält
- Akzeptieren
-
-
- QCommandLineParser
-
- Versionsinformationen anzeigen.
+
+ %p%
-
- Zeigt diese Hilfe an.
+
+ Stärke
-
- Unbekannte Option '%1'.
+
+ Entropie
-
- Unbekannte Optionen: '%1'.
+
+ &Länge:
-
- Fehlender Wert nach '%1'.
+
+ Zeichen aus allen Gruppen wählen
-
- Unerwarteter Wert nach '%1'.
+
+ Generiere
-
- [Optionen]
+
+ Schließen
-
- Verwendung: %1
+
+ Anwenden
-
- Optionen:
+
+ Entropie: %1 bit
-
- Argumente:
+
+ Passwort Qualität: %1
+
+
+
+ Schlecht
+
+
+
+ Schwach
+
+
+
+ Gut
+
+
+
+ Exzellent
- QSaveFile
+ QObject
-
- Bestehende Datei(en) %1 ist nicht schreibbar
-
-
-
- Schreiben von der Applikation abgebrochen
-
-
-
- Unvollständiger Schreibvorgang. Partition voll?
+
+ Http
@@ -1242,20 +1528,112 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann
SearchWidget
-
- Suchen nach:
+
+ Groß- /Kleinschreibung beachten
-
- Groß-/Kleinschreibung unterscheiden
+
+ Suche
-
- Aktuelle Gruppe
+
+ Suchen
-
- Root-Gruppe
+
+ löschen
+
+
+
+ Service
+
+
+ Ein freigegebener Chiffrierschlüssel mit dem Namen "%1" existiert schon.
+Willst Du ihn überschreiben?
+
+
+
+ Möchten Sie wirklich die Informationen in %1 - %2 aktualisieren?
+
+
+
+ Die aktive Datenbank ist gesperrt!
+Bitte entsperren Sie die markierte Datenbank oder wählen Sie eine andere, die entsperrt ist.
+
+
+
+ %1 Verschlüsselungs-%2 erfolgreich von KeePassX/Http Einstellungen entfernt.
+
+
+
+ Kein freigegebener Chiffrierschlüssel in den KeePassHttp-Einstellungen gefunden.
+
+
+
+ Die aktive Datenbank enthält keinen Eintrag für KeePassHttp Einstellungen.
+
+
+
+ Gespeicherte Berechtigungen werden gelöscht...
+
+
+
+ Abbrechen
+
+
+
+ Berechtigungen wurden von %1 %2 erfolgreich gelöscht.
+
+
+
+ The aktive Datenbank enthält keinen Eintrag mit Zugangsdaten.
+
+
+
+ KeePassXC: Neue Schlüsselverbindungsanfrage
+
+
+
+ Sie haben eine Verbindungsanfrage für den obigen Schlüssel
+erhalten. Wenn Sie den Zugriff auf Ihre KeePassXC-Datenbank
+erlauben möchten, geben Sie der Verbindungen einen eindeutigen
+Namen und akzeptieren Sie.
+
+
+
+ KeePassXC: Bestehenden Schlüssel überschreiben?
+
+
+
+ KeePassXC: Eintrag aktualisiert
+
+
+
+ KeePassXC: Datenbank gesperrt!
+
+
+
+ KeePassXC: Entfernte Schlüssel von der Datenbank
+
+
+
+ KeePassXC: Kein Schlüssel gefunden
+
+
+
+ KeePassXC: Einstellung nicht verfügbar!
+
+
+
+ KeePassXC: Entfernte Zugangsdaten
+
+
+
+ KeePassXC: Kein Eintrag mit Zugangsdaten gefunden!
@@ -1279,10 +1657,6 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann
Letzte Datenbank merken
-
-
- Letzte Datenbank beim Starten öffnen
- Automatisch speichern beim Schließen
@@ -1324,12 +1698,20 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann
Letzte Schlüsseldateien merken
-
- Fenster zu Taskleistensymbol minimieren statt Programm beenden
+
+ Letzte Datenbank beim Starten laden
-
- Fenster zu Taskleistensymbol minimieren wenn Programm started
+
+ Datenbank nach externer Modifikation automatisch neu laden.
+
+
+
+ Fenster zur Taskleiste minimieren statt das Programm zu beenden
+
+
+
+ Fenster beim Programmstart minimieren
@@ -1354,6 +1736,14 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann
Immer vor einem Auto-type fragen
+
+
+ Datenbank sperren nach dem Minimieren des Fensters
+
+
+
+ Keine erneute Eingabe verlangen wenn Passwort sichtbar.
+ UnlockDatabaseWidget
@@ -1371,14 +1761,6 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann
main
-
-
- KeePassX - plattformübergreifender Passwortmanager
-
-
-
- Dateiname für die zu öffnende Passwortdatenbank (*.kdbx)
- Pfad zu einer benutzerdefinierten Konfigurationsdatei
@@ -1387,5 +1769,17 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann
Schlüsseldatei der Datenbank
+
+
+ Dateiname(n) der zu öffnenden Passwortdatenbank(en) (*.kdbx)
+
+
+
+ KeePassXC - plattformübergreifender Passwortmanager
+
+
+
+ passwort der datenbank von stdin lesen
+
\ No newline at end of file
diff --git a/share/translations/keepassx_en.ts b/share/translations/keepassx_en.ts
index bbf574b47..d55617134 100644
--- a/share/translations/keepassx_en.ts
+++ b/share/translations/keepassx_en.ts
@@ -19,6 +19,11 @@
+
+
+
+ AccessControlDialog
@@ -475,6 +480,46 @@ Do you want to save it anyway?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EditEntryWidget
@@ -669,10 +714,6 @@ Do you want to save it anyway?
-
-
-
-
@@ -830,6 +871,13 @@ Do you want to save it anyway?
+
+ Entry
+
+
+
+
+EntryAttributesModel
@@ -1226,6 +1274,10 @@ This is a one-way migration. You won't be able to open the imported databas
+
+
+
+ OptionDialog
@@ -1299,14 +1351,6 @@ Only entries with the same scheme (http://, https://, ftp://, ...) are returned<
-
-
-
-
-
-
-
-
@@ -1315,11 +1359,6 @@ Only entries with the same scheme (http://, https://, ftp://, ...) are returned<
-
-
-
-
@@ -1328,6 +1367,24 @@ This is required for accessing your databases from ChromeIPass or PassIFoxSort &matching entries by title
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PasswordGeneratorWidget
@@ -1335,10 +1392,6 @@ This is required for accessing your databases from ChromeIPass or PassIFoxPassword:
-
-
-
-
@@ -1364,11 +1417,63 @@ This is required for accessing your databases from ChromeIPass or PassIFox
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1415,16 +1520,20 @@ This is required for accessing your databases from ChromeIPass or PassIFox
SearchWidget
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -1536,10 +1645,6 @@ give it a unique name to identify and accept it.
-
-
-
-
@@ -1581,11 +1686,19 @@ give it a unique name to identify and accept it.
-
+
-
+
+
+
+
+
+
+
+
+
@@ -1615,6 +1728,10 @@ give it a unique name to identify and accept it.
+
+
+
+ UnlockDatabaseWidget
diff --git a/share/translations/keepassx_lt.ts b/share/translations/keepassx_lt.ts
index 41aa94df7..824101c51 100644
--- a/share/translations/keepassx_lt.ts
+++ b/share/translations/keepassx_lt.ts
@@ -1,14 +1,6 @@
-
+AboutDialog
-
-
- Apie KeePassX
-
-
-
- KeePassX yra platinama GNU Bendrosios Viešosios Licencijos (GPL) versijos 2 arba (jūsų pasirinkimu) versijos 3 sąlygomis.
- Poversijis
@@ -17,17 +9,56 @@
Naudojama:
+
+
+ Apie KeePassXC
+
+
+
+ KeePassXC yra platinama GNU Bendrosios Viešosios Licencijos (GPL) versijos 2 arba (jūsų pasirinkimu) versijos 3 sąlygomis.
+
+
+
+ Plėtiniai:
+
+
+
+
+ AccessControlDialog
+
+
+ Prisiminti šį sprendimą
+
+
+
+ Leisti
+
+
+
+ Atmesti
+
+
+
+ %1 užklausė prieigos prie slaptažodžių šiam elementui(-ams).
+Pasirinkite, ar norite leisti prieigą.
+
+
+
+ KeePassXC HTTP prieigos patvirtinimas
+ AutoType
-
-
- Automatinis rinkimas - KeePassX
- Nepavyko rasti įrašo, kuris atitiktų lango antraštę:
+
+
+ Automatinis rinkimas - KeePassXC
+ AutoTypeAssociationsModel
@@ -46,14 +77,14 @@
AutoTypeSelectDialog
-
-
- Automatinis rinkimas - KeePassX
- Pasirinkite įrašą automatiniam rinkimui:
+
+
+ Automatinis rinkimas - KeePassXC
+ ChangeMasterKeyWidget
@@ -319,12 +350,6 @@ Save changes?
užrakinta
-
-
- Duomenų bazė, kurią bandote atverti, yra užrakinta kito KeePassX egzemplioriaus.
-Ar vis tiek norite ją atverti? Kitu atveju duomenų bazė bus atverta tik skaitymui.
- Užrakinti duomenų bazę
@@ -368,14 +393,24 @@ Vis tiek atmesti pakeitimus ir užverti?
CSV failo įrašymas nepavyko.
-
- Duomenų bazė, kurią bandote įrašyti yra užrakinta kito KeePassX programos egzemplioriaus.
-Ar vis tiek norite ją įrašyti?
+
+ Nepavyko atverti duomenų bazės.
-
-
+
+ Duomenų bazė, kurią bandote atverti, yra užrakinta kito KeePassXC egzemplioriaus.
+Ar vis tiek norite ją atverti? Tokiu atveju duomenų bazė bus atverta tik skaitymui.
+
+
+
+ Sulieti duomenų bazę
+
+
+
+ Duomenų bazė, kurią bandote įrašyti yra užrakinta kito KeePassXC programos egzemplioriaus.
+Ar vis tiek norite ją įrašyti?
@@ -416,10 +451,6 @@ Ar vis tiek norite ją įrašyti?
Ar tikrai norite ištrinti grupę "%1"?
-
-
- Esama grupė
- Klaida
@@ -430,11 +461,71 @@ Ar vis tiek norite ją įrašyti?
-
+ Perkelti įrašą į šiukšlinę?
-
+ Ar tikrai norite perkelti įrašą "%1" į šiukšlinę?
+
+
+
+ Ieškoma...
+
+
+
+ Nėra esamos duomenų bazės.
+
+
+
+ Nėra šaltinio duomenų bazės, nėra ką atlikti.
+
+
+
+ Paieškos rezultatai (%1)
+
+
+
+ Nėra rezultatų
+
+
+
+ Vykdyti komandą?
+
+
+
+ Ar tikrai norite vykdyti šią komandą?<br><br>%1<br>
+
+
+
+ Prisiminti mano pasirinkimą
+
+
+
+ Automatinio įkėlimo iš naujo užklausa
+
+
+
+ Duomenų bazės failas pasikeitė. Ar norite įkelti pakeitimus?
+
+
+
+ Suliejimo užklausa
+
+
+
+ Duomenų bazės failas pasikeitė ir jūs turite neįrašytų pakeitimų. Ar norite sulieti savo pakeitimus?
+
+
+
+ Automatinis įkėlimas iš naujo nepavyko
+
+
+
+ Nepavyko išanalizuoti ar atrakinti naujos duomenų bazės failo, bandant automatiškai iš naujo įkelti šią duomenų bazę.
+
+
+
+ Nepavyko atverti naujos duomenų bazės failo, bandant automatiškai iš naujo įkelti šią duomenų bazę.
@@ -625,10 +716,6 @@ Ar vis tiek norite ją įrašyti?
Pakartokite:
-
-
- Kurti
- URL:
@@ -746,17 +833,25 @@ Ar vis tiek norite ją įrašyti?
Nepavyksta ištrinti piktogramos!
-
-
- Nepavyksta ištrinti piktogramos. Vis dar naudojama %n elemento.Nepavyksta ištrinti piktogramos. Vis dar naudojama %n elementų.Nepavyksta ištrinti piktogramos. Vis dar naudojama %n elementų.
-
-
+ Klaida
-
-
+
+ Atsisiųsti svetainės piktogramą
+
+
+
+ Nepavyko gauti svetainės piktogramos.
+
+
+
+ Nepavyksta perskaityti piktogramos
+
+
+
+ Nepavyksta ištrinti piktogramos. Vis dar naudojama %1 elementų.
@@ -778,6 +873,13 @@ Ar vis tiek norite ją įrašyti?
Uuid:
+
+ Entry
+
+
+ - Dublikatas
+
+EntryAttributesModel
@@ -830,6 +932,61 @@ Ar vis tiek norite ją įrašyti?
Šiukšlinė
+
+ HttpPasswordGeneratorWidget
+
+
+ Ilgis:
+
+
+
+ Simbolių tipai
+
+
+
+ Viršutinio registro raidės
+
+
+
+ A-Z
+
+
+
+ Apatinio registro raidės
+
+
+
+ a-z
+
+
+
+ Skaičiai
+
+
+
+ 0-9
+
+
+
+ Specialūs simboliai
+
+
+
+ /*_& ...
+
+
+
+ Pašalinti panašiai atrodančius simbolius
+
+
+
+ Užtikrinti, kad slaptažodyje būtų simboliai iš kiekvienos grupės
+
+
+
+ Priimti
+
+KeePass1OpenWidget
@@ -873,7 +1030,7 @@ Ar vis tiek norite ją įrašyti?
-
+ Neteisingas raktas arba duomenų bazės failas yra pažeistas.
@@ -912,8 +1069,8 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų
Lemtingoji klaida, testuojant šifravimo funkcijas.
-
- KeePassX - Klaida
+
+ KeePassXC - Klaida
@@ -922,102 +1079,14 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų
Duomenų bazė
-
-
- Paskiausios duomenų bazės
-
-
-
- Pagalba
-
-
-
- Įrašai
-
-
-
- Kopijuoti požymį į iškarpinę
-
-
-
- Grupės
-
-
-
- Rodinys
-
-
-
- Baigti
-
-
-
- Apie
- Atverti duomenų bazę
-
-
- Įrašyti duomenų bazę
-
-
-
- Užverti duomenų bazę
-
-
-
- Nauja duomenų bazė
-
-
-
- Pridėti naują įrašą
-
-
-
- Žiūrėti/Keisti įrašą
-
-
-
- Ištrinti įrašą
-
-
-
- Pridėti naują grupę
-
-
-
- Keisti grupę
-
-
-
- Ištrinti grupę
-
-
-
- Įrašyti duomenų bazę kaip
-
-
-
- Pakeisti pagrindinį raktą
- Duomenų bazės nustatymai
-
-
- Importuoti KeePass 1 duomenų bazę
-
-
-
- Dublikuoti įrašą
-
-
-
- Rasti
- Kopijuoti naudotojo vardą į iškarpinę
@@ -1030,30 +1099,6 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų
Nustatymai
-
-
- Atlikti automatinį rinkimą
-
-
-
- Atverti URL
-
-
-
- Užrakinti duomenų bazes
-
-
-
- Antraštė
-
-
-
- URL
-
-
-
- Pastabos
- Rodyti įrankių juostą
@@ -1070,22 +1115,6 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų
Įrankiai
-
-
- Kopijuoti naudotojo vardą
-
-
-
- Kopijuoti slaptažodį
-
-
-
- Eksportuoti į CSV failą
-
-
-
- Taisyti duomenų bazę
- KeePass 2 duomenų bazė
@@ -1106,6 +1135,265 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų
Duomenų bazės rašymas nepavyko.
+
+
+ &Paskiausiai naudotos duomenų bazės
+
+
+
+ Pa&galba
+
+
+
+ Į&rašai
+
+
+
+ Kopijuoti &požymį į iškarpinę
+
+
+
+ &Grupės
+
+
+
+ R&odinys
+
+
+
+ &Baigti
+
+
+
+ &Apie
+
+
+
+ &Atverti duomenų bazę
+
+
+
+ Į&rašyti duomenų bazę
+
+
+
+ &Užverti duomenų bazę
+
+
+
+ &Nauja duomenų bazė
+
+
+
+ Sulieti su KeePassX duomenų baze
+
+
+
+ &Pridėti naują įrašą
+
+
+
+ &Rodyti/Taisyti įrašą
+
+
+
+ &Ištrinti įrašą
+
+
+
+ &Pridėti naują grupę
+
+
+
+ &Taisyti grupę
+
+
+
+ &Ištrinti grupę
+
+
+
+ Įraš&yti duomenų bazę kaip
+
+
+
+ Pakeisti &pagrindinį raktą
+
+
+
+ &Duomenų bazės nustatymai
+
+
+
+ &Importuoti KeePass 1 duomenų bazę
+
+
+
+ &Dublikuoti įrašą
+
+
+
+ &Rasti
+
+
+
+ Kopijuoti &naudotojo vardą
+
+
+
+ Kopijuoti &slaptažodį
+
+
+
+ &Nustatymai
+
+
+
+ &Atlikti automatinį rinkimą
+
+
+
+ Atverti &URL
+
+
+
+ &Užrakinti duomenų bazes
+
+
+
+ &Antraštė
+
+
+
+ &URL
+
+
+
+ &Pastabos
+
+
+
+ &Eksportuoti į CSV failą
+
+
+
+ Pa&taisyti duomenų bazę
+
+
+
+ Slaptažodžių generatorius
+
+
+
+ OptionDialog
+
+
+ Dialogas
+
+
+
+ Bendra
+
+
+
+ R&odyti pranešimą, kai reikalaujama prisijungimo duomenų
+
+
+
+ &Vietoj visų įrašų, skirtų visai sričiai,
+grąžinti tik geriausiai atitinkančius įrašus, skirtus URL
+
+
+
+ &Atitikti URL schemas
+Bus grąžinami įrašai tik su ta pačia schema (http://, https://, ftp://, ...)
+
+
+
+ Rikiuoti atitinkančius įrašus pagal na&udotojo vardą
+
+
+
+ Ša&linti iš aktyvios duomenų bazės visus bendrinamus šifravimo raktus
+
+
+
+ Šal&inti iš įrašų aktyvioje duomenų bazėje visus saugomus leidimus
+
+
+
+ Slaptažodžių generatorius
+
+
+
+ Išplėstiniai
+
+
+
+ Aktyvuokite tai tik tuo atveju, jeigu žinote ką darote!
+
+
+
+ Visada leisti &prieigą prie įrašų
+
+
+
+ Visada leisti įrašų at&naujinimą
+
+
+
+ Ieš&koti atitinkančių įrašų visose atvertose duomenų bazėse
+
+
+
+ Su klientu turi būti sujungta tik pasirinkta duomenų bazė!
+
+
+
+ &Taip pat grąžinti ir išplėstines eilutes, kurios prasideda "KPH: "
+
+
+
+ Šiems eilutės laukams automatiniai kūrimai ir atnaujinimai neprieinami!
+
+
+
+ HTTP prievadas:
+
+
+
+ Numatytasis prievadas: 19455
+
+
+
+ Už&klausti atrakinti duomenų bazę, jeigu ji yra užrakinta
+
+
+
+ Rikiuoti atitinkančius įrašus pagal &antraštę
+
+
+
+ Įjungti KeepassXC HTTP protokolą
+Tai reikalinga, norint prie savo duomenų bazių gauti prieigą iš ChromeIPass ar PassIFox
+
+
+
+ KeePassXC klausysis šio prievado ties 127.0.0.1
+
+
+
+ Nepavyksta susieti su privilegijuotais prievadais
+
+
+
+ Nepavyksta susieti su privilegijuotais prievadais žemiau 1024!
+Naudojamas numatytasis prievadas 19455.
+ PasswordGeneratorWidget
@@ -1113,10 +1401,6 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų
Slaptažodis:
-
-
- Ilgis:
- Simbolių tipai
@@ -1141,71 +1425,72 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų
Pašalinti panašiai atrodančius simbolius
-
-
- Užtikrinti, kad slaptažodyje yra simboliai iš kiekvienos grupės
- Priimti
-
-
- QCommandLineParser
-
- Rodo versijos informaciją.
+
+ %p%
-
- Rodo šią pagalbą.
+
+ stiprumas
-
- Nežinoma parinktis "%1".
+
+ entropija
-
- Nežinomos parinktys: %1.
+
+ &Ilgis:
-
- Trūksta reikšmės po "%1".
+
+ Parinkti simbolius iš kiekvienos grupės
-
- Netikėta reikšmė po "%1".
+
+ Generuoti
-
- [parinktys]
+
+ Užverti
-
- Naudojimas: %1
+
+ Taikyti
-
- Parinktys:
+
+ Entropija: %1 bit
-
- Argumentai:
+
+ Slaptažodžio kokybė: %1
+
+
+
+ Blogas
+
+
+
+ Silpnas
+
+
+
+ Geras
+
+
+
+ Puikus
- QSaveFile
+ QObject
-
- Esamas failas %1 nėra įrašomas
-
-
-
- Programa atšaukė įrašymą
-
-
-
- Dalinis įrašymas. Pilnas skaidinys?
+
+ Http
@@ -1245,20 +1530,112 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų
SearchWidget
-
- Rasti:
+
+ Skirti raidžių dydį
-
- Skiriant raidžių registrą
+
+ Ieškoti
-
- Esama grupė
+
+ Rasti
-
- Šakninė grupė
+
+ Išvalyti
+
+
+
+ Service
+
+
+ Bendrinamas šifravimo raktas, pavadinimu "%1" jau yra.
+Ar norite jį perrašyti?
+
+
+
+ Ar norite atnaujinti informaciją ties %1 - %2?
+
+
+
+ Aktyvi duomenų bazė yra užrakinta!
+Prašome atrakinti pasirinktą duomenų bazę arba pasirinkti kitą, kuri būtų atrakinta.
+
+
+
+ Sėkmingai pašalinta %1 šifravimo-%2 iš KeePassX/Http nustatymų.
+
+
+
+ KeePassHttp nustatymuose nerasta jokių bendrinamų šifravimo raktų.
+
+
+
+ Aktyvioje duomenų bazėje nėra KeePassHttp nustatymų įrašo.
+
+
+
+ Šalinami saugomi leidimai...
+
+
+
+ Nutraukti
+
+
+
+ Leidimai sėkmingai pašalinti iš %1 %2.
+
+
+
+ Aktyvioje duomenų bazėje nėra įrašo su leidimais.
+
+
+
+ KeePassXC: Naujo rakto susiejimo užklausa
+
+
+
+ Jūs gavote susiejimo užklausą aukščiau esančiam raktui.
+Jei norite leisti jam gauti prieigą prie savo KeePassXC
+duomenų bazės, suteikite jam unikalų pavadinimą, kad atpažintumėte
+ir priimtumėte jį.
+
+
+
+ KeePassXC: Perrašyti esamą raktą?
+
+
+
+ KeePassXC: Atnaujinti įrašą
+
+
+
+ KeePassXC: Duomenų bazė užrakinta!
+
+
+
+ KeePassXC: Pašalinti raktai iš duomenų bazės
+
+
+
+ KeePassXC: Raktų nerasta
+
+
+
+ KeePassXC: Nustatymai neprieinami!
+
+
+
+ KeePassXC: Pašalinti leidimai
+
+
+
+ KeePassXC: Nerasta jokių įrašų su leidimais!
@@ -1282,10 +1659,6 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų
Prisiminti paskutines duomenų bazes
-
-
- Paleidžiant programą, atverti ankstesnes duomenų bazes
- Išeinant, automatiškai įrašyti
@@ -1327,12 +1700,20 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų
Prisiminti paskutinius rakto failus
-
-
+
+ Paleidžiant programą, įkelti ankstesnes duomenų bazes
-
-
+
+ Išoriškai modifikavus duomenų bazę, automatiškai įkelti ją iš naujo
+
+
+
+ Neužverti lango, bet vietoj to, suskleisti jį į sistemos dėklą
+
+
+
+ Paleidus programą, suskleisti langą
@@ -1357,6 +1738,14 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų
Visuomet klausti prieš atliekant automatinį rinkimą
+
+
+ Suskleidus langą, užrakinti duomenų bazes
+
+
+
+ Nereikalauti pakartoti slaptažodį, kai šis yra matomas
+ UnlockDatabaseWidget
@@ -1374,14 +1763,6 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų
main
-
-
- KeePassX - daugiaplatformė slaptažodžių tvarkytuvė
-
-
-
- norimos atverti slaptažodžių duomenų bazės failo pavadinimas (*.kdbx)
- kelias į tinkintą konfigūracijos failą
@@ -1390,5 +1771,17 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų
duomenų bazės rakto failas
+
+
+ norimos atverti slaptažodžių duomenų bazės(-ių) failo pavadinimas(-ai) (*.kdbx)
+
+
+
+ KeePassXC - daugiaplatformė slaptažodžių tvarkytuvė
+
+
+
+ nuskaityti duomenų bazės slaptažodį iš stdin
+
\ No newline at end of file
diff --git a/share/translations/keepassx_pt_BR.ts b/share/translations/keepassx_pt_BR.ts
index 07400920e..22acf42be 100644
--- a/share/translations/keepassx_pt_BR.ts
+++ b/share/translations/keepassx_pt_BR.ts
@@ -1,14 +1,6 @@
-
+AboutDialog
-
-
- Sobre KeePassX
-
-
-
- KeePassX é distribuído nos termos da Licença Pública Geral (GPL), versão 2 ou (à sua escolha) versão 3, do GNU.
- Revisão
@@ -17,17 +9,56 @@
Usando:
+
+
+ Sobre KeePassXC
+
+
+
+ KeePassXC é distribuído nos termos da Licença Pública Geral (GPL), versão 2 ou (à sua escolha) versão 3, do GNU.
+
+
+
+ Extensões:
+
+
+
+
+ AccessControlDialog
+
+
+ Lembrar esta escolha
+
+
+
+ Permitir
+
+
+
+ Negar
+
+
+
+ %1 solicitou acesso a senhas para o(s) seguinte(s) iten(s).
+Selecione se deseja permitir o acesso.
+
+
+
+ KeePassXC HTTP Confirmar Acesso
+ AutoType
-
-
- Auto-Digitação - KeePassX
- Não foi possível localizar uma entrada que corresponda ao título da janela:
+
+
+ Auto-Digitação - KeePassXC
+ AutoTypeAssociationsModel
@@ -46,14 +77,14 @@
AutoTypeSelectDialog
-
-
- Auto-Digitação - KeePassX
- Escolha uma entrada para Auto-Digitar:
+
+
+ Auto-Digitação - KeePassXC
+ ChangeMasterKeyWidget
@@ -319,12 +350,6 @@ Salvar alterações?
trancado
-
-
- O banco de dados que você está tentando abrir está bloqueado por outra instância do KeePassX.
-Você quer abri-lo de qualquer forma? Alternativamente, o banco de dados é aberto como somente leitura.
- Trancar Banco de Dados
@@ -368,14 +393,24 @@ Descartar alterações e fechar mesmo assim?
Falha ao gravar arquivo CSV.
-
- O banco de dados que você está tentando salvar como está travado por uma outra instância de KeePassX.
-Você deseja salvá-lo mesmo assim?
+
+ Não foi possível abrir o banco de dados.
-
-
+
+ A base de dados que você está tentando abrir está bloqueada por outra instância de KeePassXC.
+Mesmo assim deseja abrir? Alternativamente, a base de dados é aberta somente para leitura.
+
+
+
+ Juntar banco de dados
+
+
+
+ A base de dados que você está tentando abrir está bloqueada por outra instância de KeePassXC.
+Mesmo assim deseja salvá-la?
@@ -416,10 +451,6 @@ Você deseja salvá-lo mesmo assim?
Você realmente quer apagar o grupo "%1" para sempre?
-
-
- Grupo atual
- Erro
@@ -430,11 +461,71 @@ Você deseja salvá-lo mesmo assim?
-
+ Mover entrada para a lixeira?
-
+ Pretende realmente mover a entrada "%1" para a lixeira?
+
+
+
+ Pesquisando...
+
+
+
+ Nenhuma base de dados atual.
+
+
+
+ Nenhuma base de dados de origem, nada a fazer.
+
+
+
+ Resultados da Pesquisa (%1)
+
+
+
+ Sem Resultados
+
+
+
+ Executar comando?
+
+
+
+ Você quer realmente executar o comando seguinte?<br><br>%1<br>
+
+
+
+ Lembrar minha escolha
+
+
+
+ Recarregar Automaticamente Pedido
+
+
+
+ A base de dados foi alterada. Deseja carregar as alterações?
+
+
+
+ Juntar Pedido
+
+
+
+ A base de dados foi alterada e tem alterações não gravadas. Deseja juntar as suas alterações?
+
+
+
+ Carregamento Automático Falhou
+
+
+
+ Não foi possível analisar ou desbloquear o novo arquivo da base de dados ao tentar recarregar automaticamente essa base de dados.
+
+
+
+ Não foi possível abrir a nova base de dados ao tentar recarregar automaticamente essa base de dados.
@@ -625,10 +716,6 @@ Você deseja salvá-lo mesmo assim?
Repetir:
-
-
- Gerar
- URL:
@@ -746,17 +833,25 @@ Você deseja salvá-lo mesmo assim?
Não é possível apagar o ícone!
-
-
- Não é possível apagar o ícone. Ainda usado por %n item.Não é possível apagar o ícone. Ainda usado por %n itens.
-
-
+ Erro
-
-
+
+ Baixar favicon
+
+
+
+ Não foi possível obter favicon.
+
+
+
+ Não foi possível ler ícone
+
+
+
+ Não é possível apagar ícone. Ainda usado por %1 itens.
@@ -778,6 +873,13 @@ Você deseja salvá-lo mesmo assim?
Uuid:
+
+ Entry
+
+
+ - Clone
+
+EntryAttributesModel
@@ -830,6 +932,61 @@ Você deseja salvá-lo mesmo assim?
Lixeira
+
+ HttpPasswordGeneratorWidget
+
+
+ Comprimento:
+
+
+
+ Tipo de Caracteres
+
+
+
+ Letras Maiúsculas
+
+
+
+ A-Z
+
+
+
+ Letras Minúsculas
+
+
+
+ a-z
+
+
+
+ Números
+
+
+
+ 0-9
+
+
+
+ Caracteres Especiais
+
+
+
+ /*_& ...
+
+
+
+ Excluir caracteres semelhantes
+
+
+
+ Verificar se a senha contém caracteres de todos os grupos
+
+
+
+ Aceitar
+
+KeePass1OpenWidget
@@ -873,7 +1030,7 @@ Você deseja salvá-lo mesmo assim?
-
+ Chave errada ou base de dados corrompida.
@@ -912,8 +1069,8 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp
Erro fatal enquanto testava as funções criptográficas.
-
- KeePassX - Erro
+
+ KeePassXC - Erro
@@ -922,102 +1079,14 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp
Banco de Dados
-
-
- Bancos de dados recentes
-
-
-
- Ajuda
-
-
-
- Entradas
-
-
-
- Copiar atributo para a área de transferência
-
-
-
- Grupos
-
-
-
- Ver
-
-
-
- Sair
-
-
-
- Sobre
- Abrir banco de dados
-
-
- Salvar banco de dados
-
-
-
- Fechar banco de dados
-
-
-
- Novo banco de dados
-
-
-
- Adicionar nova entrada
-
-
-
- Ver/Editar entrada
-
-
-
- Excluir entrada
-
-
-
- Adicionar novo grupo
-
-
-
- Editar grupo
-
-
-
- Excluir grupo
-
-
-
- Salvar banco de dados como
-
-
-
- Alterar chave-mestra
- Configurações do Banco de Dados
-
-
- Importar banco de dados KeePass1
-
-
-
- Clonar entrada
-
-
-
- Localizar
- Copiar nome de usuário para área de transferência
@@ -1030,30 +1099,6 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp
Configurações
-
-
- Realizar Auto-Digitação
-
-
-
- Abrir URL
-
-
-
- Trancar bancos de dados
-
-
-
- Título
-
-
-
- URL
-
-
-
- Notas
- Mostrar barra de ferramentas
@@ -1070,22 +1115,6 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp
Ferramentas
-
-
- Copiar nome de usuário
-
-
-
- Copiar senha
-
-
-
- Exportar para arquivo CSV
-
-
-
- Reparar banco de dados
- Banco de dados Keepass 2
@@ -1106,6 +1135,265 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp
Escrita do banco de dados falhou.
+
+
+ &Bancos de dados recentes
+
+
+
+ &Ajuda
+
+
+
+ E&ntradas
+
+
+
+ Copiar at&ributo para área de transferência
+
+
+
+ &Grupos
+
+
+
+ &Ver
+
+
+
+ &Sair
+
+
+
+ &Sobre
+
+
+
+ &Abrir base de dados
+
+
+
+ &Salvar base de dados
+
+
+
+ &Fechar base de dados
+
+
+
+ &Nova base de dados
+
+
+
+ Juntar base de dados a partir de KeePassX
+
+
+
+ &Adicionar nova entrada
+
+
+
+ &Ver/Editar entrada
+
+
+
+ &Apagar entrada
+
+
+
+ &Adicionar novo grupo
+
+
+
+ &Editar grupo
+
+
+
+ &Apagar grupo
+
+
+
+ Sal&var base de dados como
+
+
+
+ Alterar chave &mestra
+
+
+
+ &Definições da base de dados
+
+
+
+ &Importar base de dados KeePass 1
+
+
+
+ &Clonar entrada
+
+
+
+ &Encontrar
+
+
+
+ Copiar nome de &usuário
+
+
+
+ Cop&iar senha
+
+
+
+ &Configurações
+
+
+
+ &Executar escrita automática
+
+
+
+ &Abrir URL
+
+
+
+ &Trancar base de dados
+
+
+
+ &Título
+
+
+
+ &URL
+
+
+
+ &Notas
+
+
+
+ &Exportar para arquivo CSV
+
+
+
+ Re¶r banco de dados
+
+
+
+ Gerador de Senha
+
+
+
+ OptionDialog
+
+
+ Diálogo
+
+
+
+ Geral
+
+
+
+ M&ostrar uma notificação quando as credenciais forem solicitadas
+
+
+
+ &Mostrar apenas as melhores entradas correspondentes para um URL em vez de
+todas as entradas para o domínio completo
+
+
+
+ &Esquemas de URL coincidentes
+Somente entradas com o mesmo esquema (http://, https://, ftp://, ...) são mostradas
+
+
+
+ Ordenar entradas coincidentes por nome de &usuário
+
+
+
+ R&emover todas as chaves criptografadas compartilhadas da base de dados ativa
+
+
+
+ R&emover todas as permissões armazenadas de entradas na base de dados ativa
+
+
+
+ Gerador de senha
+
+
+
+ Avançado
+
+
+
+ Ativar apenas os seguintes, se souber o que está fazendo!
+
+
+
+ Permitir sempre &acesso as entradas
+
+
+
+ Permitir sempre &atualizar as entradas
+
+
+
+ Procurar em todas as base de dados abertas por entradas semel&hantes
+
+
+
+ Somente a base de dados selecionada tem que ser conectada com um cliente!
+
+
+
+ &Mostrar também campos avançados que começam com "KPH: "
+
+
+
+ Criação automática ou atualizações não são suportadas para os valores dos campos!
+
+
+
+ Porta HTTP:
+
+
+
+ Porta padrão: 19455
+
+
+
+ Pe&dir para desbloquear a base de dados se estiver bloqueada
+
+
+
+ Ordenar &entradas por título
+
+
+
+ Habilitar KeepassXC protocolo HTTP
+Isso é necessário para acessar os seus bancos de dados de ChromeIPass ou de PassIFox
+
+
+
+ KeePassXC irá escutar esta porta em 127.0.0.1
+
+
+
+ Não é possível ligar a portas privilegiadas
+
+
+
+ Não é possível ligar a portas privilegiadas abaixo de 1024!
+Usando porta padrão 19455.
+ PasswordGeneratorWidget
@@ -1113,10 +1401,6 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp
Senha:
-
-
- Tamanho:
- Tipos de Caracteres
@@ -1141,71 +1425,72 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp
Excluir caracteres similares
-
-
- Assegurar que a senha contenha caracteres de todos os grupos
- Aceitar
-
-
- QCommandLineParser
-
- Mostrar informações da versão.
+
+ %p%
-
- Mostrar esta ajuda.
+
+ força
-
- Opção desconhecida '%1'.
+
+ entropia
-
- Opções desconhecidas: %1.
+
+ &Tamanho:
-
- Falta valor após '%1'.
+
+ Selecione caracteres de todos os grupos
-
- Valor inesperado após '%1'.
+
+ Gerar
-
- [opções]
+
+ Fechar
-
- Utilização: %1
+
+ Aplicar
-
- Opções:
+
+ Entropia: %1 bit
-
- Argumentos:
+
+ Qualidade da senha: %1
+
+
+
+ Pobre
+
+
+
+ Fraco
+
+
+
+ Bom
+
+
+
+ Excelente
- QSaveFile
+ QObject
-
- O arquivo existente %1 não é gravável
-
-
-
- Escrita cancelada pelo aplicativo
-
-
-
- Escrita parcial. Partição cheia?
+
+ Http
@@ -1245,20 +1530,111 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp
SearchWidget
-
- Localizar:
-
-
-
+
Diferenciar maiúsculas e minúsculas
-
- Grupo atual
+
+ Pesquisar
-
- Grupo Raiz
+
+ Localizar
+
+
+
+ Limpar
+
+
+
+ Service
+
+
+ Já existe uma chave de criptografia compartilhada com o nome "%1".
+Deseja substituí-la?
+
+
+
+ Deseja atualizar as informações em %1 - %2?
+
+
+
+ A base de dados ativa está bloqueada!
+Desbloqueie base de dados selecionada ou escolha outra que esteja desbloqueada.
+
+
+
+ Removido com sucesso %1 criptografia-%2 do KeePassX/Http Configurações.
+
+
+
+ Nenhuma chave de criptografia compartilhada encontrada nas Configurações do KeePassHttp.
+
+
+
+ A base de dados ativa não contém uma entrada de Configurações KeePassHttp.
+
+
+
+ Removendo permissões armazenadas...
+
+
+
+ Cancelar
+
+
+
+ Foram removidas com êxito as permissões de %1 %2.
+
+
+
+ A base de dados ativa não contém uma entrada com permissões.
+
+
+
+ KeePassXC: Nova associação de chaves requisitada
+
+
+
+ Recebeu uma solicitação de associação para a chave acima.
+Se quiser permitir o acesso a sua base de dados KeePassXC
+dar-lhe um nome único para identificá-lo e aceitá-lo.
+
+
+
+ KeePassXC: Substituir chave existente?
+
+
+
+ KeePassXC: Atualizar entrada
+
+
+
+ KeePassXC: Banco de dados bloqueado!
+
+
+
+ KeePassXC: Chaves removidas do banco de dados
+
+
+
+ KeePassXC: Nenhuma chave localizada
+
+
+
+ KeePassXC: Configurações não disponíveis!
+
+
+
+ KeePassXC: Permissões removidas
+
+
+
+ KeePassXC: Nenhuma entrada com permissões localizada!
@@ -1282,10 +1658,6 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp
Lembrar dos últimos bancos de dados
-
-
- Abrir bancos de dados anteriores na inicialização
- Salvar automaticamente ao sair
@@ -1327,12 +1699,20 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp
Lembrar dos últimos arquivos-chave
-
-
+
+ Abrir bancos de dados anteriores na inicialização
-
-
+
+ Automaticamente recarregar o banco de dados quando houver modificações externas
+
+
+
+ Ocultar janela na bandeja de sistema em vez de sair do programa
+
+
+
+ Iniciar programa com janela minimizada
@@ -1357,6 +1737,14 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp
Sempre perguntar antes de realizar auto-digitação
+
+
+ Bloquear bancos de dados após minimizar a janela
+
+
+
+ Quando a senha for visível não pedir para repeti-la
+ UnlockDatabaseWidget
@@ -1374,14 +1762,6 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp
main
-
-
- KeePassX - gerenciador de senhas multiplataforma
-
-
-
- nome de arquivo do banco de dados de senhas a ser aberto (*.kdbx)
- caminho para um arquivo de configuração personalizado
@@ -1390,5 +1770,17 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp
arquivo-chave do banco de dados
+
+
+ nome(s) de arquivo(s) do banco de dados de senhas a ser aberto (*.kdbx)
+
+
+
+ KeePassXC - gerenciador de senhas multiplataforma
+
+
+
+ ler a senha do banco de dados da entrada padrão
+
\ No newline at end of file
diff --git a/share/translations/keepassx_ru.ts b/share/translations/keepassx_ru.ts
index 733d64c85..f3321c9b3 100644
--- a/share/translations/keepassx_ru.ts
+++ b/share/translations/keepassx_ru.ts
@@ -1,14 +1,6 @@
-
+AboutDialog
-
-
- О KeePassX
-
-
-
- KeePassX распространяется на условиях Стандартной общественной лицензии GNU (GPL) версии 2 или (на ваше усмотрение) версии 3.
- Ревизия
@@ -17,17 +9,55 @@
С помощью:
+
+
+ О KeePassXC
+
+
+
+ KeePassXC распространяется на условиях Стандартной общественной лицензии GNU (GPL) версии 2 или (на ваше усмотрение) версии 3.
+
+
+
+ Расширения:
+
+
+
+
+ AccessControlDialog
+
+
+ Запомнить это решение
+
+
+
+ Разрешить
+
+
+
+ Запретить
+
+
+
+ %1 запросил доступ к паролям для следующего элемента(ов). Выберете, хотите ли вы разрешить доступ.
+
+
+
+ Подтверждение доступа KeePassXC HTTP
+ AutoType
-
-
- Автоввод — KeePassX
- Невозможно найти запись, соответствующую заголовку окна:
+
+
+ Автоввод — KeePassXC
+ AutoTypeAssociationsModel
@@ -46,14 +76,14 @@
AutoTypeSelectDialog
-
-
- Автоввод — KeePassX
- Выберите запись для автоввода:
+
+
+ Автоввод — KeePassXC
+ ChangeMasterKeyWidget
@@ -187,7 +217,7 @@
-
+ Хранилище открылось. Больше нечего делать.
@@ -319,11 +349,6 @@ Save changes?
заблокировано
-
-
- Хранилище, которое Вы хотите открыть, заблокировано другой запущенной копией KeePassX. Всё равно открыть? В качестве альтернативы хранилище будет открыто в режиме для чтения.
- Заблокировать хранилище
@@ -367,14 +392,24 @@ Discard changes and close anyway?
Не удалось записать CSV файл.
-
- Данное хранилище заблокировано другой запущенной копией KeePassX.
-Вы уверены, что хотите продолжить сохранение?
+
+ Не удаётся открыть хранилище.
-
-
+
+ Хранилище, которое Вы хотите открыть, заблокировано другой запущенной копией KeePassXC.
+Всё равно открыть? В качестве альтернативы хранилище будет открыто в режиме для чтения.
+
+
+
+ Объединить хранилище
+
+
+
+ Хранилище, которые вы пытаетесь сохранить, заблокировано другим экземпляром KeePassXC.
+Хотите сохранить во всех случаях?
@@ -415,10 +450,6 @@ Do you want to save it anyway?
Вы действительно хотите навсегда удалить группу «%1»?
-
-
- Текущая группа
- Ошибка
@@ -429,11 +460,71 @@ Do you want to save it anyway?
-
+ Переместить запись в корзину?
-
+ Действительно переместить запись "%1" в корзину?
+
+
+
+ Поиск...
+
+
+
+ Нет текущего хранилища.
+
+
+
+ Нет исходного хранилища, нечего обрабатывать.
+
+
+
+ Результаты поиска (%1)
+
+
+
+ Нет результатов
+
+
+
+ Выполнить комманду?
+
+
+
+ Вы действительно хотите выполнить следующую команду?<br><br>%1<br>
+
+
+
+ Запомнить выбор
+
+
+
+ Запрос на автоматическую загрузку
+
+
+
+ Хранилище было изменено. Вы хотите загрузить изменения?
+
+
+
+ Запрос на слияние
+
+
+
+ Файл хранилища был изменён, а так же присутствуют несохранённые изменения. Вы хотите объеденить изменения?
+
+
+
+ Ошибка автоматической загрузки
+
+
+
+ Не удаётся разобрать или разблокировать новый файл хранилища при попытке автоматической загрузки этого хранилища.
+
+
+
+ Не удаётся открыть новый файл хранилища при попытке автоматической загрузки этого файла.
@@ -624,10 +715,6 @@ Do you want to save it anyway?
Пароль ещё раз:
-
-
- Генеральный.
- URL:
@@ -745,17 +832,25 @@ Do you want to save it anyway?
Не могу удалить значок!
-
-
- Не могу удалить иконку, %n запись всё ещё использует её.Не могу удалить иконку, %n записи всё ещё использует её.Не могу удалить иконку, %n записей всё ещё использует её.Не могу удалить значок, %n записей всё ещё использует его.
-
-
+ Ошибка
-
-
+
+ Скачать значок сайта
+
+
+
+ Не удалось получить значок сайта
+
+
+
+ Не могу прочитать значок
+
+
+
+ Не удается удалить значок, она продолжает использоваться %1 записями.
@@ -777,6 +872,13 @@ Do you want to save it anyway?
Uuid:
+
+ Entry
+
+
+ - Колинировать
+
+EntryAttributesModel
@@ -829,6 +931,61 @@ Do you want to save it anyway?
Корзина
+
+ HttpPasswordGeneratorWidget
+
+
+ Длина:
+
+
+
+ Виды символов
+
+
+
+ Заглавные буквы
+
+
+
+ A-Z
+
+
+
+ Строчные буквы
+
+
+
+ a-z
+
+
+
+ Цифры
+
+
+
+ 0-9
+
+
+
+ Особые символы
+
+
+
+ /*_& ...
+
+
+
+ Исключить выглядящие похожие символы
+
+
+
+ Убедитесь, что пароль содержит символы всех видов
+
+
+
+ Принять
+
+KeePass1OpenWidget
@@ -872,7 +1029,7 @@ Do you want to save it anyway?
-
+ Неверный ключ или файл хранилища повреждён.
@@ -911,8 +1068,8 @@ This is a one-way migration. You won't be able to open the imported databas
Неисправимая ошибка в процессе тестирования криптографических функций.
-
- KeePassX — Ошибка
+
+ KeePassXC — Ошибка
@@ -921,102 +1078,14 @@ This is a one-way migration. You won't be able to open the imported databas
Хранилище
-
-
- Недавние хранилища
-
-
-
- Помощь
-
-
-
- Записи
-
-
-
- Скопировать атрибут в буфер обмена
-
-
-
- Группы
-
-
-
- Вид
-
-
-
- Выход
-
-
-
- О программе
- Открыть хранилище
-
-
- Сохранить хранилище
-
-
-
- Закрыть хранилище
-
-
-
- Новое хранилище
-
-
-
- Добавить новую запись
-
-
-
- Посмотреть/редактировать запись
-
-
-
- Удалить запись
-
-
-
- Добавить новую группу
-
-
-
- Редактировать группу
-
-
-
- Удалить группу
-
-
-
- Сохранить хранилище как
-
-
-
- Сменить мастер-пароль
- Параметры хранилища
-
-
- Импортировать хранилище KeePass 1
-
-
-
- Клонировать запись
-
-
-
- Найти
- Скопировать имя пользователя в буфер обмена
@@ -1029,30 +1098,6 @@ This is a one-way migration. You won't be able to open the imported databas
Настройки
-
-
- Произвести автоввод
-
-
-
- Открыть URL
-
-
-
- Заблокировать хранилище
-
-
-
- Заголовок
-
-
-
- URL
-
-
-
- Примечания
- Показать панель инструментов
@@ -1069,25 +1114,9 @@ This is a one-way migration. You won't be able to open the imported databas
Инструменты
-
-
- Скопировать имя пользователя
-
-
-
- Скопировать пароль
-
-
-
- Экспортировать в файл CSV
-
-
-
- Восстановление хранилища
-
-
+ Хранилище KeePass 2
@@ -1103,7 +1132,265 @@ This is a one-way migration. You won't be able to open the imported databas
-
+ Не удалось записать хранилище.
+
+
+
+ Недавние хранилища
+
+
+
+ Помощь
+
+
+
+ &Записи
+
+
+
+ Скопировать атрибут в буфер обмена
+
+
+
+ Группы
+
+
+
+ Вид
+
+
+
+ Выход
+
+
+
+ О программе
+
+
+
+ Открыть хранилище
+
+
+
+ Сохранить хранилище
+
+
+
+ Закрыть хранилище
+
+
+
+ Новое хранилище
+
+
+
+ Объединить из хранилища KeePassX
+
+
+
+ Добавить новую запись
+
+
+
+ Посмотреть/редактировать запись
+
+
+
+ Удалить запись
+
+
+
+ Добавить новую группу
+
+
+
+ Редактировать группу
+
+
+
+ Удалить группу
+
+
+
+ Сохранить хранилище как
+
+
+
+ Изменить мастер-пароль
+
+
+
+ Параметры хранилища
+
+
+
+ Импортировать хранилище KeePass 1
+
+
+
+ Клонировать запись
+
+
+
+ Найти
+
+
+
+ Скопировать имя пользователя
+
+
+
+ Скопировать пароль
+
+
+
+ Настройки
+
+
+
+ Произвести автоввод
+
+
+
+ Открыть URL
+
+
+
+ Заблокировать хранилище
+
+
+
+ Заголовок
+
+
+
+ URL
+
+
+
+ Примечания
+
+
+
+ Экспортировать в файл CSV
+
+
+
+ Восстановление хранилища
+
+
+
+ Генератор паролей
+
+
+
+ OptionDialog
+
+
+ Диалог
+
+
+
+ Общие
+
+
+
+ Показывать уведомление при запросе данных для входа
+
+
+
+ Возвращать только наиболее совпавшие с URL записи, а не все записи для домена
+
+
+
+ Совпадение со схемой URL
+Возвращать только записи с соответствующей схемой (http://, https://, ftp://, ...)
+
+
+
+ Сортировать совпавшие записи по &имени пользователя
+
+
+
+ Удалить все общие ключи шифрования из активного хранилища
+
+
+
+ Удалить все сохраненные права доступа из активного хранилища
+
+
+
+ Генератор паролей
+
+
+
+ Расширенные
+
+
+
+ Включайте эти настройки только если знаете что делаете!
+
+
+
+ Всегда разрешать доступ к записям
+
+
+
+ Всегда разрешать обновление записей
+
+
+
+ Искать соответствующие записи по всем открытым хранилищам
+
+
+
+ Только выбранное хранилище должно быть соединено с клиентом!
+
+
+
+ Возвращать дополнительные строковые поля, начинающиеся с "KPH: "
+
+
+
+ Автоматическое создание или обновление не поддерживается строковыми полями!
+
+
+
+ Порт HTTP:
+
+
+
+ Порт по умолчанию: 19455
+
+
+
+ Запрашивать разблокировку хранилища, если оно заблокировано
+
+
+
+ Сортировать совпавшие записи по названию
+
+
+
+ Включить протокол KeepassXC HTTP
+Это требуется для доступа к хранилищам из ChromeIPass или PassIFox
+
+
+
+ KeePassXC будет слушать указнный порт на 127.0.0.1
+
+
+
+ Не удается выполнить привязку к привилегированным портам
+
+
+
+ Не удается привязать к привилегированные порты ниже 1024!
+Используется порт по умолчанию 19455.
@@ -1112,10 +1399,6 @@ This is a one-way migration. You won't be able to open the imported databas
Пароль:
-
-
- Длина:
- Виды символов
@@ -1140,71 +1423,72 @@ This is a one-way migration. You won't be able to open the imported databas
Исключить похожие символы
-
-
- Убедитесь, что пароль содержит символы всех видов
- Принять
-
-
- QCommandLineParser
-
- Показывает информацию о версии.
+
+ %p%
-
- Показывает эту справку.
+
+ надёжность
-
- Неизвестная опция «%1».
+
+ энтропия
-
- Неизвестные опции %1.
+
+ Длина:
-
- Пропущено значение после «%1».
+
+ Выберете символы из каждой группы
-
- Непредвиденное значение после «%1».
+
+ Генерировать
-
- [опции]
+
+ Закрыть
-
- Использование: %1
+
+ Применить
-
- Опции:
+
+ Энтропия: %1 бит
-
- Аргументы:
+
+ Качество пароля: %1
+
+
+
+ Плохой
+
+
+
+ Слабый
+
+
+
+ Хороший
+
+
+
+ Отличный
- QSaveFile
+ QObject
-
- Существующий файл %1 непригоден для записи
-
-
-
- Запись отменена приложением
-
-
-
- Частичная запись. Раздел переполнен?
+
+ Http
@@ -1244,20 +1528,110 @@ This is a one-way migration. You won't be able to open the imported databas
SearchWidget
-
- Найти:
-
-
-
+
Чувствительно к регистру
-
- Текущая группа
+
+ Поиск
-
- Корневая группа
+
+ Найти
+
+
+
+ Очистить
+
+
+
+ Service
+
+
+ Общий ключ шифрования с именем "%1" уже существует.
+Вы хотите его перезаписать?
+
+
+
+ Вы хотите обновить информацию в %1 - %2?
+
+
+
+ Активное хранилище заблокировано!
+Разблокируйте выбранное хранилище или выберите другое, незаблокированное.
+
+
+
+ Успешно удалено %1 шифрование-%2 из настроек KeePassXC/Http.
+
+
+
+ Не найдено общих ключей шифрования в настройках KeePassHttp.
+
+
+
+ Активное хранилизе не содержит записей настроек KeePassHttp.
+
+
+
+ Удаляются сохранённые права доступа...
+
+
+
+ Отмена
+
+
+
+ Права доступа из %1 %2 успешно удалены.
+
+
+
+ Активное хранилище не содержит записей с назначенными правами доступа.
+
+
+
+ KeePassXC: Запрос на ассоциацию нового ключа
+
+
+
+ Вы получили запрос на ассоциацию указанного ключа.
+Если вы хотите разрешить доступ к вашему хранилищу KeePassXC, дайте ему уникальное имя и примите запрос.
+
+
+
+ KeePassXC: Перезаписать существующий ключ?
+
+
+
+ KeePassXC: Обновить запись
+
+
+
+ KeePassXC: Хранилище заблокировано!
+
+
+
+ KeePassXC: Ключи удалены из хранилища
+
+
+
+ KeePassXC: Ключи не найдены
+
+
+
+ KeePassXC% Настройки недоступны!
+
+
+
+ KeePassXC: Права доступа удалены
+
+
+
+ KeePassXC: Не найдено записей с назначенными правами доступа!
@@ -1281,10 +1655,6 @@ This is a one-way migration. You won't be able to open the imported databas
Помнить последнее хранилище
-
-
- Открывать предыдущее хранилище при запуске
- Автоматически сохранять при выходе
@@ -1326,12 +1696,20 @@ This is a one-way migration. You won't be able to open the imported databas
Запоминать последние файл-ключи
-
-
+
+ Открывать предыдущие хранилища при запуске
-
-
+
+ Автоматически перечитывать хранилище при его изменении внешними приложениями
+
+
+
+ Прятать окно в системный лоток вместо выхода
+
+
+
+ Сворачивать окно при запуске приложения
@@ -1356,6 +1734,14 @@ This is a one-way migration. You won't be able to open the imported databas
Всегда спрашивать перед тем, как производить автоввод
+
+
+ Заблокировать хранилище при сворачивании окна
+
+
+
+ Не требовать поворный ввод пароля когда он показывается
+ UnlockDatabaseWidget
@@ -1373,14 +1759,6 @@ This is a one-way migration. You won't be able to open the imported databas
main
-
-
- KeePassX — кросс-платформенный менеджер паролей
-
-
-
- имя файла открываемого хранилища паролей (*.kdbx)
- путь к своему файлу настроек
@@ -1389,5 +1767,17 @@ This is a one-way migration. You won't be able to open the imported databas
файл-ключ хранилища
+
+
+ имена(имя) файлов хранилищ(а) для открытия (*.kdbx)
+
+
+
+ KeePassXC — кросс-платформенный менеджер паролей
+
+
+
+ читать пароли хранилища из стандартного ввода "stdin"
+
\ No newline at end of file
diff --git a/share/windows/installer-header.bmp b/share/windows/installer-header.bmp
new file mode 100644
index 000000000..f9e17cae7
Binary files /dev/null and b/share/windows/installer-header.bmp differ
diff --git a/share/windows/installer-wizard.bmp b/share/windows/installer-wizard.bmp
new file mode 100644
index 000000000..76d04518f
Binary files /dev/null and b/share/windows/installer-wizard.bmp differ
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 30332c71e..8c3948842 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -218,6 +218,7 @@ target_link_libraries(${PROGNAME}
Qt5::Widgets
Qt5::Network
${GCRYPT_LIBRARIES}
+ ${GPGERROR_LIBRARIES}
${ZLIB_LIBRARIES})
set_target_properties(${PROGNAME} PROPERTIES ENABLE_EXPORTS ON)
@@ -257,9 +258,25 @@ if(APPLE)
endif()
if(MINGW)
- set(CPACK_GENERATOR "ZIP")
+ string(REPLACE "AMD" "Win" OUTPUT_FILE_POSTFIX "${CMAKE_HOST_SYSTEM_PROCESSOR}")
+ set(CPACK_GENERATOR "ZIP;NSIS")
set(CPACK_STRIP_FILES ON)
- set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSXC_VERSION_NUM}")
+ set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSXC_VERSION}-${OUTPUT_FILE_POSTFIX}")
+ set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROGNAME})
+ set(CPACK_PACKAGE_VERSION ${KEEPASSXC_VERSION})
+ set(CPACK_PACKAGE_VENDOR "${PROGNAME} Team")
+ string(REGEX REPLACE "/" "\\\\\\\\" CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/share/windows/installer-header.bmp")
+ set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.GPL-2")
+ set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/share/windows/keepassxc.ico")
+ set(CPACK_NSIS_MUI_UNIICON "${CPACK_NSIS_MUI_ICON}")
+ set(CPACK_NSIS_INSTALLED_ICON_NAME "\\\\${PROGNAME}.exe")
+ string(REGEX REPLACE "/" "\\\\\\\\" CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP "${CMAKE_SOURCE_DIR}/share/windows/installer-wizard.bmp")
+ set(CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP "${CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP}")
+ set(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\${PROGNAME}.lnk' '$INSTDIR\\\\${PROGNAME}.exe'")
+ set(CPACK_NSIS_DELETE_ICONS_EXTRA "Delete '$SMPROGRAMS\\\\$START_MENU\\\\${PROGNAME}.lnk'")
+ set(CPACK_NSIS_URL_INFO_ABOUT "https://keepassxc.org")
+ set(CPACK_NSIS_PACKAGE_NAME "${PROGNAME} v${KEEPASSXC_VERSION}")
+ set(CPACK_NSIS_MUI_FINISHPAGE_RUN "../${PROGNAME}.exe")
include(CPack)
install(CODE "
@@ -267,5 +284,9 @@ if(MINGW)
" COMPONENT Runtime)
include(DeployQt4)
- install_qt4_executable(${PROGNAME}.exe "qjpeg;qgif;qico;qtaccessiblewidgets")
+ install_qt4_executable(${PROGNAME}.exe)
+ add_custom_command(TARGET ${PROGNAME} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${Qt5Core_DIR}/../../../share/qt5/plugins/platforms/qwindows$<$:d>.dll
+ $)
+ install(FILES $/qwindows$<$:d>.dll DESTINATION "platforms")
endif()
diff --git a/src/gui/DatabaseTabWidget.cpp b/src/gui/DatabaseTabWidget.cpp
index a227cdbeb..0c784eb2f 100644
--- a/src/gui/DatabaseTabWidget.cpp
+++ b/src/gui/DatabaseTabWidget.cpp
@@ -246,7 +246,7 @@ bool DatabaseTabWidget::closeDatabase(Database* db)
QMessageBox::StandardButton result =
MessageBox::question(
this, tr("Close?"),
- tr("\"%1\" is in edit mode.\nDiscard changes and close anyway?").arg(dbName),
+ tr("\"%1\" is in edit mode.\nDiscard changes and close anyway?").arg(dbName.toHtmlEscaped()),
QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Cancel);
if (result == QMessageBox::Cancel) {
return false;
@@ -262,7 +262,7 @@ bool DatabaseTabWidget::closeDatabase(Database* db)
QMessageBox::StandardButton result =
MessageBox::question(
this, tr("Save changes?"),
- tr("\"%1\" was modified.\nSave changes?").arg(dbName),
+ tr("\"%1\" was modified.\nSave changes?").arg(dbName.toHtmlEscaped()),
QMessageBox::Yes | QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Yes);
if (result == QMessageBox::Yes) {
if (!saveDatabase(db)) {
diff --git a/src/gui/DatabaseWidget.cpp b/src/gui/DatabaseWidget.cpp
index f1ab04109..4a1298deb 100644
--- a/src/gui/DatabaseWidget.cpp
+++ b/src/gui/DatabaseWidget.cpp
@@ -344,7 +344,7 @@ void DatabaseWidget::deleteEntries()
result = MessageBox::question(
this, tr("Delete entry?"),
tr("Do you really want to delete the entry \"%1\" for good?")
- .arg(selectedEntries.first()->title()),
+ .arg(selectedEntries.first()->title().toHtmlEscaped()),
QMessageBox::Yes | QMessageBox::No);
}
else {
@@ -368,7 +368,7 @@ void DatabaseWidget::deleteEntries()
result = MessageBox::question(
this, tr("Move entry to recycle bin?"),
tr("Do you really want to move entry \"%1\" to the recycle bin?")
- .arg(selectedEntries.first()->title()),
+ .arg(selectedEntries.first()->title().toHtmlEscaped()),
QMessageBox::Yes | QMessageBox::No);
}
else {
@@ -573,7 +573,7 @@ void DatabaseWidget::deleteGroup()
QMessageBox::StandardButton result = MessageBox::question(
this, tr("Delete group?"),
tr("Do you really want to delete the group \"%1\" for good?")
- .arg(currentGroup->name()),
+ .arg(currentGroup->name().toHtmlEscaped()),
QMessageBox::Yes | QMessageBox::No);
if (result == QMessageBox::Yes) {
delete currentGroup;
diff --git a/src/gui/EditWidgetIcons.cpp b/src/gui/EditWidgetIcons.cpp
index e0ac5227b..145957ab9 100644
--- a/src/gui/EditWidgetIcons.cpp
+++ b/src/gui/EditWidgetIcons.cpp
@@ -190,6 +190,10 @@ void EditWidgetIcons::abortFaviconDownload(bool clearRedirect)
void EditWidgetIcons::onRequestFinished(QNetworkReply *reply)
{
+ if (m_database == nullptr) {
+ return;
+ }
+
if (!reply->error()) {
QImage image;
image.loadFromData(reply->readAll());
diff --git a/src/gui/PasswordGeneratorWidget.cpp b/src/gui/PasswordGeneratorWidget.cpp
index 6495d83a2..4a4b438e3 100644
--- a/src/gui/PasswordGeneratorWidget.cpp
+++ b/src/gui/PasswordGeneratorWidget.cpp
@@ -45,11 +45,15 @@ PasswordGeneratorWidget::PasswordGeneratorWidget(QWidget* parent)
connect(m_ui->optionButtons, SIGNAL(buttonClicked(int)), SLOT(updateGenerator()));
- // set font size of password quality and entropy labels dynamically to 80% of the default font size
+ // set font size of password quality and entropy labels dynamically to 80% of
+ // the default font size, but make it no smaller than 8pt
QFont defaultFont;
- defaultFont.setPointSize(static_cast(defaultFont.pointSize() * 0.8f));
- m_ui->entropyLabel->setFont(defaultFont);
- m_ui->strengthLabel->setFont(defaultFont);
+ int smallerSize = static_cast(defaultFont.pointSize() * 0.8f);
+ if (smallerSize >= 8) {
+ defaultFont.setPointSize(smallerSize);
+ m_ui->entropyLabel->setFont(defaultFont);
+ m_ui->strengthLabel->setFont(defaultFont);
+ }
loadSettings();
reset();
@@ -132,8 +136,10 @@ void PasswordGeneratorWidget::updatePasswordStrength(const QString& password)
void PasswordGeneratorWidget::generatePassword()
{
- QString password = m_generator->generatePassword();
- m_ui->editNewPassword->setText(password);
+ if (m_generator->isValid()) {
+ QString password = m_generator->generatePassword();
+ m_ui->editNewPassword->setText(password);
+ }
}
void PasswordGeneratorWidget::applyPassword()
@@ -279,5 +285,11 @@ void PasswordGeneratorWidget::updateGenerator()
m_generator->setCharClasses(classes);
m_generator->setFlags(flags);
+ if (m_generator->isValid()) {
+ m_ui->buttonGenerate->setEnabled(true);
+ } else {
+ m_ui->buttonGenerate->setEnabled(false);
+ }
+
regeneratePassword();
}
diff --git a/src/gui/PasswordGeneratorWidget.ui b/src/gui/PasswordGeneratorWidget.ui
index a2e798abf..b7413f56b 100644
--- a/src/gui/PasswordGeneratorWidget.ui
+++ b/src/gui/PasswordGeneratorWidget.ui
@@ -104,11 +104,6 @@ QProgressBar::chunk {
30
-
-
- 8
-
- strength
@@ -144,11 +139,6 @@ QProgressBar::chunk {
0
-
-
- 8
-
- entropy
@@ -295,6 +285,12 @@ QProgressBar::chunk {
+
+
+ 0
+ 26
+
+ Qt::StrongFocus
@@ -314,6 +310,12 @@ QProgressBar::chunk {
+
+
+ 0
+ 26
+
+ Qt::StrongFocus
diff --git a/src/gui/entry/EditEntryWidget.cpp b/src/gui/entry/EditEntryWidget.cpp
index f3535f9b0..f2372a0d5 100644
--- a/src/gui/entry/EditEntryWidget.cpp
+++ b/src/gui/entry/EditEntryWidget.cpp
@@ -272,14 +272,15 @@ void EditEntryWidget::loadEntry(Entry* entry, bool create, bool history, const Q
m_history = history;
if (history) {
- setHeadline(QString("%1 > %2").arg(parentName, tr("Entry history")));
+ setHeadline(QString("%1 > %2").arg(parentName.toHtmlEscaped(), tr("Entry history")));
}
else {
if (create) {
- setHeadline(QString("%1 > %2").arg(parentName, tr("Add entry")));
+ setHeadline(QString("%1 > %2").arg(parentName.toHtmlEscaped(), tr("Add entry")));
}
else {
- setHeadline(QString("%1 > %2 > %3").arg(parentName, entry->title(), tr("Edit entry")));
+ setHeadline(QString("%1 > %2 > %3").arg(parentName.toHtmlEscaped(),
+ entry->title().toHtmlEscaped(), tr("Edit entry")));
}
}
diff --git a/src/http/Service.cpp b/src/http/Service.cpp
index ceec292d6..0ac0fd836 100644
--- a/src/http/Service.cpp
+++ b/src/http/Service.cpp
@@ -480,7 +480,8 @@ void Service::updateEntry(const QString &, const QString &uuid, const QString &l
//ShowNotification(QString("%0: You have an entry change prompt waiting, click to activate").arg(requestId));
if ( HttpSettings::alwaysAllowUpdate()
|| QMessageBox::warning(0, tr("KeePassXC: Update Entry"),
- tr("Do you want to update the information in %1 - %2?").arg(QUrl(url).host()).arg(u),
+ tr("Do you want to update the information in %1 - %2?")
+ .arg(QUrl(url).host().toHtmlEscaped()).arg(u.toHtmlEscaped()),
QMessageBox::Yes|QMessageBox::No) == QMessageBox::Yes ) {
entry->beginUpdate();
entry->setUsername(login);
diff --git a/src/main.cpp b/src/main.cpp
index a94d65eaa..224e54d1e 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -28,6 +28,16 @@
#include "gui/MainWindow.h"
#include "gui/MessageBox.h"
+#ifdef QT_STATIC
+#include
+
+#ifdef Q_OS_WIN
+Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
+#elif Q_OS_LINUX
+Q_IMPORT_PLUGIN(QXcbIntegrationPlugin)
+#endif
+#endif
+
int main(int argc, char** argv)
{
#ifdef QT_NO_DEBUG
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 0ea73b2fe..5840a5b4b 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -92,6 +92,7 @@ set(TEST_LIBRARIES
Qt5::Widgets
Qt5::Test
${GCRYPT_LIBRARIES}
+ ${GPGERROR_LIBRARIES}
${ZLIB_LIBRARIES}
)
diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt
index 846e39230..83f00b4bc 100644
--- a/utils/CMakeLists.txt
+++ b/utils/CMakeLists.txt
@@ -20,6 +20,7 @@ target_link_libraries(kdbx-extract
keepassx_core
Qt5::Core
${GCRYPT_LIBRARIES}
+ ${GPGERROR_LIBRARIES}
${ZLIB_LIBRARIES})
add_executable(kdbx-merge kdbx-merge.cpp)
@@ -27,6 +28,7 @@ target_link_libraries(kdbx-merge
keepassx_core
Qt5::Core
${GCRYPT_LIBRARIES}
+ ${GPGERROR_LIBRARIES}
${ZLIB_LIBRARIES})
diff --git a/utils/entropy-meter.cpp b/utils/entropy-meter.cpp
index a5e6e50e9..74f6bc11a 100644
--- a/utils/entropy-meter.cpp
+++ b/utils/entropy-meter.cpp
@@ -101,9 +101,10 @@ int main(int argc, char **argv)
break;
}
}
- if (line[0])
+ if (line[0]) {
calculate(line,advanced);
printf("> ");
+ }
}
}
else