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 - - About KeePassX - O KeePassX - - - KeePassX is distributed under the term of the GNU General Public License (GPL) version 2 or (at your option) version 3. - KeePassX je šířeno za podmínek licence GNU General Public License (GPL) verze 2 a (případně) 3. - Revision Revize @@ -17,17 +9,56 @@ Using: S použitím: + + About KeePassXC + O aplikaci KeePassXC + + + KeePassXC is distributed under the term of the GNU General Public License (GPL) version 2 or (at your option) version 3. + KeePassXC je šířeno pod GNU obecnou veřejnou licencí (GPL) verze 2 a (případně) 3. + + + Extensions: + + Rozšíření: + + + + + AccessControlDialog + + Remember this decision + Zapamatovat si toto rozhodnutí + + + Allow + Povolit + + + Deny + Zamítnout + + + %1 has requested access to passwords for the following item(s). +Please select whether you want to allow access. + %1 si vyžádalo přístup k heslům u následujících položek. +Umožnit přístup? () + + + KeePassXC HTTP Confirm Access + Potvrzení přístupu KeePassXC HTTP + AutoType - - Auto-Type - KeePassX - Automatické vyplňování – KeePassX - Couldn't find an entry that matches the window title: Nedaří se nalézt položku, která by se shodovala s titulkem okna: + + Auto-Type - KeePassXC + Automatické vyplňování – KeePassXC + AutoTypeAssociationsModel @@ -46,14 +77,14 @@ AutoTypeSelectDialog - - Auto-Type - KeePassX - Automatické vyplňování – KeePassX - Select entry to Auto-Type: Vyberte položku, kterou se bude automaticky vyplňovat: + + Auto-Type - KeePassXC + Automatické vyplňování – KeePassXC + ChangeMasterKeyWidget @@ -319,16 +350,6 @@ Uložit změny? locked zamčeno - - The database you are trying to open is locked by another instance of KeePassX. -Do you want to open it anyway? Alternatively the database is opened read-only. - 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? - Lock database Uzamknout databázi @@ -372,14 +393,24 @@ Přesto zavřít a zahodit změny? Zápis do CSV souboru se nezdařil. - The database you are trying to save as is locked by another instance of KeePassX. -Do you want to save it anyway? - Databáze, kterou se pokoušíte uložit, je uzamčena jinou instancí KeePassX. -Přesto uložit? + Unable to open the database. + Nepodařilo se otevřít databázi. - Unable to open the database. - + The database you are trying to open is locked by another instance of KeePassXC. +Do you want to open it anyway? Alternatively the database is opened read-only. + 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í. + + + Merge database + Sloučit databáze + + + The database you are trying to save as is locked by another instance of KeePassXC. +Do you want to save it anyway? + 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? Do you really want to delete the group "%1" for good? Opravdu chcete nenávratně smazat skupinu „%1“? - - Current group - Stávající skupina - Error Chyba @@ -434,11 +461,71 @@ Přesto uložit? Move entry to recycle bin? - + Přesunout položku do koše? Do you really want to move entry "%1" to the recycle bin? - + Opravdu si přejete přesunout položku "%1" do koše? + + + Searching... + Hledání… + + + No current database. + Aktuálně žádná databáze. + + + No source database, nothing to do. + Není zvolena zdrojová databáze, není co dělat. + + + Search Results (%1) + Výsledky vyhledávání (%1) + + + No Results + Žádné výsledky + + + Execute command? + Spustit příkaz? + + + Do you really want to execute the following command?<br><br>%1<br> + Opravdu chcete spustit následující příkaz?<br><br>%1<br> + + + Remember my choice + Zapamatovat si pro příště + + + Autoreload Request + Požadavek na automatické opětovné načtení + + + The database file has changed. Do you want to load the changes? + Soubor s databází byl změněn. Přejete si načíst změny? + + + Merge Request + Požadavek na sloučení + + + The database file has changed and you have unsaved changes.Do you want to merge your changes? + 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? + + + Autoreload Failed + Automatické opětovné načtení se nezdařilo + + + Could not parse or unlock the new database file while attempting to autoreload this database. + Nepodařilo se zpracovat nebo odemknout nový soubor s databází během pokusu o její opětovné načtení. + + + Could not open the new database file while attempting to autoreload this database. + 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? Repeat: Zopakování hesla: - - Gen. - Tvoř - URL: URL adresa: @@ -750,17 +833,25 @@ Přesto uložit? Can't delete icon! Ikonu nelze smazat! - - Can't delete icon. Still used by %n item(s). - 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. - Error - + Chyba - Can't read icon: - + Download favicon + Stáhnout favicon + + + Unable to fetch favicon. + Favicon se nepodařilo stáhnout. + + + Can't read icon + Nepodařilo se načíst ikonu + + + Can't delete icon. Still used by %1 items. + 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 + + - Clone + - Klon + + EntryAttributesModel @@ -834,6 +932,61 @@ Přesto uložit? Koš + + HttpPasswordGeneratorWidget + + Length: + Délka: + + + Character Types + Typy znaků + + + Upper Case Letters + Velká písmena + + + A-Z + A-Z + + + Lower Case Letters + Malá písmena + + + a-z + a-z + + + Numbers + Čísla + + + 0-9 + 0-9 + + + Special Characters + Zvláštní znaky + + + /*_& ... + /*_& ... + + + Exclude look-alike characters + Vyloučit podobné znaky + + + Ensure that the password contains characters from every group + Heslo musí obsahovat znak z každé skupiny + + + Accept + Přijmout + + KeePass1OpenWidget @@ -877,7 +1030,7 @@ Přesto uložit? Wrong key or database file is corrupt. - + 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 - Error - KeePassX – chyba + KeePassXC - Error + KeePassXC – chyba @@ -926,102 +1079,14 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev Database Databáze - - Recent databases - Nedávno otevřené databáze - - - Help - Nápověda - - - Entries - Položky - - - Copy attribute to clipboard - Zkopírovat atribut do schránky - - - Groups - Skupiny - - - View - Zobrazit - - - Quit - Ukončit aplikaci - - - About - O aplikaci - Open database Otevřít databázi - - Save database - Uložit databázi - - - Close database - Zavřít databázi - - - New database - Nová databáze - - - Add new entry - Přidat novou položku - - - View/Edit entry - Zobrazit/upravit položku - - - Delete entry - Smazat položku - - - Add new group - Přidat novou skupinu - - - Edit group - Upravit skupinu - - - Delete group - Smazat skupinu - - - Save database as - Uložit databázi jako - - - Change master key - Změnit hlavní klíč - Database settings Nastavení databáze - - Import KeePass 1 database - Importovat databázi aplikace KeePass verze 1 - - - Clone entry - Klonovat položku - - - Find - Najít - Copy username to clipboard 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 Settings Nastavení - - Perform Auto-Type - Provést automatické vyplnění - - - Open URL - Otevřít URL adresu - - - Lock databases - Uzamknout databáze - - - Title - Titulek - - - URL - URL adresa - - - Notes - Poznámky - Show toolbar Zobrazit lištu nástrojů @@ -1074,22 +1115,6 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev Tools Nástroje - - Copy username - Zkopírovat uživatelské jméno - - - Copy password - Zkopírovat heslo - - - Export to CSV file - Exportovat do CSV souboru - - - Repair database - Opravit databázi - KeePass 2 Database 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 Writing the database failed. Zápis do databáze se nezdařil. + + &Recent databases + Nedávno otevřené databáze + + + He&lp + Nápověda + + + E&ntries + Položky + + + Copy att&ribute to clipboard + Zkopí&rovat atribut do schránky + + + &Groups + Skupniny + + + &View + Zobrazit + + + &Quit + Ukončit + + + &About + O &aplikaci + + + &Open database + &Otevřít databázi + + + &Save database + Uložit databázi + + + &Close database + Zavřít databázi + + + &New database + &Nová databáze + + + Merge from KeePassX database + Sloučit s databází KeePassX + + + &Add new entry + Přid&at novou položku + + + &View/Edit entry + Zobrazit/Upra&vit položku + + + &Delete entry + Smazat položku + + + &Add new group + Přid&at novou skupinu + + + &Edit group + Upravit skupinu + + + &Delete group + Smazat skupinu + + + Sa&ve database as + Uložit databázi jako + + + Change &master key + Z&měnit hlavní klíč + + + &Database settings + Nastavení &databáze + + + &Import KeePass 1 database + &Importovat databázi ve formátu KeePass 1 + + + &Clone entry + Klonovat položku + + + &Find + Najít + + + Copy &username + Zkopírovat &uživatelské jméno + + + Cop&y password + Zkopírovat heslo + + + &Settings + Na&stavení + + + &Perform Auto-Type + &Provést automatické vyplnění + + + &Open URL + &Otevřít URL adresu + + + &Lock databases + Uzamknout databázi + + + &Title + Nadpis + + + &URL + &URL adresa + + + &Notes + Poz&námky + + + &Export to CSV file + &Exportovat do CSV souboru + + + Re&pair database + O&pravit databázi + + + Password Generator + Generátor hesel + + + + OptionDialog + + Dialog + Dialog + + + General + Obecné + + + Sh&ow a notification when credentials are requested + Z&obrazit oznámení když jsou požadovány přihlašovací údaje + + + &Return only best matching entries for an URL instead +of all entries for the whole domain + V%rátit pouze položky, které nejlépe odpovídají dané +URL adrese namísto položek pro celou doménu + + + &Match URL schemes +Only entries with the same scheme (http://, https://, ftp://, ...) are returned + &Odpovídající schémata URL adres +Jsou vráceny pouze položky se stejným schématem (http://, https://, ftp://, atp.) + + + Sort matching entries by &username + Seřadit odpovídající položky dle &uživatelského jména + + + R&emove all shared encryption-keys from active database + Z právě otevřené databáze od&ebrat veškeré sdílené šifrovací klíče + + + Re&move all stored permissions from entries in active database + Z právě otevřené databáze odebrat veškerá uložená oprávnění + + + Password generator + Generátor hesel + + + Advanced + Pokročilé + + + Activate the following only, if you know what you are doing! + Následující zapněte pouze pokud víte, co děláte! + + + Always allow &access to entries + Vždy umožnit přístup k veškerým položkám + + + Always allow &updating entries + Vždy umožnit akt&ualizovat položky + + + Searc&h in all opened databases for matching entries + Vy&hledat odpovídající položky ve všech otevřených databázích + + + Only the selected database has to be connected with a client! + Je třeba, aby ke klientovi byly připojené pouze vybrané databáze! + + + &Return also advanced string fields which start with "KPH: " + V&rátit také pokročilé textové řetězce které začínají na „KPH:“ + + + Automatic creates or updates are not supported for string fields! + Automatická vytváření nebo aktualizace nejsou u textových kolonek podporované! + + + HTTP Port: + HTTP port: + + + Default port: 19455 + Výchozí port: 19455 + + + Re&quest to unlock the database if it is locked + Vyžádat odemknutí zamčené databáze + + + Sort &matching entries by title + Seřadit odpovídající položky dle názvu + + + Enable KeepassXC HTTP protocol +This is required for accessing your databases from ChromeIPass or PassIFox + Zapnout protokol KeePassXC HTTP +Toto je zapotřebí pro přístup do databáze z ChromeIPass nebo PassIFox + + + KeePassXC will listen to this port on 127.0.0.1 + Na tomto portu bude KeePassXC očekávat spojení na adrese 127.0.0.1 + + + Cannot bind to privileged ports + 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 + + + Cannot bind to privileged ports below 1024! +Using default port 19455. + 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 Password: Heslo: - - Length: - Délka: - Character Types Typy znaků @@ -1145,71 +1425,72 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev Exclude look-alike characters Vynechat podobně vypadající znaky (předejití záměně) - - Ensure that the password contains characters from every group - Zajistit, aby heslo obsahovalo znaky ze všech zvolených skupin znaků - Accept Přijmout - - - QCommandLineParser - Displays version information. - Zobrazí informace o verzi. + %p% + %p% - Displays this help. - Zobrazí tuto nápovědu. + strength + odolnost - Unknown option '%1'. - Neznámá předvolba %1. + entropy + náhodnost - Unknown options: %1. - Neznámé předvolby: %1. + &Length: + Dé&lka: - Missing value after '%1'. - Chybějící hodnota, následující za %1. + Pick characters from every group + Použít znaky ze všech skupin - Unexpected value after '%1'. - Neočekávaná hodnota, následující za %1. + Generate + Vytvořit - [options] - [předvolby] + Close + Zavřít - Usage: %1 - Použití: %1 + Apply + Použít - Options: - Předvolby: + Entropy: %1 bit + Náhodnost: %1 bit - Arguments: - Argumenty: + Password Quality: %1 + Odolnost hesla: %1 + + + Poor + Velmi nízká + + + Weak + Slabá + + + Good + Dobrá + + + Excellent + Skvělá - QSaveFile + QObject - Existing file %1 is not writable - Do stávajícího souboru %1 nelze zapisovat - - - Writing canceled by application - Zápis byl zrušen aplikací - - - Partial write. Partition full? - Zápis nebylo možné zcela dokončit. Nedostatek volného místa? + Http + Http @@ -1249,20 +1530,111 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev SearchWidget - Find: - Najít: + Case Sensitive + Rozlišovat velikost písmen - Case sensitive - Rozlišovat malá/velká písmena + Search + Hledat - Current group - Stávající skupina + Find + Najít - Root group - Kořenová skupina + Clear + Vyčistit + + + + Service + + A shared encryption-key with the name "%1" already exists. +Do you want to overwrite it? + Už existuje sdílený šifrovací klíč s názvem „%1“. +Přejete si ho přepsat? + + + Do you want to update the information in %1 - %2? + Přejete si aktualizovat informaci v %1 – %2? + + + The active database is locked! +Please unlock the selected database or choose another one which is unlocked. + Právě otevřená databáze je uzamčená! +Buď jí odemkněte, nebo vyberte jinou, odemčenou. + + + Successfully removed %1 encryption-%2 from KeePassX/Http Settings. + Z nastavení KeePassX/Http bylo úspěšně odebráno %1 šifrování-%2. + + + No shared encryption-keys found in KeePassHttp Settings. + V nastavení KeePassHttp nebyly nalezeny žádné sdílené šifrovací klíče. + + + The active database does not contain an entry of KeePassHttp Settings. + Právě otevřená databáze neobsahuje žádnou položku nastavení KeePassHttp. + + + Removing stored permissions... + Odstraňuji uložená oprávnění... + + + Abort + Přerušit + + + Successfully removed permissions from %1 %2. + Oprávnění %1 %2 úspěšně odebrána. + + + The active database does not contain an entry with permissions. + Právě otevřená databáze neobsahuje položku s oprávněními. + + + KeePassXC: New key association request + KeePassXC: nový požadavek na přiřazení klíče + + + You have received an association request for the above key. +If you would like to allow it access to your KeePassXC database +give it a unique name to identify and accept it. + 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: Overwrite existing key? + KeePassXC: Přepsat stávající klíč? + + + KeePassXC: Update Entry + KeePassXC: Aktualizovat položku + + + KeePassXC: Database locked! + KeePassXC: Databáze uzamčena! + + + KeePassXC: Removed keys from database + KeePassXC: Odebrány klíče z databáze + + + KeePassXC: No keys found + KeePassXC: Klíče nebyly nalezeny + + + KeePassXC: Settings not available! + KeePassXC: Nastavení nejsou k dispozici! + + + KeePassXC: Removed permissions + KeePassXC: Odebraná oprávnění + + + KeePassXC: No entry with permissions found! + 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 Remember last databases Pamatovat si nedávno otevřené databáze - - Open previous databases on startup - Při spuštění aplikace otevřít minule otevřené databáze - Automatically save on exit 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 Minimize when copying to clipboard - 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 Use group icon on entry creation @@ -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 - Hide window to system tray instead of App Exit - + Load previous databases on startup + Při spuštění aplikace načíst minule otevřené databáze - Hide window to system tray on App start - + Automatically reload the database when modified externally + V okamžiku zásahu do databáze zvenčí ji načíst znovu + + + Hide window to system tray instead of app exit + Namísto zavření minimalizovat okno aplikace do oznamovací oblasti systémového panelu + + + Minimize window at application startup + 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 Always ask before performing auto-type Před provedením automatického vyplnění se vždy dotázat + + Lock databases after minimizing the window + Při minimalizaci okna uzamknout databáze + + + Don't require password repeat when it is visible + 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 - cross-platform password manager - KeePassX – správce hesel, fungující napříč rozličnými operačními systémy - - - filename of the password database to open (*.kdbx) - který soubor s databází hesel (*.kdbx) otevřít - path to a custom config file 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 key file of the database soubor s klíčem k databázi + + filename(s) of the password database(s) to open (*.kdbx) + názvy databází s hesly (*.kdbx) které otevřít ()() + + + KeePassXC - cross-platform password manager + KeePassXC – aplikace pro správu hesel, fungující na vícero operačních systémech + + + read password of the database from stdin + 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 - - About KeePassX - Über KeePassX - - - KeePassX is distributed under the term of the GNU General Public License (GPL) version 2 or (at your option) version 3. - KeePassX steht unter der GNU General Public License (GPL) version 2 (version 3). - Revision Überarbeitung @@ -17,17 +9,56 @@ Using: In Benutzung: + + About KeePassXC + Über KeePassXC + + + KeePassXC is distributed under the term of the GNU General Public License (GPL) version 2 or (at your option) version 3. + KeePassXC steht unter der GNU General Public License (GPL) version 2 (version 3). + + + Extensions: + + Erweiterungen: + + + + + AccessControlDialog + + Remember this decision + Diese Entscheidung merken + + + Allow + Erlauben + + + Deny + Ablehnen + + + %1 has requested access to passwords for the following item(s). +Please select whether you want to allow access. + %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 Confirm Access + KeePassXC HTTP Erlaube Zugriff + AutoType - - Auto-Type - KeePassX - Auto-Type - KeePassX - Couldn't find an entry that matches the window title: Konnte keinen Eintrag finden, welcher mit dem Fenstertitel übereinstimmt: + + Auto-Type - KeePassXC + Auto-Type - KeePassXC + AutoTypeAssociationsModel @@ -46,14 +77,14 @@ AutoTypeSelectDialog - - Auto-Type - KeePassX - Auto-Type - KeePassX - Select entry to Auto-Type: Wählen Sie einen Eintrag für Auto-Type: + + Auto-Type - KeePassXC + Auto-Type - KeePassXC + ChangeMasterKeyWidget @@ -318,11 +349,6 @@ Save changes? locked gesperrt - - The database you are trying to open is locked by another instance of KeePassX. -Do you want to open it anyway? Alternatively the database is opened read-only. - 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. - Lock database Datenbank sperren @@ -366,14 +392,24 @@ Discard changes and close anyway? Die CSV Datei konnte nicht gespeichert werden. - The database you are trying to save as is locked by another instance of KeePassX. -Do you want to save it anyway? - Die Datenbank, die gespeichert werden soll, ist von einer anderen Instanz von KeePassX blockiert. -Soll sie dennoch gespeichert werden? + Unable to open the database. + Öffnen der Datenbank ist nicht möglich. - Unable to open the database. - + The database you are trying to open is locked by another instance of KeePassXC. +Do you want to open it anyway? Alternatively the database is opened read-only. + 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. + + + Merge database + Datenbank zusammenführen + + + The database you are trying to save as is locked by another instance of KeePassXC. +Do you want to save it anyway? + 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? Do you really want to delete the group "%1" for good? Wollen Sie die Gruppe "%1" wirklich löschen? - - Current group - Aktuelle Gruppe - Error Fehler @@ -428,11 +460,71 @@ Soll sie dennoch gespeichert werden? Move entry to recycle bin? - + Eintrag in den Papierkorb verschieben? Do you really want to move entry "%1" to the recycle bin? - + Möchten Sie wirklich Eintrag "%1" in den Papierkorb verschieben? + + + Searching... + Am suchen... + + + No current database. + Keine aktuelle Datenbank + + + No source database, nothing to do. + Keine Quelldatenbank, es gibt nichts zu tun. + + + Search Results (%1) + Suchergebnisse (%1) + + + No Results + Keine Ergebnisse + + + Execute command? + Befehl ausführen? + + + Do you really want to execute the following command?<br><br>%1<br> + Den folgenden Befehl wirklich ausführen?<br><br>%1<br> + + + Remember my choice + Meine Auswahl merken + + + Autoreload Request + Autoreload Anfrage + + + The database file has changed. Do you want to load the changes? + Die Datenbank wurde verändert. Möchten Sie die Änderungen laden? + + + Merge Request + Zusammenführ-Anfrage + + + The database file has changed and you have unsaved changes.Do you want to merge your changes? + Die Datenbank wurde verändert und Sie haben ungespeicherte Änderungen. Möchten Sie Ihre Änderungen zusammenfügen? + + + Autoreload Failed + Autoreload fehlgeschlagen + + + Could not parse or unlock the new database file while attempting to autoreload this database. + Kann Datenbank nicht durchsuchen oder entsperren während dem Autoreload-Versuch dieser Datenbank. + + + Could not open the new database file while attempting to autoreload this database. + Kann die Datenbank nicht öffnen während dem Versuch, diese Datenbank automatisch neu zu laden. @@ -622,10 +714,6 @@ Soll sie dennoch gespeichert werden? Repeat: Wiederholen: - - Gen. - Gen. - URL: URL: @@ -743,17 +831,25 @@ Soll sie dennoch gespeichert werden? Can't delete icon! Symbol kann nicht gelöscht werden! - - Can't delete icon. Still used by %n item(s). - 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. - Error - + Fehler - Can't read icon: - + Download favicon + Favicon herunterladen + + + Unable to fetch favicon. + Abrufen des Favicons nicht möglich + + + Can't read icon + Icon kann nicht gelesen werden + + + Can't delete icon. Still used by %1 items. + 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 + + - Clone + - Klone + + EntryAttributesModel @@ -827,6 +930,61 @@ Soll sie dennoch gespeichert werden? Papierkorb + + HttpPasswordGeneratorWidget + + Length: + Länge: + + + Character Types + Zeichenarten + + + Upper Case Letters + Großbuchstaben + + + A-Z + A-Z + + + Lower Case Letters + Kleinbuchstaben + + + a-z + a-z + + + Numbers + Zahlen + + + 0-9 + 0-9 + + + Special Characters + Sonderzeichen + + + /*_& ... + /*_& ... + + + Exclude look-alike characters + Gleich aussehende Zeichen ausschließen + + + Ensure that the password contains characters from every group + Sicherstellen, dass das Passwort Zeichen aus allen Gruppen enthält. + + + Accept + Akzeptieren + + KeePass1OpenWidget @@ -870,7 +1028,7 @@ Soll sie dennoch gespeichert werden? Wrong key or database file is corrupt. - + 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 - Error - KeePassX - Fehler + KeePassXC - Error + KeePassXC - Fehler @@ -919,102 +1077,14 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann Database Datenbank - - Recent databases - Aktuelle Datenbanken - - - Help - Hilfe - - - Entries - Einträge - - - Copy attribute to clipboard - Eingenschaft in die Zwischenablage kopieren - - - Groups - Gruppen - - - View - Ansicht - - - Quit - Beenden - - - About - Über - Open database Datenbank öffnen - - Save database - Datenbank speichern - - - Close database - Datenbank schließen - - - New database - Neue Datenbank - - - Add new entry - Neuen Eintrag hinzufügen - - - View/Edit entry - Eintrag anzeigen/bearbeiten - - - Delete entry - Eintrag löschen - - - Add new group - Neue Gruppe hinzufügen - - - Edit group - Gruppe bearbeiten - - - Delete group - Gruppe löschen - - - Save database as - Datenbank speichern als - - - Change master key - Hauptschlüssel ändern - Database settings Datenbankeinstellungen - - Import KeePass 1 database - KeePass 1 Datenbank importieren - - - Clone entry - Eintrag klonen - - - Find - Suchen - Copy username to clipboard Benutzername in die Zwischenablage kopieren @@ -1027,30 +1097,6 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann Settings Einstellungen - - Perform Auto-Type - Auto-Type ausführen - - - Open URL - URL öffnen - - - Lock databases - Datenbank sperren - - - Title - Titel - - - URL - URL - - - Notes - Notizen - Show toolbar Symbolleiste anzeigen @@ -1067,22 +1113,6 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann Tools Tools - - Copy username - Benutzername kopieren - - - Copy password - Passwort kopieren - - - Export to CSV file - Als CSV Datei exportieren - - - Repair database - Datenbank reparieren - KeePass 2 Database KeePass 2 Datenbank @@ -1103,6 +1133,265 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann Writing the database failed. Schreiben der Datenbank fehlgeschlagen. + + &Recent databases + &Letzte Datenbanken + + + He&lp + Hi&lfe + + + E&ntries + Ei&nträge + + + Copy att&ribute to clipboard + Eigenschaft in &Zwischenablage kopieren + + + &Groups + &Gruppen + + + &View + &Ansicht + + + &Quit + &Beenden + + + &About + &Über + + + &Open database + &Öffne Datenbank + + + &Save database + Datenbank &speichern + + + &Close database + &Datenbank schließen + + + &New database + &Neue Datenbank + + + Merge from KeePassX database + Von KeePassX-Datenbank zusammenführen + + + &Add new entry + Neuen Eintrag &hinzufügen + + + &View/Edit entry + Eintrag &anzeigen/bearbeiten + + + &Delete entry + Eintrag &löschen + + + &Add new group + &Neue Gruppe hinzufügen + + + &Edit group + Gruppe b&earbeiten + + + &Delete group + Gruppe &löschen + + + Sa&ve database as + Datenbank s&peichern als + + + Change &master key + &Hauptschlüssel ändern + + + &Database settings + &Datenbankeinstellungen + + + &Import KeePass 1 database + &KeePass 1 Datenbank importieren + + + &Clone entry + Eintrag &klonen + + + &Find + &Suchen + + + Copy &username + &Benutzername kopieren + + + Cop&y password + Passwort kop&ieren + + + &Settings + &Einstellungen + + + &Perform Auto-Type + &Auto-Type ausführen + + + &Open URL + URL &öffnen + + + &Lock databases + Datenbank &sperren + + + &Title + &Titel + + + &URL + &URL + + + &Notes + &Notizen + + + &Export to CSV file + Als CSV Datei &exportieren + + + Re&pair database + Datenbank re&parieren + + + Password Generator + Passwortgenerator + + + + OptionDialog + + Dialog + Dialog + + + General + Allgemein + + + Sh&ow a notification when credentials are requested + Zeig&e eine Benachrichtigung, wenn Anmeldedaten angefordert werden. + + + &Return only best matching entries for an URL instead +of all entries for the whole domain + Zeige nur die passendsten Einträge für eine URL, statt +alle Einträge der ganzen Domäne. + + + &Match URL schemes +Only entries with the same scheme (http://, https://, ftp://, ...) are returned + Passendes URL Schema +Nur Einträge mit dem gleichen Schema (hhtp://, https://, ftp://, ...) werden angezeigt + + + Sort matching entries by &username + Sortiere gefundene Einträge nach &Benutzername + + + R&emove all shared encryption-keys from active database + Entferne alle freigegebenen Chiffrierschlüssel aus der aktiven Datenbank + + + Re&move all stored permissions from entries in active database + Entferne alle gespeicherten Berechtigungen von Einträgen in der aktiven Datenbank + + + Password generator + Passwortgenerator + + + Advanced + Fortgeschritten + + + Activate the following only, if you know what you are doing! + Aktivieren Sie das Nachfolgende nur dann, wenn Sie sich sicher sind, was sie tun! + + + Always allow &access to entries + &Zugriff auf Einträge immer erlauben + + + Always allow &updating entries + &Aktualisierung von Einträgen immer erlauben + + + Searc&h in all opened databases for matching entries + Suche in allen offenen Datenbanken nach übereinstimmenden Einträgen + + + Only the selected database has to be connected with a client! + Nur die ausgewählte Datenbank muss mit dem Client verbunden sein. + + + &Return also advanced string fields which start with "KPH: " + Zeige auch erweiterte Zeichenfelder, welche mit "KPH: " beginnen + + + Automatic creates or updates are not supported for string fields! + Automatisches Erstellen und Aktualisieren von Zeichenfeldern wird nicht unterstützt! + + + HTTP Port: + HTTP Port: + + + Default port: 19455 + Standard Port:19455 + + + Re&quest to unlock the database if it is locked + Verlange Entsperrung, wenn die Datenbank gesperrt ist. + + + Sort &matching entries by title + Sortiere gefundene Einträge nach Titel + + + Enable KeepassXC HTTP protocol +This is required for accessing your databases from ChromeIPass or PassIFox + Aktiviere KeePassXC HTTP Protokoll +Dies wird benötigt um von ChromeIPass oder PassIFox auf Deine Datenbank zu zugreifen + + + KeePassXC will listen to this port on 127.0.0.1 + KeePassXC überwacht diesen Port auf 127.0..0.1 + + + Cannot bind to privileged ports + Kann nicht zu privilegierte Ports verbinden + + + Cannot bind to privileged ports below 1024! +Using default port 19455. + 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 Password: Passwort: - - Length: - Länge: - Character Types Zeichenarten @@ -1138,71 +1423,72 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann Exclude look-alike characters Gleich aussehende Zeichen ausschließen - - Ensure that the password contains characters from every group - Sicher stellen, dass das Passwort Zeichen aller Gruppen enthält - Accept Akzeptieren - - - QCommandLineParser - Displays version information. - Versionsinformationen anzeigen. + %p% + %p% - Displays this help. - Zeigt diese Hilfe an. + strength + Stärke - Unknown option '%1'. - Unbekannte Option '%1'. + entropy + Entropie - Unknown options: %1. - Unbekannte Optionen: '%1'. + &Length: + &Länge: - Missing value after '%1'. - Fehlender Wert nach '%1'. + Pick characters from every group + Zeichen aus allen Gruppen wählen - Unexpected value after '%1'. - Unerwarteter Wert nach '%1'. + Generate + Generiere - [options] - [Optionen] + Close + Schließen - Usage: %1 - Verwendung: %1 + Apply + Anwenden - Options: - Optionen: + Entropy: %1 bit + Entropie: %1 bit - Arguments: - Argumente: + Password Quality: %1 + Passwort Qualität: %1 + + + Poor + Schlecht + + + Weak + Schwach + + + Good + Gut + + + Excellent + Exzellent - QSaveFile + QObject - Existing file %1 is not writable - Bestehende Datei(en) %1 ist nicht schreibbar - - - Writing canceled by application - Schreiben von der Applikation abgebrochen - - - Partial write. Partition full? - Unvollständiger Schreibvorgang. Partition voll? + Http + Http @@ -1242,20 +1528,112 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann SearchWidget - Find: - Suchen nach: + Case Sensitive + Groß- /Kleinschreibung beachten - Case sensitive - Groß-/Kleinschreibung unterscheiden + Search + Suche - Current group - Aktuelle Gruppe + Find + Suchen - Root group - Root-Gruppe + Clear + löschen + + + + Service + + A shared encryption-key with the name "%1" already exists. +Do you want to overwrite it? + Ein freigegebener Chiffrierschlüssel mit dem Namen "%1" existiert schon. +Willst Du ihn überschreiben? + + + Do you want to update the information in %1 - %2? + Möchten Sie wirklich die Informationen in %1 - %2 aktualisieren? + + + The active database is locked! +Please unlock the selected database or choose another one which is unlocked. + Die aktive Datenbank ist gesperrt! +Bitte entsperren Sie die markierte Datenbank oder wählen Sie eine andere, die entsperrt ist. + + + Successfully removed %1 encryption-%2 from KeePassX/Http Settings. + %1 Verschlüsselungs-%2 erfolgreich von KeePassX/Http Einstellungen entfernt. + + + No shared encryption-keys found in KeePassHttp Settings. + Kein freigegebener Chiffrierschlüssel in den KeePassHttp-Einstellungen gefunden. + + + The active database does not contain an entry of KeePassHttp Settings. + Die aktive Datenbank enthält keinen Eintrag für KeePassHttp Einstellungen. + + + Removing stored permissions... + Gespeicherte Berechtigungen werden gelöscht... + + + Abort + Abbrechen + + + Successfully removed permissions from %1 %2. + Berechtigungen wurden von %1 %2 erfolgreich gelöscht. + + + The active database does not contain an entry with permissions. + The aktive Datenbank enthält keinen Eintrag mit Zugangsdaten. + + + KeePassXC: New key association request + KeePassXC: Neue Schlüsselverbindungsanfrage + + + You have received an association request for the above key. +If you would like to allow it access to your KeePassXC database +give it a unique name to identify and accept it. + 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: Overwrite existing key? + KeePassXC: Bestehenden Schlüssel überschreiben? + + + KeePassXC: Update Entry + KeePassXC: Eintrag aktualisiert + + + KeePassXC: Database locked! + KeePassXC: Datenbank gesperrt! + + + KeePassXC: Removed keys from database + KeePassXC: Entfernte Schlüssel von der Datenbank + + + KeePassXC: No keys found + KeePassXC: Kein Schlüssel gefunden + + + KeePassXC: Settings not available! + KeePassXC: Einstellung nicht verfügbar! + + + KeePassXC: Removed permissions + KeePassXC: Entfernte Zugangsdaten + + + KeePassXC: No entry with permissions found! + KeePassXC: Kein Eintrag mit Zugangsdaten gefunden! @@ -1279,10 +1657,6 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann Remember last databases Letzte Datenbank merken - - Open previous databases on startup - Letzte Datenbank beim Starten öffnen - Automatically save on exit 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 - Hide window to system tray instead of App Exit - Fenster zu Taskleistensymbol minimieren statt Programm beenden + Load previous databases on startup + Letzte Datenbank beim Starten laden - Hide window to system tray on App start - Fenster zu Taskleistensymbol minimieren wenn Programm started + Automatically reload the database when modified externally + Datenbank nach externer Modifikation automatisch neu laden. + + + Hide window to system tray instead of app exit + Fenster zur Taskleiste minimieren statt das Programm zu beenden + + + Minimize window at application startup + Fenster beim Programmstart minimieren @@ -1354,6 +1736,14 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann Always ask before performing auto-type Immer vor einem Auto-type fragen + + Lock databases after minimizing the window + Datenbank sperren nach dem Minimieren des Fensters + + + Don't require password repeat when it is visible + 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 - cross-platform password manager - KeePassX - plattformübergreifender Passwortmanager - - - filename of the password database to open (*.kdbx) - Dateiname für die zu öffnende Passwortdatenbank (*.kdbx) - path to a custom config file Pfad zu einer benutzerdefinierten Konfigurationsdatei @@ -1387,5 +1769,17 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann key file of the database Schlüsseldatei der Datenbank + + filename(s) of the password database(s) to open (*.kdbx) + Dateiname(n) der zu öffnenden Passwortdatenbank(en) (*.kdbx) + + + KeePassXC - cross-platform password manager + KeePassXC - plattformübergreifender Passwortmanager + + + read password of the database from stdin + 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 @@ KeePassXC is distributed under the term of the GNU General Public License (GPL) version 2 or (at your option) version 3. + + Extensions: + + + AccessControlDialog @@ -475,6 +480,46 @@ Do you want to save it anyway? No Results + + Execute command? + + + + Do you really want to execute the following command?<br><br>%1<br> + + + + Remember my choice + + + + Autoreload Request + + + + The database file has changed. Do you want to load the changes? + + + + Merge Request + + + + The database file has changed and you have unsaved changes.Do you want to merge your changes? + + + + Autoreload Failed + + + + Could not parse or unlock the new database file while attempting to autoreload this database. + + + + Could not open the new database file while attempting to autoreload this database. + + EditEntryWidget @@ -669,10 +714,6 @@ Do you want to save it anyway? Repeat: - - Gen. - - URL: @@ -830,6 +871,13 @@ Do you want to save it anyway? + + Entry + + - Clone + + + EntryAttributesModel @@ -1226,6 +1274,10 @@ This is a one-way migration. You won't be able to open the imported databas Re&pair database + + Password Generator + + OptionDialog @@ -1299,14 +1351,6 @@ Only entries with the same scheme (http://, https://, ftp://, ...) are returned< Automatic creates or updates are not supported for string fields! - - HTTP Host: - - - - Default host: localhost - - HTTP Port: @@ -1315,11 +1359,6 @@ Only entries with the same scheme (http://, https://, ftp://, ...) are returned< Default port: 19455 - - Enable KeepassXC Http protocol -This is required for accessing your databases from ChromeIPass or PassIFox - - Re&quest to unlock the database if it is locked @@ -1328,6 +1367,24 @@ This is required for accessing your databases from ChromeIPass or PassIFoxSort &matching entries by title + + Enable KeepassXC HTTP protocol +This is required for accessing your databases from ChromeIPass or PassIFox + + + + KeePassXC will listen to this port on 127.0.0.1 + + + + Cannot bind to privileged ports + + + + Cannot bind to privileged ports below 1024! +Using default port 19455. + + PasswordGeneratorWidget @@ -1335,10 +1392,6 @@ This is required for accessing your databases from ChromeIPass or PassIFoxPassword: - - Length: - - Character Types @@ -1364,11 +1417,63 @@ This is required for accessing your databases from ChromeIPass or PassIFox - Ensure that the password contains characters from every group + Accept - Accept + %p% + + + + strength + + + + entropy + + + + &Length: + + + + Pick characters from every group + + + + Generate + + + + Close + + + + Apply + + + + Entropy: %1 bit + + + + Password Quality: %1 + + + + Poor + + + + Weak + + + + Good + + + + Excellent @@ -1415,16 +1520,20 @@ This is required for accessing your databases from ChromeIPass or PassIFox SearchWidget - - Find: - - Case Sensitive - Search Current Group + Search + + + + Find + + + + Clear @@ -1536,10 +1645,6 @@ give it a unique name to identify and accept it. Remember last databases - - Open previous databases on startup - - Automatically save on exit @@ -1581,11 +1686,19 @@ give it a unique name to identify and accept it. - Hide window to system tray instead of App Exit + Load previous databases on startup - Hide window to system tray on App start + Automatically reload the database when modified externally + + + + Hide window to system tray instead of app exit + + + + Minimize window at application startup @@ -1615,6 +1728,10 @@ give it a unique name to identify and accept it. Lock databases after minimizing the window + + Don't require password repeat when it is visible + + 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 - - About KeePassX - Apie KeePassX - - - KeePassX is distributed under the term of the GNU General Public License (GPL) version 2 or (at your option) version 3. - KeePassX yra platinama GNU Bendrosios Viešosios Licencijos (GPL) versijos 2 arba (jūsų pasirinkimu) versijos 3 sąlygomis. - Revision Poversijis @@ -17,17 +9,56 @@ Using: Naudojama: + + About KeePassXC + Apie KeePassXC + + + KeePassXC is distributed under the term of the GNU General Public License (GPL) version 2 or (at your option) version 3. + KeePassXC yra platinama GNU Bendrosios Viešosios Licencijos (GPL) versijos 2 arba (jūsų pasirinkimu) versijos 3 sąlygomis. + + + Extensions: + + Plėtiniai: + + + + + AccessControlDialog + + Remember this decision + Prisiminti šį sprendimą + + + Allow + Leisti + + + Deny + Atmesti + + + %1 has requested access to passwords for the following item(s). +Please select whether you want to allow access. + %1 užklausė prieigos prie slaptažodžių šiam elementui(-ams). +Pasirinkite, ar norite leisti prieigą. + + + KeePassXC HTTP Confirm Access + KeePassXC HTTP prieigos patvirtinimas + AutoType - - Auto-Type - KeePassX - Automatinis rinkimas - KeePassX - Couldn't find an entry that matches the window title: Nepavyko rasti įrašo, kuris atitiktų lango antraštę: + + Auto-Type - KeePassXC + Automatinis rinkimas - KeePassXC + AutoTypeAssociationsModel @@ -46,14 +77,14 @@ AutoTypeSelectDialog - - Auto-Type - KeePassX - Automatinis rinkimas - KeePassX - Select entry to Auto-Type: Pasirinkite įrašą automatiniam rinkimui: + + Auto-Type - KeePassXC + Automatinis rinkimas - KeePassXC + ChangeMasterKeyWidget @@ -319,12 +350,6 @@ Save changes? locked užrakinta - - The database you are trying to open is locked by another instance of KeePassX. -Do you want to open it anyway? Alternatively the database is opened read-only. - 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. - Lock database Užrakinti duomenų bazę @@ -368,14 +393,24 @@ Vis tiek atmesti pakeitimus ir užverti? CSV failo įrašymas nepavyko. - The database you are trying to save as is locked by another instance of KeePassX. -Do you want to save it anyway? - Duomenų bazė, kurią bandote įrašyti yra užrakinta kito KeePassX programos egzemplioriaus. -Ar vis tiek norite ją įrašyti? + Unable to open the database. + Nepavyko atverti duomenų bazės. - Unable to open the database. - + The database you are trying to open is locked by another instance of KeePassXC. +Do you want to open it anyway? Alternatively the database is opened read-only. + 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. + + + Merge database + Sulieti duomenų bazę + + + The database you are trying to save as is locked by another instance of KeePassXC. +Do you want to save it anyway? + 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? Do you really want to delete the group "%1" for good? Ar tikrai norite ištrinti grupę "%1"? - - Current group - Esama grupė - Error Klaida @@ -430,11 +461,71 @@ Ar vis tiek norite ją įrašyti? Move entry to recycle bin? - + Perkelti įrašą į šiukšlinę? Do you really want to move entry "%1" to the recycle bin? - + Ar tikrai norite perkelti įrašą "%1" į šiukšlinę? + + + Searching... + Ieškoma... + + + No current database. + Nėra esamos duomenų bazės. + + + No source database, nothing to do. + Nėra šaltinio duomenų bazės, nėra ką atlikti. + + + Search Results (%1) + Paieškos rezultatai (%1) + + + No Results + Nėra rezultatų + + + Execute command? + Vykdyti komandą? + + + Do you really want to execute the following command?<br><br>%1<br> + Ar tikrai norite vykdyti šią komandą?<br><br>%1<br> + + + Remember my choice + Prisiminti mano pasirinkimą + + + Autoreload Request + Automatinio įkėlimo iš naujo užklausa + + + The database file has changed. Do you want to load the changes? + Duomenų bazės failas pasikeitė. Ar norite įkelti pakeitimus? + + + Merge Request + Suliejimo užklausa + + + The database file has changed and you have unsaved changes.Do you want to merge your changes? + Duomenų bazės failas pasikeitė ir jūs turite neįrašytų pakeitimų. Ar norite sulieti savo pakeitimus? + + + Autoreload Failed + Automatinis įkėlimas iš naujo nepavyko + + + Could not parse or unlock the new database file while attempting to autoreload this database. + Nepavyko išanalizuoti ar atrakinti naujos duomenų bazės failo, bandant automatiškai iš naujo įkelti šią duomenų bazę. + + + Could not open the new database file while attempting to autoreload this database. + 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? Repeat: Pakartokite: - - Gen. - Kurti - URL: URL: @@ -746,17 +833,25 @@ Ar vis tiek norite ją įrašyti? Can't delete icon! Nepavyksta ištrinti piktogramos! - - Can't delete icon. Still used by %n item(s). - 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ų. - Error - + Klaida - Can't read icon: - + Download favicon + Atsisiųsti svetainės piktogramą + + + Unable to fetch favicon. + Nepavyko gauti svetainės piktogramos. + + + Can't read icon + Nepavyksta perskaityti piktogramos + + + Can't delete icon. Still used by %1 items. + Nepavyksta ištrinti piktogramos. Vis dar naudojama %1 elementų. @@ -778,6 +873,13 @@ Ar vis tiek norite ją įrašyti? Uuid: + + Entry + + - Clone + - Dublikatas + + EntryAttributesModel @@ -830,6 +932,61 @@ Ar vis tiek norite ją įrašyti? Šiukšlinė + + HttpPasswordGeneratorWidget + + Length: + Ilgis: + + + Character Types + Simbolių tipai + + + Upper Case Letters + Viršutinio registro raidės + + + A-Z + A-Z + + + Lower Case Letters + Apatinio registro raidės + + + a-z + a-z + + + Numbers + Skaičiai + + + 0-9 + 0-9 + + + Special Characters + Specialūs simboliai + + + /*_& ... + /*_& ... + + + Exclude look-alike characters + Pašalinti panašiai atrodančius simbolius + + + Ensure that the password contains characters from every group + Užtikrinti, kad slaptažodyje būtų simboliai iš kiekvienos grupės + + + Accept + Priimti + + KeePass1OpenWidget @@ -873,7 +1030,7 @@ Ar vis tiek norite ją įrašyti? Wrong key or database file is corrupt. - + 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 - Error - KeePassX - Klaida + KeePassXC - Error + KeePassXC - Klaida @@ -922,102 +1079,14 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų Database Duomenų bazė - - Recent databases - Paskiausios duomenų bazės - - - Help - Pagalba - - - Entries - Įrašai - - - Copy attribute to clipboard - Kopijuoti požymį į iškarpinę - - - Groups - Grupės - - - View - Rodinys - - - Quit - Baigti - - - About - Apie - Open database Atverti duomenų bazę - - Save database - Įrašyti duomenų bazę - - - Close database - Užverti duomenų bazę - - - New database - Nauja duomenų bazė - - - Add new entry - Pridėti naują įrašą - - - View/Edit entry - Žiūrėti/Keisti įrašą - - - Delete entry - Ištrinti įrašą - - - Add new group - Pridėti naują grupę - - - Edit group - Keisti grupę - - - Delete group - Ištrinti grupę - - - Save database as - Įrašyti duomenų bazę kaip - - - Change master key - Pakeisti pagrindinį raktą - Database settings Duomenų bazės nustatymai - - Import KeePass 1 database - Importuoti KeePass 1 duomenų bazę - - - Clone entry - Dublikuoti įrašą - - - Find - Rasti - Copy username to clipboard Kopijuoti naudotojo vardą į iškarpinę @@ -1030,30 +1099,6 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų Settings Nustatymai - - Perform Auto-Type - Atlikti automatinį rinkimą - - - Open URL - Atverti URL - - - Lock databases - Užrakinti duomenų bazes - - - Title - Antraštė - - - URL - URL - - - Notes - Pastabos - Show toolbar Rodyti įrankių juostą @@ -1070,22 +1115,6 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų Tools Įrankiai - - Copy username - Kopijuoti naudotojo vardą - - - Copy password - Kopijuoti slaptažodį - - - Export to CSV file - Eksportuoti į CSV failą - - - Repair database - Taisyti duomenų bazę - KeePass 2 Database KeePass 2 duomenų bazė @@ -1106,6 +1135,265 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų Writing the database failed. Duomenų bazės rašymas nepavyko. + + &Recent databases + &Paskiausiai naudotos duomenų bazės + + + He&lp + Pa&galba + + + E&ntries + Į&rašai + + + Copy att&ribute to clipboard + Kopijuoti &požymį į iškarpinę + + + &Groups + &Grupės + + + &View + R&odinys + + + &Quit + &Baigti + + + &About + &Apie + + + &Open database + &Atverti duomenų bazę + + + &Save database + Į&rašyti duomenų bazę + + + &Close database + &Užverti duomenų bazę + + + &New database + &Nauja duomenų bazė + + + Merge from KeePassX database + Sulieti su KeePassX duomenų baze + + + &Add new entry + &Pridėti naują įrašą + + + &View/Edit entry + &Rodyti/Taisyti įrašą + + + &Delete entry + &Ištrinti įrašą + + + &Add new group + &Pridėti naują grupę + + + &Edit group + &Taisyti grupę + + + &Delete group + &Ištrinti grupę + + + Sa&ve database as + Įraš&yti duomenų bazę kaip + + + Change &master key + Pakeisti &pagrindinį raktą + + + &Database settings + &Duomenų bazės nustatymai + + + &Import KeePass 1 database + &Importuoti KeePass 1 duomenų bazę + + + &Clone entry + &Dublikuoti įrašą + + + &Find + &Rasti + + + Copy &username + Kopijuoti &naudotojo vardą + + + Cop&y password + Kopijuoti &slaptažodį + + + &Settings + &Nustatymai + + + &Perform Auto-Type + &Atlikti automatinį rinkimą + + + &Open URL + Atverti &URL + + + &Lock databases + &Užrakinti duomenų bazes + + + &Title + &Antraštė + + + &URL + &URL + + + &Notes + &Pastabos + + + &Export to CSV file + &Eksportuoti į CSV failą + + + Re&pair database + Pa&taisyti duomenų bazę + + + Password Generator + Slaptažodžių generatorius + + + + OptionDialog + + Dialog + Dialogas + + + General + Bendra + + + Sh&ow a notification when credentials are requested + R&odyti pranešimą, kai reikalaujama prisijungimo duomenų + + + &Return only best matching entries for an URL instead +of all entries for the whole domain + &Vietoj visų įrašų, skirtų visai sričiai, +grąžinti tik geriausiai atitinkančius įrašus, skirtus URL + + + &Match URL schemes +Only entries with the same scheme (http://, https://, ftp://, ...) are returned + &Atitikti URL schemas +Bus grąžinami įrašai tik su ta pačia schema (http://, https://, ftp://, ...) + + + Sort matching entries by &username + Rikiuoti atitinkančius įrašus pagal na&udotojo vardą + + + R&emove all shared encryption-keys from active database + Ša&linti iš aktyvios duomenų bazės visus bendrinamus šifravimo raktus + + + Re&move all stored permissions from entries in active database + Šal&inti iš įrašų aktyvioje duomenų bazėje visus saugomus leidimus + + + Password generator + Slaptažodžių generatorius + + + Advanced + Išplėstiniai + + + Activate the following only, if you know what you are doing! + Aktyvuokite tai tik tuo atveju, jeigu žinote ką darote! + + + Always allow &access to entries + Visada leisti &prieigą prie įrašų + + + Always allow &updating entries + Visada leisti įrašų at&naujinimą + + + Searc&h in all opened databases for matching entries + Ieš&koti atitinkančių įrašų visose atvertose duomenų bazėse + + + Only the selected database has to be connected with a client! + Su klientu turi būti sujungta tik pasirinkta duomenų bazė! + + + &Return also advanced string fields which start with "KPH: " + &Taip pat grąžinti ir išplėstines eilutes, kurios prasideda "KPH: " + + + Automatic creates or updates are not supported for string fields! + Šiems eilutės laukams automatiniai kūrimai ir atnaujinimai neprieinami! + + + HTTP Port: + HTTP prievadas: + + + Default port: 19455 + Numatytasis prievadas: 19455 + + + Re&quest to unlock the database if it is locked + Už&klausti atrakinti duomenų bazę, jeigu ji yra užrakinta + + + Sort &matching entries by title + Rikiuoti atitinkančius įrašus pagal &antraštę + + + Enable KeepassXC HTTP protocol +This is required for accessing your databases from ChromeIPass or PassIFox + Įjungti KeepassXC HTTP protokolą +Tai reikalinga, norint prie savo duomenų bazių gauti prieigą iš ChromeIPass ar PassIFox + + + KeePassXC will listen to this port on 127.0.0.1 + KeePassXC klausysis šio prievado ties 127.0.0.1 + + + Cannot bind to privileged ports + Nepavyksta susieti su privilegijuotais prievadais + + + Cannot bind to privileged ports below 1024! +Using default port 19455. + 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ų Password: Slaptažodis: - - Length: - Ilgis: - Character Types Simbolių tipai @@ -1141,71 +1425,72 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų Exclude look-alike characters Pašalinti panašiai atrodančius simbolius - - Ensure that the password contains characters from every group - Užtikrinti, kad slaptažodyje yra simboliai iš kiekvienos grupės - Accept Priimti - - - QCommandLineParser - Displays version information. - Rodo versijos informaciją. + %p% + %p% - Displays this help. - Rodo šią pagalbą. + strength + stiprumas - Unknown option '%1'. - Nežinoma parinktis "%1". + entropy + entropija - Unknown options: %1. - Nežinomos parinktys: %1. + &Length: + &Ilgis: - Missing value after '%1'. - Trūksta reikšmės po "%1". + Pick characters from every group + Parinkti simbolius iš kiekvienos grupės - Unexpected value after '%1'. - Netikėta reikšmė po "%1". + Generate + Generuoti - [options] - [parinktys] + Close + Užverti - Usage: %1 - Naudojimas: %1 + Apply + Taikyti - Options: - Parinktys: + Entropy: %1 bit + Entropija: %1 bit - Arguments: - Argumentai: + Password Quality: %1 + Slaptažodžio kokybė: %1 + + + Poor + Blogas + + + Weak + Silpnas + + + Good + Geras + + + Excellent + Puikus - QSaveFile + QObject - Existing file %1 is not writable - Esamas failas %1 nėra įrašomas - - - Writing canceled by application - Programa atšaukė įrašymą - - - Partial write. Partition full? - Dalinis įrašymas. Pilnas skaidinys? + Http + Http @@ -1245,20 +1530,112 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų SearchWidget - Find: - Rasti: + Case Sensitive + Skirti raidžių dydį - Case sensitive - Skiriant raidžių registrą + Search + Ieškoti - Current group - Esama grupė + Find + Rasti - Root group - Šakninė grupė + Clear + Išvalyti + + + + Service + + A shared encryption-key with the name "%1" already exists. +Do you want to overwrite it? + Bendrinamas šifravimo raktas, pavadinimu "%1" jau yra. +Ar norite jį perrašyti? + + + Do you want to update the information in %1 - %2? + Ar norite atnaujinti informaciją ties %1 - %2? + + + The active database is locked! +Please unlock the selected database or choose another one which is unlocked. + Aktyvi duomenų bazė yra užrakinta! +Prašome atrakinti pasirinktą duomenų bazę arba pasirinkti kitą, kuri būtų atrakinta. + + + Successfully removed %1 encryption-%2 from KeePassX/Http Settings. + Sėkmingai pašalinta %1 šifravimo-%2 iš KeePassX/Http nustatymų. + + + No shared encryption-keys found in KeePassHttp Settings. + KeePassHttp nustatymuose nerasta jokių bendrinamų šifravimo raktų. + + + The active database does not contain an entry of KeePassHttp Settings. + Aktyvioje duomenų bazėje nėra KeePassHttp nustatymų įrašo. + + + Removing stored permissions... + Šalinami saugomi leidimai... + + + Abort + Nutraukti + + + Successfully removed permissions from %1 %2. + Leidimai sėkmingai pašalinti iš %1 %2. + + + The active database does not contain an entry with permissions. + Aktyvioje duomenų bazėje nėra įrašo su leidimais. + + + KeePassXC: New key association request + KeePassXC: Naujo rakto susiejimo užklausa + + + You have received an association request for the above key. +If you would like to allow it access to your KeePassXC database +give it a unique name to identify and accept it. + 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: Overwrite existing key? + KeePassXC: Perrašyti esamą raktą? + + + KeePassXC: Update Entry + KeePassXC: Atnaujinti įrašą + + + KeePassXC: Database locked! + KeePassXC: Duomenų bazė užrakinta! + + + KeePassXC: Removed keys from database + KeePassXC: Pašalinti raktai iš duomenų bazės + + + KeePassXC: No keys found + KeePassXC: Raktų nerasta + + + KeePassXC: Settings not available! + KeePassXC: Nustatymai neprieinami! + + + KeePassXC: Removed permissions + KeePassXC: Pašalinti leidimai + + + KeePassXC: No entry with permissions found! + KeePassXC: Nerasta jokių įrašų su leidimais! @@ -1282,10 +1659,6 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų Remember last databases Prisiminti paskutines duomenų bazes - - Open previous databases on startup - Paleidžiant programą, atverti ankstesnes duomenų bazes - Automatically save on exit 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 - Hide window to system tray instead of App Exit - + Load previous databases on startup + Paleidžiant programą, įkelti ankstesnes duomenų bazes - Hide window to system tray on App start - + Automatically reload the database when modified externally + Išoriškai modifikavus duomenų bazę, automatiškai įkelti ją iš naujo + + + Hide window to system tray instead of app exit + Neužverti lango, bet vietoj to, suskleisti jį į sistemos dėklą + + + Minimize window at application startup + Paleidus programą, suskleisti langą @@ -1357,6 +1738,14 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų Always ask before performing auto-type Visuomet klausti prieš atliekant automatinį rinkimą + + Lock databases after minimizing the window + Suskleidus langą, užrakinti duomenų bazes + + + Don't require password repeat when it is visible + 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 - cross-platform password manager - KeePassX - daugiaplatformė slaptažodžių tvarkytuvė - - - filename of the password database to open (*.kdbx) - norimos atverti slaptažodžių duomenų bazės failo pavadinimas (*.kdbx) - path to a custom config file kelias į tinkintą konfigūracijos failą @@ -1390,5 +1771,17 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų key file of the database duomenų bazės rakto failas + + filename(s) of the password database(s) to open (*.kdbx) + norimos atverti slaptažodžių duomenų bazės(-ių) failo pavadinimas(-ai) (*.kdbx) + + + KeePassXC - cross-platform password manager + KeePassXC - daugiaplatformė slaptažodžių tvarkytuvė + + + read password of the database from stdin + 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 - - About KeePassX - Sobre KeePassX - - - KeePassX is distributed under the term of the GNU General Public License (GPL) version 2 or (at your option) version 3. - KeePassX é distribuído nos termos da Licença Pública Geral (GPL), versão 2 ou (à sua escolha) versão 3, do GNU. - Revision Revisão @@ -17,17 +9,56 @@ Using: Usando: + + About KeePassXC + Sobre KeePassXC + + + KeePassXC is distributed under the term of the GNU General Public License (GPL) version 2 or (at your option) version 3. + KeePassXC é distribuído nos termos da Licença Pública Geral (GPL), versão 2 ou (à sua escolha) versão 3, do GNU. + + + Extensions: + + Extensões: + + + + + AccessControlDialog + + Remember this decision + Lembrar esta escolha + + + Allow + Permitir + + + Deny + Negar + + + %1 has requested access to passwords for the following item(s). +Please select whether you want to allow access. + %1 solicitou acesso a senhas para o(s) seguinte(s) iten(s). +Selecione se deseja permitir o acesso. + + + KeePassXC HTTP Confirm Access + KeePassXC HTTP Confirmar Acesso + AutoType - - Auto-Type - KeePassX - Auto-Digitação - KeePassX - Couldn't find an entry that matches the window title: Não foi possível localizar uma entrada que corresponda ao título da janela: + + Auto-Type - KeePassXC + Auto-Digitação - KeePassXC + AutoTypeAssociationsModel @@ -46,14 +77,14 @@ AutoTypeSelectDialog - - Auto-Type - KeePassX - Auto-Digitação - KeePassX - Select entry to Auto-Type: Escolha uma entrada para Auto-Digitar: + + Auto-Type - KeePassXC + Auto-Digitação - KeePassXC + ChangeMasterKeyWidget @@ -319,12 +350,6 @@ Salvar alterações? locked trancado - - The database you are trying to open is locked by another instance of KeePassX. -Do you want to open it anyway? Alternatively the database is opened read-only. - 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. - Lock database Trancar Banco de Dados @@ -368,14 +393,24 @@ Descartar alterações e fechar mesmo assim? Falha ao gravar arquivo CSV. - The database you are trying to save as is locked by another instance of KeePassX. -Do you want to save it anyway? - 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? + Unable to open the database. + Não foi possível abrir o banco de dados. - Unable to open the database. - + The database you are trying to open is locked by another instance of KeePassXC. +Do you want to open it anyway? Alternatively the database is opened read-only. + 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. + + + Merge database + Juntar banco de dados + + + The database you are trying to save as is locked by another instance of KeePassXC. +Do you want to save it anyway? + 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? Do you really want to delete the group "%1" for good? Você realmente quer apagar o grupo "%1" para sempre? - - Current group - Grupo atual - Error Erro @@ -430,11 +461,71 @@ Você deseja salvá-lo mesmo assim? Move entry to recycle bin? - + Mover entrada para a lixeira? Do you really want to move entry "%1" to the recycle bin? - + Pretende realmente mover a entrada "%1" para a lixeira? + + + Searching... + Pesquisando... + + + No current database. + Nenhuma base de dados atual. + + + No source database, nothing to do. + Nenhuma base de dados de origem, nada a fazer. + + + Search Results (%1) + Resultados da Pesquisa (%1) + + + No Results + Sem Resultados + + + Execute command? + Executar comando? + + + Do you really want to execute the following command?<br><br>%1<br> + Você quer realmente executar o comando seguinte?<br><br>%1<br> + + + Remember my choice + Lembrar minha escolha + + + Autoreload Request + Recarregar Automaticamente Pedido + + + The database file has changed. Do you want to load the changes? + A base de dados foi alterada. Deseja carregar as alterações? + + + Merge Request + Juntar Pedido + + + The database file has changed and you have unsaved changes.Do you want to merge your changes? + A base de dados foi alterada e tem alterações não gravadas. Deseja juntar as suas alterações? + + + Autoreload Failed + Carregamento Automático Falhou + + + Could not parse or unlock the new database file while attempting to autoreload this database. + Não foi possível analisar ou desbloquear o novo arquivo da base de dados ao tentar recarregar automaticamente essa base de dados. + + + Could not open the new database file while attempting to autoreload this database. + 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? Repeat: Repetir: - - Gen. - Gerar - URL: URL: @@ -746,17 +833,25 @@ Você deseja salvá-lo mesmo assim? Can't delete icon! Não é possível apagar o ícone! - - Can't delete icon. Still used by %n item(s). - Não é possível apagar o ícone. Ainda usado por %n item.Não é possível apagar o ícone. Ainda usado por %n itens. - Error - + Erro - Can't read icon: - + Download favicon + Baixar favicon + + + Unable to fetch favicon. + Não foi possível obter favicon. + + + Can't read icon + Não foi possível ler ícone + + + Can't delete icon. Still used by %1 items. + Não é possível apagar ícone. Ainda usado por %1 itens. @@ -778,6 +873,13 @@ Você deseja salvá-lo mesmo assim? Uuid: + + Entry + + - Clone + - Clone + + EntryAttributesModel @@ -830,6 +932,61 @@ Você deseja salvá-lo mesmo assim? Lixeira + + HttpPasswordGeneratorWidget + + Length: + Comprimento: + + + Character Types + Tipo de Caracteres + + + Upper Case Letters + Letras Maiúsculas + + + A-Z + A-Z + + + Lower Case Letters + Letras Minúsculas + + + a-z + a-z + + + Numbers + Números + + + 0-9 + 0-9 + + + Special Characters + Caracteres Especiais + + + /*_& ... + /*_& ... + + + Exclude look-alike characters + Excluir caracteres semelhantes + + + Ensure that the password contains characters from every group + Verificar se a senha contém caracteres de todos os grupos + + + Accept + Aceitar + + KeePass1OpenWidget @@ -873,7 +1030,7 @@ Você deseja salvá-lo mesmo assim? Wrong key or database file is corrupt. - + 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 - Error - KeePassX - Erro + KeePassXC - Error + KeePassXC - Erro @@ -922,102 +1079,14 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp Database Banco de Dados - - Recent databases - Bancos de dados recentes - - - Help - Ajuda - - - Entries - Entradas - - - Copy attribute to clipboard - Copiar atributo para a área de transferência - - - Groups - Grupos - - - View - Ver - - - Quit - Sair - - - About - Sobre - Open database Abrir banco de dados - - Save database - Salvar banco de dados - - - Close database - Fechar banco de dados - - - New database - Novo banco de dados - - - Add new entry - Adicionar nova entrada - - - View/Edit entry - Ver/Editar entrada - - - Delete entry - Excluir entrada - - - Add new group - Adicionar novo grupo - - - Edit group - Editar grupo - - - Delete group - Excluir grupo - - - Save database as - Salvar banco de dados como - - - Change master key - Alterar chave-mestra - Database settings Configurações do Banco de Dados - - Import KeePass 1 database - Importar banco de dados KeePass1 - - - Clone entry - Clonar entrada - - - Find - Localizar - Copy username to clipboard 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 Settings Configurações - - Perform Auto-Type - Realizar Auto-Digitação - - - Open URL - Abrir URL - - - Lock databases - Trancar bancos de dados - - - Title - Título - - - URL - URL - - - Notes - Notas - Show toolbar 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 Tools Ferramentas - - Copy username - Copiar nome de usuário - - - Copy password - Copiar senha - - - Export to CSV file - Exportar para arquivo CSV - - - Repair database - Reparar banco de dados - KeePass 2 Database 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 Writing the database failed. Escrita do banco de dados falhou. + + &Recent databases + &Bancos de dados recentes + + + He&lp + &Ajuda + + + E&ntries + E&ntradas + + + Copy att&ribute to clipboard + Copiar at&ributo para área de transferência + + + &Groups + &Grupos + + + &View + &Ver + + + &Quit + &Sair + + + &About + &Sobre + + + &Open database + &Abrir base de dados + + + &Save database + &Salvar base de dados + + + &Close database + &Fechar base de dados + + + &New database + &Nova base de dados + + + Merge from KeePassX database + Juntar base de dados a partir de KeePassX + + + &Add new entry + &Adicionar nova entrada + + + &View/Edit entry + &Ver/Editar entrada + + + &Delete entry + &Apagar entrada + + + &Add new group + &Adicionar novo grupo + + + &Edit group + &Editar grupo + + + &Delete group + &Apagar grupo + + + Sa&ve database as + Sal&var base de dados como + + + Change &master key + Alterar chave &mestra + + + &Database settings + &Definições da base de dados + + + &Import KeePass 1 database + &Importar base de dados KeePass 1 + + + &Clone entry + &Clonar entrada + + + &Find + &Encontrar + + + Copy &username + Copiar nome de &usuário + + + Cop&y password + Cop&iar senha + + + &Settings + &Configurações + + + &Perform Auto-Type + &Executar escrita automática + + + &Open URL + &Abrir URL + + + &Lock databases + &Trancar base de dados + + + &Title + &Título + + + &URL + &URL + + + &Notes + &Notas + + + &Export to CSV file + &Exportar para arquivo CSV + + + Re&pair database + Re&parar banco de dados + + + Password Generator + Gerador de Senha + + + + OptionDialog + + Dialog + Diálogo + + + General + Geral + + + Sh&ow a notification when credentials are requested + M&ostrar uma notificação quando as credenciais forem solicitadas + + + &Return only best matching entries for an URL instead +of all entries for the whole domain + &Mostrar apenas as melhores entradas correspondentes para um URL em vez de +todas as entradas para o domínio completo + + + &Match URL schemes +Only entries with the same scheme (http://, https://, ftp://, ...) are returned + &Esquemas de URL coincidentes +Somente entradas com o mesmo esquema (http://, https://, ftp://, ...) são mostradas + + + Sort matching entries by &username + Ordenar entradas coincidentes por nome de &usuário + + + R&emove all shared encryption-keys from active database + R&emover todas as chaves criptografadas compartilhadas da base de dados ativa + + + Re&move all stored permissions from entries in active database + R&emover todas as permissões armazenadas de entradas na base de dados ativa + + + Password generator + Gerador de senha + + + Advanced + Avançado + + + Activate the following only, if you know what you are doing! + Ativar apenas os seguintes, se souber o que está fazendo! + + + Always allow &access to entries + Permitir sempre &acesso as entradas + + + Always allow &updating entries + Permitir sempre &atualizar as entradas + + + Searc&h in all opened databases for matching entries + Procurar em todas as base de dados abertas por entradas semel&hantes + + + Only the selected database has to be connected with a client! + Somente a base de dados selecionada tem que ser conectada com um cliente! + + + &Return also advanced string fields which start with "KPH: " + &Mostrar também campos avançados que começam com "KPH: " + + + Automatic creates or updates are not supported for string fields! + Criação automática ou atualizações não são suportadas para os valores dos campos! + + + HTTP Port: + Porta HTTP: + + + Default port: 19455 + Porta padrão: 19455 + + + Re&quest to unlock the database if it is locked + Pe&dir para desbloquear a base de dados se estiver bloqueada + + + Sort &matching entries by title + Ordenar &entradas por título + + + Enable KeepassXC HTTP protocol +This is required for accessing your databases from ChromeIPass or PassIFox + Habilitar KeepassXC protocolo HTTP +Isso é necessário para acessar os seus bancos de dados de ChromeIPass ou de PassIFox + + + KeePassXC will listen to this port on 127.0.0.1 + KeePassXC irá escutar esta porta em 127.0.0.1 + + + Cannot bind to privileged ports + Não é possível ligar a portas privilegiadas + + + Cannot bind to privileged ports below 1024! +Using default port 19455. + 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 Password: Senha: - - Length: - Tamanho: - Character Types Tipos de Caracteres @@ -1141,71 +1425,72 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp Exclude look-alike characters Excluir caracteres similares - - Ensure that the password contains characters from every group - Assegurar que a senha contenha caracteres de todos os grupos - Accept Aceitar - - - QCommandLineParser - Displays version information. - Mostrar informações da versão. + %p% + %p% - Displays this help. - Mostrar esta ajuda. + strength + força - Unknown option '%1'. - Opção desconhecida '%1'. + entropy + entropia - Unknown options: %1. - Opções desconhecidas: %1. + &Length: + &Tamanho: - Missing value after '%1'. - Falta valor após '%1'. + Pick characters from every group + Selecione caracteres de todos os grupos - Unexpected value after '%1'. - Valor inesperado após '%1'. + Generate + Gerar - [options] - [opções] + Close + Fechar - Usage: %1 - Utilização: %1 + Apply + Aplicar - Options: - Opções: + Entropy: %1 bit + Entropia: %1 bit - Arguments: - Argumentos: + Password Quality: %1 + Qualidade da senha: %1 + + + Poor + Pobre + + + Weak + Fraco + + + Good + Bom + + + Excellent + Excelente - QSaveFile + QObject - Existing file %1 is not writable - O arquivo existente %1 não é gravável - - - Writing canceled by application - Escrita cancelada pelo aplicativo - - - Partial write. Partition full? - Escrita parcial. Partição cheia? + Http + Http @@ -1245,20 +1530,111 @@ Esta é uma migração de uma via. Você não poderá abrir o banco de dados imp SearchWidget - Find: - Localizar: - - - Case sensitive + Case Sensitive Diferenciar maiúsculas e minúsculas - Current group - Grupo atual + Search + Pesquisar - Root group - Grupo Raiz + Find + Localizar + + + Clear + Limpar + + + + Service + + A shared encryption-key with the name "%1" already exists. +Do you want to overwrite it? + Já existe uma chave de criptografia compartilhada com o nome "%1". +Deseja substituí-la? + + + Do you want to update the information in %1 - %2? + Deseja atualizar as informações em %1 - %2? + + + The active database is locked! +Please unlock the selected database or choose another one which is unlocked. + A base de dados ativa está bloqueada! +Desbloqueie base de dados selecionada ou escolha outra que esteja desbloqueada. + + + Successfully removed %1 encryption-%2 from KeePassX/Http Settings. + Removido com sucesso %1 criptografia-%2 do KeePassX/Http Configurações. + + + No shared encryption-keys found in KeePassHttp Settings. + Nenhuma chave de criptografia compartilhada encontrada nas Configurações do KeePassHttp. + + + The active database does not contain an entry of KeePassHttp Settings. + A base de dados ativa não contém uma entrada de Configurações KeePassHttp. + + + Removing stored permissions... + Removendo permissões armazenadas... + + + Abort + Cancelar + + + Successfully removed permissions from %1 %2. + Foram removidas com êxito as permissões de %1 %2. + + + The active database does not contain an entry with permissions. + A base de dados ativa não contém uma entrada com permissões. + + + KeePassXC: New key association request + KeePassXC: Nova associação de chaves requisitada + + + You have received an association request for the above key. +If you would like to allow it access to your KeePassXC database +give it a unique name to identify and accept it. + 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: Overwrite existing key? + KeePassXC: Substituir chave existente? + + + KeePassXC: Update Entry + KeePassXC: Atualizar entrada + + + KeePassXC: Database locked! + KeePassXC: Banco de dados bloqueado! + + + KeePassXC: Removed keys from database + KeePassXC: Chaves removidas do banco de dados + + + KeePassXC: No keys found + KeePassXC: Nenhuma chave localizada + + + KeePassXC: Settings not available! + KeePassXC: Configurações não disponíveis! + + + KeePassXC: Removed permissions + KeePassXC: Permissões removidas + + + KeePassXC: No entry with permissions found! + 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 Remember last databases Lembrar dos últimos bancos de dados - - Open previous databases on startup - Abrir bancos de dados anteriores na inicialização - Automatically save on exit 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 - Hide window to system tray instead of App Exit - + Load previous databases on startup + Abrir bancos de dados anteriores na inicialização - Hide window to system tray on App start - + Automatically reload the database when modified externally + Automaticamente recarregar o banco de dados quando houver modificações externas + + + Hide window to system tray instead of app exit + Ocultar janela na bandeja de sistema em vez de sair do programa + + + Minimize window at application startup + 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 Always ask before performing auto-type Sempre perguntar antes de realizar auto-digitação + + Lock databases after minimizing the window + Bloquear bancos de dados após minimizar a janela + + + Don't require password repeat when it is visible + 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 - cross-platform password manager - KeePassX - gerenciador de senhas multiplataforma - - - filename of the password database to open (*.kdbx) - nome de arquivo do banco de dados de senhas a ser aberto (*.kdbx) - path to a custom config file 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 key file of the database arquivo-chave do banco de dados + + filename(s) of the password database(s) to open (*.kdbx) + nome(s) de arquivo(s) do banco de dados de senhas a ser aberto (*.kdbx) + + + KeePassXC - cross-platform password manager + KeePassXC - gerenciador de senhas multiplataforma + + + read password of the database from stdin + 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 - - About KeePassX - О KeePassX - - - KeePassX is distributed under the term of the GNU General Public License (GPL) version 2 or (at your option) version 3. - KeePassX распространяется на условиях Стандартной общественной лицензии GNU (GPL) версии 2 или (на ваше усмотрение) версии 3. - Revision Ревизия @@ -17,17 +9,55 @@ Using: С помощью: + + About KeePassXC + О KeePassXC + + + KeePassXC is distributed under the term of the GNU General Public License (GPL) version 2 or (at your option) version 3. + KeePassXC распространяется на условиях Стандартной общественной лицензии GNU (GPL) версии 2 или (на ваше усмотрение) версии 3. + + + Extensions: + + Расширения: + + + + + AccessControlDialog + + Remember this decision + Запомнить это решение + + + Allow + Разрешить + + + Deny + Запретить + + + %1 has requested access to passwords for the following item(s). +Please select whether you want to allow access. + %1 запросил доступ к паролям для следующего элемента(ов). Выберете, хотите ли вы разрешить доступ. + + + KeePassXC HTTP Confirm Access + Подтверждение доступа KeePassXC HTTP + AutoType - - Auto-Type - KeePassX - Автоввод — KeePassX - Couldn't find an entry that matches the window title: Невозможно найти запись, соответствующую заголовку окна: + + Auto-Type - KeePassXC + Автоввод — KeePassXC + AutoTypeAssociationsModel @@ -46,14 +76,14 @@ AutoTypeSelectDialog - - Auto-Type - KeePassX - Автоввод — KeePassX - Select entry to Auto-Type: Выберите запись для автоввода: + + Auto-Type - KeePassXC + Автоввод — KeePassXC + ChangeMasterKeyWidget @@ -187,7 +217,7 @@ Database opened fine. Nothing to do. - + Хранилище открылось. Больше нечего делать. Unable to open the database. @@ -319,11 +349,6 @@ Save changes? locked заблокировано - - The database you are trying to open is locked by another instance of KeePassX. -Do you want to open it anyway? Alternatively the database is opened read-only. - Хранилище, которое Вы хотите открыть, заблокировано другой запущенной копией KeePassX. Всё равно открыть? В качестве альтернативы хранилище будет открыто в режиме для чтения. - Lock database Заблокировать хранилище @@ -367,14 +392,24 @@ Discard changes and close anyway? Не удалось записать CSV файл. - The database you are trying to save as is locked by another instance of KeePassX. -Do you want to save it anyway? - Данное хранилище заблокировано другой запущенной копией KeePassX. -Вы уверены, что хотите продолжить сохранение? + Unable to open the database. + Не удаётся открыть хранилище. - Unable to open the database. - + The database you are trying to open is locked by another instance of KeePassXC. +Do you want to open it anyway? Alternatively the database is opened read-only. + Хранилище, которое Вы хотите открыть, заблокировано другой запущенной копией KeePassXC. +Всё равно открыть? В качестве альтернативы хранилище будет открыто в режиме для чтения. + + + Merge database + Объединить хранилище + + + The database you are trying to save as is locked by another instance of KeePassXC. +Do you want to save it anyway? + Хранилище, которые вы пытаетесь сохранить, заблокировано другим экземпляром KeePassXC. +Хотите сохранить во всех случаях? @@ -415,10 +450,6 @@ Do you want to save it anyway? Do you really want to delete the group "%1" for good? Вы действительно хотите навсегда удалить группу «%1»? - - Current group - Текущая группа - Error Ошибка @@ -429,11 +460,71 @@ Do you want to save it anyway? Move entry to recycle bin? - + Переместить запись в корзину? Do you really want to move entry "%1" to the recycle bin? - + Действительно переместить запись "%1" в корзину? + + + Searching... + Поиск... + + + No current database. + Нет текущего хранилища. + + + No source database, nothing to do. + Нет исходного хранилища, нечего обрабатывать. + + + Search Results (%1) + Результаты поиска (%1) + + + No Results + Нет результатов + + + Execute command? + Выполнить комманду? + + + Do you really want to execute the following command?<br><br>%1<br> + Вы действительно хотите выполнить следующую команду?<br><br>%1<br> + + + Remember my choice + Запомнить выбор + + + Autoreload Request + Запрос на автоматическую загрузку + + + The database file has changed. Do you want to load the changes? + Хранилище было изменено. Вы хотите загрузить изменения? + + + Merge Request + Запрос на слияние + + + The database file has changed and you have unsaved changes.Do you want to merge your changes? + Файл хранилища был изменён, а так же присутствуют несохранённые изменения. Вы хотите объеденить изменения? + + + Autoreload Failed + Ошибка автоматической загрузки + + + Could not parse or unlock the new database file while attempting to autoreload this database. + Не удаётся разобрать или разблокировать новый файл хранилища при попытке автоматической загрузки этого хранилища. + + + Could not open the new database file while attempting to autoreload this database. + Не удаётся открыть новый файл хранилища при попытке автоматической загрузки этого файла. @@ -624,10 +715,6 @@ Do you want to save it anyway? Repeat: Пароль ещё раз: - - Gen. - Генеральный. - URL: URL: @@ -745,17 +832,25 @@ Do you want to save it anyway? Can't delete icon! Не могу удалить значок! - - Can't delete icon. Still used by %n item(s). - Не могу удалить иконку, %n запись всё ещё использует её.Не могу удалить иконку, %n записи всё ещё использует её.Не могу удалить иконку, %n записей всё ещё использует её.Не могу удалить значок, %n записей всё ещё использует его. - Error - + Ошибка - Can't read icon: - + Download favicon + Скачать значок сайта + + + Unable to fetch favicon. + Не удалось получить значок сайта + + + Can't read icon + Не могу прочитать значок + + + Can't delete icon. Still used by %1 items. + Не удается удалить значок, она продолжает использоваться %1 записями. @@ -777,6 +872,13 @@ Do you want to save it anyway? Uuid: + + Entry + + - Clone + - Колинировать + + EntryAttributesModel @@ -829,6 +931,61 @@ Do you want to save it anyway? Корзина + + HttpPasswordGeneratorWidget + + Length: + Длина: + + + Character Types + Виды символов + + + Upper Case Letters + Заглавные буквы + + + A-Z + A-Z + + + Lower Case Letters + Строчные буквы + + + a-z + a-z + + + Numbers + Цифры + + + 0-9 + 0-9 + + + Special Characters + Особые символы + + + /*_& ... + /*_& ... + + + Exclude look-alike characters + Исключить выглядящие похожие символы + + + Ensure that the password contains characters from every group + Убедитесь, что пароль содержит символы всех видов + + + Accept + Принять + + KeePass1OpenWidget @@ -872,7 +1029,7 @@ Do you want to save it anyway? Wrong key or database file is corrupt. - + Неверный ключ или файл хранилища повреждён. @@ -911,8 +1068,8 @@ This is a one-way migration. You won't be able to open the imported databas Неисправимая ошибка в процессе тестирования криптографических функций. - KeePassX - Error - KeePassX — Ошибка + KeePassXC - Error + KeePassXC — Ошибка @@ -921,102 +1078,14 @@ This is a one-way migration. You won't be able to open the imported databas Database Хранилище - - Recent databases - Недавние хранилища - - - Help - Помощь - - - Entries - Записи - - - Copy attribute to clipboard - Скопировать атрибут в буфер обмена - - - Groups - Группы - - - View - Вид - - - Quit - Выход - - - About - О программе - Open database Открыть хранилище - - Save database - Сохранить хранилище - - - Close database - Закрыть хранилище - - - New database - Новое хранилище - - - Add new entry - Добавить новую запись - - - View/Edit entry - Посмотреть/редактировать запись - - - Delete entry - Удалить запись - - - Add new group - Добавить новую группу - - - Edit group - Редактировать группу - - - Delete group - Удалить группу - - - Save database as - Сохранить хранилище как - - - Change master key - Сменить мастер-пароль - Database settings Параметры хранилища - - Import KeePass 1 database - Импортировать хранилище KeePass 1 - - - Clone entry - Клонировать запись - - - Find - Найти - Copy username to clipboard Скопировать имя пользователя в буфер обмена @@ -1029,30 +1098,6 @@ This is a one-way migration. You won't be able to open the imported databas Settings Настройки - - Perform Auto-Type - Произвести автоввод - - - Open URL - Открыть URL - - - Lock databases - Заблокировать хранилище - - - Title - Заголовок - - - URL - URL - - - Notes - Примечания - Show toolbar Показать панель инструментов @@ -1069,25 +1114,9 @@ This is a one-way migration. You won't be able to open the imported databas Tools Инструменты - - Copy username - Скопировать имя пользователя - - - Copy password - Скопировать пароль - - - Export to CSV file - Экспортировать в файл CSV - - - Repair database - Восстановление хранилища - KeePass 2 Database - + Хранилище KeePass 2 All files @@ -1103,7 +1132,265 @@ This is a one-way migration. You won't be able to open the imported databas Writing the database failed. - + Не удалось записать хранилище. + + + &Recent databases + Недавние хранилища + + + He&lp + Помощь + + + E&ntries + &Записи + + + Copy att&ribute to clipboard + Скопировать атрибут в буфер обмена + + + &Groups + Группы + + + &View + Вид + + + &Quit + Выход + + + &About + О программе + + + &Open database + Открыть хранилище + + + &Save database + Сохранить хранилище + + + &Close database + Закрыть хранилище + + + &New database + Новое хранилище + + + Merge from KeePassX database + Объединить из хранилища KeePassX + + + &Add new entry + Добавить новую запись + + + &View/Edit entry + Посмотреть/редактировать запись + + + &Delete entry + Удалить запись + + + &Add new group + Добавить новую группу + + + &Edit group + Редактировать группу + + + &Delete group + Удалить группу + + + Sa&ve database as + Сохранить хранилище как + + + Change &master key + Изменить мастер-пароль + + + &Database settings + Параметры хранилища + + + &Import KeePass 1 database + Импортировать хранилище KeePass 1 + + + &Clone entry + Клонировать запись + + + &Find + Найти + + + Copy &username + Скопировать имя пользователя + + + Cop&y password + Скопировать пароль + + + &Settings + Настройки + + + &Perform Auto-Type + Произвести автоввод + + + &Open URL + Открыть URL + + + &Lock databases + Заблокировать хранилище + + + &Title + Заголовок + + + &URL + URL + + + &Notes + Примечания + + + &Export to CSV file + Экспортировать в файл CSV + + + Re&pair database + Восстановление хранилища + + + Password Generator + Генератор паролей + + + + OptionDialog + + Dialog + Диалог + + + General + Общие + + + Sh&ow a notification when credentials are requested + Показывать уведомление при запросе данных для входа + + + &Return only best matching entries for an URL instead +of all entries for the whole domain + Возвращать только наиболее совпавшие с URL записи, а не все записи для домена + + + &Match URL schemes +Only entries with the same scheme (http://, https://, ftp://, ...) are returned + Совпадение со схемой URL +Возвращать только записи с соответствующей схемой (http://, https://, ftp://, ...) + + + Sort matching entries by &username + Сортировать совпавшие записи по &имени пользователя + + + R&emove all shared encryption-keys from active database + Удалить все общие ключи шифрования из активного хранилища + + + Re&move all stored permissions from entries in active database + Удалить все сохраненные права доступа из активного хранилища + + + Password generator + Генератор паролей + + + Advanced + Расширенные + + + Activate the following only, if you know what you are doing! + Включайте эти настройки только если знаете что делаете! + + + Always allow &access to entries + Всегда разрешать доступ к записям + + + Always allow &updating entries + Всегда разрешать обновление записей + + + Searc&h in all opened databases for matching entries + Искать соответствующие записи по всем открытым хранилищам + + + Only the selected database has to be connected with a client! + Только выбранное хранилище должно быть соединено с клиентом! + + + &Return also advanced string fields which start with "KPH: " + Возвращать дополнительные строковые поля, начинающиеся с "KPH: " + + + Automatic creates or updates are not supported for string fields! + Автоматическое создание или обновление не поддерживается строковыми полями! + + + HTTP Port: + Порт HTTP: + + + Default port: 19455 + Порт по умолчанию: 19455 + + + Re&quest to unlock the database if it is locked + Запрашивать разблокировку хранилища, если оно заблокировано + + + Sort &matching entries by title + Сортировать совпавшие записи по названию + + + Enable KeepassXC HTTP protocol +This is required for accessing your databases from ChromeIPass or PassIFox + Включить протокол KeepassXC HTTP +Это требуется для доступа к хранилищам из ChromeIPass или PassIFox + + + KeePassXC will listen to this port on 127.0.0.1 + KeePassXC будет слушать указнный порт на 127.0.0.1 + + + Cannot bind to privileged ports + Не удается выполнить привязку к привилегированным портам + + + Cannot bind to privileged ports below 1024! +Using default port 19455. + Не удается привязать к привилегированные порты ниже 1024! +Используется порт по умолчанию 19455. @@ -1112,10 +1399,6 @@ This is a one-way migration. You won't be able to open the imported databas Password: Пароль: - - Length: - Длина: - Character Types Виды символов @@ -1140,71 +1423,72 @@ This is a one-way migration. You won't be able to open the imported databas Exclude look-alike characters Исключить похожие символы - - Ensure that the password contains characters from every group - Убедитесь, что пароль содержит символы всех видов - Accept Принять - - - QCommandLineParser - Displays version information. - Показывает информацию о версии. + %p% + %p% - Displays this help. - Показывает эту справку. + strength + надёжность - Unknown option '%1'. - Неизвестная опция «%1». + entropy + энтропия - Unknown options: %1. - Неизвестные опции %1. + &Length: + Длина: - Missing value after '%1'. - Пропущено значение после «%1». + Pick characters from every group + Выберете символы из каждой группы - Unexpected value after '%1'. - Непредвиденное значение после «%1». + Generate + Генерировать - [options] - [опции] + Close + Закрыть - Usage: %1 - Использование: %1 + Apply + Применить - Options: - Опции: + Entropy: %1 bit + Энтропия: %1 бит - Arguments: - Аргументы: + Password Quality: %1 + Качество пароля: %1 + + + Poor + Плохой + + + Weak + Слабый + + + Good + Хороший + + + Excellent + Отличный - QSaveFile + QObject - Existing file %1 is not writable - Существующий файл %1 непригоден для записи - - - Writing canceled by application - Запись отменена приложением - - - Partial write. Partition full? - Частичная запись. Раздел переполнен? + Http + Http @@ -1244,20 +1528,110 @@ This is a one-way migration. You won't be able to open the imported databas SearchWidget - Find: - Найти: - - - Case sensitive + Case Sensitive Чувствительно к регистру - Current group - Текущая группа + Search + Поиск - Root group - Корневая группа + Find + Найти + + + Clear + Очистить + + + + Service + + A shared encryption-key with the name "%1" already exists. +Do you want to overwrite it? + Общий ключ шифрования с именем "%1" уже существует. +Вы хотите его перезаписать? + + + Do you want to update the information in %1 - %2? + Вы хотите обновить информацию в %1 - %2? + + + The active database is locked! +Please unlock the selected database or choose another one which is unlocked. + Активное хранилище заблокировано! +Разблокируйте выбранное хранилище или выберите другое, незаблокированное. + + + Successfully removed %1 encryption-%2 from KeePassX/Http Settings. + Успешно удалено %1 шифрование-%2 из настроек KeePassXC/Http. + + + No shared encryption-keys found in KeePassHttp Settings. + Не найдено общих ключей шифрования в настройках KeePassHttp. + + + The active database does not contain an entry of KeePassHttp Settings. + Активное хранилизе не содержит записей настроек KeePassHttp. + + + Removing stored permissions... + Удаляются сохранённые права доступа... + + + Abort + Отмена + + + Successfully removed permissions from %1 %2. + Права доступа из %1 %2 успешно удалены. + + + The active database does not contain an entry with permissions. + Активное хранилище не содержит записей с назначенными правами доступа. + + + KeePassXC: New key association request + KeePassXC: Запрос на ассоциацию нового ключа + + + You have received an association request for the above key. +If you would like to allow it access to your KeePassXC database +give it a unique name to identify and accept it. + Вы получили запрос на ассоциацию указанного ключа. +Если вы хотите разрешить доступ к вашему хранилищу KeePassXC, дайте ему уникальное имя и примите запрос. + + + KeePassXC: Overwrite existing key? + KeePassXC: Перезаписать существующий ключ? + + + KeePassXC: Update Entry + KeePassXC: Обновить запись + + + KeePassXC: Database locked! + KeePassXC: Хранилище заблокировано! + + + KeePassXC: Removed keys from database + KeePassXC: Ключи удалены из хранилища + + + KeePassXC: No keys found + KeePassXC: Ключи не найдены + + + KeePassXC: Settings not available! + KeePassXC% Настройки недоступны! + + + KeePassXC: Removed permissions + KeePassXC: Права доступа удалены + + + KeePassXC: No entry with permissions found! + KeePassXC: Не найдено записей с назначенными правами доступа! @@ -1281,10 +1655,6 @@ This is a one-way migration. You won't be able to open the imported databas Remember last databases Помнить последнее хранилище - - Open previous databases on startup - Открывать предыдущее хранилище при запуске - Automatically save on exit Автоматически сохранять при выходе @@ -1326,12 +1696,20 @@ This is a one-way migration. You won't be able to open the imported databas Запоминать последние файл-ключи - Hide window to system tray instead of App Exit - + Load previous databases on startup + Открывать предыдущие хранилища при запуске - Hide window to system tray on App start - + Automatically reload the database when modified externally + Автоматически перечитывать хранилище при его изменении внешними приложениями + + + Hide window to system tray instead of app exit + Прятать окно в системный лоток вместо выхода + + + Minimize window at application startup + Сворачивать окно при запуске приложения @@ -1356,6 +1734,14 @@ This is a one-way migration. You won't be able to open the imported databas Always ask before performing auto-type Всегда спрашивать перед тем, как производить автоввод + + Lock databases after minimizing the window + Заблокировать хранилище при сворачивании окна + + + Don't require password repeat when it is visible + Не требовать поворный ввод пароля когда он показывается + UnlockDatabaseWidget @@ -1373,14 +1759,6 @@ This is a one-way migration. You won't be able to open the imported databas main - - KeePassX - cross-platform password manager - KeePassX — кросс-платформенный менеджер паролей - - - filename of the password database to open (*.kdbx) - имя файла открываемого хранилища паролей (*.kdbx) - path to a custom config file путь к своему файлу настроек @@ -1389,5 +1767,17 @@ This is a one-way migration. You won't be able to open the imported databas key file of the database файл-ключ хранилища + + filename(s) of the password database(s) to open (*.kdbx) + имена(имя) файлов хранилищ(а) для открытия (*.kdbx) + + + KeePassXC - cross-platform password manager + KeePassXC — кросс-платформенный менеджер паролей + + + read password of the database from stdin + читать пароли хранилища из стандартного ввода "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