diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 00000000..42e4670c --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,6 @@ + +--- +Checks: '*,-fuchsia-*,-google-*,-zircon-*,-abseil-*,-modernize-use-trailing-return-type,-llvm-*' +WarningsAsErrors: '*' +HeaderFilterRegex: '' +FormatStyle: none \ No newline at end of file diff --git a/.cmake-format.yaml b/.cmake-format.yaml new file mode 100644 index 00000000..e7be3399 --- /dev/null +++ b/.cmake-format.yaml @@ -0,0 +1,18 @@ +additional_commands: + foo: + flags: + - BAR + - BAZ + kwargs: + DEPENDS: '*' + HEADERS: '*' + SOURCES: '*' +bullet_char: '*' +dangle_parens: false +enum_char: . +line_ending: unix +line_width: 120 +max_pargs_hwrap: 3 +separate_ctrl_name_with_space: false +separate_fn_name_with_space: false +tab_size: 2 \ No newline at end of file diff --git a/.github/workflows/Linux-pack.yml b/.github/workflows/Linux-pack.yml new file mode 100644 index 00000000..defb458e --- /dev/null +++ b/.github/workflows/Linux-pack.yml @@ -0,0 +1,413 @@ +name: Packaging(Linux) + +on: + push: + branches: + - master + paths-ignore: + - 'README.md' + - 'LICENSE' + + pull_request: + branches: + - master + paths-ignore: + - 'README.md' + - 'LICENSE' + +env: + PRODUCT: flameshot + RELEASE: 1 + ARCH: x86_64 + # dockerfiles, see https://github.com/flameshot-org/flameshot-docker-images + # docker images, see https://hub.docker.com/r/vitzy/flameshot + # vitzy/flameshot or packpack/packpack + DOCKER_REPO: vitzy/flameshot + # upload services: 0x0.st, file.io, transfer.sh, wetransfer.com + UPLOAD_SERVICE: wetransfer.com + +jobs: + deb-pack: + runs-on: ubuntu-20.04 + strategy: + fail-fast: false + matrix: + dist: [debian-10, ubuntu-20.04] + steps: + - name: Checkout Source code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + ref: master + - name: Set env & Print flameshot version + shell: bash + run: | + last_committed_tag=$(git tag -l --sort=-v:refname | head -1) + git_revno=$(git rev-list $(git describe --tags --abbrev=0)..HEAD --count) + git_hash=$(git rev-parse --short HEAD) + echo "=======FLAMESHOT VERSION========" + echo ${last_committed_tag:1} + echo "Details: ${last_committed_tag}+git${git_revno}.${git_hash}" + echo "================================" + echo ::set-env name=VERSION::$(echo ${last_committed_tag:1}) + - name: Get packpack tool + uses: actions/checkout@v2 + with: + # flameshot-org/packpack or packpack/packpack + repository: flameshot-org/packpack + path: tools + - name: Packaging on ${{ matrix.dist }} + if: matrix.dist == 'debian-10' + run: | + cp -r $GITHUB_WORKSPACE/data/debian $GITHUB_WORKSPACE + bash $GITHUB_WORKSPACE/tools/packpack + mv $GITHUB_WORKSPACE/build/${PRODUCT}_${VERSION}-${RELEASE}_amd64.deb $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-${RELEASE}.${{ matrix.dist }}.amd64.deb + env: + OS: debian + DIST: buster + - name: Packaging on ${{ matrix.dist }} + if: matrix.dist == 'ubuntu-20.04' + run: | + cp -r $GITHUB_WORKSPACE/data/debian $GITHUB_WORKSPACE + bash $GITHUB_WORKSPACE/tools/packpack + mv $GITHUB_WORKSPACE/build/${PRODUCT}_${VERSION}-${RELEASE}_amd64.deb $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-${RELEASE}.${{ matrix.dist }}.amd64.deb + env: + OS: ubuntu + DIST: focal + - name: SHA256Sum of ${{ matrix.dist }} package(daily build) + run: | + sha256sum $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-${RELEASE}.${{ matrix.dist }}.amd64.deb + sha256sum $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-${RELEASE}.${{ matrix.dist }}.amd64.deb > $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-${RELEASE}.${{ matrix.dist }}.amd64.deb.sha256sum + echo "=============${{ matrix.dist }} sha256sum download link============" + echo $(sh $GITHUB_WORKSPACE/scripts/upload_services/${UPLOAD_SERVICE}.sh $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-${RELEASE}.${{ matrix.dist }}.amd64.deb.sha256sum) + echo "========no operation for you can see link in the log console=======" + - name: Upload ${{ matrix.dist }} package(daily build) + run: | + echo "================${{ matrix.dist }} download link===============" + echo $(sh $GITHUB_WORKSPACE/scripts/upload_services/${UPLOAD_SERVICE}.sh $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-${RELEASE}.${{ matrix.dist }}.amd64.deb) + echo "======no operation for you can see link in the log console=====" + + deb-pack-extra: + name: ubuntu-18.04(extra job to packaging deb) + runs-on: ubuntu-20.04 + container: + image: vitzy/flameshot:ubuntu-bionic + steps: + - name: Checkout Source code + # Because git version < 2.18(ubuntu 18.04), so only actions/checkout@v1 can be used. + # If you use actions/checkout@v2, you will have no .git folder. + uses: actions/checkout@v1 + with: + fetch-depth: 0 + ref: master + - name: Set env & Print flameshot version + shell: bash + run: | + last_committed_tag=$(git tag -l --sort=-v:refname | head -1) + git_revno=$(git rev-list $(git describe --tags --abbrev=0)..HEAD --count) + git_hash=$(git rev-parse --short HEAD) + echo "=======FLAMESHOT VERSION========" + echo ${last_committed_tag:1} + echo "Details: ${last_committed_tag}+git${git_revno}.${git_hash}" + echo "================================" + echo ::set-env name=VERSION::$(echo ${last_committed_tag:1}) + - name: Install dependencies + run: | + apt-get -y -qq update + apt-get -y --no-install-recommends install \ + qt5-default \ + qttools5-dev-tools \ + qttools5-dev \ + libqt5dbus5 \ + libqt5network5 \ + libqt5core5a \ + libqt5widgets5 \ + libqt5gui5 \ + libqt5svg5-dev \ + python3 \ + python3-pip + - name: Prepare cmake(>=3.13.0) + run: | + apt-get -y autoremove cmake + wget https://github.com/Kitware/CMake/releases/download/v3.18.3/cmake-3.18.3-Linux-${ARCH}.tar.gz + tar -xf cmake-3.18.3-Linux-${ARCH}.tar.gz + cd ./cmake-3.18.3-Linux-${ARCH} + cp -r bin /usr/ + cp -r share /usr/ + cp -r doc /usr/share/ + cp -r man /usr/share/ + cd .. + rm -rf cmake-3.18.3-Linux-${ARCH} cmake-3.18.3-Linux-${ARCH}.tar.gz + echo "======CMAKE VERSION======" + cmake --version + echo "=========================" + - name: Packaging on ubuntu-18.04 + run: | + cp -r $GITHUB_WORKSPACE/data/debian $GITHUB_WORKSPACE + mkdir -p $GITHUB_WORKSPACE/build + sed -e "/cmake (>= 3.13~),/d" -i $GITHUB_WORKSPACE/debian/control + dpkg-buildpackage -b + cp $GITHUB_WORKSPACE/../${PRODUCT}_${VERSION}-${RELEASE}_amd64.deb $GITHUB_WORKSPACE/build/${PRODUCT}_${VERSION}-${RELEASE}.ubuntu-18.04.amd64.deb + - name: SHA256Sum of ubuntu-18.04 package(daily build) + run: | + sha256sum $GITHUB_WORKSPACE/build/${PRODUCT}_${VERSION}-${RELEASE}.ubuntu-18.04.amd64.deb + sha256sum $GITHUB_WORKSPACE/build/${PRODUCT}_${VERSION}-${RELEASE}.ubuntu-18.04.amd64.deb > $GITHUB_WORKSPACE/build/${PRODUCT}_${VERSION}-${RELEASE}.ubuntu-18.04.amd64.deb.sha256sum + echo "============ubuntu-18.04 sha256sum download link==============" + echo $(sh $GITHUB_WORKSPACE/scripts/upload_services/${UPLOAD_SERVICE}.sh $GITHUB_WORKSPACE/build/${PRODUCT}_${VERSION}-${RELEASE}.ubuntu-18.04.amd64.deb.sha256sum) + echo "=====no operation for you can see link in the log console=====" + - name: Upload ubuntu-18.04 package(daily build) + run: | + echo "===================ubuntu-18.04 download link==================" + echo $(sh $GITHUB_WORKSPACE/scripts/upload_services/${UPLOAD_SERVICE}.sh $GITHUB_WORKSPACE/build/${PRODUCT}_${VERSION}-${RELEASE}.ubuntu-18.04.amd64.deb) + echo "======no operation for you can see link in the log console=====" + + rpm-pack: + runs-on: ubuntu-20.04 + strategy: + fail-fast: false + matrix: + dist: [fedora-31, fedora-32, opensuse-leap-15.2] + steps: + - name: Checkout Source code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + ref: master + - name: Set env & Print flameshot version + shell: bash + run: | + last_committed_tag=$(git tag -l --sort=-v:refname | head -1) + git_revno=$(git rev-list $(git describe --tags --abbrev=0)..HEAD --count) + git_hash=$(git rev-parse --short HEAD) + echo "=======FLAMESHOT VERSION========" + echo ${last_committed_tag:1} + echo "Details: ${last_committed_tag}+git${git_revno}.${git_hash}" + echo "================================" + echo ::set-env name=VERSION::$(echo ${last_committed_tag:1}) + - name: Get packpack tool + uses: actions/checkout@v2 + with: + # flameshot-org/packpack or packpack/packpack + repository: flameshot-org/packpack + path: tools + - name: Packaging on ${{ matrix.dist }} + if: matrix.dist == 'fedora-31' + run: | + cp -r $GITHUB_WORKSPACE/data/rpm $GITHUB_WORKSPACE + bash $GITHUB_WORKSPACE/tools/packpack + env: + OS: fedora + DIST: 31 + - name: Packaging on ${{ matrix.dist }} + if: matrix.dist == 'fedora-32' + run: | + cp -r $GITHUB_WORKSPACE/data/rpm $GITHUB_WORKSPACE + bash $GITHUB_WORKSPACE/tools/packpack + env: + OS: fedora + DIST: 32 + - name: Packaging on ${{ matrix.dist }} + if: matrix.dist == 'opensuse-leap-15.2' + run: | + cp -r $GITHUB_WORKSPACE/data/rpm $GITHUB_WORKSPACE + bash $GITHUB_WORKSPACE/tools/packpack + env: + OS: opensuse-leap + DIST: 15.2 + - name: SHA256Sum of ${{ matrix.dist }} package(daily build) + if: startsWith(matrix.dist, 'fedora') + run: | + sha256sum $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-${RELEASE}.fc*.${ARCH}.rpm + sha256sum $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-${RELEASE}.fc*.${ARCH}.rpm > $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-${RELEASE}.fc*.${ARCH}.rpm.sha256sum + echo "============${{ matrix.dist }} sha256sum download link============" + echo $(sh $GITHUB_WORKSPACE/scripts/upload_services/${UPLOAD_SERVICE}.sh $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-${RELEASE}.fc*.${ARCH}.rpm.sha256sum) + echo "=======no operation for you can see link in the log console=======" + - name: SHA256Sum of ${{ matrix.dist }} package(daily build) + if: startsWith(matrix.dist, 'opensuse-leap') + run: | + sha256sum $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-lp*.${ARCH}.rpm + sha256sum $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-lp*.${ARCH}.rpm > $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-lp*.${ARCH}.rpm.sha256sum + echo "============${{ matrix.dist }} sha256sum download link===========" + echo $(sh $GITHUB_WORKSPACE/scripts/upload_services/${UPLOAD_SERVICE}.sh $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-lp*.${ARCH}.rpm.sha256sum) + echo "=======no operation for you can see link in the log console======" + - name: Upload ${{ matrix.dist }} package(daily build) + if: startsWith(matrix.dist, 'fedora') + run: | + echo "================${{ matrix.dist }} download link===============" + echo $(sh $GITHUB_WORKSPACE/scripts/upload_services/${UPLOAD_SERVICE}.sh $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-${RELEASE}.fc*.${ARCH}.rpm) + echo "======no operation for you can see link in the log console=====" + - name: Upload ${{ matrix.dist }} package(daily build) + if: startsWith(matrix.dist, 'opensuse-leap') + run: | + echo "================${{ matrix.dist }} download link===============" + echo $(sh $GITHUB_WORKSPACE/scripts/upload_services/${UPLOAD_SERVICE}.sh $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-lp*.${ARCH}.rpm) + echo "======no operation for you can see link in the log console=====" + + appimage-pack: + runs-on: ubuntu-20.04 + steps: + - name: Checkout Source code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + ref: master + - name: Set env & Print flameshot version + shell: bash + run: | + last_committed_tag=$(git tag -l --sort=-v:refname | head -1) + git_revno=$(git rev-list $(git describe --tags --abbrev=0)..HEAD --count) + git_hash=$(git rev-parse --short HEAD) + echo "=======FLAMESHOT VERSION========" + echo ${last_committed_tag:1} + echo "Details: ${last_committed_tag}+git${git_revno}.${git_hash}" + echo "================================" + echo ::set-env name=VERSION::$(echo ${last_committed_tag:1}) + - name: Install Dependencies + run: | + sudo apt-get -y -qq update + sudo apt-get -y --no-install-recommends install \ + cmake \ + extra-cmake-modules \ + build-essential \ + qt5-default \ + qttools5-dev-tools \ + qttools5-dev \ + libqt5dbus5 \ + libqt5network5 \ + libqt5core5a \ + libqt5widgets5 \ + libqt5gui5 \ + libqt5svg5-dev \ + appstream \ + hicolor-icon-theme \ + fcitx-frontend-qt5 \ + openssl \ + ca-certificates + - name: Get go-appimage tool + # Will not use linuxdeployqt anymore, because it suopprts currently still-supported mainstream distribution, + # which is glibc 2.23. For more information, please see https://github.com/probonopd/linuxdeployqt/issues/340. + # Will try new tool https://github.com/probonopd/go-appimage written in golang by the inventor of the AppImage format. + run: | + wget -c https://github.com/$(wget -q https://github.com/probonopd/go-appimage/releases -O - \ + | grep "appimagetool-.*-${ARCH}.AppImage" | head -n 1 | cut -d '"' -f 2) -O appimagetool + chmod +x appimagetool + - name: Packaging appimage + run: | + APPIMAGE_DST_PATH=$GITHUB_WORKSPACE/${PRODUCT}.AppDir + mkdir -p ${APPIMAGE_DST_PATH} + + cd $GITHUB_WORKSPACE + cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr + make -j$(nproc) DESTDIR=${APPIMAGE_DST_PATH} install + + $GITHUB_WORKSPACE/appimagetool -s deploy ${APPIMAGE_DST_PATH}/usr/share/applications/flameshot.desktop + + mkdir -p ${APPIMAGE_DST_PATH}/usr/plugins/platforminputcontexts + cp \ + /usr/lib/${ARCH}-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so \ + ${APPIMAGE_DST_PATH}/usr/plugins/platforminputcontexts/ + + cp \ + $GITHUB_WORKSPACE/data/img/app/flameshot.png \ + ${APPIMAGE_DST_PATH}/ + + VERSION=${VERSION} $GITHUB_WORKSPACE/appimagetool ${APPIMAGE_DST_PATH} + - name: SHA256Sum of appimage package(daily build) + run: | + sha256sum $GITHUB_WORKSPACE/Flameshot-${VERSION}-${ARCH}.AppImage + sha256sum $GITHUB_WORKSPACE/Flameshot-${VERSION}-${ARCH}.AppImage > $GITHUB_WORKSPACE/Flameshot-${VERSION}-${ARCH}.AppImage.sha256sum + echo "================appimage sha256sum download link===============" + echo $(sh $GITHUB_WORKSPACE/scripts/upload_services/${UPLOAD_SERVICE}.sh $GITHUB_WORKSPACE/Flameshot-${VERSION}-${ARCH}.AppImage.sha256sum) + echo "======no operation for you can see link in the log console=====" + - name: Upload appimage package for daily build + run: | + echo "====================appimage download link=====================" + echo $(sh $GITHUB_WORKSPACE/scripts/upload_services/${UPLOAD_SERVICE}.sh $GITHUB_WORKSPACE/Flameshot-${VERSION}-${ARCH}.AppImage) + echo "======no operation for you can see link in the log console=====" + + flatpak-pack: + runs-on: ubuntu-20.04 + steps: + - name: Checkout Source code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + ref: master + - name: Set env & Print flameshot version + shell: bash + run: | + last_committed_tag=$(git tag -l --sort=-v:refname | head -1) + git_revno=$(git rev-list $(git describe --tags --abbrev=0)..HEAD --count) + git_hash=$(git rev-parse --short HEAD) + echo "=======FLAMESHOT VERSION========" + echo ${last_committed_tag:1} + echo "Details: ${last_committed_tag}+git${git_revno}.${git_hash}" + echo "================================" + echo ::set-env name=VERSION::$(echo ${last_committed_tag:1}) + - name: Setup flatpak + run: | + sudo apt-get -y -qq update + sudo apt-get install -y flatpak flatpak-builder + - name: Setup Flathub + run: | + flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + flatpak install -y --noninteractive flathub org.kde.Sdk//5.15 org.kde.Platform//5.15 + - name: Packaging flatpak + run: | + BUNDLE="org.flameshot.flameshot_${VERSION}_${ARCH}.flatpak" + MANIFEST_PATH=$GITHUB_WORKSPACE/data/flatpak/org.flameshot.flameshot.yml + RUNTIME_REPO="https://flathub.org/repo/flathub.flatpakrepo" + APP_ID="org.flameshot.flameshot" + BRANCH="master" + + flatpak-builder --user --disable-rofiles-fuse --repo=repo --force-clean flatpak_app ${MANIFEST_PATH} --install-deps-from=flathub + flatpak build-bundle repo ${BUNDLE} --runtime-repo=${RUNTIME_REPO} ${APP_ID} ${BRANCH} + - name: SHA256Sum of flatpak package(daily build) + run: | + sha256sum $GITHUB_WORKSPACE/org.flameshot.flameshot_${VERSION}_${ARCH}.flatpak + sha256sum $GITHUB_WORKSPACE/org.flameshot.flameshot_${VERSION}_${ARCH}.flatpak > $GITHUB_WORKSPACE/org.flameshot.flameshot_${VERSION}_${ARCH}.flatpak.sha256sum + echo "================flatpak sha256sum download link====================" + echo $(sh $GITHUB_WORKSPACE/scripts/upload_services/${UPLOAD_SERVICE}.sh $GITHUB_WORKSPACE/org.flameshot.flameshot_${VERSION}_${ARCH}.flatpak.sha256sum) + echo "========no operation for you can see link in the log console=======" + - name: Upload flatpak package(daily build) + run: | + echo "=====================flatpak download link=====================" + echo $(sh $GITHUB_WORKSPACE/scripts/upload_services/${UPLOAD_SERVICE}.sh $GITHUB_WORKSPACE/org.flameshot.flameshot_${VERSION}_${ARCH}.flatpak) + echo "======no operation for you can see link in the log console=====" + + snap-pack: + runs-on: ubuntu-20.04 + steps: + - name: Checkout Source code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + ref: master + - name: Set env & Print flameshot version + shell: bash + run: | + last_committed_tag=$(git tag -l --sort=-v:refname | head -1) + git_revno=$(git rev-list $(git describe --tags --abbrev=0)..HEAD --count) + git_hash=$(git rev-parse --short HEAD) + echo "=======FLAMESHOT VERSION========" + echo ${last_committed_tag:1} + echo "Details: ${last_committed_tag}+git${git_revno}.${git_hash}" + echo "================================" + echo ::set-env name=VERSION::$(echo ${last_committed_tag:1}) + - name: Packaging snap + uses: snapcore/action-build@v1 + id: snapcraft + with: + path: data + - name: SHA256Sum of snap package(daily build) + run: | + sha256sum ${{ steps.snapcraft.outputs.snap }} + sha256sum ${{ steps.snapcraft.outputs.snap }} > ${{ steps.snapcraft.outputs.snap }}.sha256sum + echo "================snap sha256sum download link==================" + echo $(sh $GITHUB_WORKSPACE/scripts/upload_services/${UPLOAD_SERVICE}.sh ${{ steps.snapcraft.outputs.snap }}.sha256sum) + echo "=====no operation for you can see link in the log console=====" + - name: Upload snap package(daily build) + run: | + echo "=======================snap download link======================" + echo $(sh $GITHUB_WORKSPACE/scripts/upload_services/${UPLOAD_SERVICE}.sh ${{ steps.snapcraft.outputs.snap }}) + echo "======no operation for you can see link in the log console=====" diff --git a/.github/workflows/Windows-pack.yml b/.github/workflows/Windows-pack.yml new file mode 100644 index 00000000..b40952ed --- /dev/null +++ b/.github/workflows/Windows-pack.yml @@ -0,0 +1,158 @@ +name: Packaging(Windows) + +on: + push: + branches: + - master + paths-ignore: + - 'README.md' + - 'LICENSE' + + pull_request: + branches: + - master + paths-ignore: + - 'README.md' + - 'LICENSE' + +env: + PRODUCT: flameshot + +jobs: + windows-pack: + name: VS 2019 ${{ matrix.config.arch }}-${{ matrix.type }} + runs-on: windows-2019 + strategy: + fail-fast: false + matrix: + qt_ver: [5.15.1] + qt_target: [desktop] + config: + - { + arch: x86, + generator: "-G'Visual Studio 16 2019' -A Win32", + vcpkg_triplet: x86-windows, + qt_arch: win32_msvc2019, + qt_arch_install: msvc2019, + pak_arch: win32 + } + - { + arch: x64, + generator: "-G'Visual Studio 16 2019' -A x64", + vcpkg_triplet: x64-windows, + qt_arch: win64_msvc2019_64, + qt_arch_install: msvc2019_64, + pak_arch: win64 + } + type: [portable, installer] + env: + VCINSTALLDIR: C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/ + Qt5_DIR: ${{ github.workspace }}\build\Qt\${{ matrix.qt_ver }}\${{ matrix.config.qt_arch_install }}\lib\cmake\Qt5\ + QTDIR: ${{ github.workspace }}\build\Qt\${{ matrix.qt_ver }}\${{ matrix.config.qt_arch_install }}\ + + steps: + - name: Checkout Source code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + ref: master + + - name: Set env & Print flameshot version + shell: bash + run: | + last_committed_tag=$(git tag -l --sort=-v:refname | head -1) + git_revno=$(git rev-list $(git describe --tags --abbrev=0)..HEAD --count) + git_hash=$(git rev-parse --short HEAD) + echo "=======FLAMESHOT VERSION========" + echo ${last_committed_tag:1} + echo "Details: ${last_committed_tag}+git${git_revno}.${git_hash}" + echo "================================" + echo ::set-env name=VERSION::$(echo ${last_committed_tag:1}) + + - name: Cache Qt + id: cache-qt + uses: actions/cache@v1 + with: + path: ./build/Qt/${{ matrix.qt_ver }}/${{ matrix.config.qt_arch_install }} + key: ${{ runner.os }}-QtCache/${{ matrix.qt_ver }}/${{ matrix.config.qt_arch }} + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + with: + version: ${{ matrix.qt_ver }} + target: ${{ matrix.qt_target }} + arch: ${{ matrix.config.qt_arch }} + dir: '${{ github.workspace }}/build/' + modules: 'qtscript' + cached: ${{ steps.cache-qt.outputs.cache-hit }} + + - name: Configure + working-directory: build + shell: pwsh + run: | + cmake .. ${{matrix.config.generator}} ` + -DCMAKE_BUILD_TYPE=Release ` + -DRUN_IN_PLACE=${{ contains(matrix.type, 'portable') }} + + - name: Compile + working-directory: build + shell: pwsh + run: cmake --build . --config Release + + - name: CPack + working-directory: build + shell: pwsh + run: | + If ($env:TYPE -eq "installer") + { + cpack -G WIX -B "$env:GITHUB_WORKSPACE\build\Package" + } + ElseIf($env:TYPE -eq "portable") + { + cpack -G ZIP -B "$env:GITHUB_WORKSPACE\build\Package" + } + env: + TYPE: ${{matrix.type}} + + - name: Package Clean + run: rm -r $env:GITHUB_WORKSPACE\build\Package\_CPack_Packages + + - name: SHA256Sum of Windows installer(daily build) + if: matrix.type == 'installer' + shell: bash + run: | + sha256sum $GITHUB_WORKSPACE/build/Package/Flameshot-${VERSION}-${{ matrix.config.pak_arch }}.msi + sha256sum $GITHUB_WORKSPACE/build/Package/Flameshot-${VERSION}-${{ matrix.config.pak_arch }}.msi > $GITHUB_WORKSPACE/build/Package/Flameshot-${VERSION}-${{ matrix.config.pak_arch }}.msi.sha256sum + python -m pip install -U -q requests + echo "============Windows installer sha256sum download link============" + echo $(python $GITHUB_WORKSPACE/scripts/upload_services/transferwee.py upload $GITHUB_WORKSPACE/build/Package/Flameshot-${VERSION}-${{ matrix.config.pak_arch }}.msi.sha256sum) + echo "=======no operation for you can see link in the log console=====" + + - name: SHA256Sum of Windows portable(daily build) + if: matrix.type == 'portable' + shell: bash + run: | + sha256sum $GITHUB_WORKSPACE/build/Package/flameshot-${VERSION}-${{ matrix.config.pak_arch }}.zip + sha256sum $GITHUB_WORKSPACE/build/Package/flameshot-${VERSION}-${{ matrix.config.pak_arch }}.zip > $GITHUB_WORKSPACE/build/Package/flameshot-${VERSION}-${{ matrix.config.pak_arch }}.zip.sha256sum + python -m pip install -U -q requests + echo "===========Windows portable sha256sum download link============" + echo $(python $GITHUB_WORKSPACE/scripts/upload_services/transferwee.py upload $GITHUB_WORKSPACE/build/Package/flameshot-${VERSION}-${{ matrix.config.pak_arch }}.zip.sha256sum) + echo "=====no operation for you can see link in the log console=====" + + - name: Upload Windows installer(daily build) + if: matrix.type == 'installer' + shell: bash + run: | + python -m pip install -U -q requests + echo "================Windows installer download link================" + echo $(python $GITHUB_WORKSPACE/scripts/upload_services/transferwee.py upload $GITHUB_WORKSPACE/build/Package/Flameshot-${VERSION}-${{ matrix.config.pak_arch }}.msi) + echo "=====no operation for you can see link in the log console=====" + + - name: Upload Windows portable(daily build) + if: matrix.type == 'portable' + shell: bash + run: | + python -m pip install -U -q requests + echo "=================Windows portable download link================" + echo $(python $GITHUB_WORKSPACE/scripts/upload_services/transferwee.py upload $GITHUB_WORKSPACE/build/Package/flameshot-${VERSION}-${{ matrix.config.pak_arch }}.zip) + echo "=====no operation for you can see link in the log console=====" diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml new file mode 100644 index 00000000..ca731941 --- /dev/null +++ b/.github/workflows/build_cmake.yml @@ -0,0 +1,124 @@ +name: Building(CMake) + +on: + push: + branches: [ master ] + paths-ignore: + - 'README.md' + - 'LICENSE' + pull_request: + branches: [ master ] + paths-ignore: + - 'README.md' + - 'LICENSE' + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: RelWithDebInfo + +jobs: + linux-build: + name: ${{ matrix.os}} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-20.04] + + steps: + - uses: actions/checkout@v2 + + - name: Install Dependencies + run: | + sudo apt-get -y -qq update + sudo apt-get -y --no-install-recommends install \ + cmake \ + extra-cmake-modules \ + build-essential \ + qt5-default \ + qttools5-dev-tools \ + qttools5-dev \ + libqt5dbus5 \ + libqt5network5 \ + libqt5core5a \ + libqt5widgets5 \ + libqt5gui5 \ + libqt5svg5-dev + + - name: Create Build Environment + # Some projects don't allow in-source building, so create a separate build directory + # We'll use this as our working directory for all subsequent commands + run: cmake -E make_directory ${{runner.workspace}}/build + + - name: Configure CMake + # Use a bash shell so we can use the same syntax for environment variable + # access regardless of the host operating system + shell: bash + working-directory: ${{runner.workspace}}/build + # Note the current convention is to use the -S and -B options here to specify source + # and build directories, but this is only available with CMake 3.13 and higher. + # The CMake binaries on the Github Actions machines are (as of this writing) 3.12 + # + # We need to source the profile file to make sure conan is in PATH + run: | + cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE + - name: Build + working-directory: ${{runner.workspace}}/build + shell: bash + # Execute the build. You can specify a specific target with "--target " + run: cmake --build . --config $BUILD_TYPE + + - name: Test + working-directory: ${{runner.workspace}}/build + shell: bash + # Execute tests defined by the CMake configuration. + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: ctest -C $BUILD_TYPE + + windows-build: + runs-on: ${{ matrix.config.os }} + strategy: + fail-fast: false + matrix: + config: + - { + name: "Windows 2019 MSVC", + artifact: "Windows-MSVC.tar.xz", + os: windows-2019, + cc: "cl", cxx: "cl", + environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat" + } + - { + name: "Windows 2019 MinGW", + artifact: "Windows-MinGW.tar.xz", + os: windows-2019, + cc: "gcc", cxx: "g++" + } + + steps: + - uses: actions/checkout@v2 + + - name: Cache Qt + id: cache-qt + uses: actions/cache@v1 + with: + path: ./build/Qt + key: ${{ runner.os }}-QtCache + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + with: + version: 5.15.1 + target: desktop + dir: '${{ github.workspace }}/build/' + + - name: Configure + working-directory: build + shell: powershell + run: | + cmake -DCMAKE_BUILD_TYPE=$env:BUILD_TYPE ../ + + - name: Build + working-directory: build + shell: powershell + run: | + cmake --build . --config $env:BUILD_TYPE diff --git a/.github/workflows/clang-format.yml b/.github/workflows/clang-format.yml new file mode 100644 index 00000000..24382ae9 --- /dev/null +++ b/.github/workflows/clang-format.yml @@ -0,0 +1,17 @@ +name: test-clang-format + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - uses: DoozyX/clang-format-lint-action@v0.9 + with: + source: './src' + #exclude: './third_party ./external' + extensions: 'h,cpp' + clangFormatVersion: 11 + style: file diff --git a/.gitignore b/.gitignore index 65b32146..9b11ebb5 100644 --- a/.gitignore +++ b/.gitignore @@ -53,5 +53,13 @@ stage/ .snapcraft/ flameshot*.tar.bz2 +.vscode/ +build/ +data/flatpak/.flatpak-builder +# NVIM +*~ + +# Jetbrains +.idea/ # End of https://www.gitignore.io/api/snapcraft diff --git a/.travis/linux_after_success.sh b/.travis/linux_after_success.sh deleted file mode 100644 index 8d101d33..00000000 --- a/.travis/linux_after_success.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -- - -set -e - -DIST_PATH=dist - -if [[ "${EXTEN}" == "other" ]]; then - cp "${BUILD_DST_PATH}/flameshot" "${ROOT_PATH}/.travis/services/flameshot_${VERSION}_${ARCH}" - cd "${ROOT_PATH}/.travis/services" - TEMP_DOWNLOAD_URL=$(travis_retry bash \ - "${ROOT_PATH}/.travis/services/${UPLOAD_SERVICE}.sh" \ - flameshot_"${VERSION}_${ARCH}") -else - case "${OS}" in - "ubuntu"|"debian") - cp "${DIST_PATH}/flameshot_${VERSION}_${DIST}_${ARCH}.${EXTEN}" "${ROOT_PATH}/.travis/services/flameshot_${VERSION}_${DIST}_${ARCH}.${EXTEN}" - cd "${ROOT_PATH}/.travis/services" - TEMP_DOWNLOAD_URL=$(travis_retry bash \ - "${ROOT_PATH}/.travis/services/${UPLOAD_SERVICE}.sh" \ - "flameshot_${VERSION}_${DIST}_${ARCH}.${EXTEN}") - ;; - "fedora") - cp "${DIST_PATH}/flameshot_${VERSION}_fedora${DIST}_${ARCH}.${EXTEN}" "${ROOT_PATH}/.travis/services/flameshot_${VERSION}_fedora${DIST}_${ARCH}.${EXTEN}" - cd "${ROOT_PATH}/.travis/services" - TEMP_DOWNLOAD_URL=$(travis_retry bash \ - "${ROOT_PATH}/.travis/services/${UPLOAD_SERVICE}.sh" \ - "flameshot_${VERSION}_fedora${DIST}_${ARCH}.${EXTEN}") - ;; - esac -fi - diff --git a/.travis/linux_before_install.sh b/.travis/linux_before_install.sh deleted file mode 100644 index 68e6cc53..00000000 --- a/.travis/linux_before_install.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -- - -set -e - -if [[ "${EXTEN}" == "other" ]]; then - travis_retry sudo apt update -fi diff --git a/.travis/linux_install.sh b/.travis/linux_install.sh deleted file mode 100644 index f0006ea1..00000000 --- a/.travis/linux_install.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -- - -set -e - -if [[ "${EXTEN}" == "other" ]]; then - # Compile-time - travis_retry sudo apt install -y gcc g++ build-essential qt5-default qt5-qmake qttools5-dev-tools - # Run-time - travis_retry sudo apt install -y libqt5dbus5 libqt5network5 libqt5core5a libqt5widgets5 libqt5gui5 libqt5svg5-dev - # Optional - travis_retry sudo apt install -y openssl ca-certificates - # Install fcitx-frontend-qt5 - travis_retry sudo apt install -y fcitx-frontend-qt5 - -fi diff --git a/.travis/linux_script.sh b/.travis/linux_script.sh deleted file mode 100644 index 8b1b29a2..00000000 --- a/.travis/linux_script.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -- - -set -e - -DIST_PATH=dist - -if [[ ! -d "${DIST_PATH}" ]]; then - mkdir "${DIST_PATH}" -fi - -if [[ "${EXTEN}" == "other" ]]; then - project_dir="$(pwd)" - BUILD_DST_PATH=build-test - - qmake --version - mkdir "${BUILD_DST_PATH}" - qmake -makefile DESTDIR="${BUILD_DST_PATH}" "${project_dir}"/flameshot.pro - # Building flameshot - make -j$(nproc) - # Running flameshot tests - make check -j$(nproc) - ls -alhR - -else - travis_retry git clone https://github.com/flameshotapp/packpack.git - travis_retry packpack/packpack - pwd && ls - - case "${OS}" in - "ubuntu"|"debian") - # copy deb to dist path for distribution - cp \ - build/flameshot_*_*.deb \ - "${DIST_PATH}"/flameshot_${VERSION}_${DIST}_${ARCH}.${EXTEN} - ;; - "fedora") - cp \ - build/flameshot-${VERSION}-${RELEASE}.*.${ARCH}.rpm \ - "${DIST_PATH}"/flameshot_${VERSION}_fedora${DIST}_${ARCH}.${EXTEN} - ;; - esac -fi diff --git a/.travis/osx_script.sh b/.travis/osx_script.sh deleted file mode 100644 index 49bf68af..00000000 --- a/.travis/osx_script.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -- - -set -e - -project_dir="$(pwd)" - -brew update > /dev/null -brew install qt -QTDIR=/usr/local/opt/qt -PATH="${QTDIR}"/bin:"${PATH}" -LDFLAGS=-L"${QTDIR}"/lib -CPPFLAGS=-I"${QTDIR}"/include - -# Build your app -cd "${project_dir}" -mkdir dist -mkdir build -cd build -qmake -version -qmake CONFIG-=debug CONFIG+=release CONFIG+=packaging ../flameshot.pro -make -j$(nproc) - -git clone https://github.com/aurelien-rainone/macdeployqtfix.git -pwd -ls - -ls /Users/travis/build/ZetaoYang/flameshot - -# Package DMG from build/flamshot.app directory -"${QTDIR}"/bin/macdeployqt flameshot.app -python \ - "${project_dir}"/build/macdeployqtfix/macdeployqtfix.py \ - flameshot.app/Contents/MacOS/flameshot \ - "${QTDIR}" - -cd "${project_dir}"/build -mkdir -p distrib/Flameshot -cd distrib/Flameshot -mv "${project_dir}"/build/flameshot.app "${project_dir}"/build/distrib/Flameshot/ -cp "${project_dir}"/LICENSE LICENSE -cp "${project_dir}"/README.md README.md -echo "${VERSION}" > version -echo "${TRAVIS_COMMIT}" >> version - -ln -s /Applications ./Applications - -cd .. -hdiutil create -srcfolder ./Flameshot -format UDBZ ./flameshot.dmg -mv flameshot.dmg flameshot_X64_${VERSION}.dmg -mv flameshot_X64_${VERSION}.dmg "${project_dir}"/dist/flameshot_X64_$VERSION.dmg -TEMP_DOWNLOAD_URL=$(curl \ - --upload-file \ - flameshot_X64_$VERSION.dmg \ - "https://transfer.sh/flameshot_X64_$VERSION.dmg") -cd .. diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..acbdc2e5 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,109 @@ +cmake_minimum_required(VERSION 3.13) +# cmake_policy(SET CMP0076 OLD) + +# This can be read from ${PROJECT_NAME} after project() is called +project( + flameshot + VERSION 0.8.1 + LANGUAGES CXX) +set(PROJECT_NAME_CAPITALIZED "Flameshot") + +# Configuration options +set(DEFAULT_RUN_IN_PLACE FALSE) +if(WIN32) + set(DEFAULT_RUN_IN_PLACE TRUE) +endif() +set(RUN_IN_PLACE ${DEFAULT_RUN_IN_PLACE} CACHE BOOL + "Run directly in source directory structure") + + +option(GENERATE_TS "Regenerate translation source files" OFF) + +include(cmake/StandardProjectSettings.cmake) + +add_library(project_options INTERFACE) +target_compile_features(project_options INTERFACE cxx_std_17) + +add_library(project_warnings INTERFACE) + +# enable cache system +include(cmake/Cache.cmake) + +# standard compiler warnings +include(cmake/CompilerWarnings.cmake) +# set_project_warnings(project_warnings) + +# sanitizer options if supported by compiler +include(cmake/Sanitizers.cmake) +enable_sanitizers(project_options) + +# allow for static analysis options include(cmake/StaticAnalyzers.cmake) + +add_subdirectory(src) + +# CPack +set(CPACK_PACKAGE_VENDOR "flameshot-org") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Powerful yet simple to use screenshot software.") +set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) +set(CPACK_PACKAGE_HOMEPAGE_URL "https://flameshot.org") +set(CPACK_PACKAGE_CONTACT "flameshot-org developers ") +set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/data/img/app/flameshot.svg") # TODO: Can any generator make use of this? +set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md") # TODO: Where is this used? Do we need a better source? + +if(WIN32) + # Include all dynamically linked runtime libaries such as MSVCRxxx.dll + include(InstallRequiredSystemLibraries) + + if(RUN_IN_PLACE) + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}-win64") + else() + set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}-win32") + endif() + + set(CPACK_GENERATOR ZIP) + + else() + set(CPACK_GENERATOR WIX ZIP) + set(CPACK_PACKAGE_NAME "${PROJECT_NAME_CAPITALIZED}") + set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME_CAPITALIZED}") + set(CPACK_PACKAGE_EXECUTABLES ${PROJECT_NAME} "${PROJECT_NAME_CAPITALIZED}") + set(CPACK_CREATE_DESKTOP_LINKS ${PROJECT_NAME}) + + # WIX (Windows .msi installer) + # 48x48 pixels + set(CPACK_WIX_PRODUCT_ICON "${CMAKE_SOURCE_DIR}/data/img/app/flameshot.ico") + # Supported languages can be found at + # http://wixtoolset.org/documentation/manual/v3/wixui/wixui_localization.html + #set(CPACK_WIX_CULTURES "ar-SA,bg-BG,ca-ES,hr-HR,cs-CZ,da-DK,nl-NL,en-US,et-EE,fi-FI,fr-FR,de-DE") + set(CPACK_WIX_UI_BANNER "${CMAKE_SOURCE_DIR}/data/win-installer/Bitmaps/CPACK_WIX_UI_BANNER.BMP") + set(CPACK_WIX_UI_DIALOG "${CMAKE_SOURCE_DIR}/data/win-installer/Bitmaps/CPACK_WIX_UI_DIALOG.BMP") + set(CPACK_WIX_PROPERTY_ARPHELPLINK "${CPACK_PACKAGE_HOMEPAGE_URL}") + set(CPACK_WIX_PROPERTY_ARPURLINFOABOUT "${CPACK_PACKAGE_HOMEPAGE_URL}") + set(CPACK_WIX_ROOT_FEATURE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}") + set(CPACK_WIX_LIGHT_EXTRA_FLAGS "-dcl:high") # set high compression + + + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/data/win-installer/LICENSE/GPL-3.0.txt") + set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/README.md") + + # The correct way would be to include both x32 and x64 into one installer + # and install the appropriate one. + # CMake does not support that, so there are two separate GUID's + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(CPACK_WIX_UPGRADE_GUID "26D8062A-66D9-48D9-8924-42090FB9B3F9") + else() + set(CPACK_WIX_UPGRADE_GUID "2C53E1B9-51D9-4429-AAE4-B02221959AA5") + endif() + endif() +elseif(APPLE) + set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0) + set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}-osx") + set(CPACK_GENERATOR ZIP) +else() + set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}-linux") + set(CPACK_GENERATOR TGZ) + set(CPACK_SOURCE_GENERATOR TGZ) +endif() + +include(CPack) diff --git a/README.md b/README.md index 1368d8dc..941e8644 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@

- - Flameshot + + Flameshot
Flameshot @@ -10,23 +10,23 @@

Powerful yet simple to use screenshot software.

- - GNU/Linux Build Status + + GNU/Linux Build Status - - Windows Build Status + + Windows Build Status - - Latest Stable Release + + Latest Stable Release - - Total Downloads + + Total Downloads - - License + + License - - Docs + + Docs

@@ -35,7 +35,7 @@ ## Preview -![image](img/preview/animatedUsage.gif) +![image](https://github.com/flameshot-org/flameshot-org.github.io/blob/master/_media/animatedUsage.gif) ## Index @@ -48,6 +48,8 @@ - [On KDE Plasma desktop](#on-kde-plasma-desktop) - [Considerations](#considerations) - [Installation](#installation) + - [Prebuilt Packages](#prebuilt-packages) + - [Packages from Repository](#packages-from-repository) - [Compilation](#compilation) - [Dependencies](#dependencies) - [Compile-time](#compile-time) @@ -74,6 +76,11 @@ ## Usage +Executing the command `flameshot` without parameters will launch a running +instance of the program in background without taking actions. +If your desktop environment provides tray area, a tray icon will also +appear in the tray for users to perform configuration and management. + Example commands: - Capture with GUI: @@ -122,7 +129,7 @@ In case of doubt choose the first or the second command as shortcut in your favo A systray icon will be in your system's panel while Flameshot is running. Do a right click on the tray icon and you'll see some menu items to open the configuration window and the information window. -Check out the information window to see all the available shortcuts in the graphical capture mode. +Check out the About window to see all available shortcuts in the graphical capture mode. ### CLI configuration @@ -196,7 +203,7 @@ Steps for using the configuration: ```shell cd ~/Desktop - wget https://raw.githubusercontent.com/lupoDharkael/flameshot/master/docs/shortcuts-config/flameshot-shortcuts-kde + wget https://raw.githubusercontent.com/flameshot-org/flameshot/master/docs/shortcuts-config/flameshot-shortcuts-kde ``` 3. Go to _System Settings_ → _Shortcuts_ → _Custom Shortcuts_. 4. If there's one, you'll need to disable an entry for Spectacle, the default KDE screenshot utility first because its shortcuts might collide with Flameshot's ones; so, just uncheck the _Spectacle_ entry. @@ -210,15 +217,33 @@ Steps for using the configuration: - If you are using Gnome you need to install the [Gnome Shell Extension Appindicator](https://github.com/Ubuntu/gnome-shell-extension-appindicator) extension in order to see the systemtray icon. +- Press Enter or Ctrl + C when you are in a capture mode and you don't have an active selection and the whole desktop will be copied to your clipboard! Pressing Ctrl + S will save your capture in a file! Check the [Shortcuts](#keyboard-shortcuts) for more information. + +- Flameshot works best with a desktop environment that includes dbus. See this [article](https://wiki.archlinux.org/index.php/Flameshot#Troubleshooting) for tips on using Flameshot in a minimal window manager (dwm, i3, xmonad, etc) + - In order to speed up the first launch of Flameshot (DBus init of the app can be slow), consider starting the application automatically on boot. - -- Press Enter or Ctrl + C when you are in a capture mode and you don't have an active selection and the whole desktop will be copied to your clipboard! Pressing Ctrl + S will save your capture in a file! Check the [Shortcuts](#shortcuts) for more information. - -- Execute the command `flameshot` without parameters to launch a running instance of the program without taking actions. + - Quick tip: If you don't have Flameshot to autostart at boot and you want to set keyboard shortcut, use the following as the command for the keybinding: + ```sh + ( flameshot &; ) && ( sleep 0.5s && flameshot gui ) + ``` ## Installation -There are packages available for a few distros: +Flameshot can be installed on Linux and Microsoft Windows currently. + +There are no macOS port of flameshot now. Please participate in the development +of flameshot and help us make a macOS port. + +### Prebuilt packages + +Some prebuilt packages are provided on the release page of the GitHub project +repository. +[Click here to visit the release page.](https://github.com/flameshot-org/flameshot/releases). + +### Packages from Repository + +There are packages available in the repository of +some Linux distributions: - [Arch](https://www.archlinux.org/packages/community/x86_64/flameshot/): `pacman -S flameshot` + Snapshot also available via AUR: [flameshot-git](https://aur.archlinux.org/packages/flameshot-git). @@ -230,6 +255,7 @@ There are packages available for a few distros: - [Docker](https://github.com/ManuelLR/docker-flameshot) - Fedora: `dnf install flameshot` - [Snap/Flatpak/AppImage](https://github.com/flameshotapp/packages) +- [Solus](https://dev.getsol.us/source/flameshot/): `eopkg it flameshot` - Besides, generic packages available via [opensuse software repository](https://software.opensuse.org//download.html?project=home%3AVitzy&package=flameshot)
@@ -272,15 +298,20 @@ S3_X_API_KEY=seckret_key ## Compilation -To build the application in your system, you'll need to install the dependencies needed for it and Package names might be different for each distribution, see [Dependencies](#dependencies) below for more information. +To build the application in your system, you'll need to install the dependencies needed for it and package names might be different for each distribution, see [Dependencies](#dependencies) below for more information. You can also install most of the Qt dependencies via [their installer](https://www.qt.io/download-qt-installer). If you were developing Qt apps before, you probably already have them. + +This project uses [CMake](https://cmake.org/) build system, so you need to install it in order to build the project (on most Linux distributions it is available in the standard repositories as a package called `cmake`). If your distribution provides too old version of CMake (e.g. Ubuntu 18.04) you can [download it on the official website](https://cmake.org/download/). + +Also you can open and build/debug the project in a C++ IDE. For example, in Qt Creator you should be able to simply open `CMakeLists.txt` via `Open File or Project` in the menu after installing CMake into your system. [More information about CMake projects in Qt Creator](https://doc.qt.io/qtcreator/creator-project-cmake.html). ### Dependencies #### Compile-time -- Qt >= 5.3 +- Qt >= 5.9 + Development tools -- GCC >= 4.9.2 +- GCC >= 7.4 +- CMake >= 3.13 #### Run-time @@ -297,10 +328,10 @@ To build the application in your system, you'll need to install the dependencies ```shell # Compile-time -apt install g++ build-essential qt5-default qt5-qmake qttools5-dev-tools +apt install g++ cmake build-essential qt5-default qttools5-dev-tools libqt5svg5-dev qttools5-dev # Run-time -apt install libqt5dbus5 libqt5network5 libqt5core5a libqt5widgets5 libqt5gui5 libqt5svg5-dev +apt install libqt5dbus5 libqt5network5 libqt5core5a libqt5widgets5 libqt5gui5 libqt5svg5 # Optional apt install git openssl ca-certificates @@ -310,7 +341,7 @@ apt install git openssl ca-certificates ```shell # Compile-time -dnf install gcc-c++ qt5-devel qt5-qtbase-devel qt5-linguist +dnf install gcc-c++ cmake qt5-devel qt5-qtbase-devel qt5-linguist # Run-time dnf install qt5-qtbase qt5-qtsvg-devel @@ -323,7 +354,7 @@ dnf install git openssl ca-certificates ```shell # Compile-time -pacman -S base-devel git qt5-base qt5-tools +pacman -S cmake base-devel git qt5-base qt5-tools # Run-time pacman -S qt5-svg @@ -339,30 +370,14 @@ After installing all the dependencies, finally run the following commands in the ```shell mkdir build cd build -qmake ../ +cmake ../ make ``` ### Install -Simply use `make install` with privileges. - -## Packaging - -Having `git` installed is required if you're building Flameshot from a snapshot to have precise version information. - -In order to generate the instructions in the `Makefile` to install the application in `/usr` instead of in `/usr/local` you can pass the `packaging` option to `qmake` (`qmake CONFIG+=packaging`). - -If you want to install in a custom directory you can use the `INSTALL_ROOT` variable. - -**Example**: - -If you want to install Flameshot in `~/myBuilds/test`, you can execute the following to do so: - -```shell -qmake CONFIG+=packaging -make INSTALL_ROOT=~/myBuilds/test install -``` +Simply use `make install` with privileges. +Note: If you install from source, there is no uninstaller, you will need to manually remove the files. Consider using [CMAKE_INSTALL_PREFIX](https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_PREFIX.html) to install to a custom location for easy removal. ## License - The main code is licensed under [GPLv3](LICENSE) @@ -377,17 +392,13 @@ Info: If I take code from your project and that implies a relicense to GPLv3, yo ## Contribute -If you want to contribute check the [CONTRIBUTING.md](CONTRIBUTING.md) +If you want to contribute check the [CONTRIBUTING.md](docs/CONTRIBUTING.md) -## Donations -I improve Flameshot in my free time because I want to create something good for everyone to use. -If you want you can donate some bucks with the following options: -- [Paypal](https://www.paypal.me/lupoDharkael) -- bitcoin:1K6oiUKWVjP3x9ZuW9C7NbDfcFkMx3G8ue ## Acknowledgment -I really appreciate those who have shown interest in the early development process: +Thanks to those who have shown interest in the early development process: +- [lupoDharkael](https://github.com/lupoDharkael) - [Cosmo](https://github.com/philpem) - [XerTheSquirrel](https://github.com/XerTheSquirrel) - [The members of Sugus GNU/Linux](https://github.com/SUGUS-GNULinux) diff --git a/appveyor.yml b/appveyor.yml index cca44938..960e86f2 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,90 +1,20 @@ -image: Visual Studio 2015 - -#TODO: we should take version from the last tag in git history + build number -version: 0.7.12.{build} -# Major_Version_Number.Minor_Version_Number.Patch_Number.Build_Number - -skip_branch_with_pr: true +image: + - Visual Studio 2019 +clone_folder: c:\projects\source environment: - COMPILER: msvc - VSVER: 14 - - matrix: - - QT: C:\Qt\5.9\msvc2015_64 - PLATFORM: amd64 - - QT: C:\Qt\5.9\msvc2015 - PLATFORM: x86 -init: - - ps: | - $version = new-object System.Version $env:APPVEYOR_BUILD_VERSION - $packageVersion = "{0}.{1}.{2}.{3}" -f $version.Major, $version.Minor, $version.Build, $version.Revision - $env:build_number = $version.Build - $env:flameshot_version = $packageVersion - -# scripts that run after cloning repository -install: - - set PATH=%QT%\bin\;C:\Qt\Tools\QtCreator\bin\;C:\Qt\QtIFW3.0.1\bin\;%PATH% - -# scripts that run before build -before_build: - - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %PLATFORM% - - appveyor DownloadFile http://mlaan2.home.xs4all.nl/ispack/innosetup-6.0.5.exe - - innosetup-6.0.5.exe /VERYSILENT /ALLUSERS /DIR=C:\InnoSetup - # After calling vcvarsall.bat, %PLATFORM% will be X64 or x86 - - qmake --version - - mkdir build - - cd build - - if "%PLATFORM%" EQU "X64" (qmake -r -spec win32-msvc CONFIG+=x86_64 CONFIG-=debug CONFIG+=release ../flameshot.pro) - - if "%PLATFORM%" EQU "x86" (qmake -r -spec win32-msvc CONFIG+=Win32 CONFIG-=debug CONFIG+=release ../flameshot.pro) - -# custom build scripts + Qt5_INSTALL_DIR: 'C:\Qt\5.15.0\msvc2019_64' + PATH: '%Qt5_INSTALL_DIR%\bin;%PATH%' build_script: - - nmake +- cmd: >- -# scripts that run after build -after_build: - # Clone OpenSSL DLLs - - mkdir distrib\flameshot - - windeployqt.exe --dir .\distrib\flameshot %APPVEYOR_BUILD_FOLDER%\build\release\flameshot.exe - - copy "%APPVEYOR_BUILD_FOLDER%\build\release\flameshot.exe" "distrib\flameshot\flameshot.exe" - - copy "%APPVEYOR_BUILD_FOLDER%\README.md" "distrib\flameshot\README.md" - - copy "%APPVEYOR_BUILD_FOLDER%\LICENSE" "distrib\flameshot\LICENSE.txt" - - copy "%APPVEYOR_BUILD_FOLDER%\docs\flameshot-documentation.pdf" "distrib\flameshot\flameshot-documentation.pdf" - - echo %flameshot_version% > "distrib\flameshot\version.txt" - - echo Build:%build_number% >> "distrib\flameshot\version.txt" - - echo %APPVEYOR_REPO_COMMIT% >> "distrib\flameshot\version.txt" - - copy "distrib\flameshot\flameshot.exe" "distrib\flameshot_win_%PLATFORM%.exe" - - copy "%APPVEYOR_BUILD_FOLDER%\build\translations\Internationalization_*.qm" "distrib\flameshot\translations" - # Delete translations\qt_*.qm - - del /F /Q "distrib\flameshot\translations\qt_*.qm" - # install vcredist-2015 - - cd distrib - - if "%PLATFORM%" EQU "X64" (mv flameshot\vcredist_x64.exe flameshot\vcredist.exe) - - if "%PLATFORM%" EQU "x86" (mv flameshot\vcredist_x86.exe flameshot\vcredist.exe) - - 7z a flameshot_%flameshot_version%_win_%PLATFORM%.zip flameshot - # Download and install vcredist-2013 for OpenSSL binnaries - - if "%PLATFORM%" EQU "X64" appveyor DownloadFile https://slproweb.com/download/Win64OpenSSL_Light-1_0_2u.exe - - if "%PLATFORM%" EQU "X64" (mv Win64OpenSSL_Light-1_0_2u.exe flameshot\OpenSSL_Light-1_0_2u.exe) - - if "%PLATFORM%" EQU "x86" appveyor DownloadFile https://slproweb.com/download/Win32OpenSSL_Light-1_0_2u.exe - - if "%PLATFORM%" EQU "x86" (mv Win32OpenSSL_Light-1_0_2u.exe flameshot\OpenSSL_Light-1_0_2u.exe) - - flameshot\OpenSSL_Light-1_0_2u.exe /VERYSILENT /DIR="C:\OpenSSL_Temp" - - cp C:\OpenSSL_Temp\libeay32.dll flameshot\libeay32.dll - - cp C:\OpenSSL_Temp\libssl32.dll flameshot\libssl32.dll - - cp C:\OpenSSL_Temp\ssleay32.dll flameshot\ssleay32.dll - - rm flameshot\OpenSSL_Light-1_0_2u.exe - - if "%PLATFORM%" EQU "X64" appveyor DownloadFile https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe - - if "%PLATFORM%" EQU "X64" (mv vcredist_x64.exe flameshot\vcredist-2013.exe) - - if "%PLATFORM%" EQU "x86" appveyor DownloadFile https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x86.exe - - if "%PLATFORM%" EQU "x86" (mv vcredist_x86.exe flameshot\vcredist-2013.exe) - # Build installation - - cp ..\..\win_setup\flameshot.iss flameshot.iss - - C:\InnoSetup\Compil32.exe /cc flameshot.iss - - mv Output\Flameshot-Setup.exe Output\Flameshot-Setup-%PLATFORM%-%flameshot_version%.exe + mkdir build + cd build + + echo %PATH% + + cmake c:\projects\source -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE:STRING=Release + + cmake --build . --config "Release" -artifacts: - - path: build\distrib\flameshot_%flameshot_version%_win_%PLATFORM%.zip - name: exe_only - - path: build\distrib\Output\Flameshot-Setup-%PLATFORM%-%flameshot_version%.exe - name: installer diff --git a/cmake/Cache.cmake b/cmake/Cache.cmake new file mode 100644 index 00000000..8664491d --- /dev/null +++ b/cmake/Cache.cmake @@ -0,0 +1,30 @@ +option(ENABLE_CACHE "Enable cache if available" ON) +if(NOT ENABLE_CACHE) + return() +endif() + +set(CACHE_OPTION + "ccache" + CACHE STRING "Compiler cache to be used") +set(CACHE_OPTION_VALUES "ccache" "sccache") +set_property(CACHE CACHE_OPTION PROPERTY STRINGS ${CACHE_OPTION_VALUES}) +list( + FIND + CACHE_OPTION_VALUES + ${CACHE_OPTION} + CACHE_OPTION_INDEX) + +if(${CACHE_OPTION_INDEX} EQUAL -1) + message( + STATUS + "Using custom compiler cache system: '${CACHE_OPTION}', explicitly supported entries are ${CACHE_OPTION_VALUES}") +endif() + +find_program(CACHE_BINARY ${CACHE_OPTION}) +if(CACHE_BINARY) + message(STATUS "${CACHE_OPTION} found and enabled") + set(CMAKE_CXX_COMPILER_LAUNCHER ${CACHE_BINARY}) +else() + message(WARNING "${CACHE_OPTION} is enabled but was not found. Not using it") +endif() + diff --git a/cmake/CompilerWarnings.cmake b/cmake/CompilerWarnings.cmake new file mode 100644 index 00000000..d933ce30 --- /dev/null +++ b/cmake/CompilerWarnings.cmake @@ -0,0 +1,78 @@ +# from here: +# +# https://github.com/lefticus/cppbestpractices/blob/master/02-Use_the_Tools_Avai lable.md + +function(set_project_warnings project_name) + option(WARNINGS_AS_ERRORS "Treat compiler warnings as errors" TRUE) + + set(MSVC_WARNINGS + /W4 # Baseline reasonable warnings + /w14242 # 'identifier': conversion from 'type1' to 'type1', possible loss of data + /w14254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data + /w14263 # 'function': member function does not override any base class virtual member function + /w14265 # 'classname': class has virtual functions, but destructor is not virtual instances of this class may not + # be destructed correctly + /w14287 # 'operator': unsigned/negative constant mismatch + /we4289 # nonstandard extension used: 'variable': loop control variable declared in the for-loop is used outside + # the for-loop scope + /w14296 # 'operator': expression is always 'boolean_value' + /w14311 # 'variable': pointer truncation from 'type1' to 'type2' + /w14545 # expression before comma evaluates to a function which is missing an argument list + /w14546 # function call before comma missing argument list + /w14547 # 'operator': operator before comma has no effect; expected operator with side-effect + /w14549 # 'operator': operator before comma has no effect; did you intend 'operator'? + /w14555 # expression has no effect; expected expression with side- effect + /w14619 # pragma warning: there is no warning number 'number' + /w14640 # Enable warning on thread un-safe static member initialization + /w14826 # Conversion from 'type1' to 'type_2' is sign-extended. This may cause unexpected runtime behavior. + /w14905 # wide string literal cast to 'LPSTR' + /w14906 # string literal cast to 'LPWSTR' + /w14928 # illegal copy-initialization; more than one user-defined conversion has been implicitly applied + /permissive- # standards conformance mode for MSVC compiler. + ) + + set(CLANG_WARNINGS + -Wall + -Wextra # reasonable and standard + -Wshadow # warn the user if a variable declaration shadows one from a parent context + -Wnon-virtual-dtor # warn the user if a class with virtual functions has a non-virtual destructor. This helps + # catch hard to track down memory errors + -Wold-style-cast # warn for c-style casts + -Wcast-align # warn for potential performance problem casts + -Wunused # warn on anything being unused + -Woverloaded-virtual # warn if you overload (not override) a virtual function + -Wpedantic # warn if non-standard C++ is used + -Wconversion # warn on type conversions that may lose data + -Wsign-conversion # warn on sign conversions + -Wnull-dereference # warn if a null dereference is detected + -Wdouble-promotion # warn if float is implicit promoted to double + -Wformat=2 # warn on security issues around functions that format output (ie printf) + ) + + if(WARNINGS_AS_ERRORS) + set(CLANG_WARNINGS ${CLANG_WARNINGS} -Werror) + set(MSVC_WARNINGS ${MSVC_WARNINGS} /WX) + endif() + + set(GCC_WARNINGS + ${CLANG_WARNINGS} + -Wmisleading-indentation # warn if indentation implies blocks where blocks do not exist + -Wduplicated-cond # warn if if / else chain has duplicated conditions + -Wduplicated-branches # warn if if / else branches have duplicated code + -Wlogical-op # warn about logical operations being used where bitwise were probably wanted + -Wuseless-cast # warn if you perform a cast to the same type + ) + + if(MSVC) + set(PROJECT_WARNINGS ${MSVC_WARNINGS}) + elseif(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang") + set(PROJECT_WARNINGS ${CLANG_WARNINGS}) + elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + set(PROJECT_WARNINGS ${GCC_WARNINGS}) + else() + message(AUTHOR_WARNING "No compiler warnings set for '${CMAKE_CXX_COMPILER_ID}' compiler.") + endif() + + target_compile_options(${project_name} INTERFACE ${PROJECT_WARNINGS}) + +endfunction() diff --git a/cmake/Sanitizers.cmake b/cmake/Sanitizers.cmake new file mode 100644 index 00000000..dda0d26c --- /dev/null +++ b/cmake/Sanitizers.cmake @@ -0,0 +1,66 @@ +function(enable_sanitizers project_name) + + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES ".*Clang") + option(ENABLE_COVERAGE "Enable coverage reporting for gcc/clang" FALSE) + + if(ENABLE_COVERAGE) + target_compile_options(${project_name} INTERFACE --coverage -O0 -g) + target_link_libraries(${project_name} INTERFACE --coverage) + endif() + + set(SANITIZERS "") + + option(ENABLE_SANITIZER_ADDRESS "Enable address sanitizer" FALSE) + if(ENABLE_SANITIZER_ADDRESS) + list(APPEND SANITIZERS "address") + endif() + + option(ENABLE_SANITIZER_LEAK "Enable leak sanitizer" FALSE) + if(ENABLE_SANITIZER_LEAK) + list(APPEND SANITIZERS "leak") + endif() + + option(ENABLE_SANITIZER_UNDEFINED_BEHAVIOR "Enable undefined behavior sanitizer" FALSE) + if(ENABLE_SANITIZER_UNDEFINED_BEHAVIOR) + list(APPEND SANITIZERS "undefined") + endif() + + option(ENABLE_SANITIZER_THREAD "Enable thread sanitizer" FALSE) + if(ENABLE_SANITIZER_THREAD) + if("address" IN_LIST SANITIZERS OR "leak" IN_LIST SANITIZERS) + message(WARNING "Thread sanitizer does not work with Address and Leak sanitizer enabled") + else() + list(APPEND SANITIZERS "thread") + endif() + endif() + + option(ENABLE_SANITIZER_MEMORY "Enable memory sanitizer" FALSE) + if(ENABLE_SANITIZER_MEMORY AND CMAKE_CXX_COMPILER_ID MATCHES ".*Clang") + if("address" IN_LIST SANITIZERS + OR "thread" IN_LIST SANITIZERS + OR "leak" IN_LIST SANITIZERS) + message(WARNING "Memory sanitizer does not work with Address, Thread and Leak sanitizer enabled") + else() + list(APPEND SANITIZERS "memory") + endif() + endif() + + list( + JOIN + SANITIZERS + "," + LIST_OF_SANITIZERS) + + endif() + + if(LIST_OF_SANITIZERS) + if(NOT + "${LIST_OF_SANITIZERS}" + STREQUAL + "") + target_compile_options(${project_name} INTERFACE -fsanitize=${LIST_OF_SANITIZERS}) + target_link_libraries(${project_name} INTERFACE -fsanitize=${LIST_OF_SANITIZERS}) + endif() + endif() + +endfunction() \ No newline at end of file diff --git a/cmake/StandardProjectSettings.cmake b/cmake/StandardProjectSettings.cmake new file mode 100644 index 00000000..743b0712 --- /dev/null +++ b/cmake/StandardProjectSettings.cmake @@ -0,0 +1,34 @@ +# Set a default build type if none was specified +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + message(STATUS "Setting build type to 'RelWithDebInfo' as none was specified.") + set(CMAKE_BUILD_TYPE + RelWithDebInfo + CACHE STRING "Choose the type of build." FORCE) + # Set the possible values of build type for cmake-gui, ccmake + set_property( + CACHE CMAKE_BUILD_TYPE + PROPERTY STRINGS + "Debug" + "Release" + "MinSizeRel" + "RelWithDebInfo") +endif() + +# Generate compile_commands.json to make it easier to work with clang based tools +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + +option(ENABLE_IPO "Enable Interprocedural Optimization, aka Link Time Optimization (LTO)" OFF) + +if(ENABLE_IPO) + include(CheckIPOSupported) + check_ipo_supported( + RESULT + result + OUTPUT + output) + if(result) + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) + else() + message(SEND_ERROR "IPO is not supported: ${output}") + endif() +endif() \ No newline at end of file diff --git a/cmake/StaticAnalyzers.cmake b/cmake/StaticAnalyzers.cmake new file mode 100644 index 00000000..43964447 --- /dev/null +++ b/cmake/StaticAnalyzers.cmake @@ -0,0 +1,37 @@ +option(ENABLE_CPPCHECK "Enable static analysis with cppcheck" OFF) +option(ENABLE_CLANG_TIDY "Enable static analysis with clang-tidy" OFF) +option(ENABLE_INCLUDE_WHAT_YOU_USE "Enable static analysis with include-what-you-use" OFF) + +if(ENABLE_CPPCHECK) + find_program(CPPCHECK cppcheck) + if(CPPCHECK) + set(CMAKE_CXX_CPPCHECK + ${CPPCHECK} + --suppress=missingInclude + --enable=all + --inline-suppr + --inconclusive + -i + ${CMAKE_SOURCE_DIR}/imgui/lib) + else() + message(SEND_ERROR "cppcheck requested but executable not found") + endif() +endif() + +if(ENABLE_CLANG_TIDY) + find_program(CLANGTIDY clang-tidy) + if(CLANGTIDY) + set(CMAKE_CXX_CLANG_TIDY ${CLANGTIDY} -extra-arg=-Wno-unknown-warning-option) + else() + message(SEND_ERROR "clang-tidy requested but executable not found") + endif() +endif() + +if(ENABLE_INCLUDE_WHAT_YOU_USE) + find_program(INCLUDE_WHAT_YOU_USE include-what-you-use) + if(INCLUDE_WHAT_YOU_USE) + set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE ${INCLUDE_WHAT_YOU_USE}) + else() + message(SEND_ERROR "include-what-you-use requested but executable not found") + endif() +endif() diff --git a/data/dbus/org.flameshot.Flameshot.service.in b/data/dbus/org.flameshot.Flameshot.service.in new file mode 100644 index 00000000..781ffa8a --- /dev/null +++ b/data/dbus/org.flameshot.Flameshot.service.in @@ -0,0 +1,3 @@ +[D-BUS Service] +Name=org.flameshot.Flameshot +Exec=${CMAKE_INSTALL_FULL_BINDIR}/flameshot diff --git a/dbus/org.dharkael.Flameshot.xml b/data/dbus/org.flameshot.Flameshot.xml similarity index 93% rename from dbus/org.dharkael.Flameshot.xml rename to data/dbus/org.flameshot.Flameshot.xml index ab51fbbe..219b563f 100644 --- a/dbus/org.dharkael.Flameshot.xml +++ b/data/dbus/org.flameshot.Flameshot.xml @@ -1,6 +1,6 @@ - + - + @@ -110,7 +110,7 @@ Whenever the capture fails. --> - + diff --git a/dbus/org.freedesktop.Notifications.xml b/data/dbus/org.freedesktop.Notifications.xml similarity index 100% rename from dbus/org.freedesktop.Notifications.xml rename to data/dbus/org.freedesktop.Notifications.xml diff --git a/data/debian/changelog b/data/debian/changelog new file mode 100644 index 00000000..e06b8f0e --- /dev/null +++ b/data/debian/changelog @@ -0,0 +1,5 @@ +flameshot (0.8.1-1) unstable; urgency=medium + + * New stable release. + + -- Boyuan Yang Wed, 23 Sep 2020 20:39:29 -0400 diff --git a/data/debian/compat b/data/debian/compat new file mode 100644 index 00000000..b4de3947 --- /dev/null +++ b/data/debian/compat @@ -0,0 +1 @@ +11 diff --git a/debian/control b/data/debian/control similarity index 54% rename from debian/control rename to data/debian/control index df8e4b22..288ecb68 100644 --- a/debian/control +++ b/data/debian/control @@ -1,24 +1,24 @@ Source: flameshot Section: graphics Priority: optional -Maintainer: Juanma Navarro Mañez -Uploaders: - Boyuan Yang , +Maintainer: Boyuan Yang Build-Depends: - debhelper (>= 9), - qt5-qmake, - qtbase5-dev, - qttools5-dev-tools, - libqt5svg5-dev, -Standards-Version: 4.3.0 -Homepage: https://github.com/lupoDharkael/flameshot -Vcs-Browser: https://github.com/lupoDharkael/flameshot -Vcs-Git: https://github.com/lupoDharkael/flameshot.git + cmake (>= 3.13~), + debhelper (>= 11), + qtbase5-dev (>= 5.9.0~), + qttools5-dev (>= 5.9.0~), + qttools5-dev-tools (>= 5.9.0~), + libqt5svg5-dev (>= 5.9.0~), +Standards-Version: 4.5.0 +Homepage: https://github.com/flameshot-org/flameshot +Vcs-Browser: https://github.com/flameshot-org/flameshot +Vcs-Git: https://github.com/flameshot-org/flameshot.git Package: flameshot Architecture: any Depends: - libqt5svg5, + hicolor-icon-theme, + libqt5svg5 (>= 5.9.0~), ${shlibs:Depends}, ${misc:Depends}, Suggests: diff --git a/debian/copyright b/data/debian/copyright similarity index 97% rename from debian/copyright rename to data/debian/copyright index c88b7338..e9942545 100644 --- a/debian/copyright +++ b/data/debian/copyright @@ -1,29 +1,33 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: flameshot -Source: https://github.com/lupoDharkael/flameshot/ +Source: https://github.com/flameshot-org/flameshot/ Files: * Copyright: 2016-2019 lupoDharkael License: GPL-3+ -Comments: +Comment: The author copied a few lines of code from KSnapshot regiongrabber.cpp revision 796531 (LGPL). Files: debian/* Copyright: 2017 Juanma Navarro Mañez - 2018-2019 Boyuan Yang + 2018 Boyuan Yang License: GPL-3+ -Files: img/flameshot.* +Files: + data/img/app/flameshot.* + data/img/hicolor/* Copyright: 2017 lupoDharkael License: Free-Art-License-1.3 Files: - docs/appdata/flameshot.appdata.xml + docs/appdata/flameshot.metainfo.xml Copyright: 2017-2019 lupoDharkael License: CC0-1.0 -Files: img/buttonIconsBlack/* img/buttonIconsWhite/* +Files: + data/img/material/black/* + data/img/material/white/* Copyright: Google Inc. License: Apache-2.0 @@ -32,7 +36,7 @@ Copyright: 2017 Alejandro Sirgo Rica 2017 Christian Kaiser 2007 Luca Gugelmann License: GPL-3+ -Comments: +Comment: Relicensed under GPL-3+ under flameshot project. . Originally based on Lightscreen areadialog.h, @@ -43,14 +47,14 @@ Comments: Copyright 2007 Luca Gugelmann released under the GNU LGPL -Files: src/third-party/singleapplication/* +Files: external/singleapplication/* Copyright: 2015 - 2016 Itay Grudev License: Expat -Files: src/third-party/Qt-Color-Widgets/* +Files: external/Qt-Color-Widgets/* Copyright: 2013-2017 Mattia Basaglia License: LGPL-3+ -Comments: +Comment: As a special exception, this library can be included in any project under the terms of any of the GNU licenses, distributing the whole project under a different GNU license, see LICENSE-EXCEPTION for details. @@ -362,8 +366,8 @@ License: Free-Art-License-1.3 (without any changes). . Translation : Jonathan Clarke, Benjamin Jean, Griselda Jung, Fanny - Mourguet, Antoine Pitrou. Thanks to framalang.org - + Mourguet, Antoine Pitrou. Thanks to framalang.org + License: GPL-3+ 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 diff --git a/debian/docs b/data/debian/docs similarity index 100% rename from debian/docs rename to data/debian/docs diff --git a/debian/rules b/data/debian/rules similarity index 89% rename from debian/rules rename to data/debian/rules index accd2cb7..fbd696f2 100755 --- a/debian/rules +++ b/data/debian/rules @@ -21,4 +21,4 @@ export QT_SELECT := 5 override_dh_auto_configure: # The existence of an empty .git directory triggers syncqt. mkdir .git || true - dh_auto_configure -- CONFIG+=packaging CONFIG-=debug CONFIG+=release + dh_auto_configure -- diff --git a/data/debian/source/format b/data/debian/source/format new file mode 100644 index 00000000..89ae9db8 --- /dev/null +++ b/data/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/data/flatpak/org.flameshot.flameshot.yml b/data/flatpak/org.flameshot.flameshot.yml new file mode 100644 index 00000000..e5d9c57b --- /dev/null +++ b/data/flatpak/org.flameshot.flameshot.yml @@ -0,0 +1,32 @@ +app-id: org.flameshot.flameshot +runtime: org.kde.Platform +runtime-version: '5.15' +sdk: org.kde.Sdk +command: flameshot +finish-args: + # X11 + XShm access + - --share=ipc + - --socket=x11 + # Wayland access + - --socket=wayland + - --device=dri + # Connectivity + - --share=network + # QtSingleApplication, allow other instances to see log files + - --env=TMPDIR=/var/tmp + # Allow loading/saving files from anywhere + - --filesystem=host + # Notification access + - --talk-name=org.freedesktop.Notifications + # System Tray Icon + - --talk-name=org.kde.StatusNotifierWatcher + - --own-name=org.kde.StatusNotifierItem-2-1 +modules: + - name: flameshot + buildsystem: cmake-ninja + config-opts: + - -DCMAKE_BUILD_TYPE=Release + sources: + - type: git + url: https://github.com/flameshot-org/flameshot.git + branch: master diff --git a/graphics.qrc b/data/graphics.qrc similarity index 94% rename from graphics.qrc rename to data/graphics.qrc index 56bac9c8..fad71c17 100644 --- a/graphics.qrc +++ b/data/graphics.qrc @@ -32,7 +32,7 @@ img/material/black/cloud-upload.svg img/material/black/close.svg img/material/black/circle-outline.svg - img/material/black/blur.svg + img/material/black/pixelate.svg img/material/black/arrow-bottom-left.svg img/material/white/undo-variant.svg img/material/white/text.svg @@ -63,9 +63,10 @@ img/material/white/cloud-upload.svg img/material/white/close.svg img/material/white/circle-outline.svg - img/material/white/blur.svg + img/material/white/pixelate.svg img/material/white/arrow-bottom-left.svg - img/app/keyboard.svg + img/material/black/circlecount-outline.svg + img/material/white/circlecount-outline.svg img/material/black/shortcut.svg img/material/white/shortcut.svg img/material/black/filepath.svg diff --git a/data/icon.rc b/data/icon.rc new file mode 100644 index 00000000..2cdab732 --- /dev/null +++ b/data/icon.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "img/app/flameshot.ico" \ No newline at end of file diff --git a/img/app/flameshot.ico b/data/img/app/flameshot.ico similarity index 100% rename from img/app/flameshot.ico rename to data/img/app/flameshot.ico diff --git a/img/app/flameshot.png b/data/img/app/flameshot.png similarity index 100% rename from img/app/flameshot.png rename to data/img/app/flameshot.png diff --git a/img/app/flameshot.svg b/data/img/app/flameshot.svg similarity index 100% rename from img/app/flameshot.svg rename to data/img/app/flameshot.svg diff --git a/img/app/flameshotLogoLicense.txt b/data/img/app/flameshotLogoLicense.txt similarity index 100% rename from img/app/flameshotLogoLicense.txt rename to data/img/app/flameshotLogoLicense.txt diff --git a/img/app/keyboard.svg b/data/img/app/keyboard.svg similarity index 100% rename from img/app/keyboard.svg rename to data/img/app/keyboard.svg diff --git a/img/hicolor/128x128/apps/flameshot.png b/data/img/hicolor/128x128/apps/flameshot.png similarity index 100% rename from img/hicolor/128x128/apps/flameshot.png rename to data/img/hicolor/128x128/apps/flameshot.png diff --git a/img/hicolor/48x48/apps/flameshot.png b/data/img/hicolor/48x48/apps/flameshot.png similarity index 100% rename from img/hicolor/48x48/apps/flameshot.png rename to data/img/hicolor/48x48/apps/flameshot.png diff --git a/img/hicolor/scalable/apps/flameshot.svg b/data/img/hicolor/scalable/apps/flameshot.svg similarity index 100% rename from img/hicolor/scalable/apps/flameshot.svg rename to data/img/hicolor/scalable/apps/flameshot.svg diff --git a/img/material/LICENSE.txt b/data/img/material/LICENSE.txt similarity index 100% rename from img/material/LICENSE.txt rename to data/img/material/LICENSE.txt diff --git a/img/material/README.md b/data/img/material/README.md similarity index 100% rename from img/material/README.md rename to data/img/material/README.md diff --git a/img/material/black/arrow-bottom-left.png b/data/img/material/black/arrow-bottom-left.png similarity index 100% rename from img/material/black/arrow-bottom-left.png rename to data/img/material/black/arrow-bottom-left.png diff --git a/img/material/black/arrow-bottom-left.svg b/data/img/material/black/arrow-bottom-left.svg similarity index 100% rename from img/material/black/arrow-bottom-left.svg rename to data/img/material/black/arrow-bottom-left.svg diff --git a/img/material/black/circle-outline.png b/data/img/material/black/circle-outline.png similarity index 100% rename from img/material/black/circle-outline.png rename to data/img/material/black/circle-outline.png diff --git a/img/material/black/circle-outline.svg b/data/img/material/black/circle-outline.svg similarity index 100% rename from img/material/black/circle-outline.svg rename to data/img/material/black/circle-outline.svg diff --git a/data/img/material/black/circlecount-outline.png b/data/img/material/black/circlecount-outline.png new file mode 100644 index 00000000..d81063cd Binary files /dev/null and b/data/img/material/black/circlecount-outline.png differ diff --git a/data/img/material/black/circlecount-outline.svg b/data/img/material/black/circlecount-outline.svg new file mode 100644 index 00000000..e9273516 --- /dev/null +++ b/data/img/material/black/circlecount-outline.svg @@ -0,0 +1,79 @@ + + + + + + image/svg+xml + + + + + + + + + + + 1 + diff --git a/img/material/black/close.png b/data/img/material/black/close.png similarity index 100% rename from img/material/black/close.png rename to data/img/material/black/close.png diff --git a/img/material/black/close.svg b/data/img/material/black/close.svg similarity index 100% rename from img/material/black/close.svg rename to data/img/material/black/close.svg diff --git a/img/material/black/cloud-upload.png b/data/img/material/black/cloud-upload.png similarity index 100% rename from img/material/black/cloud-upload.png rename to data/img/material/black/cloud-upload.png diff --git a/img/material/black/cloud-upload.svg b/data/img/material/black/cloud-upload.svg similarity index 100% rename from img/material/black/cloud-upload.svg rename to data/img/material/black/cloud-upload.svg diff --git a/img/material/black/colorize.png b/data/img/material/black/colorize.png similarity index 100% rename from img/material/black/colorize.png rename to data/img/material/black/colorize.png diff --git a/img/material/black/colorize.svg b/data/img/material/black/colorize.svg similarity index 100% rename from img/material/black/colorize.svg rename to data/img/material/black/colorize.svg diff --git a/img/material/black/config.png b/data/img/material/black/config.png similarity index 100% rename from img/material/black/config.png rename to data/img/material/black/config.png diff --git a/img/material/black/config.svg b/data/img/material/black/config.svg similarity index 100% rename from img/material/black/config.svg rename to data/img/material/black/config.svg diff --git a/img/material/black/content-copy.png b/data/img/material/black/content-copy.png similarity index 100% rename from img/material/black/content-copy.png rename to data/img/material/black/content-copy.png diff --git a/img/material/black/content-copy.svg b/data/img/material/black/content-copy.svg similarity index 100% rename from img/material/black/content-copy.svg rename to data/img/material/black/content-copy.svg diff --git a/img/material/black/content-save.png b/data/img/material/black/content-save.png similarity index 100% rename from img/material/black/content-save.png rename to data/img/material/black/content-save.png diff --git a/img/material/black/content-save.svg b/data/img/material/black/content-save.svg similarity index 100% rename from img/material/black/content-save.svg rename to data/img/material/black/content-save.svg diff --git a/img/material/black/cursor-move.png b/data/img/material/black/cursor-move.png similarity index 100% rename from img/material/black/cursor-move.png rename to data/img/material/black/cursor-move.png diff --git a/img/material/black/cursor-move.svg b/data/img/material/black/cursor-move.svg similarity index 100% rename from img/material/black/cursor-move.svg rename to data/img/material/black/cursor-move.svg diff --git a/img/material/black/delete.png b/data/img/material/black/delete.png similarity index 100% rename from img/material/black/delete.png rename to data/img/material/black/delete.png diff --git a/img/material/black/delete.svg b/data/img/material/black/delete.svg similarity index 100% rename from img/material/black/delete.svg rename to data/img/material/black/delete.svg diff --git a/img/material/black/exit-to-app.png b/data/img/material/black/exit-to-app.png similarity index 100% rename from img/material/black/exit-to-app.png rename to data/img/material/black/exit-to-app.png diff --git a/img/material/black/exit-to-app.svg b/data/img/material/black/exit-to-app.svg similarity index 100% rename from img/material/black/exit-to-app.svg rename to data/img/material/black/exit-to-app.svg diff --git a/img/material/black/filepath.svg b/data/img/material/black/filepath.svg similarity index 100% rename from img/material/black/filepath.svg rename to data/img/material/black/filepath.svg diff --git a/img/material/black/format-text.svg b/data/img/material/black/format-text.svg similarity index 100% rename from img/material/black/format-text.svg rename to data/img/material/black/format-text.svg diff --git a/img/material/black/format_bold.png b/data/img/material/black/format_bold.png similarity index 100% rename from img/material/black/format_bold.png rename to data/img/material/black/format_bold.png diff --git a/img/material/black/format_bold.svg b/data/img/material/black/format_bold.svg similarity index 100% rename from img/material/black/format_bold.svg rename to data/img/material/black/format_bold.svg diff --git a/img/material/black/format_italic.png b/data/img/material/black/format_italic.png similarity index 100% rename from img/material/black/format_italic.png rename to data/img/material/black/format_italic.png diff --git a/img/material/black/format_italic.svg b/data/img/material/black/format_italic.svg similarity index 100% rename from img/material/black/format_italic.svg rename to data/img/material/black/format_italic.svg diff --git a/img/material/black/format_strikethrough.png b/data/img/material/black/format_strikethrough.png similarity index 100% rename from img/material/black/format_strikethrough.png rename to data/img/material/black/format_strikethrough.png diff --git a/img/material/black/format_strikethrough.svg b/data/img/material/black/format_strikethrough.svg similarity index 100% rename from img/material/black/format_strikethrough.svg rename to data/img/material/black/format_strikethrough.svg diff --git a/img/material/black/format_underlined.png b/data/img/material/black/format_underlined.png similarity index 100% rename from img/material/black/format_underlined.png rename to data/img/material/black/format_underlined.png diff --git a/img/material/black/format_underlined.svg b/data/img/material/black/format_underlined.svg similarity index 100% rename from img/material/black/format_underlined.svg rename to data/img/material/black/format_underlined.svg diff --git a/img/material/black/graphics.png b/data/img/material/black/graphics.png similarity index 100% rename from img/material/black/graphics.png rename to data/img/material/black/graphics.png diff --git a/img/material/black/graphics.svg b/data/img/material/black/graphics.svg similarity index 100% rename from img/material/black/graphics.svg rename to data/img/material/black/graphics.svg diff --git a/img/material/black/line.png b/data/img/material/black/line.png similarity index 100% rename from img/material/black/line.png rename to data/img/material/black/line.png diff --git a/img/material/black/line.svg b/data/img/material/black/line.svg similarity index 100% rename from img/material/black/line.svg rename to data/img/material/black/line.svg diff --git a/img/material/black/marker.png b/data/img/material/black/marker.png similarity index 100% rename from img/material/black/marker.png rename to data/img/material/black/marker.png diff --git a/img/material/black/marker.svg b/data/img/material/black/marker.svg similarity index 100% rename from img/material/black/marker.svg rename to data/img/material/black/marker.svg diff --git a/img/material/black/mouse-off.svg b/data/img/material/black/mouse-off.svg similarity index 100% rename from img/material/black/mouse-off.svg rename to data/img/material/black/mouse-off.svg diff --git a/img/material/black/mouse.svg b/data/img/material/black/mouse.svg similarity index 100% rename from img/material/black/mouse.svg rename to data/img/material/black/mouse.svg diff --git a/img/material/black/name_edition.png b/data/img/material/black/name_edition.png similarity index 100% rename from img/material/black/name_edition.png rename to data/img/material/black/name_edition.png diff --git a/img/material/black/name_edition.svg b/data/img/material/black/name_edition.svg similarity index 100% rename from img/material/black/name_edition.svg rename to data/img/material/black/name_edition.svg diff --git a/img/material/black/open_with.png b/data/img/material/black/open_with.png similarity index 100% rename from img/material/black/open_with.png rename to data/img/material/black/open_with.png diff --git a/img/material/black/open_with.svg b/data/img/material/black/open_with.svg similarity index 100% rename from img/material/black/open_with.svg rename to data/img/material/black/open_with.svg diff --git a/img/material/black/pencil.png b/data/img/material/black/pencil.png similarity index 100% rename from img/material/black/pencil.png rename to data/img/material/black/pencil.png diff --git a/img/material/black/pencil.svg b/data/img/material/black/pencil.svg similarity index 100% rename from img/material/black/pencil.svg rename to data/img/material/black/pencil.svg diff --git a/img/material/black/pin.png b/data/img/material/black/pin.png similarity index 100% rename from img/material/black/pin.png rename to data/img/material/black/pin.png diff --git a/img/material/black/pin.svg b/data/img/material/black/pin.svg similarity index 100% rename from img/material/black/pin.svg rename to data/img/material/black/pin.svg diff --git a/img/material/black/blur.png b/data/img/material/black/pixelate.png similarity index 100% rename from img/material/black/blur.png rename to data/img/material/black/pixelate.png diff --git a/img/material/black/blur.svg b/data/img/material/black/pixelate.svg similarity index 100% rename from img/material/black/blur.svg rename to data/img/material/black/pixelate.svg diff --git a/img/material/black/redo-variant.png b/data/img/material/black/redo-variant.png similarity index 100% rename from img/material/black/redo-variant.png rename to data/img/material/black/redo-variant.png diff --git a/img/material/black/redo-variant.svg b/data/img/material/black/redo-variant.svg similarity index 100% rename from img/material/black/redo-variant.svg rename to data/img/material/black/redo-variant.svg diff --git a/img/material/black/shortcut.svg b/data/img/material/black/shortcut.svg similarity index 100% rename from img/material/black/shortcut.svg rename to data/img/material/black/shortcut.svg diff --git a/img/material/black/size_indicator.png b/data/img/material/black/size_indicator.png similarity index 100% rename from img/material/black/size_indicator.png rename to data/img/material/black/size_indicator.png diff --git a/img/material/black/size_indicator.svg b/data/img/material/black/size_indicator.svg similarity index 100% rename from img/material/black/size_indicator.svg rename to data/img/material/black/size_indicator.svg diff --git a/img/material/black/square-outline.png b/data/img/material/black/square-outline.png similarity index 100% rename from img/material/black/square-outline.png rename to data/img/material/black/square-outline.png diff --git a/img/material/black/square-outline.svg b/data/img/material/black/square-outline.svg similarity index 100% rename from img/material/black/square-outline.svg rename to data/img/material/black/square-outline.svg diff --git a/img/material/black/square.png b/data/img/material/black/square.png similarity index 100% rename from img/material/black/square.png rename to data/img/material/black/square.png diff --git a/img/material/black/square.svg b/data/img/material/black/square.svg similarity index 100% rename from img/material/black/square.svg rename to data/img/material/black/square.svg diff --git a/img/material/black/text.png b/data/img/material/black/text.png similarity index 100% rename from img/material/black/text.png rename to data/img/material/black/text.png diff --git a/img/material/black/text.svg b/data/img/material/black/text.svg similarity index 100% rename from img/material/black/text.svg rename to data/img/material/black/text.svg diff --git a/img/material/black/undo-variant.png b/data/img/material/black/undo-variant.png similarity index 100% rename from img/material/black/undo-variant.png rename to data/img/material/black/undo-variant.png diff --git a/img/material/black/undo-variant.svg b/data/img/material/black/undo-variant.svg similarity index 100% rename from img/material/black/undo-variant.svg rename to data/img/material/black/undo-variant.svg diff --git a/img/material/white/arrow-bottom-left.png b/data/img/material/white/arrow-bottom-left.png similarity index 100% rename from img/material/white/arrow-bottom-left.png rename to data/img/material/white/arrow-bottom-left.png diff --git a/img/material/white/arrow-bottom-left.svg b/data/img/material/white/arrow-bottom-left.svg similarity index 100% rename from img/material/white/arrow-bottom-left.svg rename to data/img/material/white/arrow-bottom-left.svg diff --git a/img/material/white/circle-outline.png b/data/img/material/white/circle-outline.png similarity index 100% rename from img/material/white/circle-outline.png rename to data/img/material/white/circle-outline.png diff --git a/img/material/white/circle-outline.svg b/data/img/material/white/circle-outline.svg similarity index 100% rename from img/material/white/circle-outline.svg rename to data/img/material/white/circle-outline.svg diff --git a/data/img/material/white/circlecount-outline.png b/data/img/material/white/circlecount-outline.png new file mode 100644 index 00000000..e6156ae8 Binary files /dev/null and b/data/img/material/white/circlecount-outline.png differ diff --git a/data/img/material/white/circlecount-outline.svg b/data/img/material/white/circlecount-outline.svg new file mode 100644 index 00000000..e19f14e8 --- /dev/null +++ b/data/img/material/white/circlecount-outline.svg @@ -0,0 +1,79 @@ + + + + + + image/svg+xml + + + + + + + + + + + 1 + diff --git a/img/material/white/close.png b/data/img/material/white/close.png similarity index 100% rename from img/material/white/close.png rename to data/img/material/white/close.png diff --git a/img/material/white/close.svg b/data/img/material/white/close.svg similarity index 100% rename from img/material/white/close.svg rename to data/img/material/white/close.svg diff --git a/img/material/white/cloud-upload.png b/data/img/material/white/cloud-upload.png similarity index 100% rename from img/material/white/cloud-upload.png rename to data/img/material/white/cloud-upload.png diff --git a/img/material/white/cloud-upload.svg b/data/img/material/white/cloud-upload.svg similarity index 100% rename from img/material/white/cloud-upload.svg rename to data/img/material/white/cloud-upload.svg diff --git a/img/material/white/colorize.png b/data/img/material/white/colorize.png similarity index 100% rename from img/material/white/colorize.png rename to data/img/material/white/colorize.png diff --git a/img/material/white/colorize.svg b/data/img/material/white/colorize.svg similarity index 100% rename from img/material/white/colorize.svg rename to data/img/material/white/colorize.svg diff --git a/img/material/white/config.png b/data/img/material/white/config.png similarity index 100% rename from img/material/white/config.png rename to data/img/material/white/config.png diff --git a/img/material/white/config.svg b/data/img/material/white/config.svg similarity index 100% rename from img/material/white/config.svg rename to data/img/material/white/config.svg diff --git a/img/material/white/content-copy.png b/data/img/material/white/content-copy.png similarity index 100% rename from img/material/white/content-copy.png rename to data/img/material/white/content-copy.png diff --git a/img/material/white/content-copy.svg b/data/img/material/white/content-copy.svg similarity index 100% rename from img/material/white/content-copy.svg rename to data/img/material/white/content-copy.svg diff --git a/img/material/white/content-save.png b/data/img/material/white/content-save.png similarity index 100% rename from img/material/white/content-save.png rename to data/img/material/white/content-save.png diff --git a/img/material/white/content-save.svg b/data/img/material/white/content-save.svg similarity index 100% rename from img/material/white/content-save.svg rename to data/img/material/white/content-save.svg diff --git a/img/material/white/cursor-move.png b/data/img/material/white/cursor-move.png similarity index 100% rename from img/material/white/cursor-move.png rename to data/img/material/white/cursor-move.png diff --git a/img/material/white/cursor-move.svg b/data/img/material/white/cursor-move.svg similarity index 100% rename from img/material/white/cursor-move.svg rename to data/img/material/white/cursor-move.svg diff --git a/img/material/white/exit-to-app.png b/data/img/material/white/exit-to-app.png similarity index 100% rename from img/material/white/exit-to-app.png rename to data/img/material/white/exit-to-app.png diff --git a/img/material/white/exit-to-app.svg b/data/img/material/white/exit-to-app.svg similarity index 100% rename from img/material/white/exit-to-app.svg rename to data/img/material/white/exit-to-app.svg diff --git a/img/material/white/filepath.svg b/data/img/material/white/filepath.svg similarity index 100% rename from img/material/white/filepath.svg rename to data/img/material/white/filepath.svg diff --git a/img/material/white/format-text.png b/data/img/material/white/format-text.png similarity index 100% rename from img/material/white/format-text.png rename to data/img/material/white/format-text.png diff --git a/img/material/white/format-text.svg b/data/img/material/white/format-text.svg similarity index 100% rename from img/material/white/format-text.svg rename to data/img/material/white/format-text.svg diff --git a/img/material/white/format_bold.png b/data/img/material/white/format_bold.png similarity index 100% rename from img/material/white/format_bold.png rename to data/img/material/white/format_bold.png diff --git a/img/material/white/format_bold.svg b/data/img/material/white/format_bold.svg similarity index 100% rename from img/material/white/format_bold.svg rename to data/img/material/white/format_bold.svg diff --git a/img/material/white/format_italic.png b/data/img/material/white/format_italic.png similarity index 100% rename from img/material/white/format_italic.png rename to data/img/material/white/format_italic.png diff --git a/img/material/white/format_italic.svg b/data/img/material/white/format_italic.svg similarity index 100% rename from img/material/white/format_italic.svg rename to data/img/material/white/format_italic.svg diff --git a/img/material/white/format_strikethrough.png b/data/img/material/white/format_strikethrough.png similarity index 100% rename from img/material/white/format_strikethrough.png rename to data/img/material/white/format_strikethrough.png diff --git a/img/material/white/format_strikethrough.svg b/data/img/material/white/format_strikethrough.svg similarity index 100% rename from img/material/white/format_strikethrough.svg rename to data/img/material/white/format_strikethrough.svg diff --git a/img/material/white/format_underlined.png b/data/img/material/white/format_underlined.png similarity index 100% rename from img/material/white/format_underlined.png rename to data/img/material/white/format_underlined.png diff --git a/img/material/white/format_underlined.svg b/data/img/material/white/format_underlined.svg similarity index 100% rename from img/material/white/format_underlined.svg rename to data/img/material/white/format_underlined.svg diff --git a/img/material/white/graphics.png b/data/img/material/white/graphics.png similarity index 100% rename from img/material/white/graphics.png rename to data/img/material/white/graphics.png diff --git a/img/material/white/graphics.svg b/data/img/material/white/graphics.svg similarity index 100% rename from img/material/white/graphics.svg rename to data/img/material/white/graphics.svg diff --git a/img/material/white/line.png b/data/img/material/white/line.png similarity index 100% rename from img/material/white/line.png rename to data/img/material/white/line.png diff --git a/img/material/white/line.svg b/data/img/material/white/line.svg similarity index 100% rename from img/material/white/line.svg rename to data/img/material/white/line.svg diff --git a/img/material/white/marker.png b/data/img/material/white/marker.png similarity index 100% rename from img/material/white/marker.png rename to data/img/material/white/marker.png diff --git a/img/material/white/marker.svg b/data/img/material/white/marker.svg similarity index 100% rename from img/material/white/marker.svg rename to data/img/material/white/marker.svg diff --git a/img/material/white/mouse-off.svg b/data/img/material/white/mouse-off.svg similarity index 100% rename from img/material/white/mouse-off.svg rename to data/img/material/white/mouse-off.svg diff --git a/img/material/white/mouse.svg b/data/img/material/white/mouse.svg similarity index 100% rename from img/material/white/mouse.svg rename to data/img/material/white/mouse.svg diff --git a/img/material/white/name_edition.png b/data/img/material/white/name_edition.png similarity index 100% rename from img/material/white/name_edition.png rename to data/img/material/white/name_edition.png diff --git a/img/material/white/name_edition.svg b/data/img/material/white/name_edition.svg similarity index 100% rename from img/material/white/name_edition.svg rename to data/img/material/white/name_edition.svg diff --git a/img/material/white/open_with.png b/data/img/material/white/open_with.png similarity index 100% rename from img/material/white/open_with.png rename to data/img/material/white/open_with.png diff --git a/img/material/white/open_with.svg b/data/img/material/white/open_with.svg similarity index 100% rename from img/material/white/open_with.svg rename to data/img/material/white/open_with.svg diff --git a/img/material/white/pencil.png b/data/img/material/white/pencil.png similarity index 100% rename from img/material/white/pencil.png rename to data/img/material/white/pencil.png diff --git a/img/material/white/pencil.svg b/data/img/material/white/pencil.svg similarity index 100% rename from img/material/white/pencil.svg rename to data/img/material/white/pencil.svg diff --git a/img/material/white/pin.png b/data/img/material/white/pin.png similarity index 100% rename from img/material/white/pin.png rename to data/img/material/white/pin.png diff --git a/img/material/white/pin.svg b/data/img/material/white/pin.svg similarity index 100% rename from img/material/white/pin.svg rename to data/img/material/white/pin.svg diff --git a/img/material/white/blur.png b/data/img/material/white/pixelate.png similarity index 100% rename from img/material/white/blur.png rename to data/img/material/white/pixelate.png diff --git a/img/material/white/blur.svg b/data/img/material/white/pixelate.svg similarity index 100% rename from img/material/white/blur.svg rename to data/img/material/white/pixelate.svg diff --git a/img/material/white/redo-variant.png b/data/img/material/white/redo-variant.png similarity index 100% rename from img/material/white/redo-variant.png rename to data/img/material/white/redo-variant.png diff --git a/img/material/white/redo-variant.svg b/data/img/material/white/redo-variant.svg similarity index 100% rename from img/material/white/redo-variant.svg rename to data/img/material/white/redo-variant.svg diff --git a/img/material/white/shortcut.svg b/data/img/material/white/shortcut.svg similarity index 100% rename from img/material/white/shortcut.svg rename to data/img/material/white/shortcut.svg diff --git a/img/material/white/size_indicator.png b/data/img/material/white/size_indicator.png similarity index 100% rename from img/material/white/size_indicator.png rename to data/img/material/white/size_indicator.png diff --git a/img/material/white/size_indicator.svg b/data/img/material/white/size_indicator.svg similarity index 100% rename from img/material/white/size_indicator.svg rename to data/img/material/white/size_indicator.svg diff --git a/img/material/white/square-outline.png b/data/img/material/white/square-outline.png similarity index 100% rename from img/material/white/square-outline.png rename to data/img/material/white/square-outline.png diff --git a/img/material/white/square-outline.svg b/data/img/material/white/square-outline.svg similarity index 100% rename from img/material/white/square-outline.svg rename to data/img/material/white/square-outline.svg diff --git a/img/material/white/square.png b/data/img/material/white/square.png similarity index 100% rename from img/material/white/square.png rename to data/img/material/white/square.png diff --git a/img/material/white/square.svg b/data/img/material/white/square.svg similarity index 100% rename from img/material/white/square.svg rename to data/img/material/white/square.svg diff --git a/img/material/white/text.png b/data/img/material/white/text.png similarity index 100% rename from img/material/white/text.png rename to data/img/material/white/text.png diff --git a/img/material/white/text.svg b/data/img/material/white/text.svg similarity index 100% rename from img/material/white/text.svg rename to data/img/material/white/text.svg diff --git a/img/material/white/undo-variant.png b/data/img/material/white/undo-variant.png similarity index 100% rename from img/material/white/undo-variant.png rename to data/img/material/white/undo-variant.png diff --git a/img/material/white/undo-variant.svg b/data/img/material/white/undo-variant.svg similarity index 100% rename from img/material/white/undo-variant.svg rename to data/img/material/white/undo-variant.svg diff --git a/img/preview/animatedUsage.gif b/data/img/preview/animatedUsage.gif similarity index 100% rename from img/preview/animatedUsage.gif rename to data/img/preview/animatedUsage.gif diff --git a/img/preview/usageStatic.png b/data/img/preview/usageStatic.png similarity index 100% rename from img/preview/usageStatic.png rename to data/img/preview/usageStatic.png diff --git a/data/rpm/flameshot.spec b/data/rpm/flameshot.spec new file mode 100644 index 00000000..b7e619b3 --- /dev/null +++ b/data/rpm/flameshot.spec @@ -0,0 +1,107 @@ +Name: flameshot +Version: 0.8.1 +Release: 1%{?dist} +Summary: Powerful yet simple to use screenshot software +Summary(eu-ES): Potente pero simple de usar software de capturas + +%global sourcename flameshot + +Group: Application +License: GPLv3 +URL: https://github.com/flameshot-org/%{sourcename} +Source0: https://github.com/flameshot-org/%{sourcename}/archive/v%{version}.tar.gz + +#%%define _binaries_in_noarch_packages_terminate_build 0 +#BuildArch: noarch + +%if 0%{?is_opensuse} +%if 0%{?suse_version} >= 1500 +BuildRequires: gcc-c++ >= 7 +BuildRequires: update-desktop-files +%else +BuildRequires: gcc7 >= 7.4.0 +BuildRequires: gcc7-c++ >= 7.4.0 +%endif +BuildRequires: libqt5-qttools-devel >= 5.9.0 +BuildRequires: libqt5-linguist >= 5.9.0 +%else +BuildRequires: gcc-c++ >= 7.4.0 +%endif + +%if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version} +BuildRequires: qt5-qttools-devel >= 5.9.0 +BuildRequires: qt5-linguist >= 5.9.0 +%endif + +BuildRequires: cmake >= 3.13.0 +BuildRequires: pkgconfig +BuildRequires: pkgconfig(Qt5Core) >= 5.9.0 +BuildRequires: pkgconfig(Qt5Gui) >= 5.9.0 +BuildRequires: pkgconfig(Qt5DBus) >= 5.9.0 +BuildRequires: pkgconfig(Qt5Network) >= 5.9.0 +BuildRequires: pkgconfig(Qt5Widgets) >= 5.9.0 +BuildRequires: pkgconfig(Qt5Svg) >= 5.9.0 + + +%if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version} +Requires: qt5-qtbase >= 5.9.0 +Requires: qt5-qttools >= 5.9.0 +Requires: qt5-qtsvg >= 5.9.0 +%endif +%if 0%{?is_opensuse} +Requires: libQt5Core5 >= 5.9.0 +Requires: libqt5-qttools >= 5.9.0 +Requires: libQt5Svg5 >= 5.9.0 +%endif +Requires: hicolor-icon-theme + +%description +Flameshot is a screenshot software, it's +powerful yet simple to use for GNU/Linux + +%prep +%setup -q -n v%{version} + +%build +cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr +make %{?_smp_mflags} + +%install +%make_install INSTALL_ROOT=%{buildroot} + +%if 0%{?is_opensuse} +%if 0%{?suse_version} >= 1500 +%suse_update_desktop_file %{name} Graphics +%endif +%endif + +%if 0%{?fedora} +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig +%endif + +%files +%doc README.md +%license LICENSE +%{_bindir}/%{name} +%{_datadir}/%{name} +%{_datadir}/dbus-1/interfaces/org.flameshot.Flameshot.xml +%{_datadir}/dbus-1/services/org.flameshot.Flameshot.service +%{_datadir}/metainfo/flameshot.metainfo.xml +%{_datadir}/flameshot/translations +%{_datadir}/applications/%{name}.desktop +%{_datadir}/bash-completion/completions/%{name} +%{_datadir}/zsh/site-functions/_%{name} +%{_datadir}/icons/hicolor + +%changelog +* Mon Sep 07 2020 Zetao Yang - 0.8.0-1 +- Updated for flameshot 0.8.0 +- More details, please see https://flameshot.js.org/#/changelog?id=v080 +* Sat Aug 18 2018 Zetao Yang - 0.6.0-1 +- Updated for flameshot 0.6.0 +- More details, please see https://flameshot.js.org/#/changelog?id=v060 +* Tue Jan 09 2018 Zetao Yang - 0.5.0-1 +- Initial package for flameshot 0.5.0 +- More details, please see https://flameshot.js.org/#/changelog?id=v051 + diff --git a/data/snap/local/launchers/README.md b/data/snap/local/launchers/README.md new file mode 100644 index 00000000..3c070409 --- /dev/null +++ b/data/snap/local/launchers/README.md @@ -0,0 +1,16 @@ +# /snap/local/launchers + +Here are the launchers, or wrapper programs to deal with some runtime-fixable +problems for the snapped applications, like setting proper environmental +variables in snap. + +In convention launchers are named _something_-launch, for dealing certain +problem with _something_, and usually can be called in a stacked manner to +consolidate their modifications. + +```yaml +apps: + _app_name_: + command: foo-launch bar-launch _app_command_ +``` + diff --git a/data/snap/local/launchers/flameshot-launch b/data/snap/local/launchers/flameshot-launch new file mode 100644 index 00000000..3045d0e9 --- /dev/null +++ b/data/snap/local/launchers/flameshot-launch @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +# This is the maintainence launcher for the snap, make necessary runtime +# environment changes to make the snap work here. You may also insert security +# confinement/deprecation/obsoletion notice of the snap here. + +set \ + -o errexit \ + -o errtrace \ + -o nounset \ + -o pipefail + +# gtk-common-themes support +export QT_QPA_PLATFORMTHEME=gtk3 +# Correct the TMPDIR path for Chromium Framework/Electron to +# ensure libappindicator has readable resources +export TMPDIR=$XDG_RUNTIME_DIR +# Coerce XDG_CURRENT_DESKTOP to Unity so that App Indicators +# are used and do not fall back to Notification Area applets +# or disappear completely. +export XDG_CURRENT_DESKTOP=Unity + +# Finally run the next part of the command chain +exec "${@}" diff --git a/data/snap/snapcraft.yaml b/data/snap/snapcraft.yaml new file mode 100644 index 00000000..d6583893 --- /dev/null +++ b/data/snap/snapcraft.yaml @@ -0,0 +1,106 @@ +--- + +name: flameshot +adopt-info: flameshot +base: core18 +summary: Powerful yet simple to use screenshot software +description: | + A powerful open source screenshot and annotation tool for Linux, Flameshot + has a varied set of markup tools available, which include Freehand drawing, + Lines, Arrows, Boxes, Circles, Highlighting, Blur. Additionally, you can + customise the color, size and/or thickness of many of these image annotation + tools. +grade: stable # must be 'stable' to release into candidate/stable channels +confinement: strict # use 'strict' once you have the right plugs and slots +#confinement: devmode # use 'strict' once you have the right plugs and slots +architectures: + - build-on: amd64 + - build-on: i386 + + +apps: + flameshot: + adapter: full + command: usr/bin/flameshot + desktop: usr/share/applications/flameshot.desktop + extensions: + - kde-neon + environment: + DISABLE_WAYLAND: 1 + XDG_DATA_DIRS: $SNAP/share:$XDG_DATA_DIRS + slots: [dbus-flameshot] + plugs: + - kde-frameworks-5-plug + - home + - removable-media + - network + - network-bind + - opengl + - pulseaudio + - wayland + - x11 + +parts: + flameshot: + build-snaps: + - kde-frameworks-5-core18-sdk + - kde-frameworks-5-core18 + - cmake #core18 does not have new enough cmake so install from snap + plugin: cmake + configflags: + - '-DCMAKE_BUILD_TYPE=RelWithDebInfo' + - '-DCMAKE_INSTALL_PREFIX=/usr' + source: https://github.com/flameshot-org/flameshot.git + source-type: git + override-pull: | + snapcraftctl pull + last_committed_tag="$(git tag -l --sort=-v:refname | head -1)" + git_revno="$(git rev-list $(git describe --tags --abbrev=0)..HEAD --count)" + git_hash="$(git rev-parse --short HEAD)" + snapcraftctl set-version "${last_committed_tag}+git${git_revno}.${git_hash}" + override-build: | + snapcraftctl build + # Correct the Icon path + sed -i 's|^Exec=flameshot|Exec=/snap/bin/flameshot.flameshot|' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/flameshot.desktop + sed -i 's|^Icon=.*|Icon=${SNAP}/usr/share/icons/hicolor/scalable/apps/flameshot.svg|' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/flameshot.desktop + sed -i 's/^\(Name\(\[.\+\]\)\?=.*\)$/\1 (Snappy Edition)/g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/flameshot.desktop + build-packages: + - g++ + - make + - qt5-default + - qttools5-dev-tools + - libqt5svg5-dev + stage-packages: + - dbus-x11 + - libgtk2.0-0 + - openssl + - ca-certificates + - qtwayland5 + - libqt5dbus5 + - libqt5network5 + - libqt5core5a + - libqt5widgets5 + - libqt5gui5 + - libqt5svg5 + - libxkbcommon0 + - ttf-ubuntu-font-family + - dmz-cursor-theme + - light-themes + - adwaita-icon-theme + - gnome-themes-standard + - shared-mime-info + - libgdk-pixbuf2.0-0 + prime: + # libquazip5-1 pulls in Qt5 from bionic as a dependency. We don't + # want it in our snap, however, because we get a newer Qt5 from the + # kde-kf5 platform snap. + - "-usr/lib/x86_64-linux-gnu/libQt5*" + - "-usr/lib/x86_64-linux-gnu/libqt5*" +slots: + # Depending on in which environment we're running we either need + # to use the system or session DBus so we also need to have one + # slot for each. + dbus-flameshot: + interface: dbus + bus: session + name: org.flameshot.Flameshot diff --git a/translations/Internationalization_ca.ts b/data/translations/Internationalization_ca.ts similarity index 51% rename from translations/Internationalization_ca.ts rename to data/translations/Internationalization_ca.ts index ab8be7be..f33dd71b 100644 --- a/translations/Internationalization_ca.ts +++ b/data/translations/Internationalization_ca.ts @@ -4,12 +4,12 @@ AppLauncher - + App Launcher Llançador d'aplicacions - + Choose an app to open the capture Trieu una aplicació per obrir la captura @@ -17,33 +17,33 @@ AppLauncherWidget - + Open With Obrir Amb - + Launch in terminal Llançament a la terminal - + Keep open after selection Segueix obert després de la selecció - - + + Error Error - + Unable to launch in terminal. No es pot iniciar a la terminal. - + Unable to write in No es pot escriure a @@ -51,12 +51,12 @@ ArrowTool - + Arrow Fletxa - + Set the Arrow as the paint tool Estableix la fletxa com a eina de dibuix @@ -64,60 +64,58 @@ BlurTool - Blur - Desenfocament + Desenfocament - Set Blur as the paint tool - Estableix el desenfocament com a eina de dibuix + Estableix el desenfocament com a eina de dibuix CaptureLauncher - + <b>Capture Mode</b> - + Rectangular Region - + Full Screen (All Monitors) - + No Delay - + second - + seconds - + Take new screenshot - + Area: - + Delay: @@ -125,13 +123,13 @@ CaptureWidget - + Unable to capture screen Impossible capturar la pantalla Imposible capturar la pantalla - + Select an area with the mouse, or press Esc to exit. Press Enter to capture the screen. Press Right Click to show the color picker. @@ -139,16 +137,34 @@ Use the Mouse Wheel to change the thickness of your tool. Press Space to open the side panel. + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + CircleTool - + Circle Cercle - + Set the Circle as the paint tool Estableix el cercle com a eina de dibuix @@ -156,27 +172,22 @@ Press Space to open the side panel. ConfigWindow - + Configuration Configuració - + Interface Interfície - + Filename Editor Editor de noms - - Shortcuts - - - - + General General @@ -184,32 +195,31 @@ Press Space to open the side panel. Controller - + &Open Launcher - + &Configuration &Configuració - - &Information - &Informació + + &About + - + &Information + &Informació + + + &Quit &Ix - - &Latest Uploads - - - - + &Take Screenshot @@ -217,12 +227,12 @@ Press Space to open the side panel. CopyTool - + Copy Copia - + Copy the selection into the clipboard @@ -230,7 +240,7 @@ Press Space to open the side panel. DBusUtils - + Unable to connect via DBus Impossible connectar mitjançant DBus @@ -238,12 +248,12 @@ Press Space to open the side panel. ExitTool - + Exit Ix - + Leave the capture screen Ix de la pantalla de captura @@ -251,443 +261,263 @@ Press Space to open the side panel. FileNameEditor - + Edit the name of your captures: Editeu el nom de les vostres captures: - + Edit: Edita: - + Preview: Previsualització: - + Save Guarda - + Saves the pattern Guarda el patró - + Reset Reinicialitza - + Restores the saved pattern Restaura el patró guardat - + Clear Neteja - + Deletes the name Elimina el patró - - FilePathConfiguration - - - Screenshot path default: - - - - - Use fixed path for screenshots to save - - - - - Browse - - - - - Clear - Neteja - - - - Select default path for Screenshots - - - GeneneralConf - + Show help message Mostra el missatge d'ajuda - + Show the help message at the beginning in the capture mode. Mostra el missatge d'ajuda en iniciar el mode de captura. - - + + Show desktop notifications Mostra les notificacions d'escriptori - + Show tray icon Mostra la icona en la barra de tasques - + Show the systemtray icon Mostra la icona en la barra de tasques - - + + Import Importar - - - + + + + Error Error - + Unable to read file. Impossible llegir el fitxer. - - + + Unable to write file. Impossible escriure al fitxer. - + Save File Guardar Arxiu - + Confirm Reset Confirmar Reset - + Are you sure you want to reset the configuration? Esteu segur que voleu reiniciar la configuració? - + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + Configuration File Fitxer de Configuració - + Export Exportar - + Reset Reset - + Launch at startup Llançament a l'inici - - + Launch Flameshot - - Show welcome message on launch + + Close after capture - - Close application after capture - - - - + Close after taking a screenshot - + Copy URL after upload - + Copy URL and close window after upload - - - Copy file path after save + + Save image after copy - - Upload storage + + Save image file after copying it - - Imgur storage + + Save Path - - S3 storage (require config.ini file with s3 credentials) - - - - - HistoryWidget - - - Latest Uploads + + Change... - - Screenshots history is empty + + Choose a Folder - - Copy URL - Copia l'URL - - - - URL copied to clipboard. - L'URL s'ha copiat al porta-retalls. - - - - Open in browser + + Unable to write to directory. - - ImgS3Uploader - - - Uploading Image - S'està pujant la imatge - - - - Upload image to S3 - - - - - Delete image from S3 - - - - - Unable to remove screenshot from the remote storage. - - - - - Network error - - - - - Possibly it doesn't exist anymore - - - - - Do you want to remove screenshot from local history anyway? - - - - - S3 Creds URL is not found in your configuration file - - - - Copy URL - Copia l'URL - - - Open URL - Obri l'URL - - - Image to Clipboard. - Imatge al porta-retalls. - - - Unable to open the URL. - No es pot obrir l'URL. - - - - URL copied to clipboard. - L'URL s'ha copiat al porta-retalls. - - - - Deleting image... - - - - - Remove screenshot from history? - - - - Screenshot copied to clipboard. - La captura s'ha copiat al porta-retalls. - - - - ImgS3UploaderTool - - - Image Uploader - Puja la imatge - - - - Upload the selection to S3 bucket - - - - - ImgUploader - - - Upload image to S3 - - - - - - Uploading Image - S'està pujant la imatge - - - - Upload image - - - - - Unable to open the URL. - No es pot obrir l'URL. - - - - URL copied to clipboard. - L'URL s'ha copiat al porta-retalls. - - - - Screenshot copied to clipboard. - La captura s'ha copiat al porta-retalls. - - - - Deleting image... - - - - - Copy URL - Copia l'URL - - - - Open URL - Obri l'URL - - - - Delete image - - - - - Image to Clipboard. - Imatge al porta-retalls. - - ImgurUploader - + Upload to Imgur Puja a Imgur + Uploading Image - S'està pujant la imatge + S'està pujant la imatge + Copy URL - Copia l'URL + Copia l'URL + Open URL - Obri l'URL + Obri l'URL + Image to Clipboard. - Imatge al porta-retalls. + Imatge al porta-retalls. - + + Unable to open the URL. No es pot obrir l'URL. + URL copied to clipboard. - L'URL s'ha copiat al porta-retalls. + L'URL s'ha copiat al porta-retalls. + Screenshot copied to clipboard. - La captura s'ha copiat al porta-retalls. + La captura s'ha copiat al porta-retalls. + + + + Delete image + ImgurUploaderTool - + Image Uploader Puja la imatge - + Upload the selection to Imgur Puja la selecció a Imgur @@ -695,86 +525,110 @@ Press Space to open the side panel. InfoWindow - + About Quant a + + SPACEBAR + + + + Right Click - Clic dret + Clic dret + Mouse Wheel - Roda del ratolí + Roda del ratolí + Move selection 1px - Mou la selecció 1 px + Mou la selecció 1 px + Resize selection 1px - Redimensiona la selecció 1 px + Redimensiona la selecció 1 px + Quit capture - Ix de la captura + Ix de la captura + Copy to clipboard - Copia al porta-retalls + Copia al porta-retalls + Save selection as a file - Guarda la selecció com a fitxer + Guarda la selecció com a fitxer + Undo the last modification - Desfés l'última modificació + Desfés l'última modificació + + Toggle visibility of sidebar with options of the selected tool + + + + Show color picker - Mostra el selector de color + Mostra el selector de color + Change the tool's thickness - Canvia el gruix de l'eina + Canvia el gruix de l'eina + Key - Tecla + Tecla + Description - Descripció + Descripció - + <u><b>License</b></u> <u><b>Llicència</b></u> - + <u><b>Version</b></u> <u><b>Versió</b></u> + <u><b>Shortcuts</b></u> - <u><b>Dreceres</b></u> + <u><b>Dreceres</b></u> + Available shortcuts in the screen capture mode. - Dreceres disponibles en el mode de captura de pantalla. + Dreceres disponibles en el mode de captura de pantalla. LineTool - + Line Línia - + Set the Line as the paint tool Estableix la línia com a eina de dibuix @@ -782,12 +636,12 @@ Press Space to open the side panel. MarkerTool - + Marker Marcador - + Set the Marker as the paint tool Estableix el marcador com a eina de dibuix @@ -795,12 +649,12 @@ Press Space to open the side panel. MoveTool - + Move Mou - + Move the selection area Mou la selecció @@ -808,12 +662,12 @@ Press Space to open the side panel. PencilTool - + Pencil Llapis - + Set the Pencil as the paint tool Estableix el llapis com a eina de dibuix @@ -821,169 +675,253 @@ Press Space to open the side panel. PinTool - + Pin Tool - + Pin image on the desktop + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + + + QObject - + + Capture saved to clipboard. + + + + Save Error S'ha produït un error en guardar - - + + Capture saved as Anomena i guarda la captura - - + + Error trying to save as S'ha produït un error en anomenar i guardar - - Save screenshot - - - - - Capture saved and copied to the clipboard as - - - - - - - - + + + + + Unable to connect via DBus No es pot connectar mitjançant DBus - + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + Error Error - + Unable to write in No es pot escriure a - + Capture saved to clipboard - + URL copied to clipboard. L'URL s'ha copiat al porta-retalls. - - Hi, I'm already running! -You can find me in the system tray. + + Options - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. + + Arguments - - Resize selection right 1px + + arguments - - Resize selection left 1px + + Usage - - Resize selection up 1px + + options - - Resize selection down 1px + + Per default runs Flameshot in the background and adds a tray icon for configuration. - - - Toggle side panel - - - - - Move selection left 1px - - - - - Move selection right 1px - - - - - Move selection up 1px - - - - - Move selection down 1px - - - - - Quit capture - Ix de la captura - - - - Screenshot history - - - - - Capture screen - - - - Move selection 1px - Mou la selecció 1 px - - - - Show color picker - Mostra el selector de color - - - - Change the tool's thickness - Canvia el gruix de l'eina - RectangleTool - + Rectangle Rectangle - + Set the Rectangle as the paint tool Estableix el rectangle com a eina de dibuix @@ -991,12 +929,12 @@ You can find me in the system tray. RedoTool - + Redo - + Redo the next modification @@ -1004,12 +942,12 @@ You can find me in the system tray. SaveTool - + Save Guarda - + Save the capture Guarda la captura @@ -1017,7 +955,7 @@ You can find me in the system tray. ScreenGrabber - + Unable to capture screen Imposible capturar la pantalla @@ -1025,76 +963,35 @@ You can find me in the system tray. SelectionTool - + Rectangular Selection Selecció rectangular - + Set Selection as the paint tool Estableix la selecció com a eina de dibuix - - SetShortcutDialog - - - Set Shortcut - - - - - Enter new shortcut to change - - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - - - - - ShortcutsWidget - - - Hot Keys - - - - - Available shortcuts in the screen capture mode. - Dreceres disponibles en el mode de captura de pantalla. - - - - Description - Descripció - - - - Key - Tecla - - SidePanelWidget - + Active thickness: - + Active color: - + Press ESC to cancel - + Grab Color @@ -1102,12 +999,12 @@ You can find me in the system tray. SizeIndicatorTool - + Selection Size Indicator Indicador de mida de selecció - + Show the dimensions of the selection (X Y) Mostra les mides de la selecció (X Y) @@ -1115,107 +1012,107 @@ You can find me in the system tray. StrftimeChooserWidget - + Century (00-99) Segle (00-99) - + Year (00-99) Any (00-99) - + Year (2000) Any (2000) - + Month Name (jan) Nom del mes (jul) - + Month Name (january) Nom del mes (juliol) - + Month (01-12) Mes (01-12) - + Week Day (1-7) Dia de la setmana (1-7) - + Week (01-53) Setmana (01-53) - + Day Name (mon) Nom del dia (dg) - + Day Name (monday) Nom del dia (diumenge) - + Day (01-31) Dia (01-31) - + Day of Month (1-31) Dia del mes (1-31) - + Day (001-366) Dia (001-366) - + Hour (00-23) Hora (00-23) - + Hour (01-12) Hora (01-12) - + Minute (00-59) Minut (00-59) - + Second (00-59) Segon (00-59) - + Full Date (%m/%d/%y) Data (%m/%d/%y) - + Full Date (%Y-%m-%d) Data (%Y-%m-%d) - + Time (%H-%M-%S) - + Time (%H-%M) @@ -1223,7 +1120,7 @@ You can find me in the system tray. SystemNotification - + Flameshot Info @@ -1231,22 +1128,22 @@ You can find me in the system tray. TextConfig - + StrikeOut - + Underline - + Bold - + Italic @@ -1254,12 +1151,12 @@ You can find me in the system tray. TextTool - + Text - + Add text to your capture @@ -1267,37 +1164,37 @@ You can find me in the system tray. UIcolorEditor - + UI Color Editor Editor de color de la interfície - + Change the color moving the selectors and see the changes in the preview buttons. Canvieu el color movent els selectors i observeu els canvis en els botons de previsualització. - + Select a Button to modify it Seleccioneu un botó per a modificar-lo - + Main Color Color principal - + Click on this button to set the edition mode of the main color. Feu clic en aquest botó per a aplicar el mode d'edició per al color principal. - + Contrast Color Color de contrast - + Click on this button to set the edition mode of the contrast color. Feu clic en aquest botó per a aplicar el mode d'edició per al color de contrast. @@ -1305,12 +1202,12 @@ You can find me in the system tray. UndoTool - + Undo Desfés - + Undo the last modification Desfés l'última modificació @@ -1318,25 +1215,25 @@ You can find me in the system tray. UtilityPanel - - Hide + + Close VisualsEditor - + Opacity of area outside selection: Opacitat de la zona fora de la selecció: - + Button Selection Selecció de botó - + Select All Selecciona-ho tot diff --git a/data/translations/Internationalization_cs.ts b/data/translations/Internationalization_cs.ts new file mode 100644 index 00000000..48ec4099 --- /dev/null +++ b/data/translations/Internationalization_cs.ts @@ -0,0 +1,1244 @@ + + + + + AppLauncher + + + App Launcher + Spouštěč programů + + + + Choose an app to open the capture + Vyberte program pro otevření zachycené obrazovky + + + + AppLauncherWidget + + + Open With + Otevřít s + + + + Launch in terminal + Spustit v terminálu + + + + Keep open after selection + Ponechat otevřené po výběru + + + + + Error + Chyba + + + + Unable to write in + Nelze zapsat + + + + Unable to launch in terminal. + Nelze spustit v terminálu. + + + + ArrowTool + + + Arrow + Šipka + + + + Set the Arrow as the paint tool + Nastavit šipku jako malovací nástroj + + + + BlurTool + + Blur + Rozmazání + + + Set Blur as the paint tool + Nastavit rozmazání jako malovací nástroj + + + + CaptureLauncher + + + <b>Capture Mode</b> + + + + + Rectangular Region + + + + + Full Screen (All Monitors) + + + + + No Delay + + + + + second + + + + + seconds + + + + + Take new screenshot + + + + + Area: + + + + + Delay: + + + + + CaptureWidget + + + Unable to capture screen + Nelze zachytit obrazovku + + + + Select an area with the mouse, or press Esc to exit. +Press Enter to capture the screen. +Press Right Click to show the color picker. +Use the Mouse Wheel to change the thickness of your tool. +Press Space to open the side panel. + Vyberte oblast myší nebo stiskněte Esc pro opuštění. +Stiskněte Enter pro zachycení obrazovky +Stiskněte pravé tlačítko myši pro zobrazení voliče barev. +Použijte kolečko myši pro změnu tloušťky nástroje. +Stiskněte mezerník pro otevření postranního panelu. + + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + + + + CircleTool + + + Circle + Kruh + + + + Set the Circle as the paint tool + Nastavit kruh jako malovací nástroj + + + + ConfigWindow + + + Configuration + Nastavení + + + + Interface + Rozhraní + + + + Filename Editor + Editor názvů souborů + + + + General + Obecné + + + + Controller + + + &Take Screenshot + &Zachytit obrazovku + + + + &Open Launcher + + + + + &Configuration + &Nastavení + + + + &About + + + + &Information + &Informace + + + + &Quit + &Ukončit + + + + CopyTool + + + Copy + Kopírovat + + + + Copy the selection into the clipboard + Kopírovat výběr do schránky + + + + DBusUtils + + + Unable to connect via DBus + Nelze se spojit přes DBus + + + + ExitTool + + + Exit + &Opustit + + + + Leave the capture screen + Opustit zachytávací obrazovku + + + + FileNameEditor + + + Edit the name of your captures: + Upravit název zachyceného: + + + + Edit: + Upravit: + + + + Preview: + Náhled: + + + + Save + Uložit + + + + Saves the pattern + Uloží vzor + + + + Reset + Nastavit znovu + + + + Restores the saved pattern + Obnoví uložený vzor + + + + Clear + Vyprázdnit + + + + Deletes the name + Smaže název + + + + GeneneralConf + + + + Import + Zavést + + + + + + + Error + Chyba + + + + Unable to read file. + Nelze přečíst soubor. + + + + + Unable to write file. + Nelze zapsat soubor. + + + + Save File + Uložit soubor + + + + Confirm Reset + Potvrdit vrácení na výchozí + + + + Are you sure you want to reset the configuration? + Opravdu chcete nastavení vrátit do výchozího stavu? + + + + Show help message + Ukázat zprávu s nápovědou + + + + Show the help message at the beginning in the capture mode. + Ukázat zprávu s nápovědou na začátku v režimu zachytávání. + + + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + + + Show desktop notifications + Ukázat oznámení + + + + Show tray icon + Ukázat ikonu v oznamovací oblasti panelu + + + + Show the systemtray icon + Ukázat ikonu v oznamovací oblasti panelu + + + + Configuration File + Soubor s nastavením + + + + Export + Vyvést + + + + Reset + Nastavit znovu + + + + Launch at startup + Spustit při spuštění + + + + Launch Flameshot + Spustit Flameshot + + + + Close after capture + + + + + Close after taking a screenshot + + + + + Copy URL after upload + + + + + Copy URL and close window after upload + + + + + Save image after copy + + + + + Save image file after copying it + + + + + Save Path + + + + + Change... + + + + + Choose a Folder + + + + + Unable to write to directory. + + + + + ImgurUploader + + + Upload to Imgur + Nahrát do Imgur + + + + Uploading Image + Nahrává se obrázek + + + + Copy URL + Kopírovat adresu (URL) + + + + Open URL + Otevřít adresu (URL) + + + + Delete image + Smazat obrázek + + + + Image to Clipboard. + Obrázek do schránky. + + + + + Unable to open the URL. + Nelze otevřít adresu (URL). + + + + URL copied to clipboard. + Adresa (URL) zkopírována do schránky. + + + + Screenshot copied to clipboard. + Snímek obrazovky zkopírován do schránky. + + + + ImgurUploaderTool + + + Image Uploader + Nahrávač obrázků + + + + Upload the selection to Imgur + Nahrát výběr do Imgur + + + + InfoWindow + + + About + O programu + + + + SPACEBAR + + + + + Right Click + Klepnutí pravým tlačítkem myši + + + + Mouse Wheel + Kolečko myši + + + + Move selection 1px + Posunout výběr o 1 px + + + + Resize selection 1px + Změnit velikost výběru o 1 px + + + + Quit capture + Ukončit zachytávání obrazovky + + + + Copy to clipboard + Kopírovat do schránky + + + + Save selection as a file + Uložit výběr jako soubor + + + + Undo the last modification + Zrušit poslední změnu + + + + Toggle visibility of sidebar with options of the selected tool + Přepnout viditelnost postranního panelu s volbali pro vybraný nástroj + + + + Show color picker + Ukázat volič barev + + + + Change the tool's thickness + Změnit tloušťku nástroje + + + + Available shortcuts in the screen capture mode. + Dostupné zkratky v režimu zachytávání obrazovky. + + + + Key + Klávesa + + + + Description + Popis + + + + <u><b>License</b></u> + <u><b>Licence</b></u> + + + + <u><b>Version</b></u> + <u><b>Verze</b></u> + + + + <u><b>Shortcuts</b></u> + <u><b>Zkratky</b></u> + + + + LineTool + + + Line + Čára + + + + Set the Line as the paint tool + Nastavit čáru jako malovací nástroj + + + + MarkerTool + + + Marker + Zvýrazňovač + + + + Set the Marker as the paint tool + Nastavit zvýrazňovač jako malovací nástroj + + + + MoveTool + + + Move + Posunout + + + + Move the selection area + Posunout oblast výběru + + + + PencilTool + + + Pencil + Tužka + + + + Set the Pencil as the paint tool + Nastavit tužku jako malovací nástroj + + + + PinTool + + + Pin Tool + Přišpendlení + + + + Pin image on the desktop + Přišpendlit obrázek na plochu + + + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + + + + + QObject + + + Save Error + Chyba při ukládání + + + + + Capture saved as + Zachycená obrazovka uložena jako + + + + Capture saved to clipboard. + + + + + Capture saved to clipboard + Zachycená obrazovka uložena do schránky + + + + + Error trying to save as + Chyba při ukládání jako + + + + + + + + Unable to connect via DBus + Nelze se spojit přes DBus + + + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + + Error + Chyba + + + + Unable to write in + Nelze zapsat + + + + Options + + + + + Arguments + + + + + arguments + + + + + Usage + + + + + options + + + + + Per default runs Flameshot in the background and adds a tray icon for configuration. + + + + + URL copied to clipboard. + Adresa (URL) zkopírována do schránky. + + + + RectangleTool + + + Rectangle + Obdélník + + + + Set the Rectangle as the paint tool + Nastavit obdélník jako malovací nástroj + + + + RedoTool + + + Redo + Znovu + + + + Redo the next modification + Znovu udělat další změnu + + + + SaveTool + + + Save + Uložit + + + + Save the capture + Uložit zachycenou obrazovku + + + + ScreenGrabber + + + Unable to capture screen + Nelze zachytit obrazovku + + + + SelectionTool + + + Rectangular Selection + Obdélníkový výběr + + + + Set Selection as the paint tool + Nastavit výběr jako malovací nástroj + + + + SidePanelWidget + + + Active color: + Nynější barva: + + + + Press ESC to cancel + Stiskněte Esc pro zrušení + + + + Grab Color + Uchopit barvu + + + + Active thickness: + Nynější tloušťka: + + + + SizeIndicatorTool + + + Selection Size Indicator + Ukazatel velikosti výběru + + + + Show the dimensions of the selection (X Y) + Ukázat rozměry výběru (X Y) + + + + StrftimeChooserWidget + + + Century (00-99) + Století (00-99) + + + + Year (00-99) + Rok (00-99) + + + + Year (2000) + Rok (2000) + + + + Month Name (jan) + Název měsíce (led) + + + + Month Name (january) + Název měsíce (leden) + + + + Month (01-12) + Měsíc (01-12) + + + + Week Day (1-7) + Den v týdnu (1-7) + + + + Week (01-53) + Týden (01-53) + + + + Day Name (mon) + Název dne (pon) + + + + Day Name (monday) + Název dne (pondělí) + + + + Day (01-31) + Den (01-31) + + + + Day of Month (1-31) + Den v měsíci (1-31) + + + + Day (001-366) + Den v roce (001-366) + + + + Time (%H-%M-%S) + Čas (%H-%M-%S) + + + + Time (%H-%M) + Čas (%H-%M) + + + + Hour (00-23) + Hodina (00-23) + + + + Hour (01-12) + Hodina (01-12) + + + + Minute (00-59) + Minuta (00-59) + + + + Second (00-59) + Sekunda (00-59) + + + + Full Date (%m/%d/%y) + Celé datum (%m/%d/%y) + + + + Full Date (%Y-%m-%d) + Celé datum (%Y-%m-%d) + + + + SystemNotification + + + Flameshot Info + Informace Flameshot + + + + TextConfig + + + StrikeOut + Přeškrtnutí + + + + Underline + Podtržení + + + + Bold + Tučné + + + + Italic + Kurzíva + + + + TextTool + + + Text + Text + + + + Add text to your capture + Přidat text do zachyceného + + + + UIcolorEditor + + + UI Color Editor + Editor barvy rozhraní + + + + Change the color moving the selectors and see the changes in the preview buttons. + Měňte barvu pohybováním voličů a dívejte se na změny v náhledových tlačítcích. + + + + Select a Button to modify it + Vybrat tlačítko pro jeho změnění + + + + Main Color + Hlavní barva + + + + Click on this button to set the edition mode of the main color. + Klepnout na toto tlačítko pro stanovení režimu upravení hlavní barvy. + + + + Contrast Color + Kontrastní barva + + + + Click on this button to set the edition mode of the contrast color. + Klepnout na toto tlačítko pro stanovení režimu upravení kontrastní barvy. + + + + UndoTool + + + Undo + Zpět + + + + Undo the last modification + Zrušit poslední změnu + + + + UtilityPanel + + + Close + + + + + VisualsEditor + + + Opacity of area outside selection: + Neprůhlednost oblasti vně výběru: + + + + Button Selection + Tlačítko výběru + + + + Select All + Vybrat vše + + + diff --git a/translations/Internationalization_de_DE.ts b/data/translations/Internationalization_de_DE.ts similarity index 50% rename from translations/Internationalization_de_DE.ts rename to data/translations/Internationalization_de_DE.ts index b0b3c583..8e80eb05 100644 --- a/translations/Internationalization_de_DE.ts +++ b/data/translations/Internationalization_de_DE.ts @@ -1,15 +1,15 @@ - + AppLauncher - + App Launcher Anwendungs Starter - + Choose an app to open the capture Wähle eine Anwendung um die Auswahl zu öffnen @@ -17,33 +17,33 @@ AppLauncherWidget - + Open With Öffne mit - + Launch in terminal Starte in der Konsole - + Keep open after selection Nach Auswahl geöffnet lassen - - + + Error Fehler - + Unable to write in Kein Schreibzugriff auf - + Unable to launch in terminal. Kann im Terminal nicht geöffnet werden. @@ -51,12 +51,12 @@ ArrowTool - + Arrow Pfeil - + Set the Arrow as the paint tool Wähle den Pfeil als Werkzeug @@ -64,60 +64,58 @@ BlurTool - Blur - Verwischen + Verwischen - Set Blur as the paint tool - Wähle Verwischen als Werkzeug + Wähle Verwischen als Werkzeug CaptureLauncher - + <b>Capture Mode</b> - + Rectangular Region - + Full Screen (All Monitors) - + No Delay - + second - + seconds - + Take new screenshot - + Area: - + Delay: @@ -125,12 +123,12 @@ CaptureWidget - + Unable to capture screen Bereich kann nicht erfasst werden - + Select an area with the mouse, or press Esc to exit. Press Enter to capture the screen. Press Right Click to show the color picker. @@ -138,20 +136,38 @@ Use the Mouse Wheel to change the thickness of your tool. Press Space to open the side panel. Wähle einen Bereich mit der Maus oder drücke ESC um zu beenden. Drücke Eingabe um den Bereich aufzunehmen. -Drücke die rechte Maustacke um die Farbe auszuwählen. +Drücke die rechte Maustaste um die Farbe auszuwählen. Benutze das Mausrad um die Dicke des Werkzeugs auszuwählen. Drücke die Leertaste um das Seitenmenü zu öffnen. + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + CircleTool - + Circle Kreis - + Set the Circle as the paint tool Wähle den Kreis als Werkzeug @@ -159,27 +175,22 @@ Drücke die Leertaste um das Seitenmenü zu öffnen. ConfigWindow - + Configuration Einstellungen - + Interface Benutzeroberfläche - + Filename Editor Dateinamen Editor - - Shortcuts - - - - + General Allgemein @@ -187,45 +198,44 @@ Drücke die Leertaste um das Seitenmenü zu öffnen. Controller - + &Take Screenshot &Bildschirmaufnahme anfertigen - + &Open Launcher - + &Configuration &Einstellungen - - &Information - &Informationen + + &About + - + &Information + &Informationen + + + &Quit &Beenden - - - &Latest Uploads - - CopyTool - + Copy Kopieren - + Copy the selection into the clipboard Auswahl in die Zwischenablage kopieren @@ -233,7 +243,7 @@ Drücke die Leertaste um das Seitenmenü zu öffnen. DBusUtils - + Unable to connect via DBus Kann nicht via DBus verbinden @@ -241,12 +251,12 @@ Drücke die Leertaste um das Seitenmenü zu öffnen. ExitTool - + Exit Beenden - + Leave the capture screen Auswahl beenden @@ -254,451 +264,263 @@ Drücke die Leertaste um das Seitenmenü zu öffnen. FileNameEditor - + Edit the name of your captures: Bearbeite den Namen deiner Aufnahmen: - + Edit: Bearbeite: - + Preview: Vorschau: - + Save Speichern - + Saves the pattern Speichere die Vorlage - + Reset Zurücksetzen - + Restores the saved pattern Setzt die gespeicherte Vorlage zurück - + Clear Löschen - + Deletes the name Löscht den Namen - - FilePathConfiguration - - - Screenshot path default: - - - - - Use fixed path for screenshots to save - - - - - Browse - - - - - Clear - Löschen - - - - Select default path for Screenshots - - - GeneneralConf - - + + Import Importieren - - - + + + + Error Fehler - + Unable to read file. Datei kann nicht gelesen werden. - - + + Unable to write file. Datei kann nicht geschrieben werden. - + Save File Datei speichern - + Confirm Reset Zurücksetzen bestätigen - + Are you sure you want to reset the configuration? Sind Sie sicher, dass sie die Konfiguration zurücksetzen wollen? - + Show help message Hilfetext anzeigen - + Show the help message at the beginning in the capture mode. Hilfetext am Start der Auswahl anzeigen. - - + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + + Show desktop notifications Zeige Desktopbenachrichtigungen - + Show tray icon Zeige Taskleistensymbol - + Show the systemtray icon Zeigt das Taskleistensymbol - + Configuration File Konfigurationsdatei - + Export Exportieren - + Reset Zurücksetzen - + Launch at startup Automatisch starten - - + Launch Flameshot Starte Flameshot - - Show welcome message on launch + + Close after capture - - Close application after capture - - - - + Close after taking a screenshot - + Copy URL after upload - + Copy URL and close window after upload - - - Copy file path after save + + Save image after copy - - Upload storage + + Save image file after copying it - - Imgur storage + + Save Path - - S3 storage (require config.ini file with s3 credentials) - - - - - HistoryWidget - - - Latest Uploads + + Change... - - Screenshots history is empty + + Choose a Folder - - Copy URL - URL kopieren - - - - URL copied to clipboard. - URL kopiert. - - - - Open in browser + + Unable to write to directory. - - ImgS3Uploader - - - Uploading Image - Bild hochladen - - - - Upload image to S3 - - - - - Delete image from S3 - - - - - Unable to remove screenshot from the remote storage. - - - - - Network error - - - - - Possibly it doesn't exist anymore - - - - - Do you want to remove screenshot from local history anyway? - - - - - S3 Creds URL is not found in your configuration file - - - - Copy URL - URL kopieren - - - Open URL - URL öffnen - - - Delete image - Bild löschen - - - Image to Clipboard. - Bild in Zwischenablage. - - - Unable to open the URL. - Kann URL nicht öffnen. - - - - URL copied to clipboard. - URL kopiert. - - - - Deleting image... - - - - - Remove screenshot from history? - - - - Screenshot copied to clipboard. - Bildschirmaufnahme in Zwischenablage kopiert. - - - - ImgS3UploaderTool - - - Image Uploader - Bild hochladen - - - - Upload the selection to S3 bucket - - - - - ImgUploader - - - Upload image to S3 - - - - - - Uploading Image - Bild hochladen - - - - Upload image - - - - - Unable to open the URL. - Kann URL nicht öffnen. - - - - URL copied to clipboard. - URL kopiert. - - - - Screenshot copied to clipboard. - Bildschirmaufnahme in Zwischenablage kopiert. - - - - Deleting image... - - - - - Copy URL - URL kopieren - - - - Open URL - URL öffnen - - - - Delete image - Bild löschen - - - - Image to Clipboard. - Bild in Zwischenablage. - - ImgurUploader - + Upload to Imgur Zu Imgur hochladen + Uploading Image - Bild hochladen + Bild hochladen + Copy URL - URL kopieren + URL kopieren + Open URL - URL öffnen + URL öffnen + Delete image - Bild löschen + Bild löschen + Image to Clipboard. - Bild in Zwischenablage. + Bild in Zwischenablage. - + + Unable to open the URL. Kann URL nicht öffnen. + URL copied to clipboard. - URL kopiert. + URL kopiert. + Screenshot copied to clipboard. - Bildschirmaufnahme in Zwischenablage kopiert. + Bildschirmaufnahme in Zwischenablage kopiert. ImgurUploaderTool - + Image Uploader Bild hochladen - + Upload the selection to Imgur Auswahl zu Imgur hochladen @@ -706,94 +528,110 @@ Drücke die Leertaste um das Seitenmenü zu öffnen. InfoWindow - + About Über + SPACEBAR - Leertaste + Leertaste + Right Click - Rechtsklick + Rechtsklick + Mouse Wheel - Mausrad + Mausrad + Move selection 1px - Verschiebe Auswahl um 1px + Verschiebe Auswahl um 1px + Resize selection 1px - Größenänderung um 1px + Größenänderung um 1px + Quit capture - Auswahl verlassen + Auswahl verlassen + Copy to clipboard - In Zwischenablage kopieren + In Zwischenablage kopieren + Save selection as a file - Speichere Auswahl als Datei + Speichere Auswahl als Datei + Undo the last modification - Letze Änderungen zurücksetzen + Letze Änderungen zurücksetzen + Toggle visibility of sidebar with options of the selected tool - Öffne/Schließe Seitenauswahlmenü des gewählten Werkzeugs + Öffne/Schließe Seitenauswahlmenü des gewählten Werkzeugs + Show color picker - Zeige Farbauswahl + Zeige Farbauswahl + Change the tool's thickness - Ändere die Dicke des Werkzeugs + Ändere die Dicke des Werkzeugs + Available shortcuts in the screen capture mode. - Verfügbare Tastenkürzel im Aufnahmemodus. + Verfügbare Tastenkürzel im Aufnahmemodus. + Key - Taste + Taste + Description - Beschreibung + Beschreibung - + <u><b>License</b></u> <u><b>Lizenz</b></u> - + <u><b>Version</b></u> <u><b>Version</b></u> + <u><b>Shortcuts</b></u> - <u><b>Tastenkürzel</b></u> + <u><b>Tastenkürzel</b></u> LineTool - + Line Linie - + Set the Line as the paint tool Wähle Linie als Werkzeug @@ -801,12 +639,12 @@ Drücke die Leertaste um das Seitenmenü zu öffnen. MarkerTool - + Marker Markierer - + Set the Marker as the paint tool Wähle den Markierer als Werkzeug @@ -814,12 +652,12 @@ Drücke die Leertaste um das Seitenmenü zu öffnen. MoveTool - + Move Bewege - + Move the selection area Bewege den Auswahlbereich @@ -827,12 +665,12 @@ Drücke die Leertaste um das Seitenmenü zu öffnen. PencilTool - + Pencil Stift - + Set the Pencil as the paint tool Wähle den Stift als Werkzeug @@ -840,169 +678,253 @@ Drücke die Leertaste um das Seitenmenü zu öffnen. PinTool - + Pin Tool Pinnwand Werkzeug - + Pin image on the desktop - Pinne Bild auf den Dekstop + Pinne Bild auf den Desktop + + + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + QObject - + Save Error Speicherfehler - - + + Capture saved as Aufnahme gespeichert als - + + Capture saved to clipboard. + + + + Capture saved to clipboard Aufnahme in Zwischenablage gespeichert - - + + Error trying to save as Fehler beim Speichern unter - - Save screenshot - - - - - Capture saved and copied to the clipboard as - - - - - - - - + + + + + Unable to connect via DBus Kann nicht via DBus verbinden - + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + Error Fehler - + Unable to write in Kein Schreibzugriff auf - + + Options + + + + + Arguments + + + + + arguments + + + + + Usage + + + + + options + + + + + Per default runs Flameshot in the background and adds a tray icon for configuration. + + + + URL copied to clipboard. URL kopiert. - - - Hi, I'm already running! -You can find me in the system tray. - - - - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. - - - - - Resize selection right 1px - - - - - Resize selection left 1px - - - - - Resize selection up 1px - - - - - Resize selection down 1px - - - - - Toggle side panel - - - - - Move selection left 1px - - - - - Move selection right 1px - - - - - Move selection up 1px - - - - - Move selection down 1px - - - - - Quit capture - Auswahl verlassen - - - - Screenshot history - - - - - Capture screen - - - - Move selection 1px - Verschiebe Auswahl um 1px - - - - Show color picker - Zeige Farbauswahl - - - - Change the tool's thickness - Ändere die Dicke des Werkzeugs - RectangleTool - + Rectangle Rechteck - + Set the Rectangle as the paint tool Wähle ausgefülltes Rechteck als Werkzeug @@ -1010,12 +932,12 @@ You can find me in the system tray. RedoTool - + Redo Wiederholen - + Redo the next modification Wiederhole die nächste Veränderung @@ -1023,12 +945,12 @@ You can find me in the system tray. SaveTool - + Save Speichern - + Save the capture Speichere die Aufnahme @@ -1036,7 +958,7 @@ You can find me in the system tray. ScreenGrabber - + Unable to capture screen Kann Bereich nicht aufnehmen @@ -1044,76 +966,35 @@ You can find me in the system tray. SelectionTool - + Rectangular Selection Rechteckige Auswahl - + Set Selection as the paint tool Wähle Rechteck als Werkzeug - - SetShortcutDialog - - - Set Shortcut - - - - - Enter new shortcut to change - - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - - - - - ShortcutsWidget - - - Hot Keys - - - - - Available shortcuts in the screen capture mode. - Verfügbare Tastenkürzel im Aufnahmemodus. - - - - Description - Beschreibung - - - - Key - Taste - - SidePanelWidget - + Active thickness: Aktuelle Dicke - + Active color: Aktuelle Farbe: - + Press ESC to cancel Drücke ESC für Abbruch - + Grab Color Wähle Farbe @@ -1121,12 +1002,12 @@ You can find me in the system tray. SizeIndicatorTool - + Selection Size Indicator Auswahlgrößen Indentifikator - + Show the dimensions of the selection (X Y) Zeige die Dimensionen der Auswahl (X Y) @@ -1134,107 +1015,107 @@ You can find me in the system tray. StrftimeChooserWidget - + Century (00-99) Jarhhundert (00-99) - + Year (00-99) Jahr (00-99) - + Year (2000) Jahr (2000) - + Month Name (jan) Monatsname (Jan) - + Month Name (january) Monatsname (Januar) - + Month (01-12) Monat (01-12) - + Week Day (1-7) Wochentag (1-7) - + Week (01-53) Woche (01-53) - + Day Name (mon) - Tagesname (Mon) + Wochentag (Mon) - + Day Name (monday) - Tagesname (Montag) + Wochentag (Montag) - + Day (01-31) Tag (01-31) - + Day of Month (1-31) Tag des Monats (1-31) - + Day (001-366) Tag (001-366) - + Time (%H-%M-%S) Zeit (%H-%M-%S) - + Time (%H-%M) Zeit (%H-%M) - + Hour (00-23) Stunde (00-23) - + Hour (01-12) Stunde (01-12) - + Minute (00-59) Minute (00-59) - + Second (00-59) Sekunde (00-59) - + Full Date (%m/%d/%y) Komplettes Datum (%m/%d/%y) - + Full Date (%Y-%m-%d) Komplettes Datum (%Y-%m-%d) @@ -1242,7 +1123,7 @@ You can find me in the system tray. SystemNotification - + Flameshot Info Flameshot Info @@ -1250,22 +1131,22 @@ You can find me in the system tray. TextConfig - + StrikeOut Durchstreichen - + Underline Unterstrichen - + Bold Fettdruck - + Italic Kursiv @@ -1273,12 +1154,12 @@ You can find me in the system tray. TextTool - + Text Text - + Add text to your capture Füge Text zur Auswahl hinzu @@ -1286,37 +1167,37 @@ You can find me in the system tray. UIcolorEditor - + UI Color Editor - UI Farb Editor + Grafischer Farbeditor - + Change the color moving the selectors and see the changes in the preview buttons. Ändere die Farbauswahl und betrachte die Vorschau in den Vorschau-Buttons. - + Select a Button to modify it Wähle einen Button um ihn zu verändern - + Main Color Hauptfarbe - + Click on this button to set the edition mode of the main color. Wähle diesen Button um den Bearbeitungsmodus der Hauptfarbe zu wählen. - + Contrast Color Kontrastfarbe - + Click on this button to set the edition mode of the contrast color. Wähle diesen Button um den Bearbeitungsmodus der Kontrastfarbe zu wählen. @@ -1324,12 +1205,12 @@ You can find me in the system tray. UndoTool - + Undo Verwerfen - + Undo the last modification Letzte Änderung verwerfen @@ -1337,25 +1218,25 @@ You can find me in the system tray. UtilityPanel - - Hide + + Close VisualsEditor - + Opacity of area outside selection: Deckkraft des Bereichs außerhalb der Auswahl: - + Button Selection Button Auswahl - + Select All Alle wählen diff --git a/translations/Internationalization_es.ts b/data/translations/Internationalization_es.ts similarity index 51% rename from translations/Internationalization_es.ts rename to data/translations/Internationalization_es.ts index 6f20a2d0..c7ee6ce6 100644 --- a/translations/Internationalization_es.ts +++ b/data/translations/Internationalization_es.ts @@ -4,12 +4,12 @@ AppLauncher - + App Launcher Lanzador de Aplicaciones - + Choose an app to open the capture Elige una aplicación con la que abrir la captura @@ -17,33 +17,33 @@ AppLauncherWidget - + Open With Abrir Con - + Launch in terminal Lanzar en terminal - + Keep open after selection Mantener abierto tras la selección - - + + Error Error - + Unable to write in Imposible escribir en - + Unable to launch in terminal. Imposible lanzar en terminal. @@ -51,12 +51,12 @@ ArrowTool - + Arrow Flecha - + Set the Arrow as the paint tool Establece la Flecha como herramienta de dibujo @@ -64,60 +64,58 @@ BlurTool - Blur - Desenfoque + Desenfoque - Set Blur as the paint tool - Establece el Desenfoque como herramienta de dibujo + Establece el Desenfoque como herramienta de dibujo CaptureLauncher - + <b>Capture Mode</b> - + Rectangular Region - + Full Screen (All Monitors) - + No Delay - + second - + seconds - + Take new screenshot - + Area: - + Delay: @@ -125,12 +123,12 @@ CaptureWidget - + Unable to capture screen Imposible capturar la pantalla - + Select an area with the mouse, or press Esc to exit. Press Enter to capture the screen. Press Right Click to show the color picker. @@ -142,16 +140,34 @@ Presion Click Derecho para mostrar el selector de color. Usa la rueda del ratón para cambiar el grosor de la herramienta. Presiona Espacio para abrir el panel lateral. + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + CircleTool - + Circle Círculo - + Set the Circle as the paint tool Establece el Círculo como herramienta de dibujo @@ -159,27 +175,22 @@ Presiona Espacio para abrir el panel lateral. ConfigWindow - + Configuration Configuración - + Interface Interfaz - + Filename Editor Editor de Nombre - - Shortcuts - - - - + General General @@ -187,45 +198,44 @@ Presiona Espacio para abrir el panel lateral. Controller - + &Take Screenshot &Tomar captura de pantalla - + &Open Launcher - + &Configuration &Configuración - - &Information - &Información + + &About + - + &Information + &Información + + + &Quit &Salir - - - &Latest Uploads - - CopyTool - + Copy Copiar - + Copy the selection into the clipboard Copia la selección al portapapeles @@ -233,7 +243,7 @@ Presiona Espacio para abrir el panel lateral. DBusUtils - + Unable to connect via DBus Imposible conectarse mediante DBus @@ -241,12 +251,12 @@ Presiona Espacio para abrir el panel lateral. ExitTool - + Exit Salir - + Leave the capture screen Salir de la pantalla de captura @@ -254,451 +264,263 @@ Presiona Espacio para abrir el panel lateral. FileNameEditor - + Edit the name of your captures: Edita el nombre de tus capturas: - + Edit: Editar: - + Preview: Previsualización: - + Save Guardar - + Saves the pattern Guarda el patrón - + Reset Reiniciar - + Restores the saved pattern Restaura el patrón guardado - + Clear Limpiar - + Deletes the name Borra el patrón - - FilePathConfiguration - - - Screenshot path default: - - - - - Use fixed path for screenshots to save - - - - - Browse - - - - - Clear - Limpiar - - - - Select default path for Screenshots - - - GeneneralConf - - + + Import Importar - - - + + + + Error Error - + Unable to read file. Imposible leer el archivo. - - + + Unable to write file. Imposible escribir el archivo. - + Save File Guardar Archivo - + Confirm Reset Confirmar Reset - + Are you sure you want to reset the configuration? ¿Estás seguro de que quieres reiniciar la configuración? - + Show help message Mostrar mensaje de ayuda - + Show the help message at the beginning in the capture mode. Muestra el mensaje de ayuda al iniciar el modo de captura. - - + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + + Show desktop notifications Mostrar notificaciones del escritorio - + Show tray icon Mostrar icono en la barra de tareas - + Show the systemtray icon Mostrar el icono en la barra de tareas - + Configuration File Archivo de Configuración - + Export Exportar - + Reset Reset - + Launch at startup Lanzar en el arranque - - + Launch Flameshot Lanzar Flameshot - - Show welcome message on launch + + Close after capture - - Close application after capture - - - - + Close after taking a screenshot - + Copy URL after upload - + Copy URL and close window after upload - - - Copy file path after save + + Save image after copy - - Upload storage + + Save image file after copying it - - Imgur storage + + Save Path - - S3 storage (require config.ini file with s3 credentials) - - - - - HistoryWidget - - - Latest Uploads + + Change... - - Screenshots history is empty + + Choose a Folder - - Copy URL - Copiar URL - - - - URL copied to clipboard. - URL copiada al portapapeles. - - - - Open in browser + + Unable to write to directory. - - ImgS3Uploader - - - Uploading Image - Subiendo Imagen - - - - Upload image to S3 - - - - - Delete image from S3 - - - - - Unable to remove screenshot from the remote storage. - - - - - Network error - - - - - Possibly it doesn't exist anymore - - - - - Do you want to remove screenshot from local history anyway? - - - - - S3 Creds URL is not found in your configuration file - - - - Copy URL - Copiar URL - - - Open URL - Abrir URL - - - Delete image - Borrar imagen - - - Image to Clipboard. - Imagen al Portapapeles. - - - Unable to open the URL. - No puede abrir la URL. - - - - URL copied to clipboard. - URL copiada al portapapeles. - - - - Deleting image... - - - - - Remove screenshot from history? - - - - Screenshot copied to clipboard. - Captura copiada al portapapeles. - - - - ImgS3UploaderTool - - - Image Uploader - Subir Imagen - - - - Upload the selection to S3 bucket - - - - - ImgUploader - - - Upload image to S3 - - - - - - Uploading Image - Subiendo Imagen - - - - Upload image - - - - - Unable to open the URL. - No puede abrir la URL. - - - - URL copied to clipboard. - URL copiada al portapapeles. - - - - Screenshot copied to clipboard. - Captura copiada al portapapeles. - - - - Deleting image... - - - - - Copy URL - Copiar URL - - - - Open URL - Abrir URL - - - - Delete image - Borrar imagen - - - - Image to Clipboard. - Imagen al Portapapeles. - - ImgurUploader - + Upload to Imgur Subir a Imgur + Uploading Image - Subiendo Imagen + Subiendo Imagen + Copy URL - Copiar URL + Copiar URL + Open URL - Abrir URL + Abrir URL + Delete image - Borrar imagen + Borrar imagen + Image to Clipboard. - Imagen al Portapapeles. + Imagen al Portapapeles. - + + Unable to open the URL. No puede abrir la URL. + URL copied to clipboard. - URL copiada al portapapeles. + URL copiada al portapapeles. + Screenshot copied to clipboard. - Captura copiada al portapapeles. + Captura copiada al portapapeles. ImgurUploaderTool - + Image Uploader Subir Imagen - + Upload the selection to Imgur Sube la selección a Imgur @@ -706,90 +528,110 @@ Presiona Espacio para abrir el panel lateral. InfoWindow - + About Información + + SPACEBAR + + + + Right Click - Click Derecho + Click Derecho + Mouse Wheel - Rueda del Ratón + Rueda del Ratón + Move selection 1px - Mover la selección 1px + Mover la selección 1px + Resize selection 1px - Redimensionar la selección 1px + Redimensionar la selección 1px + Quit capture - Salir de la captura + Salir de la captura + Copy to clipboard - Copiar al portapapeles + Copiar al portapapeles + Save selection as a file - Guardar la selección como un archivo + Guardar la selección como un archivo + Undo the last modification - Deshacer la última modificación + Deshacer la última modificación + Toggle visibility of sidebar with options of the selected tool - Alternar la visualización de la barra lateral de opciones de la herramienta seleccionada + Alternar la visualización de la barra lateral de opciones de la herramienta seleccionada + Show color picker - Mostrar el selector de color + Mostrar el selector de color + Change the tool's thickness - Cambiar el grosor de la herramienta + Cambiar el grosor de la herramienta + Available shortcuts in the screen capture mode. - Atajos disponibles en el modo captura de pantalla. + Atajos disponibles en el modo captura de pantalla. + Key - Tecla + Tecla + Description - Descripción + Descripción - + <u><b>License</b></u> <u><b>Licencia</b></u> - + <u><b>Version</b></u> <u><b>Versión</b></u> + <u><b>Shortcuts</b></u> - <u><b>Atajos</b></u> + <u><b>Atajos</b></u> LineTool - + Line Línea - + Set the Line as the paint tool Establece la Línea como herramienta de dibujo @@ -797,12 +639,12 @@ Presiona Espacio para abrir el panel lateral. MarkerTool - + Marker Marcador - + Set the Marker as the paint tool Establece el Marcador como herramienta de dibujo @@ -810,12 +652,12 @@ Presiona Espacio para abrir el panel lateral. MoveTool - + Move Mover Selección - + Move the selection area Mueve la selección @@ -823,12 +665,12 @@ Presiona Espacio para abrir el panel lateral. PencilTool - + Pencil Lápiz - + Set the Pencil as the paint tool Establece el Lápiz como herramienta de dibujo @@ -836,169 +678,253 @@ Presiona Espacio para abrir el panel lateral. PinTool - + Pin Tool Chincheta - + Pin image on the desktop Fija la imagen sobre el escritorio + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + + + QObject - + Save Error Error al Guardar - - + + Capture saved as Captura guardada como - + + Capture saved to clipboard. + + + + Capture saved to clipboard Captura guardada en el portapapeles - - + + Error trying to save as Error intentando guardar como - - Save screenshot - - - - - Capture saved and copied to the clipboard as - - - - - - - - + + + + + Unable to connect via DBus Imposible conectar mediante DBus - + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + Error Error - + Unable to write in Imposible escribir en - + URL copied to clipboard. URL copiada al portapapeles. - - Hi, I'm already running! -You can find me in the system tray. + + Options - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. + + Arguments - - Resize selection right 1px + + arguments - - Resize selection left 1px + + Usage - - Resize selection up 1px + + options - - Resize selection down 1px + + Per default runs Flameshot in the background and adds a tray icon for configuration. - - - Toggle side panel - - - - - Move selection left 1px - - - - - Move selection right 1px - - - - - Move selection up 1px - - - - - Move selection down 1px - - - - - Quit capture - Salir de la captura - - - - Screenshot history - - - - - Capture screen - - - - Move selection 1px - Mover la selección 1px - - - - Show color picker - Mostrar el selector de color - - - - Change the tool's thickness - Cambiar el grosor de la herramienta - RectangleTool - + Rectangle Rectángulo - + Set the Rectangle as the paint tool Establece el Rectángulo como herramienta de dibujo @@ -1006,12 +932,12 @@ You can find me in the system tray. RedoTool - + Redo Rehacer - + Redo the next modification Rehacer la siguiente modificación @@ -1019,12 +945,12 @@ You can find me in the system tray. SaveTool - + Save Guardar - + Save the capture Guardar la captura @@ -1032,7 +958,7 @@ You can find me in the system tray. ScreenGrabber - + Unable to capture screen Imposible capturar la pantalla @@ -1040,76 +966,35 @@ You can find me in the system tray. SelectionTool - + Rectangular Selection Selección Rectangular - + Set Selection as the paint tool Establece la Selección como herramienta de dibujo - - SetShortcutDialog - - - Set Shortcut - - - - - Enter new shortcut to change - - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - - - - - ShortcutsWidget - - - Hot Keys - - - - - Available shortcuts in the screen capture mode. - Atajos disponibles en el modo captura de pantalla. - - - - Description - Descripción - - - - Key - Tecla - - SidePanelWidget - + Active thickness: Espesor activo: - + Active color: Color activo: - + Press ESC to cancel Presiona ESC para cancelar - + Grab Color Tomar Color @@ -1117,12 +1002,12 @@ You can find me in the system tray. SizeIndicatorTool - + Selection Size Indicator Indicador de Tamaño de Selección - + Show the dimensions of the selection (X Y) Muestra la dimensión de la selección (X Y) @@ -1130,107 +1015,107 @@ You can find me in the system tray. StrftimeChooserWidget - + Century (00-99) Siglo (00-99) - + Year (00-99) Año (00-99) - + Year (2000) Año (2000) - + Month Name (jan) Nombre del Mes (jul) - + Month Name (january) Nombre del Mes (julio) - + Month (01-12) Mes (01-12) - + Week Day (1-7) Día de la Semana (1-7) - + Week (01-53) Semana (01-53) - + Day Name (mon) Nombre del Día (dom) - + Day Name (monday) Nombre del Día (domingo) - + Day (01-31) Día (01-31) - + Day of Month (1-31) Día del Mes (1-31) - + Day (001-366) Día (001-366) - + Time (%H-%M-%S) Tiempo (%H-%M-%S) - + Time (%H-%M) Tiempo (%H-%M) - + Hour (00-23) Hora (00-23) - + Hour (01-12) Hora (01-12) - + Minute (00-59) Minuto (00-59) - + Second (00-59) Segundo (00-59) - + Full Date (%m/%d/%y) Fecha (%m/%d/%y) - + Full Date (%Y-%m-%d) Fecha (%Y-%m-%d) @@ -1238,7 +1123,7 @@ You can find me in the system tray. SystemNotification - + Flameshot Info Información de Flameshot @@ -1246,22 +1131,22 @@ You can find me in the system tray. TextConfig - + StrikeOut Tachado - + Underline Subrayado - + Bold Negrita - + Italic Cursiva @@ -1269,12 +1154,12 @@ You can find me in the system tray. TextTool - + Text Texto - + Add text to your capture Agregar texto a la captura @@ -1282,37 +1167,37 @@ You can find me in the system tray. UIcolorEditor - + UI Color Editor Editor de Color de Interfaz - + Change the color moving the selectors and see the changes in the preview buttons. Cambia el color moviendo los selectores y observa los cambios en los botones de previsualización. - + Select a Button to modify it Selecciona un Botón para modificarlo - + Main Color Color Principal - + Click on this button to set the edition mode of the main color. Clica en este botón para aplicar el modo edición para el color primario. - + Contrast Color Color de Contraste - + Click on this button to set the edition mode of the contrast color. Clica en este botón para aplicar el modo edición para el color de contraste. @@ -1320,12 +1205,12 @@ You can find me in the system tray. UndoTool - + Undo Deshacer - + Undo the last modification Borra la última modificación @@ -1333,25 +1218,25 @@ You can find me in the system tray. UtilityPanel - - Hide + + Close VisualsEditor - + Opacity of area outside selection: Opacidad del area fuera de la selección: - + Button Selection Selección de Botón - + Select All Seleccionar Todos diff --git a/data/translations/Internationalization_eu_ES.ts b/data/translations/Internationalization_eu_ES.ts new file mode 100644 index 00000000..78e196ac --- /dev/null +++ b/data/translations/Internationalization_eu_ES.ts @@ -0,0 +1,1244 @@ + + + + + AppLauncher + + + App Launcher + Aplikazioen abiarazlea + + + + Choose an app to open the capture + Aukeratu aplikazio bat pantaila argazkia irekitzeko + + + + AppLauncherWidget + + + Open With + Ireki honekin + + + + Launch in terminal + Abiarazi terminalean + + + + Keep open after selection + Mantendu irekita hautatu ondoren + + + + + Error + Errorea + + + + Unable to write in + Ezin da idatzi hemen + + + + Unable to launch in terminal. + Ezin da terminalean abiarazi. + + + + ArrowTool + + + Arrow + Gezia + + + + Set the Arrow as the paint tool + Ezarri gezia marrazketa-tresna + + + + BlurTool + + Blur + Lausotu + + + Set Blur as the paint tool + Ezarri lausotzea marrazketa-tresna + + + + CaptureLauncher + + + <b>Capture Mode</b> + + + + + Rectangular Region + + + + + Full Screen (All Monitors) + + + + + No Delay + + + + + second + + + + + seconds + + + + + Take new screenshot + + + + + Area: + + + + + Delay: + + + + + CaptureWidget + + + Unable to capture screen + Ezin da pantaila atzeman + + + + Select an area with the mouse, or press Esc to exit. +Press Enter to capture the screen. +Press Right Click to show the color picker. +Use the Mouse Wheel to change the thickness of your tool. +Press Space to open the side panel. + Hautatu area saguaren bidez, edo sakatu Esc ateratzeko.S +Sakatu Sartu-tekla pantaila argazkia egiteko. +Sakatu eskuin klik kolore hautatzailea bistaratzeko. +Erabili saguaren gurpila tresnaren lodiera aldatzeko. +Sakatu zuriune-tekla alboko panela irekitzeko. + + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + + + + CircleTool + + + Circle + Zirkulua + + + + Set the Circle as the paint tool + Ezarri zirkulua marrazketa-tresna + + + + ConfigWindow + + + Configuration + Konfigurazioa + + + + Interface + Interfazea + + + + Filename Editor + Fitxategi-izenaren editorea + + + + General + Orokorra + + + + Controller + + + &Take Screenshot + &Pantaila argazkia egin + + + + &Open Launcher + + + + + &Configuration + &Konfigurazioa + + + + &About + + + + &Information + &Informazioa + + + + &Quit + &Irten + + + + CopyTool + + + Copy + Kopiatu + + + + Copy the selection into the clipboard + Kopiatu hautapena arbelera + + + + DBusUtils + + + Unable to connect via DBus + Ezin da DBus bidez konektatu + + + + ExitTool + + + Exit + Irten + + + + Leave the capture screen + Utzi pantaila argazkia + + + + FileNameEditor + + + Edit the name of your captures: + Editatu pantaila argazkiaren izena: + + + + Edit: + Editatu: + + + + Preview: + Aurrebista: + + + + Save + Gorde + + + + Saves the pattern + Gordetzen du eredua + + + + Reset + Berrabiarazi + + + + Restores the saved pattern + Leheneratzen du gordetako eredua + + + + Clear + Garbitu + + + + Deletes the name + Ezabatzen du izena + + + + GeneneralConf + + + + Import + Inportatu + + + + + + + Error + Errorea + + + + Unable to read file. + Ezin da fitxategia irakurri. + + + + + Unable to write file. + Ezin da fitxategia idatzi. + + + + Save File + Gorde fitxategia + + + + Confirm Reset + Berretzi berrezartzea + + + + Are you sure you want to reset the configuration? + Ziur zaude ezarpenak berrezarri nahi dituzula? + + + + Show help message + Bistaratu laguntza mezua + + + + Show the help message at the beginning in the capture mode. + Bistaratu laguntza mezua pantaila argazkikoa hastean. + + + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + + + Show desktop notifications + Bistaratu mahaigaineko jakinarazpenak + + + + Show tray icon + Bistaratu ikonoa erretiluan + + + + Show the systemtray icon + Bistaratu ikonoa sistemaren erretiluan + + + + Configuration File + Ezarpenen fitxategia + + + + Export + Esportatu + + + + Reset + Berrezarri + + + + Launch at startup + Abioan martxan jarri + + + + Launch Flameshot + Abiarazi Flameshot + + + + Close after capture + + + + + Close after taking a screenshot + + + + + Copy URL after upload + + + + + Copy URL and close window after upload + + + + + Save image after copy + + + + + Save image file after copying it + + + + + Save Path + + + + + Change... + + + + + Choose a Folder + + + + + Unable to write to directory. + + + + + ImgurUploader + + + Upload to Imgur + Kargatu Imgur-era + + + + Uploading Image + Irudia kargatzen + + + + Copy URL + Kopiatu URLa + + + + Open URL + Ireki URLa + + + + Delete image + Ezabatu irudia + + + + Image to Clipboard. + Irudia arbelera. + + + + + Unable to open the URL. + Ezin da URLa ireki. + + + + URL copied to clipboard. + URLa arbelera kopiatu da. + + + + Screenshot copied to clipboard. + Pantaila argazkia arbelera kopiatu da. + + + + ImgurUploaderTool + + + Image Uploader + Kargatu irudia + + + + Upload the selection to Imgur + Kargatu hautapena Imgur-era + + + + InfoWindow + + + About + Honi buruz + + + + SPACEBAR + + + + + Right Click + Eskuin klik + + + + Mouse Wheel + Saguaren gurpila + + + + Move selection 1px + Mugitu hautapena 1px + + + + Resize selection 1px + Aldatu hautapenaren tamaina 1px + + + + Quit capture + Irten pantaila argazkitik + + + + Copy to clipboard + Kopiatu arbelera + + + + Save selection as a file + Gorde hautapena fitxategi moduan + + + + Undo the last modification + Desegin azken aldaketa + + + + Toggle visibility of sidebar with options of the selected tool + Aldatu alboko barraren ikuspegia hautatutako tresnaren aukerekin + + + + Show color picker + Bistaratu kolore hautatzailea + + + + Change the tool's thickness + Aldatu tresnaren lodiera + + + + Available shortcuts in the screen capture mode. + Pantaila argazkiaren laster-teklak. + + + + Key + Tekla + + + + Description + Deskripzioa + + + + <u><b>License</b></u> + <u><b>Lizentzia</b></u> + + + + <u><b>Version</b></u> + <u><b>Bertsioa</b></u> + + + + <u><b>Shortcuts</b></u> + <u><b>Laster-teklak</b></u> + + + + LineTool + + + Line + Lerroa + + + + Set the Line as the paint tool + Ezarri lerroa marrazketa-tresna + + + + MarkerTool + + + Marker + Nabarmentzeko gailua + + + + Set the Marker as the paint tool + Ezarri nabarmentzeko gailua marrazketa-tresna + + + + MoveTool + + + Move + Mugitu + + + + Move the selection area + Mugitu hautapena + + + + PencilTool + + + Pencil + Arkatza + + + + Set the Pencil as the paint tool + Ezarri arkatza marrazketa-tresna + + + + PinTool + + + Pin Tool + Txintxeta + + + + Pin image on the desktop + Finkatu irudia mahaigainean + + + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + + + + + QObject + + + Save Error + Errorea gordetzean + + + + + Capture saved as + Pantaila argazkia honela gorde da + + + + Capture saved to clipboard. + + + + + Capture saved to clipboard + Pantaila argazkia arbelan gorde da + + + + + Error trying to save as + Errorea honela gordetzen + + + + + + + + Unable to connect via DBus + Ezin da gorde DBus bidez + + + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + + Error + Errorea + + + + Unable to write in + Ezin da hemen idatzi + + + + Options + + + + + Arguments + + + + + arguments + + + + + Usage + + + + + options + + + + + Per default runs Flameshot in the background and adds a tray icon for configuration. + + + + + URL copied to clipboard. + URLa arbelera kopiatu da. + + + + RectangleTool + + + Rectangle + Laukizuzena + + + + Set the Rectangle as the paint tool + Ezarri laukizuzena marrazketa-tresna + + + + RedoTool + + + Redo + Berregin + + + + Redo the next modification + Berregin hurrengo aldaketa + + + + SaveTool + + + Save + Gorde + + + + Save the capture + Gorde pantaila argazkia + + + + ScreenGrabber + + + Unable to capture screen + Ezin izan da pantaila argazkia egin + + + + SelectionTool + + + Rectangular Selection + Laukizuzen formako hautapena + + + + Set Selection as the paint tool + Ezarri hautapena marrazketa-tresna + + + + SidePanelWidget + + + Active thickness: + Uneko lodiera: + + + + Active color: + Uneko kolorea: + + + + Press ESC to cancel + Sakatu ESC uzteko + + + + Grab Color + Atzitu kolorea + + + + SizeIndicatorTool + + + Selection Size Indicator + Hautapenaren tamainaren adierazlea + + + + Show the dimensions of the selection (X Y) + Bistaratu hautapenaren tamaina (X Y) + + + + StrftimeChooserWidget + + + Century (00-99) + Mendea (00-99) + + + + Year (00-99) + Urtea (00-99) + + + + Year (2000) + Urtea (2000) + + + + Month Name (jan) + Hilabetearen izena (urt) + + + + Month Name (january) + Hilabetearen izena (urtarrila) + + + + Month (01-12) + Hilabetea (01-12) + + + + Week Day (1-7) + Asteko eguna (1-7) + + + + Week (01-53) + Astea (01-53) + + + + Day Name (mon) + Egunaren izena (asl) + + + + Day Name (monday) + Egunaren izena (astelehena) + + + + Day (01-31) + Eguna (01-31) + + + + Day of Month (1-31) + Hilabeteko eguna (1-31) + + + + Day (001-366) + Eguna (001-366) + + + + Time (%H-%M-%S) + Ordua (%H-%M-%S) + + + + Time (%H-%M) + Ordua (%H-%M) + + + + Hour (00-23) + Ordua (00-23) + + + + Hour (01-12) + Ordua (01-12) + + + + Minute (00-59) + Minutu (00-59) + + + + Second (00-59) + Segundu (00-59) + + + + Full Date (%m/%d/%y) + Data (%y/%m/%d) + + + + Full Date (%Y-%m-%d) + Data (%Y-%m-%d) + + + + SystemNotification + + + Flameshot Info + Flameshoti buruz + + + + TextConfig + + + StrikeOut + Marraketa + + + + Underline + Azpimarraketa + + + + Bold + Lodia + + + + Italic + Etzana + + + + TextTool + + + Text + Testu + + + + Add text to your capture + Gehitu testua pantaila argazkiari + + + + UIcolorEditor + + + UI Color Editor + Interfazearen kolore hautatzailea + + + + Change the color moving the selectors and see the changes in the preview buttons. + Aldatu kolorea hautatzeileak mugitzen eta ikusi aldaketok aurreikuste botoietan. + + + + Select a Button to modify it + Aukertau botoi bat aldatzeko + + + + Main Color + Kolore nagusia + + + + Click on this button to set the edition mode of the main color. + Egin klik botoi honetan aktibatzeko kolore nagusiaren edizio modua. + + + + Contrast Color + Kontraste kolorea + + + + Click on this button to set the edition mode of the contrast color. + Egin klik botoi honetan aktibatzeko kontraste kolorearen edizio modua. + + + + UndoTool + + + Undo + Desegin + + + + Undo the last modification + Desegin azken aldaketa + + + + UtilityPanel + + + Close + + + + + VisualsEditor + + + Opacity of area outside selection: + Hautapenetik kanpoko arearen opakutasuna: + + + + Button Selection + Botoi hautapena + + + + Select All + Hautatu denak + + + diff --git a/translations/Internationalization_fr.ts b/data/translations/Internationalization_fr.ts similarity index 50% rename from translations/Internationalization_fr.ts rename to data/translations/Internationalization_fr.ts index 55462fe1..fb600c95 100644 --- a/translations/Internationalization_fr.ts +++ b/data/translations/Internationalization_fr.ts @@ -4,12 +4,12 @@ AppLauncher - + App Launcher Lanceur d'applications - + Choose an app to open the capture Sélectionner une application pour ouvrir la capture @@ -17,46 +17,46 @@ AppLauncherWidget - + Open With Ouvrir Avec - + Launch in terminal Lancer dans le terminal - + Keep open after selection Maintenir ouvert après la sélection - - + + Error Erreur - + Unable to write in - Imposible d'écrire dessus + Impossible d'écrire dessus - + Unable to launch in terminal. - Imposible de lancer dans le terminal. + Impossible de lancer dans le terminal. ArrowTool - + Arrow Flèche - + Set the Arrow as the paint tool Sélectionner l'outil Flèche @@ -64,60 +64,58 @@ BlurTool - Blur - Flou + Flou - Set Blur as the paint tool - Sélectionner l'outil Flou + Sélectionner l'outil Flou CaptureLauncher - + <b>Capture Mode</b> - + Rectangular Region - + Full Screen (All Monitors) - + No Delay - + second - + seconds - + Take new screenshot - + Area: - + Delay: @@ -125,12 +123,12 @@ CaptureWidget - + Unable to capture screen - Imposible de capturer l'écran + Impossible de capturer l'écran - + Select an area with the mouse, or press Esc to exit. Press Enter to capture the screen. Press Right Click to show the color picker. @@ -142,16 +140,34 @@ Effectuer un clic droit pour afficher le sélecteur de couleurs. Utiliser la molette de la souris pour changer l'épaisseur de l'outil. Appuyer sur Espace pour ouvrir le panneau latéral. + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + CircleTool - + Circle Ellipse - + Set the Circle as the paint tool Sélectionner l'outil Ellipse @@ -159,27 +175,22 @@ Appuyer sur Espace pour ouvrir le panneau latéral. ConfigWindow - + Configuration Configuration - + Interface Interface - + Filename Editor Editeur de Noms - - Shortcuts - - - - + General Général @@ -187,45 +198,44 @@ Appuyer sur Espace pour ouvrir le panneau latéral. Controller - + &Take Screenshot &Capturer l'écran - + &Open Launcher - + &Configuration &Configuration - - &Information - &Informations + + &About + - + &Information + &Informations + + + &Quit &Quitter - - - &Latest Uploads - - CopyTool - + Copy Copier - + Copy the selection into the clipboard Copier la sélection dans le presse-papier @@ -233,20 +243,20 @@ Appuyer sur Espace pour ouvrir le panneau latéral. DBusUtils - + Unable to connect via DBus - Imposible de se connecter via DBus + Impossible de se connecter via DBus ExitTool - + Exit Sortir - + Leave the capture screen Quitter l'écran de capture @@ -254,443 +264,263 @@ Appuyer sur Espace pour ouvrir le panneau latéral. FileNameEditor - + Edit the name of your captures: Editer le nom des captures: - + Edit: Editer: - + Preview: Prévisualisation: - + Save Sauvegarder - + Saves the pattern Sauvegarder le modèle - + Reset Réinitialiser - + Restores the saved pattern Réstaurer le modèle sauvegardé - + Clear Purger - + Deletes the name Supprime le nom - - FilePathConfiguration - - - Screenshot path default: - - - - - Use fixed path for screenshots to save - - - - - Browse - - - - - Clear - Purger - - - - Select default path for Screenshots - - - GeneneralConf - - + + Import Importer - - - + + + + Error Erreur - + Unable to read file. Impossible de lire le fichier. - - + + Unable to write file. Impossible d'écrire le fichier. - + Save File Sauvegarder le fichier - + Confirm Reset Confirmer la Réinitialisation - + Are you sure you want to reset the configuration? Êtes-vous sûr de vouloir réinitialiser la configuration ? - + Show help message Montrer le message d'aide - + Show the help message at the beginning in the capture mode. Afficher ce message au lancement du mode capture. - - + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + + Show desktop notifications Afficher les notifications du bureau - + Show tray icon Afficher les icones de la barre d'état - + Show the systemtray icon Afficher l'icône dans la barre de tâches - + Configuration File Fichier de Configuration - + Export Exporter - + Reset Réinitialiser - + Launch at startup Lancer au démarrage - - + Launch Flameshot Démarrer Flameshot - - Show welcome message on launch - - - - - Close application after capture + + Close after capture Fermer après une capture - + Close after taking a screenshot Fermer l'application après une capture d'écran - + Copy URL after upload - + Copy URL and close window after upload - - - Copy file path after save + + Save image after copy - - Upload storage + + Save image file after copying it - - Imgur storage + + Save Path - - S3 storage (require config.ini file with s3 credentials) - - - - - HistoryWidget - - - Latest Uploads + + Change... - - Screenshots history is empty + + Choose a Folder - - Copy URL - Copier l'URL - - - - URL copied to clipboard. - URL copiée dans le Presse-papier. - - - - Open in browser + + Unable to write to directory. - - ImgS3Uploader - - - Uploading Image - Mise en ligne de l'image - - - - Upload image to S3 - - - - - Delete image from S3 - - - - - Unable to remove screenshot from the remote storage. - - - - - Network error - - - - - Possibly it doesn't exist anymore - - - - - Do you want to remove screenshot from local history anyway? - - - - - S3 Creds URL is not found in your configuration file - - - - Copy URL - Copier l'URL - - - Open URL - Ouvrir l'URL - - - Image to Clipboard. - Image dans le Presse-papier. - - - Unable to open the URL. - Impossible d'ouvrir l'URL. - - - - URL copied to clipboard. - URL copiée dans le Presse-papier. - - - - Deleting image... - - - - - Remove screenshot from history? - - - - Screenshot copied to clipboard. - Capture d'écran copiée dans le Presse-papier. - - - - ImgS3UploaderTool - - - Image Uploader - Mise en ligne d'images - - - - Upload the selection to S3 bucket - - - - - ImgUploader - - - Upload image to S3 - - - - - - Uploading Image - Mise en ligne de l'image - - - - Upload image - - - - - Unable to open the URL. - Impossible d'ouvrir l'URL. - - - - URL copied to clipboard. - URL copiée dans le Presse-papier. - - - - Screenshot copied to clipboard. - Capture d'écran copiée dans le Presse-papier. - - - - Deleting image... - - - - - Copy URL - Copier l'URL - - - - Open URL - Ouvrir l'URL - - - - Delete image - - - - - Image to Clipboard. - Image dans le Presse-papier. - - ImgurUploader - + Upload to Imgur Mettre en ligne vers Imgur + Uploading Image - Mise en ligne de l'image + Mise en ligne de l'image + Copy URL - Copier l'URL + Copier l'URL + Open URL - Ouvrir l'URL + Ouvrir l'URL + + Delete image + + + + Image to Clipboard. - Image dans le Presse-papier. + Image dans le Presse-papier. - + + Unable to open the URL. Impossible d'ouvrir l'URL. + URL copied to clipboard. - URL copiée dans le Presse-papier. + URL copiée dans le Presse-papier. + Screenshot copied to clipboard. - Capture d'écran copiée dans le Presse-papier. + Capture d'écran copiée dans le Presse-papier. ImgurUploaderTool - + Image Uploader Mise en ligne d'images - + Upload the selection to Imgur Mettre en ligne la sélection vers Imgur @@ -698,86 +528,110 @@ Appuyer sur Espace pour ouvrir le panneau latéral. InfoWindow - + About À propos + + SPACEBAR + + + + Right Click - Clic Droit + Clic Droit + Mouse Wheel - Molette de la Souris + Molette de la Souris + Move selection 1px - Déplacer la sélection 1px + Déplacer la sélection 1px + Resize selection 1px - Redimensionner la sélection 1px + Redimensionner la sélection 1px + Quit capture - Quitter la capture d'écran + Quitter la capture d'écran + Copy to clipboard - Copier vers le Presse-papier + Copier vers le Presse-papier + Save selection as a file - Sauvegarder la sélection vers un fichier + Sauvegarder la sélection vers un fichier + Undo the last modification - Annuler la dernière modification + Annuler la dernière modification + + Toggle visibility of sidebar with options of the selected tool + + + + Show color picker - Afficher la palette de couleurs + Afficher la palette de couleurs + Change the tool's thickness - Changer l'épaisseur des outils + Changer l'épaisseur des outils + Available shortcuts in the screen capture mode. - Raccourcis disponibles en mode capture d'écran. + Raccourcis disponibles en mode capture d'écran. + Key - Clé + Clé + Description - Description + Description - + <u><b>License</b></u> <u><b>Licences</b></u> - + <u><b>Version</b></u> <u><b>Version</b></u> + <u><b>Shortcuts</b></u> - <u><b>Raccourci</b></u> + <u><b>Raccourci</b></u> LineTool - + Line Ligne - + Set the Line as the paint tool Sélectionner l'outil Ligne @@ -785,12 +639,12 @@ Appuyer sur Espace pour ouvrir le panneau latéral. MarkerTool - + Marker Surligneur - + Set the Marker as the paint tool Sélectionner l'outil Surligneur @@ -798,12 +652,12 @@ Appuyer sur Espace pour ouvrir le panneau latéral. MoveTool - + Move Déplacer - + Move the selection area Déplacer la sélection @@ -811,12 +665,12 @@ Appuyer sur Espace pour ouvrir le panneau latéral. PencilTool - + Pencil Crayon - + Set the Pencil as the paint tool Sélectionner l'outil Crayon @@ -824,169 +678,253 @@ Appuyer sur Espace pour ouvrir le panneau latéral. PinTool - + Pin Tool Outil Épinglage - + Pin image on the desktop Épingler l'image sur le bureau + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + + + QObject - + Save Error Erreur lors de la sauvegarde - - + + Capture saved as Capture d'écran sauvegardée sous - + + Capture saved to clipboard. + + + + Capture saved to clipboard Capture d'écran copiée dans le Presse-papier - - + + Error trying to save as Erreur lors de la sauvegarde sous - - Save screenshot - - - - - Capture saved and copied to the clipboard as - - - - - - - - + + + + + Unable to connect via DBus Impossible de se connecter via DBus - + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + Error Erreur - + Unable to write in - Imposible d'écrire par dessus + Impossible d'écrire par dessus - + URL copied to clipboard. URL copiée dans le Presse-papier. - - Hi, I'm already running! -You can find me in the system tray. + + Options - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. + + Arguments - - Resize selection right 1px + + arguments - - Resize selection left 1px + + Usage - - Resize selection up 1px + + options - - Resize selection down 1px + + Per default runs Flameshot in the background and adds a tray icon for configuration. - - - Toggle side panel - - - - - Move selection left 1px - - - - - Move selection right 1px - - - - - Move selection up 1px - - - - - Move selection down 1px - - - - - Quit capture - Quitter la capture d'écran - - - - Screenshot history - - - - - Capture screen - - - - Move selection 1px - Déplacer la sélection 1px - - - - Show color picker - Afficher la palette de couleurs - - - - Change the tool's thickness - Changer l'épaisseur des outils - RectangleTool - + Rectangle Rectangle plein - + Set the Rectangle as the paint tool Sélectionner l'outil Rectangle plein @@ -994,12 +932,12 @@ You can find me in the system tray. RedoTool - + Redo Rétablir - + Redo the next modification Refaire la prochaine modification @@ -1007,12 +945,12 @@ You can find me in the system tray. SaveTool - + Save Sauvegarder - + Save the capture Sauvegarder la capture d'écran @@ -1020,84 +958,43 @@ You can find me in the system tray. ScreenGrabber - + Unable to capture screen - Imposible de capturer l'écran + Impossible de capturer l'écran SelectionTool - + Rectangular Selection Rectangle - + Set Selection as the paint tool Sélectionner l'outil Rectangle - - SetShortcutDialog - - - Set Shortcut - - - - - Enter new shortcut to change - - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - - - - - ShortcutsWidget - - - Hot Keys - - - - - Available shortcuts in the screen capture mode. - Raccourcis disponibles en mode capture d'écran. - - - - Description - Description - - - - Key - Clé - - SidePanelWidget - + Active color: Couleur actuelle: - + Press ESC to cancel Appuyer sur Echap pour annuler - + Grab Color Saisir la couleur - + Active thickness: @@ -1105,120 +1002,120 @@ You can find me in the system tray. SizeIndicatorTool - + Selection Size Indicator Indicateur de la taille de la sélection - + Show the dimensions of the selection (X Y) - Montre les dimmensions de la sélection (X Y) + Montrer les dimensions de la sélection (X Y) StrftimeChooserWidget - + Century (00-99) Siècle (00-99) - + Year (00-99) Année (00-99) - + Year (2000) Année (2000) - + Month Name (jan) Nom des Mois (jan) - + Month Name (january) nom des Mois (janvier) - + Month (01-12) Mois (01-12) - + Week Day (1-7) Jour de la Semaine (1-7) - + Week (01-53) Semaine (01-53) - + Day Name (mon) Nom du Jour (lun) - + Day Name (monday) Nom du Jour (lundi) - + Day (01-31) Jour (01-31) - + Day of Month (1-31) Jour du Mois (1-31) - + Day (001-366) Jour de l'année (001-366) - + Time (%H-%M-%S) Heure (%H-%M-%S) - + Time (%H-%M) Heure (%H-%M) - + Hour (00-23) Heure (00-23) - + Hour (01-12) Heure (01-12) - + Minute (00-59) Minute (00-59) - + Second (00-59) Seconde (00-59) - + Full Date (%m/%d/%y) Date (%m/%d/%y) - + Full Date (%Y-%m-%d) Date Complête (%Y-%m-%d) @@ -1226,7 +1123,7 @@ You can find me in the system tray. SystemNotification - + Flameshot Info Info Flameshot @@ -1234,22 +1131,22 @@ You can find me in the system tray. TextConfig - + StrikeOut Rayer - + Underline Souligner - + Bold Gras - + Italic Italique @@ -1257,12 +1154,12 @@ You can find me in the system tray. TextTool - + Text Texte - + Add text to your capture Ajouter du texte à la capture @@ -1270,50 +1167,50 @@ You can find me in the system tray. UIcolorEditor - + UI Color Editor Editeur de la Couleur de l'interface - + Change the color moving the selectors and see the changes in the preview buttons. - Modifiez la couleur en déplaçant les sélecteur et voir les changements dans les boutons de prévisualisation. + Modifier la couleur en déplaçant les sélecteur et voir les changements dans les boutons de prévisualisation. - + Select a Button to modify it Sélectionner un bouton pour le modifier - + Main Color Couleur Principale - + Click on this button to set the edition mode of the main color. - Cliquer sur ce boutton pour définir le mode édition de la couleur principale. + Cliquer sur ce bouton pour définir le mode édition de la couleur principale. - + Contrast Color Couleur de Contraste - + Click on this button to set the edition mode of the contrast color. - Cliquer sur ce boutton pour définir le mode édition de la couleur de contraste. + Cliquer sur ce bouton pour définir le mode édition de la couleur de contraste. UndoTool - + Undo Annuler - + Undo the last modification Annuler la dernière modification @@ -1321,25 +1218,25 @@ You can find me in the system tray. UtilityPanel - - Hide + + Close VisualsEditor - + Opacity of area outside selection: Opacité de la zone en dehors de la sélection: - + Button Selection - Boutton de sélection + Bouton de sélection - + Select All Sélectionner Tout diff --git a/translations/Internationalization_hu.ts b/data/translations/Internationalization_hu.ts similarity index 77% rename from translations/Internationalization_hu.ts rename to data/translations/Internationalization_hu.ts index 054c02d7..93855afd 100644 --- a/translations/Internationalization_hu.ts +++ b/data/translations/Internationalization_hu.ts @@ -54,11 +54,11 @@ BlurTool Blur - Homályosítás + Homályosítás Set Blur as the paint tool - Beállítja a Homályosítás eszközt festő eszközként + Beállítja a Homályosítás eszközt festő eszközként @@ -124,6 +124,21 @@ Use the Mouse Wheel to change the thickness of your tool. Press Space to open the side panel. + + Tool Settings + + + + + CircleCountTool + + Circle Counter + + + + Add an autoincrementing counter bubble + + CircleTool @@ -154,10 +169,6 @@ Press Space to open the side panel. General Általános - - Shortcuts - - Controller @@ -167,7 +178,7 @@ Press Space to open the side panel. &Information - &Információ + &Információ &Quit @@ -182,7 +193,7 @@ Press Space to open the side panel. - &Latest Uploads + &About @@ -265,29 +276,6 @@ Press Space to open the side panel. Képernyőmentés - - FilePathConfiguration - - Screenshot path default: - - - - Use fixed path for screenshots to save - - - - Browse - - - - Clear - Töröl - - - Select default path for Screenshots - - - FlameshotDBusAdapter @@ -366,7 +354,7 @@ Press Space to open the side panel. Flameshot indítása - Close application after capture + Close after capture @@ -382,173 +370,37 @@ Press Space to open the side panel. - Show welcome message on launch + Show the side panel button - Copy file path after save + Show the side panel toggle button in the capture mode. - Upload storage + Save image after copy - Imgur storage + Save image file after copying it - S3 storage (require config.ini file with s3 credentials) - - - - - HistoryWidget - - URL copied to clipboard. - URL másolva a vágólapra. - - - Open in browser + Save Path - Screenshots history is empty + Change... - Copy URL - URL másolása - - - Latest Uploads - - - - - ImgS3Uploader - - Uploading Image - Kép felötlése - - - Copy URL - URL másolása - - - Open URL - URL megnyitása - - - Image to Clipboard. - Kép a vágolapra. - - - Unable to open the URL. - Nem lehet az URL-t megnyitni. - - - URL copied to clipboard. - URL másolva a vágólapra. - - - Screenshot copied to clipboard. - Képernyőmentés másolva a vágólapra. - - - Upload image to S3 + Choose a Folder - Delete image from S3 + Unable to write to directory. - - S3 Creds URL is not found in your configuration file - - - - Deleting image... - - - - Unable to remove screenshot from the remote storage. - - - - Network error - - - - Possibly it doesn't exist anymore - - - - Do you want to remove screenshot from local history anyway? - - - - Remove screenshot from history? - - - - - ImgS3UploaderTool - - Image Uploader - Kép feltöltő - - - Upload the selection to S3 bucket - - - - - ImgUploader - - Upload image to S3 - - - - Uploading Image - Kép felötlése - - - Upload image - - - - Unable to open the URL. - Nem lehet az URL-t megnyitni. - - - URL copied to clipboard. - URL másolva a vágólapra. - - - Screenshot copied to clipboard. - Képernyőmentés másolva a vágólapra. - - - Deleting image... - - - - Copy URL - URL másolása - - - Open URL - URL megnyitása - - - Delete image - - - - Image to Clipboard. - Kép a vágolapra. - ImgurUploader @@ -558,19 +410,19 @@ Press Space to open the side panel. Uploading Image - Kép felötlése + Kép felötlése Copy URL - URL másolása + URL másolása Open URL - URL megnyitása + URL megnyitása Image to Clipboard. - Kép a vágolapra. + Kép a vágolapra. Unable to open the URL. @@ -578,11 +430,15 @@ Press Space to open the side panel. URL copied to clipboard. - URL másolva a vágólapra. + URL másolva a vágólapra. Screenshot copied to clipboard. - Képernyőmentés másolva a vágólapra. + Képernyőmentés másolva a vágólapra. + + + Delete image + @@ -604,51 +460,51 @@ Press Space to open the side panel. Right Click - jobb egérgomb + jobb egérgomb Mouse Wheel - Görgő + Görgő Move selection 1px - Kijelölés mozgatása 1px + Kijelölés mozgatása 1px Resize selection 1px - Kijelölés méretezése 1 px + Kijelölés méretezése 1 px Quit capture - Felvétel bezárása + Felvétel bezárása Copy to clipboard - Másolás vágólapra + Másolás vágólapra Save selection as a file - Kijelölés mentése fájlba + Kijelölés mentése fájlba Undo the last modification - Utolsó módosítás visszavonása + Utolsó módosítás visszavonása Show color picker - Színválasztó mutatása + Színválasztó mutatása Change the tool's thickness - Vastagság állítása + Vastagság állítása Key - Kulcs + Kulcs Description - Leírás + Leírás <u><b>License</b></u> @@ -660,11 +516,19 @@ Press Space to open the side panel. <u><b>Shortcuts</b></u> - <u><b>Gyorsbillentyűk</b></u> + <u><b>Gyorsbillentyűk</b></u> Available shortcuts in the screen capture mode. - Elérhető gyorsbillentyűk a képernyőfelvétel módban. + Elérhető gyorsbillentyűk a képernyőfelvétel módban. + + + SPACEBAR + + + + Toggle visibility of sidebar with options of the selected tool + @@ -722,6 +586,17 @@ Press Space to open the side panel. + + PixelateTool + + Pixelate + + + + Set Pixelate as the paint tool + + + QObject @@ -758,80 +633,137 @@ Press Space to open the side panel. URL másolva a vágólapra. - Hi, I'm already running! -You can find me in the system tray. + Options - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. + Arguments - Capture saved and copied to the clipboard as + arguments - Save screenshot + Usage - Resize selection right 1px + options - Resize selection left 1px + Per default runs Flameshot in the background and adds a tray icon for configuration. - Resize selection up 1px + Powerful yet simple to use screenshot software. - Resize selection down 1px + See - Toggle side panel + Capture the entire desktop. - Quit capture - Felvétel bezárása - - - Screenshot history + Open the capture launcher. - Capture screen + Start a manual capture in GUI mode. - Move selection 1px - Kijelölés mozgatása 1px - - - Show color picker - Színválasztó mutatása - - - Change the tool's thickness - Vastagság állítása - - - Move selection left 1px + Configure - Move selection right 1px + Capture a single screen. - Move selection up 1px + Path where the capture will be saved - Move selection down 1px + Save the capture to the clipboard + + + + Delay time in milliseconds + + + + Set the filename pattern + + + + Enable or disable the trayicon + + + + Enable or disable run at startup + + + + Show the help message in the capture mode + + + + Define the main UI color + + + + Define the contrast UI color + + + + Print raw PNG capture + + + + Define the screen to capture + + + + default: screen containing the cursor + + + + Screen number + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + Invalid delay, it must be higher than 0 + + + + Invalid screen number, it must be non negative + + + + Invalid path, it must be a real path in the system + + + + Invalid value, it must be defined as 'true' or 'false' + + + + Capture saved to clipboard. @@ -886,40 +818,6 @@ You can find me in the system tray. Beállítja a Téglalapos kijelölő eszközt Festő eszközként - - SetShortcutDialog - - Set Shortcut - - - - Enter new shortcut to change - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - - - - - ShortcutsWidget - - Hot Keys - - - - Available shortcuts in the screen capture mode. - Elérhető gyorsbillentyűk a képernyőfelvétel módban. - - - Description - Leírás - - - Key - Kulcs - - SidePanelWidget @@ -1127,7 +1025,7 @@ You can find me in the system tray. UtilityPanel - Hide + Close diff --git a/data/translations/Internationalization_it_IT.ts b/data/translations/Internationalization_it_IT.ts new file mode 100644 index 00000000..9a0a31bf --- /dev/null +++ b/data/translations/Internationalization_it_IT.ts @@ -0,0 +1,1225 @@ + + + + + AppLauncher + + + App Launcher + + + + + Choose an app to open the capture + + + + + AppLauncherWidget + + + Open With + + + + + Launch in terminal + + + + + Keep open after selection + + + + + + Error + + + + + Unable to write in + + + + + Unable to launch in terminal. + + + + + ArrowTool + + + Arrow + + + + + Set the Arrow as the paint tool + + + + + CaptureLauncher + + + <b>Capture Mode</b> + + + + + Rectangular Region + + + + + Full Screen (All Monitors) + + + + + No Delay + + + + + second + + + + + seconds + + + + + Take new screenshot + + + + + Area: + + + + + Delay: + + + + + CaptureWidget + + + Unable to capture screen + + + + + Select an area with the mouse, or press Esc to exit. +Press Enter to capture the screen. +Press Right Click to show the color picker. +Use the Mouse Wheel to change the thickness of your tool. +Press Space to open the side panel. + + + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + + + + CircleTool + + + Circle + + + + + Set the Circle as the paint tool + + + + + ConfigWindow + + + Configuration + + + + + Interface + + + + + Filename Editor + + + + + General + + + + + Controller + + + &Take Screenshot + + + + + &Open Launcher + + + + + &Configuration + + + + + &About + + + + + &Quit + + + + + CopyTool + + + Copy + + + + + Copy the selection into the clipboard + + + + + DBusUtils + + + Unable to connect via DBus + + + + + ExitTool + + + Exit + + + + + Leave the capture screen + + + + + FileNameEditor + + + Edit the name of your captures: + + + + + Edit: + + + + + Preview: + + + + + Save + + + + + Saves the pattern + + + + + Reset + + + + + Restores the saved pattern + + + + + Clear + + + + + Deletes the name + + + + + GeneneralConf + + + + Import + + + + + + + + Error + + + + + Unable to read file. + + + + + + Unable to write file. + + + + + Save File + + + + + Confirm Reset + + + + + Are you sure you want to reset the configuration? + + + + + Show help message + + + + + Show the help message at the beginning in the capture mode. + + + + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + + + Show desktop notifications + + + + + Show tray icon + + + + + Show the systemtray icon + + + + + Configuration File + + + + + Export + + + + + Reset + + + + + Launch at startup + + + + + Launch Flameshot + + + + + Close after capture + + + + + Close after taking a screenshot + + + + + Copy URL after upload + + + + + Copy URL and close window after upload + + + + + Save image after copy + + + + + Save image file after copying it + + + + + Save Path + + + + + Change... + + + + + Choose a Folder + + + + + Unable to write to directory. + + + + + ImgurUploader + + + Upload to Imgur + + + + + Uploading Image + + + + + Copy URL + + + + + Open URL + + + + + Delete image + + + + + Image to Clipboard. + + + + + + Unable to open the URL. + + + + + URL copied to clipboard. + + + + + Screenshot copied to clipboard. + + + + + ImgurUploaderTool + + + Image Uploader + + + + + Upload the selection to Imgur + + + + + InfoWindow + + + About + + + + + SPACEBAR + + + + + Right Click + + + + + Mouse Wheel + + + + + Move selection 1px + + + + + Resize selection 1px + + + + + Quit capture + + + + + Copy to clipboard + + + + + Save selection as a file + + + + + Undo the last modification + + + + + Toggle visibility of sidebar with options of the selected tool + + + + + Show color picker + + + + + Change the tool's thickness + + + + + Available shortcuts in the screen capture mode. + + + + + Key + + + + + Description + + + + + <u><b>License</b></u> + + + + + <u><b>Version</b></u> + + + + + <u><b>Shortcuts</b></u> + + + + + LineTool + + + Line + + + + + Set the Line as the paint tool + + + + + MarkerTool + + + Marker + + + + + Set the Marker as the paint tool + + + + + MoveTool + + + Move + + + + + Move the selection area + + + + + PencilTool + + + Pencil + + + + + Set the Pencil as the paint tool + + + + + PinTool + + + Pin Tool + + + + + Pin image on the desktop + + + + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + + + + + QObject + + + Options + + + + + Arguments + + + + + arguments + + + + + Usage + + + + + options + + + + + Per default runs Flameshot in the background and adds a tray icon for configuration. + + + + + + + + + Unable to connect via DBus + + + + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + + URL copied to clipboard. + + + + + Error + + + + + Unable to write in + + + + + Capture saved to clipboard. + + + + + Capture saved to clipboard + + + + + + Capture saved as + + + + + + Error trying to save as + + + + + Save Error + + + + + RectangleTool + + + Rectangle + + + + + Set the Rectangle as the paint tool + + + + + RedoTool + + + Redo + + + + + Redo the next modification + + + + + SaveTool + + + Save + + + + + Save the capture + + + + + ScreenGrabber + + + Unable to capture screen + + + + + SelectionTool + + + Rectangular Selection + + + + + Set Selection as the paint tool + + + + + SidePanelWidget + + + Active thickness: + + + + + Active color: + + + + + Press ESC to cancel + + + + + Grab Color + + + + + SizeIndicatorTool + + + Selection Size Indicator + + + + + Show the dimensions of the selection (X Y) + + + + + StrftimeChooserWidget + + + Century (00-99) + + + + + Year (00-99) + + + + + Year (2000) + + + + + Month Name (jan) + + + + + Month Name (january) + + + + + Month (01-12) + + + + + Week Day (1-7) + + + + + Week (01-53) + + + + + Day Name (mon) + + + + + Day Name (monday) + + + + + Day (01-31) + + + + + Day of Month (1-31) + + + + + Day (001-366) + + + + + Time (%H-%M-%S) + + + + + Time (%H-%M) + + + + + Hour (00-23) + + + + + Hour (01-12) + + + + + Minute (00-59) + + + + + Second (00-59) + + + + + Full Date (%m/%d/%y) + + + + + Full Date (%Y-%m-%d) + + + + + SystemNotification + + + Flameshot Info + + + + + TextConfig + + + StrikeOut + + + + + Underline + + + + + Bold + + + + + Italic + + + + + TextTool + + + Text + + + + + Add text to your capture + + + + + UIcolorEditor + + + UI Color Editor + + + + + Change the color moving the selectors and see the changes in the preview buttons. + + + + + Select a Button to modify it + + + + + Main Color + + + + + Click on this button to set the edition mode of the main color. + + + + + Contrast Color + + + + + Click on this button to set the edition mode of the contrast color. + + + + + UndoTool + + + Undo + + + + + Undo the last modification + + + + + UtilityPanel + + + Close + + + + + VisualsEditor + + + Opacity of area outside selection: + + + + + Button Selection + + + + + Select All + + + + diff --git a/translations/Internationalization_ja.ts b/data/translations/Internationalization_ja.ts similarity index 51% rename from translations/Internationalization_ja.ts rename to data/translations/Internationalization_ja.ts index 7540f785..b57c6ec5 100644 --- a/translations/Internationalization_ja.ts +++ b/data/translations/Internationalization_ja.ts @@ -4,12 +4,12 @@ AppLauncher - + App Launcher アプリケーションランチャー - + Choose an app to open the capture キャプチャーを開くアプリケーションを選択する @@ -17,33 +17,33 @@ AppLauncherWidget - + Open With 次で開く - + Launch in terminal 端末内で起動する - + Keep open after selection 選択後も開いたままにする - - + + Error エラー - + Unable to launch in terminal. 端末内で起動できません。 - + Unable to write in 書き込めません: @@ -51,12 +51,12 @@ ArrowTool - + Arrow 矢印 - + Set the Arrow as the paint tool ペイントツールとして「矢印」をセットする @@ -64,60 +64,58 @@ BlurTool - Blur - ぼかし + ぼかし - Set Blur as the paint tool - ペイントツールとして「ぼかし」をセットする + ペイントツールとして「ぼかし」をセットする CaptureLauncher - + <b>Capture Mode</b> - + Rectangular Region - + Full Screen (All Monitors) - + No Delay - + second - + seconds - + Take new screenshot - + Area: - + Delay: @@ -125,12 +123,12 @@ CaptureWidget - + Unable to capture screen 画面をキャプチャーできません - + Select an area with the mouse, or press Esc to exit. Press Enter to capture the screen. Press Right Click to show the color picker. @@ -142,16 +140,34 @@ Enter を押すと画面をキャプチャー。 マウスホイールでツールの太さ等を変更。 スペースを押すとサイドパネルを開く。 + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + CircleTool - + Circle 円形 - + Set the Circle as the paint tool ペイントツールとして「円形」をセットする @@ -159,27 +175,22 @@ Enter を押すと画面をキャプチャー。 ConfigWindow - + Configuration 設定 - + Interface インターフェース - + Filename Editor ファイル名エディター - - Shortcuts - - - - + General 全般 @@ -187,45 +198,44 @@ Enter を押すと画面をキャプチャー。 Controller - + &Take Screenshot スクリーンショットを撮る(&T) - + &Open Launcher - + &Configuration 設定(&C) - - &Information - 情報(&I) + + &About + - + &Information + 情報(&I) + + + &Quit 終了(&Q) - - - &Latest Uploads - - CopyTool - + Copy コピー - + Copy the selection into the clipboard 選択範囲をクリップボードにコピーする @@ -233,7 +243,7 @@ Enter を押すと画面をキャプチャー。 DBusUtils - + Unable to connect via DBus DBus に接続できません @@ -241,12 +251,12 @@ Enter を押すと画面をキャプチャー。 ExitTool - + Exit 終了 - + Leave the capture screen 画面キャプチャーを終了する @@ -254,451 +264,263 @@ Enter を押すと画面をキャプチャー。 FileNameEditor - + Edit the name of your captures: キャプチャー名の編集: - + Edit: 編集: - + Preview: プレビュー: - + Save 保存 - + Saves the pattern パターンを保存する - + Reset リセット - + Restores the saved pattern 保存されたパターンに戻す - + Clear 消去 - + Deletes the name 名前を削除する - - FilePathConfiguration - - - Screenshot path default: - - - - - Use fixed path for screenshots to save - - - - - Browse - - - - - Clear - 消去 - - - - Select default path for Screenshots - - - GeneneralConf - + Show help message ヘルプメッセージを表示する - + Show the help message at the beginning in the capture mode. キャプチャーモード開始時にヘルプメッセージを表示する。 - - + + Show desktop notifications デスクトップの通知を表示する - + Show tray icon トレイアイコンを表示する - + Show the systemtray icon システムトレイアイコンを表示する - - + + Import インポート - - - + + + + Error エラー - + Unable to read file. ファイルを読み込めません。 - - + + Unable to write file. ファイルに書き込めません。 - + Save File ファイルを保存 - + Confirm Reset リセットの確認 - + Are you sure you want to reset the configuration? 設定をリセットしてもよろしいですか? - + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + Configuration File 設定ファイル - + Export エクスポート - + Reset リセット - + Launch at startup スタートアップ時に起動する - - + Launch Flameshot Flameshot を起動する - - Show welcome message on launch + + Close after capture - - Close application after capture - - - - + Close after taking a screenshot - + Copy URL after upload - + Copy URL and close window after upload - - - Copy file path after save + + Save image after copy - - Upload storage + + Save image file after copying it - - Imgur storage + + Save Path - - S3 storage (require config.ini file with s3 credentials) - - - - - HistoryWidget - - - Latest Uploads + + Change... - - Screenshots history is empty + + Choose a Folder - - Copy URL - URL をコピー - - - - URL copied to clipboard. - URL をクリップボードにコピーしました。 - - - - Open in browser + + Unable to write to directory. - - ImgS3Uploader - - - Uploading Image - 画像をアップロード中 - - - - Upload image to S3 - - - - - Delete image from S3 - - - - - Unable to remove screenshot from the remote storage. - - - - - Network error - - - - - Possibly it doesn't exist anymore - - - - - Do you want to remove screenshot from local history anyway? - - - - - S3 Creds URL is not found in your configuration file - - - - Copy URL - URL をコピー - - - Open URL - URL を開く - - - Delete image - 画像を削除 - - - Image to Clipboard. - 画像をクリップボードへ。 - - - Unable to open the URL. - URL を開けません。 - - - - URL copied to clipboard. - URL をクリップボードにコピーしました。 - - - - Deleting image... - - - - - Remove screenshot from history? - - - - Screenshot copied to clipboard. - スクリーンショットをクリップボードにコピーしました。 - - - - ImgS3UploaderTool - - - Image Uploader - 画像アップローダー - - - - Upload the selection to S3 bucket - - - - - ImgUploader - - - Upload image to S3 - - - - - - Uploading Image - 画像をアップロード中 - - - - Upload image - - - - - Unable to open the URL. - URL を開けません。 - - - - URL copied to clipboard. - URL をクリップボードにコピーしました。 - - - - Screenshot copied to clipboard. - スクリーンショットをクリップボードにコピーしました。 - - - - Deleting image... - - - - - Copy URL - URL をコピー - - - - Open URL - URL を開く - - - - Delete image - 画像を削除 - - - - Image to Clipboard. - 画像をクリップボードへ。 - - ImgurUploader - + Upload to Imgur Imgur にアップロード + Uploading Image - 画像をアップロード中 + 画像をアップロード中 + Copy URL - URL をコピー + URL をコピー + Open URL - URL を開く + URL を開く + Delete image - 画像を削除 + 画像を削除 + Image to Clipboard. - 画像をクリップボードへ。 + 画像をクリップボードへ。 - + + Unable to open the URL. URL を開けません。 + URL copied to clipboard. - URL をクリップボードにコピーしました。 + URL をクリップボードにコピーしました。 + Screenshot copied to clipboard. - スクリーンショットをクリップボードにコピーしました。 + スクリーンショットをクリップボードにコピーしました。 ImgurUploaderTool - + Image Uploader 画像アップローダー - + Upload the selection to Imgur Imgur に選択範囲をアップロードする @@ -706,86 +528,110 @@ Enter を押すと画面をキャプチャー。 InfoWindow - + About このアプリケーションについて + + SPACEBAR + + + + Right Click - 右クリック + 右クリック + Mouse Wheel - マウスホイール + マウスホイール + Move selection 1px - 選択範囲を 1px 動かす + 選択範囲を 1px 動かす + Resize selection 1px - 選択範囲を 1px リサイズする + 選択範囲を 1px リサイズする + Quit capture - キャプチャーを終了する + キャプチャーを終了する + Copy to clipboard - クリップボードにコピーする + クリップボードにコピーする + Save selection as a file - 選択範囲をファイルに保存する + 選択範囲をファイルに保存する + Undo the last modification - 最後の変更を元に戻す + 最後の変更を元に戻す + + Toggle visibility of sidebar with options of the selected tool + + + + Show color picker - カラーピッカーを表示する + カラーピッカーを表示する + Change the tool's thickness - ツールの値 (太さや濃さ) を変更する + ツールの値 (太さや濃さ) を変更する + Key - キー + キー + Description - 説明 + 説明 - + <u><b>License</b></u> <u><b>ライセンス</b></u> - + <u><b>Version</b></u> <u><b>バージョン</b></u> + <u><b>Shortcuts</b></u> - <u><b>ショートカット</b></u> + <u><b>ショートカット</b></u> + Available shortcuts in the screen capture mode. - スクリーンキャプチャーモードで利用可能なショートカット。 + スクリーンキャプチャーモードで利用可能なショートカット。 LineTool - + Line 直線 - + Set the Line as the paint tool ペイントツールとして「直線」をセットする @@ -793,12 +639,12 @@ Enter を押すと画面をキャプチャー。 MarkerTool - + Marker マーカー - + Set the Marker as the paint tool ペイントツールとして「マーカー」をセットする @@ -806,12 +652,12 @@ Enter を押すと画面をキャプチャー。 MoveTool - + Move 移動 - + Move the selection area 選択範囲を移動する @@ -819,12 +665,12 @@ Enter を押すと画面をキャプチャー。 PencilTool - + Pencil 鉛筆 - + Set the Pencil as the paint tool ペイントツールとして「鉛筆」をセットする @@ -832,169 +678,253 @@ Enter を押すと画面をキャプチャー。 PinTool - + Pin Tool 固定ツール - + Pin image on the desktop 選択範囲をデスクトップ上に配置する + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + + + QObject - + Save Error 保存エラー - - + + Capture saved as キャプチャーを保存しました: - + + Capture saved to clipboard. + + + + Capture saved to clipboard キャプチャーをクリップボードに保存しました - - + + Error trying to save as 保存時にエラーが発生しました: - - Save screenshot - - - - - Capture saved and copied to the clipboard as - - - - - - - - + + + + + Unable to connect via DBus DBus に接続できません - + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + Error エラー - + Unable to write in 書き込めません: - + URL copied to clipboard. URL をクリップボードにコピーしました。 - - Hi, I'm already running! -You can find me in the system tray. + + Options - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. + + Arguments - - Resize selection right 1px + + arguments - - Resize selection left 1px + + Usage - - Resize selection up 1px + + options - - Resize selection down 1px + + Per default runs Flameshot in the background and adds a tray icon for configuration. - - - Toggle side panel - - - - - Move selection left 1px - - - - - Move selection right 1px - - - - - Move selection up 1px - - - - - Move selection down 1px - - - - - Quit capture - キャプチャーを終了する - - - - Screenshot history - - - - - Capture screen - - - - Move selection 1px - 選択範囲を 1px 動かす - - - - Show color picker - カラーピッカーを表示する - - - - Change the tool's thickness - ツールの値 (太さや濃さ) を変更する - RectangleTool - + Rectangle 矩形 - + Set the Rectangle as the paint tool ペイントツールとして「矩形」をセットする @@ -1002,12 +932,12 @@ You can find me in the system tray. RedoTool - + Redo やり直し - + Redo the next modification 次の変更にやり直す @@ -1015,12 +945,12 @@ You can find me in the system tray. SaveTool - + Save 保存 - + Save the capture キャプチャーを保存する @@ -1028,7 +958,7 @@ You can find me in the system tray. ScreenGrabber - + Unable to capture screen 画面をキャプチャーできません @@ -1036,76 +966,35 @@ You can find me in the system tray. SelectionTool - + Rectangular Selection 矩形選択 - + Set Selection as the paint tool ペイントツールとして「矩形選択」をセットする - - SetShortcutDialog - - - Set Shortcut - - - - - Enter new shortcut to change - - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - - - - - ShortcutsWidget - - - Hot Keys - - - - - Available shortcuts in the screen capture mode. - スクリーンキャプチャーモードで利用可能なショートカット。 - - - - Description - 説明 - - - - Key - キー - - SidePanelWidget - + Active thickness: - + Active color: アクティブな色: - + Press ESC to cancel ESC でキャンセル - + Grab Color 色の取得 @@ -1113,12 +1002,12 @@ You can find me in the system tray. SizeIndicatorTool - + Selection Size Indicator 選択サイズインジケーター - + Show the dimensions of the selection (X Y) 選択範囲の寸法 (X Y) を表示する @@ -1126,107 +1015,107 @@ You can find me in the system tray. StrftimeChooserWidget - + Century (00-99) 世紀 (00-99) - + Year (00-99) 年 (00-99) - + Year (2000) 年 (2000) - + Month Name (jan) 月 (jan) - + Month Name (january) 月 (january) - + Month (01-12) 月 (01-12) - + Week Day (1-7) 週日 (1-7) - + Week (01-53) 週 (01-53) - + Day Name (mon) 曜日 (月) - + Day Name (monday) 曜日 (月曜日) - + Day (01-31) 日 (01-31) - + Day of Month (1-31) 日 (1-31) - + Day (001-366) 日 (001-366) - + Time (%H-%M-%S) 時刻 (%H-%M-%S) - + Time (%H-%M) 時刻 (%H-%M) - + Hour (00-23) 時 (00-23) - + Hour (01-12) 時 (01-12) - + Minute (00-59) 分 (00-59) - + Second (00-59) 秒 (00-59) - + Full Date (%m/%d/%y) 年月日 (%m/%d/%y) - + Full Date (%Y-%m-%d) 年月日 (%Y-%m-%d) @@ -1234,7 +1123,7 @@ You can find me in the system tray. SystemNotification - + Flameshot Info Flameshot の情報 @@ -1242,22 +1131,22 @@ You can find me in the system tray. TextConfig - + StrikeOut 取り消し線 - + Underline 下線 - + Bold 太字 - + Italic 斜体 @@ -1265,12 +1154,12 @@ You can find me in the system tray. TextTool - + Text テキスト - + Add text to your capture キャプチャーにテキストを追加する @@ -1278,37 +1167,37 @@ You can find me in the system tray. UIcolorEditor - + UI Color Editor UI カラーエディター - + Change the color moving the selectors and see the changes in the preview buttons. セレクターを動かして色を変更し、プレビューボタンの色がどう変化するか確認してください。 - + Select a Button to modify it 変更するボタンを選択してください - + Main Color メインカラー - + Click on this button to set the edition mode of the main color. このボタンをクリックすると、メインカラーの編集モードをセットします。 - + Contrast Color コントラストカラー - + Click on this button to set the edition mode of the contrast color. このボタンをクリックすると、コントラストカラーの編集モードをセットします。 @@ -1316,12 +1205,12 @@ You can find me in the system tray. UndoTool - + Undo 元に戻す - + Undo the last modification 最後の変更を元に戻す @@ -1329,25 +1218,25 @@ You can find me in the system tray. UtilityPanel - - Hide + + Close VisualsEditor - + Opacity of area outside selection: 選択範囲外の不透明度: - + Button Selection ボタンの選択 - + Select All すべて選択 diff --git a/translations/Internationalization_ka.ts b/data/translations/Internationalization_ka.ts similarity index 53% rename from translations/Internationalization_ka.ts rename to data/translations/Internationalization_ka.ts index 561240e5..793cb7f1 100644 --- a/translations/Internationalization_ka.ts +++ b/data/translations/Internationalization_ka.ts @@ -4,12 +4,12 @@ AppLauncher - + App Launcher აპლიკაციის გამშვები - + Choose an app to open the capture აირჩიეთ აპლიკაცია სურათის გასახსნელად @@ -17,33 +17,33 @@ AppLauncherWidget - + Open With გახსნა პროგრამით - + Launch in terminal ტერმინალში გაშვება - + Keep open after selection არ დახურო დიალოგი არჩევის შემდეგ - - + + Error შეცდომა - + Unable to write in შემდეგ მისამართზე ჩაწერა ვერ მოხერხდა: - + Unable to launch in terminal. ტერმინალში გაშვება ვერ მოხერხდა. @@ -51,12 +51,12 @@ ArrowTool - + Arrow ისარი - + Set the Arrow as the paint tool ისრის ხელსაწყოს არჩევა სახატავად @@ -64,60 +64,58 @@ BlurTool - Blur - გაბუნდოვნება + გაბუნდოვნება - Set Blur as the paint tool - გაბუნდოვნების ხელსაწყოს არჩევა სახატავად + გაბუნდოვნების ხელსაწყოს არჩევა სახატავად CaptureLauncher - + <b>Capture Mode</b> - + Rectangular Region - + Full Screen (All Monitors) - + No Delay - + second - + seconds - + Take new screenshot - + Area: - + Delay: @@ -125,12 +123,12 @@ CaptureWidget - + Unable to capture screen ეკრანის გადაღება ვერ მოხერხდა - + Select an area with the mouse, or press Esc to exit. Press Enter to capture the screen. Press Right Click to show the color picker. @@ -138,16 +136,34 @@ Use the Mouse Wheel to change the thickness of your tool. Press Space to open the side panel. + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + CircleTool - + Circle წრე - + Set the Circle as the paint tool წრის ხელსაწყოს არჩევა სახატავად @@ -155,27 +171,22 @@ Press Space to open the side panel. ConfigWindow - + Configuration პარამეტრები - + Interface ინტერფეისი - + Filename Editor ფაილის სახელის რედაქტორი - - Shortcuts - - - - + General ზოგადი @@ -183,45 +194,44 @@ Press Space to open the side panel. Controller - + &Take Screenshot - + &Open Launcher - + &Configuration &პარამეტრები - - &Information - &ინფორმაცია + + &About + - + &Information + &ინფორმაცია + + + &Quit &გამოსვლა - - - &Latest Uploads - - CopyTool - + Copy კოპირება - + Copy the selection into the clipboard @@ -229,7 +239,7 @@ Press Space to open the side panel. DBusUtils - + Unable to connect via DBus DBus-ით დაკავშირება ვერ მოხერხდა @@ -237,12 +247,12 @@ Press Space to open the side panel. ExitTool - + Exit გამოსვლა - + Leave the capture screen ეკრანის გადაღების დატოვება @@ -250,443 +260,263 @@ Press Space to open the side panel. FileNameEditor - + Edit the name of your captures: შეცვალეთ თქვენი სურათების სახელი: - + Edit: თარგი: - + Preview: გადახედვა: - + Save შენახვა - + Saves the pattern თარგის შენახვა - + Reset განულება - + Restores the saved pattern შენახული შაბლონის განულება - + Clear გაწმენდა - + Deletes the name სახელის წაშლა - - FilePathConfiguration - - - Screenshot path default: - - - - - Use fixed path for screenshots to save - - - - - Browse - - - - - Clear - გაწმენდა - - - - Select default path for Screenshots - - - GeneneralConf - - + + Import იმპორტირება - - - + + + + Error შეცდომა - + Unable to read file. ფაილის წაკითხვა ვერ მოხერხდა. - - + + Unable to write file. ფაილის ჩაწერა ვერ მოხერხდა. - + Save File ფაილის შენახვა - + Confirm Reset განულების დადასტურება - + Are you sure you want to reset the configuration? დარწმუნებული ხართ, რომ გსურთ პარამეტრების განულება? - + Show help message დახმარების შეტყობინების ნახვა - + Show the help message at the beginning in the capture mode. დახმარების შეტყობინების ნახვა გადაღების რეჟიმის დაწყებისას. - - + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + + Show desktop notifications ცნობების ჩვენება სამუშაო მაგიდაზე - + Show tray icon ხატულის ჩვენება სისტემურ პანელზე - + Show the systemtray icon ხატულის ჩვენება სისტემურ პანელზე - + Configuration File პარამეტრების ფაილი - + Export ექსპორტირება - + Reset განულება - + Launch at startup გაშვება სისტემის ჩატვირთვისას - - + Launch Flameshot - - Show welcome message on launch + + Close after capture - - Close application after capture - - - - + Close after taking a screenshot - + Copy URL after upload - + Copy URL and close window after upload - - - Copy file path after save + + Save image after copy - - Upload storage + + Save image file after copying it - - Imgur storage + + Save Path - - S3 storage (require config.ini file with s3 credentials) - - - - - HistoryWidget - - - Latest Uploads + + Change... - - Screenshots history is empty + + Choose a Folder - - Copy URL - URL-ის კოპირება - - - - URL copied to clipboard. - URL დაკოპირდა გაცვლის ბუფერში. - - - - Open in browser + + Unable to write to directory. - - ImgS3Uploader - - - Uploading Image - სურათის ატვირთვა - - - - Upload image to S3 - - - - - Delete image from S3 - - - - - Unable to remove screenshot from the remote storage. - - - - - Network error - - - - - Possibly it doesn't exist anymore - - - - - Do you want to remove screenshot from local history anyway? - - - - - S3 Creds URL is not found in your configuration file - - - - Copy URL - URL-ის კოპირება - - - Open URL - URL-ის გახსნა - - - Image to Clipboard. - სურათის გაცვლის ბუფერში გაგზავნა - - - Unable to open the URL. - URL-ის გახსნა ვერ მოხერხდა. - - - - URL copied to clipboard. - URL დაკოპირდა გაცვლის ბუფერში. - - - - Deleting image... - - - - - Remove screenshot from history? - - - - Screenshot copied to clipboard. - სურათი დაკოპირდა გაცვლის ბუფერში. - - - - ImgS3UploaderTool - - - Image Uploader - სურათის ამტვირთველი - - - - Upload the selection to S3 bucket - - - - - ImgUploader - - - Upload image to S3 - - - - - - Uploading Image - სურათის ატვირთვა - - - - Upload image - - - - - Unable to open the URL. - URL-ის გახსნა ვერ მოხერხდა. - - - - URL copied to clipboard. - URL დაკოპირდა გაცვლის ბუფერში. - - - - Screenshot copied to clipboard. - სურათი დაკოპირდა გაცვლის ბუფერში. - - - - Deleting image... - - - - - Copy URL - URL-ის კოპირება - - - - Open URL - URL-ის გახსნა - - - - Delete image - - - - - Image to Clipboard. - სურათის გაცვლის ბუფერში გაგზავნა - - ImgurUploader - + Upload to Imgur Imgur-ზე ატვირთვა + Uploading Image - სურათის ატვირთვა + სურათის ატვირთვა + Copy URL - URL-ის კოპირება + URL-ის კოპირება + Open URL - URL-ის გახსნა + URL-ის გახსნა + + Delete image + + + + Image to Clipboard. - სურათის გაცვლის ბუფერში გაგზავნა + სურათის გაცვლის ბუფერში გაგზავნა - + + Unable to open the URL. URL-ის გახსნა ვერ მოხერხდა. + URL copied to clipboard. - URL დაკოპირდა გაცვლის ბუფერში. + URL დაკოპირდა გაცვლის ბუფერში. + Screenshot copied to clipboard. - სურათი დაკოპირდა გაცვლის ბუფერში. + სურათი დაკოპირდა გაცვლის ბუფერში. ImgurUploaderTool - + Image Uploader სურათის ამტვირთველი - + Upload the selection to Imgur შერჩეულის Imgur-ზე ატვირთვა @@ -694,86 +524,110 @@ Press Space to open the side panel. InfoWindow - + About პროგრამის შესახებ + + SPACEBAR + + + + Right Click - მაუსის მარჯვენა ღილაკი + მაუსის მარჯვენა ღილაკი + Mouse Wheel - მაუსის გორგოლაჭი + მაუსის გორგოლაჭი + Move selection 1px - შერჩეულის გადაადგილება 1px-ით + შერჩეულის გადაადგილება 1px-ით + Resize selection 1px - შერჩეულის ზომის შეცვლა 1px-ით + შერჩეულის ზომის შეცვლა 1px-ით + Quit capture - გადაღებიდან გამოსვლა + გადაღებიდან გამოსვლა + Copy to clipboard - გაცვლის ბუფერში კოპირება + გაცვლის ბუფერში კოპირება + Save selection as a file - შერჩეულის ფაილად შენახვა + შერჩეულის ფაილად შენახვა + Undo the last modification - ბოლო ცვლილების გაუქმება + ბოლო ცვლილების გაუქმება + + Toggle visibility of sidebar with options of the selected tool + + + + Show color picker - ფერის შესარჩევის ჩვენება + ფერის შესარჩევის ჩვენება + Change the tool's thickness - ხელსაწყოს სისქის შეცვლა + ხელსაწყოს სისქის შეცვლა + Available shortcuts in the screen capture mode. - გადაღების რეჟიმში ხელმისაწვდომი მალსახმობები. + გადაღების რეჟიმში ხელმისაწვდომი მალსახმობები. + Key - კლავიში + კლავიში + Description - აღწერა + აღწერა - + <u><b>License</b></u> <u><b>ლიცენზია</b></u> - + <u><b>Version</b></u> <u><b>ვერსია</b></u> + <u><b>Shortcuts</b></u> - <u><b>მალსახმობები</b></u> + <u><b>მალსახმობები</b></u> LineTool - + Line ხაზი - + Set the Line as the paint tool ხაზის ხელსაწყოს არჩევა სახატავად @@ -781,12 +635,12 @@ Press Space to open the side panel. MarkerTool - + Marker მარკერი - + Set the Marker as the paint tool მარკერის ხელსაწყოს არჩევა სახატავად @@ -794,12 +648,12 @@ Press Space to open the side panel. MoveTool - + Move გადაადგილება - + Move the selection area შერჩეული არის გადაადგილება @@ -807,12 +661,12 @@ Press Space to open the side panel. PencilTool - + Pencil ფანქარი - + Set the Pencil as the paint tool ფანქრის ხელსაწყოს არჩევა სახატავად @@ -820,169 +674,253 @@ Press Space to open the side panel. PinTool - + Pin Tool - + Pin image on the desktop + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + + + QObject - + Save Error შეცდომა შენახვისას - - + + Capture saved as სურათი შენახულია როგორც: - + + Capture saved to clipboard. + + + + Capture saved to clipboard - - + + Error trying to save as შეცდომა მცდელობისას შენახულიყო როგორც: - - Save screenshot - - - - - Capture saved and copied to the clipboard as - - - - - - - - + + + + + Unable to connect via DBus DBus-ით დაკავშირება ვერ მოხერხდა - + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + Error შეცდომა - + Unable to write in შემდეგ მისამართზე ჩაწერა ვერ მოხერხდა: - + URL copied to clipboard. URL დაკოპირდა გაცვლის ბუფერში. - - Hi, I'm already running! -You can find me in the system tray. + + Options - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. + + Arguments - - Resize selection right 1px + + arguments - - Resize selection left 1px + + Usage - - Resize selection up 1px + + options - - Resize selection down 1px + + Per default runs Flameshot in the background and adds a tray icon for configuration. - - - Toggle side panel - - - - - Move selection left 1px - - - - - Move selection right 1px - - - - - Move selection up 1px - - - - - Move selection down 1px - - - - - Quit capture - გადაღებიდან გამოსვლა - - - - Screenshot history - - - - - Capture screen - - - - Move selection 1px - შერჩეულის გადაადგილება 1px-ით - - - - Show color picker - ფერის შესარჩევის ჩვენება - - - - Change the tool's thickness - ხელსაწყოს სისქის შეცვლა - RectangleTool - + Rectangle მართკუთხედი - + Set the Rectangle as the paint tool მართკუთხედის ხელსაწყოს არჩევა სახატავად @@ -990,12 +928,12 @@ You can find me in the system tray. RedoTool - + Redo - + Redo the next modification @@ -1003,12 +941,12 @@ You can find me in the system tray. SaveTool - + Save შენახვა - + Save the capture სურათის შენახვა @@ -1016,7 +954,7 @@ You can find me in the system tray. ScreenGrabber - + Unable to capture screen ეკრანის გადაღება ვერ მოხერხდა @@ -1024,76 +962,35 @@ You can find me in the system tray. SelectionTool - + Rectangular Selection მართკუთხა შერჩევა - + Set Selection as the paint tool შერჩევის ხელსაწყოს არჩევა სახატავად - - SetShortcutDialog - - - Set Shortcut - - - - - Enter new shortcut to change - - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - - - - - ShortcutsWidget - - - Hot Keys - - - - - Available shortcuts in the screen capture mode. - გადაღების რეჟიმში ხელმისაწვდომი მალსახმობები. - - - - Description - აღწერა - - - - Key - კლავიში - - SidePanelWidget - + Active thickness: - + Active color: - + Press ESC to cancel - + Grab Color @@ -1101,12 +998,12 @@ You can find me in the system tray. SizeIndicatorTool - + Selection Size Indicator შერჩეულის ზომის მაჩვენებელი - + Show the dimensions of the selection (X Y) აჩვენებს შერჩეული არის განზომილებებს (X Y) @@ -1114,107 +1011,107 @@ You can find me in the system tray. StrftimeChooserWidget - + Century (00-99) საუკუნე (00-99) - + Year (00-99) წელი (00-99) - + Year (2000) წელი (2000) - + Month Name (jan) თვის სახელი (იან) - + Month Name (january) თვის სახელი (იანვარი) - + Month (01-12) თვე (01-12) - + Week Day (1-7) კვირის დღე (1-7) - + Week (01-53) კვირა (01-53) - + Day Name (mon) დღის სახელი (ორშ) - + Day Name (monday) დღის სახელი (ორშაბათი) - + Day (01-31) დღე (01-31) - + Day of Month (1-31) თვის დღე (1-31) - + Day (001-366) დღე (001-366) - + Time (%H-%M-%S) - + Time (%H-%M) - + Hour (00-23) საათი (00-23) - + Hour (01-12) საათი (01-12) - + Minute (00-59) წუთი (00-59) - + Second (00-59) წამი (00-59) - + Full Date (%m/%d/%y) სრული თარიღი (%m/%d/%y) - + Full Date (%Y-%m-%d) სრული თარიღი (%Y-%m-%d) @@ -1222,7 +1119,7 @@ You can find me in the system tray. SystemNotification - + Flameshot Info @@ -1230,22 +1127,22 @@ You can find me in the system tray. TextConfig - + StrikeOut - + Underline - + Bold - + Italic @@ -1253,12 +1150,12 @@ You can find me in the system tray. TextTool - + Text - + Add text to your capture @@ -1266,37 +1163,37 @@ You can find me in the system tray. UIcolorEditor - + UI Color Editor ინტერფეისის ფერის რედაქტორი - + Change the color moving the selectors and see the changes in the preview buttons. შეცვალეთ ფერი ნიშნულის გადაადგილებით და შეხედეთ ცვლილებებს გადასახედ ღილაკებზე. - + Select a Button to modify it აირჩიეთ ღილაკი მის შესაცვლელად - + Main Color ძირითადი ფერი - + Click on this button to set the edition mode of the main color. დააწექით ამ ღილაკს ძირითადი ფერის არჩევის რეჟიმის ჩასართავად. - + Contrast Color კონტრასტული ფერი - + Click on this button to set the edition mode of the contrast color. დააწექით ამ ღილაკს კონტრასტული ფერის არჩევის რეჟიმის ჩასართავად. @@ -1304,12 +1201,12 @@ You can find me in the system tray. UndoTool - + Undo უკუქმნა - + Undo the last modification ბოლო ცვლილების გაუქმება @@ -1317,25 +1214,25 @@ You can find me in the system tray. UtilityPanel - - Hide + + Close VisualsEditor - + Opacity of area outside selection: შერჩეულის გარე არეს გაუმჭვირვალობა - + Button Selection ღილაკის არჩევა - + Select All ყველაფრის შერჩევა diff --git a/data/translations/Internationalization_ko.ts b/data/translations/Internationalization_ko.ts new file mode 100644 index 00000000..9bb5a6a8 --- /dev/null +++ b/data/translations/Internationalization_ko.ts @@ -0,0 +1,1021 @@ + + + + + AppLauncher + + + App Launcher + 프로그램 런처 + + + + Choose an app to open the capture + 캡처를 열 프로그램을 선택 + + + + AppLauncherWidget + + + Open With + 다음으로 열기 + + + + Launch in terminal + 터미널로 실행 + + + + Keep open after selection + 선택한 뒤에도 열어두기 + + + + + Error + 오류 + + + + Unable to launch in terminal. + 터미널로 실행할 수 없습니다. + + + + Unable to write in + 작성할 수 없음 + + + + ArrowTool + + + Arrow + 화살표 + + + + Set the Arrow as the paint tool + 페인트 도구를 화살표로 설정 + + + + BlurTool + + Blur + ぼかし + + + Set Blur as the paint tool + ペイントツールとして「ぼかし」をセットする + + + + CaptureLauncher + + + <b>Capture Mode</b> + 캡처 모드 + + + + Rectangular Region + 사각 영역 + + + + Full Screen (All Monitors) + 전체화면 (모든 모니터) + + + + No Delay + 지연 없음 + + + + second + + + + + seconds + + + + + Take new screenshot + 새로운 스크린샷 + + + + Area: + 영역: + + + + Delay: + 지연: + + + + CaptureWidget + + + Unable to capture screen + 화면을 캡처할 수 없습니다 + + + + Select an area with the mouse, or press Esc to exit. +Press Enter to capture the screen. +Press Right Click to show the color picker. +Use the Mouse Wheel to change the thickness of your tool. +Press Space to open the side panel. + 마우스로 영역을 선택하거나 Esc로 종료합니다. +Enter로 눌러 화면을 캡처합니다. +우클릭으로 색상선택기를 봅니다. +마우스 휠로 사용자 도구의 두께를 바꿉니다. +Space로 사이드 패널을 엽니다. + + + + CircleCountTool + + + Circle Counter + 원형 카운터 + + + + Add an autoincrementing counter bubble + + + + + CircleTool + + + Circle + 원형 + + + + Set the Circle as the paint tool + 페인트 도구로 원형을 선택 + + + + ConfigWindow + + + Configuration + 설정 + + + + Interface + 인터페이스 + + + + Filename Editor + 파일명 편집기 + + + + General + 일반 + + + + Controller + + + &Take Screenshot + 스크린샷 촬영(&T) + + + + &Open Launcher + 런처 열기(&O) + + + + &Configuration + 설정(&C) + + + + &Information + 정보(&I) + + + + &Quit + 종료(&Q) + + + + CopyTool + + + Copy + 복사 + + + + Copy the selection into the clipboard + 선택 영역을 클립보드에 복사 + + + + DBusUtils + + + Unable to connect via DBus + DBus에 접속할 수 없습니다 + + + + ExitTool + + + Exit + 종료 + + + + Leave the capture screen + 화면 캡쳐를 종료 + + + + FileNameEditor + + + Edit the name of your captures: + 캡처 파일명 수정: + + + + Edit: + 편집: + + + + Preview: + 미리보기: + + + + Save + 저장 + + + + Saves the pattern + 패턴을 저장 + + + + Reset + 초기화 + + + + Restores the saved pattern + 저장된 패턴으로 되돌리기 + + + + Clear + 지우기 + + + + Deletes the name + 이름을 삭제하다 + + + + GeneneralConf + + + Show help message + 도움 메세지를 보여줍니다 + + + + Show the help message at the beginning in the capture mode. + 캡처 모드 시작에 도움 메세지를 보여줍니다. + + + + + Show desktop notifications + 데스크톱 알림을 사용합니다 + + + + Show tray icon + 트레이 아이콘을 보임 + + + + Show the systemtray icon + 시스템 트레이 아이콘을 보여줍니다 + + + + + Import + 불러오기 + + + + + + Error + 오류 + + + + Unable to read file. + 파일을 읽을 수 없습니다. + + + + + Unable to write file. + 파일을 작성할 수 없습니다. + + + + Save File + 파일을 저장 + + + + Confirm Reset + 초기화 확인 + + + + Are you sure you want to reset the configuration? + 설정을 초기화해도 괜찮습니까? + + + + Configuration File + 설정 파일 + + + + Export + 내보내기 + + + + Reset + 초기화 + + + + Launch at startup + startup의 적절한 번역이 필요합니다. + 시작할때 실행 + + + + Launch Flameshot + Flameshot을 실행 + + + + Close after capture + 캡처 후 닫기 + + + + Close after taking a screenshot + 스크린샷을 찍은 이후 닫기 + + + + Copy URL after upload + 업로드 이후 URL을 복사 + + + + Copy URL and close window after upload + 업로드 이후 URL을 복사하고 창을 닫음 + + + + ImgurUploader + + + Upload to Imgur + Imgur에 업로드 + + + + Uploading Image + 이미지를 업로드하는 중 + + + + Copy URL + URL을 복사 + + + + Open URL + URL 열기 + + + + Delete image + 이미지를 삭제 + + + + Image to Clipboard. + 이미지를 클립보드로. + + + + + Unable to open the URL. + URL을 열 수 없습니다. + + + + URL copied to clipboard. + URL을 클립보드에 복사했습니다. + + + + Screenshot copied to clipboard. + 스크린샷을 클립보드에 복사했습니다. + + + + ImgurUploaderTool + + + Image Uploader + 이미지 업로더 + + + + Upload the selection to Imgur + Imgur에 선택영역을 업로드 + + + + InfoWindow + + + About + 이 어플리케이션에 대하여 + + + + SPACEBAR + 스페이스바 + + + + Right Click + 우클릭 + + + + Mouse Wheel + 마우스 휠 + + + + Move selection 1px + 선택 영역을 1px 이동 + + + + Resize selection 1px + 선택 영역을 1px 조정 + + + + Quit capture + 캡처를 종료 + + + + Copy to clipboard + 클립보드에 복사 + + + + Save selection as a file + 선택 영역을 파일로 저장 + + + + Undo the last modification + 마지막 변경 되돌리기 + + + + Toggle visibility of sidebar with options of the selected tool + + + + + Show color picker + 색상 선택기를 표시 + + + + Change the tool's thickness + 도구의 두께를 바꿉니다 + + + + Key + + + + + Description + 설명 + + + + <u><b>License</b></u> + <u><b>라이센스</b></u> + + + + <u><b>Version</b></u> + <u><b>버전</b></u> + + + + <u><b>Shortcuts</b></u> + <u><b>단축키</b></u> + + + + Available shortcuts in the screen capture mode. + 화면 캡처 모드에서 단축키를 사용할 수 있습니다. + + + + LineTool + + + Line + 직선 + + + + Set the Line as the paint tool + 페인트 도구로 직선을 설정 + + + + MarkerTool + + + Marker + 마커 + + + + Set the Marker as the paint tool + 페인트 도구로 마커를 설정 + + + + MoveTool + + + Move + 이동 + + + + Move the selection area + 선택 영역을 이동 + + + + PencilTool + + + Pencil + 연필 + + + + Set the Pencil as the paint tool + 페인트 도구로 연필을 설정 + + + + PinTool + + + Pin Tool + 고정 도구 + + + + Pin image on the desktop + 선택 영역을 데스크톱 위에 고정 + + + + PixelateTool + + + Pixelate + 픽셀화 + + + + Set Pixelate as the paint tool + 페인트 도구로 픽셀화를 설정 + + + + QObject + + + Save Error + 저장 오류 + + + + + Capture saved as + 캡처를 저장했습니다: + + + + Capture saved to clipboard + 캡처를 클립보드에 저장했습니다 + + + + + Error trying to save as + 저장에 오류가 발생했습니다: + + + + + + + + Unable to connect via DBus + DBus에 접속할 수 없습니다 + + + + Error + 오류 + + + + Unable to write in + 작성할 수 없습니다: + + + + URL copied to clipboard. + URL을 클립보드에 복사했습니다. + + + + RectangleTool + + + Rectangle + 직사각형 + + + + Set the Rectangle as the paint tool + 페인트 도구로 직사각형을 설정 + + + + RedoTool + + + Redo + 되돌리기 + + + + Redo the next modification + 다음 변경을 되돌리기 + + + + SaveTool + + + Save + 저장 + + + + Save the capture + 캡처를 저장 + + + + ScreenGrabber + + + Unable to capture screen + 화면을 캡처할 수 없음 + + + + SelectionTool + + + Rectangular Selection + 직사각형 선택 + + + + Set Selection as the paint tool + 페인트 도구로 직사각형 선택을 설정 + + + + SidePanelWidget + + + Active thickness: + 활성 두께: + + + + Active color: + 활성 색상: + + + + Press ESC to cancel + ESC를 눌러 취소 + + + + Grab Color + 색상 취득 + + + + SizeIndicatorTool + + + Selection Size Indicator + 선택 크기 표시기 + + + + Show the dimensions of the selection (X Y) + 선택 범위의 치수 (X Y)를 표시 + + + + StrftimeChooserWidget + + + Century (00-99) + 세기 (00-99) + + + + Year (00-99) + 년도 (00-99) + + + + Year (2000) + 년도 (2000) + + + + Month Name (jan) + 달 이름 (jan) + + + + Month Name (january) + 달 이름 (january) + + + + Month (01-12) + 달 (01-12) + + + + Week Day (1-7) + 주일 (1-7) + + + + Week (01-53) + 주 (01-53) + + + + Day Name (mon) + 요일 (월) + + + + Day Name (monday) + 요일 (월요일) + + + + Day (01-31) + 일 (01-31) + + + + Day of Month (1-31) + 일 (1-31) + + + + Day (001-366) + 일 (001-366) + + + + Time (%H-%M-%S) + 시각 (%H-%M-%S) + + + + Time (%H-%M) + 시각 (%H-%M) + + + + Hour (00-23) + 시각 (00-23) + + + + Hour (01-12) + 시각 (01-12) + + + + Minute (00-59) + 분 (00-59) + + + + Second (00-59) + 초 (00-59) + + + + Full Date (%m/%d/%y) + 연 월 일 (%m/%d/%y) + + + + Full Date (%Y-%m-%d) + 연 월 일 (%Y-%m-%d) + + + + SystemNotification + + + Flameshot Info + Flameshot 정보 + + + + TextConfig + + + StrikeOut + 취소선 + + + + Underline + 밑줄 + + + + Bold + 볼드체 + + + + Italic + 이탈릭체 + + + + TextTool + + + Text + 텍스트 + + + + Add text to your capture + 캡처에 텍스트를 추가 + + + + UIcolorEditor + + + UI Color Editor + UI 컬러 편집기 + + + + Change the color moving the selectors and see the changes in the preview buttons. + 선택기를 움직여 색상을 변경하고 미리보기 버튼에서 변경사항을 확인하세요. + + + + Select a Button to modify it + 변경할 버튼을 선택하세요 + + + + Main Color + 메인 색상 + + + + Click on this button to set the edition mode of the main color. + + + + + Contrast Color + 콘트래스트 색상 + + + + Click on this button to set the edition mode of the contrast color. + + + + + UndoTool + + + Undo + 원상태로 되돌리기 + + + + Undo the last modification + 마지막 변경을 원상태로 되돌리기 + + + + VisualsEditor + + + Opacity of area outside selection: + 선택 영역 외의 불투명도: + + + + Button Selection + 버튼 셀렉션 + + + + Select All + 모두 선택 + + + diff --git a/translations/Internationalization_nl.ts b/data/translations/Internationalization_nl.ts similarity index 51% rename from translations/Internationalization_nl.ts rename to data/translations/Internationalization_nl.ts index d66808b7..bb9d7482 100644 --- a/translations/Internationalization_nl.ts +++ b/data/translations/Internationalization_nl.ts @@ -4,12 +4,12 @@ AppLauncher - + App Launcher App-starter - + Choose an app to open the capture Kies een app om de schermafdruk mee te openen @@ -17,33 +17,33 @@ AppLauncherWidget - + Open With Openen met - + Launch in terminal Openen in terminalvenster - + Keep open after selection Openhouden na selectie - - + + Error Fout - + Unable to write in Kan niet schrijven naar - + Unable to launch in terminal. Kan niet openen in terminalvenster. @@ -51,12 +51,12 @@ ArrowTool - + Arrow Cursor - + Set the Arrow as the paint tool Cursor instellen als verfgereedschap @@ -64,60 +64,58 @@ BlurTool - Blur - Vervaging + Vervaging - Set Blur as the paint tool - Vervaging instellen als verfgereedschap + Vervaging instellen als verfgereedschap CaptureLauncher - + <b>Capture Mode</b> - + Rectangular Region - + Full Screen (All Monitors) - + No Delay - + second - + seconds - + Take new screenshot - + Area: - + Delay: @@ -125,12 +123,12 @@ CaptureWidget - + Unable to capture screen Kan scherm niet vastleggen - + Select an area with the mouse, or press Esc to exit. Press Enter to capture the screen. Press Right Click to show the color picker. @@ -142,16 +140,34 @@ Klik met de rechtermuisknop om de kleurkiezer te tonen. Gebruik het muiswiel om de gereedschapsdikte aan te passen. Druk op spatie om het zijpaneel te openen. + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + CircleTool - + Circle Cirkel - + Set the Circle as the paint tool Cirkel instellen als verfgereedschap @@ -159,27 +175,22 @@ Druk op spatie om het zijpaneel te openen. ConfigWindow - + Configuration Configuratie - + Interface Uiterlijk - + Filename Editor Bestandsnaambewerker - - Shortcuts - - - - + General Algemeen @@ -187,45 +198,44 @@ Druk op spatie om het zijpaneel te openen. Controller - + &Take Screenshot Schermafdruk &maken - + &Open Launcher - + &Configuration &Configuratie - - &Information - &Informatie + + &About + - + &Information + &Informatie + + + &Quit &Afsluiten - - - &Latest Uploads - - CopyTool - + Copy Kopiëren - + Copy the selection into the clipboard Selectie kopiëren naar klembord @@ -233,7 +243,7 @@ Druk op spatie om het zijpaneel te openen. DBusUtils - + Unable to connect via DBus Kan niet verbinden via DBus @@ -241,12 +251,12 @@ Druk op spatie om het zijpaneel te openen. ExitTool - + Exit Afsluiten - + Leave the capture screen Verlaat het vastlegscherm @@ -254,451 +264,263 @@ Druk op spatie om het zijpaneel te openen. FileNameEditor - + Edit the name of your captures: Bewerk de naam van je schermafdrukken: - + Edit: Bewerken: - + Preview: Voorbeeld: - + Save Opslaan - + Saves the pattern Slaat het patroon op - + Reset Standaardwaarden - + Restores the saved pattern Herstelt het standaardpatroon - + Clear Wissen - + Deletes the name Wist de naam - - FilePathConfiguration - - - Screenshot path default: - - - - - Use fixed path for screenshots to save - - - - - Browse - - - - - Clear - Wissen - - - - Select default path for Screenshots - - - GeneneralConf - - + + Import Importeren - - - + + + + Error Fout - + Unable to read file. Kan bestand niet uitlezen. - - + + Unable to write file. Kan bestand niet wegschrijven. - + Save File Bestand opslaan - + Confirm Reset Herstellen bevestigen - + Are you sure you want to reset the configuration? Weet je zeker dat je de standwaardwaarden van de configuratie wilt herstellen? - + Show help message Uitleg tonen - + Show the help message at the beginning in the capture mode. Toont een bericht met uitleg bij het openen van de vastlegmodus. - - + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + + Show desktop notifications Bureaubladmeldingen tonen - + Show tray icon Systeemvakpictogram tonen - + Show the systemtray icon Toont het systeemvakpictogram - + Configuration File Configuratiebestand - + Export Exporteren - + Reset Standaardwaarden - + Launch at startup Automatisch opstarten - - + Launch Flameshot Flameshot openen - - Show welcome message on launch + + Close after capture - - Close application after capture - - - - + Close after taking a screenshot - + Copy URL after upload - + Copy URL and close window after upload - - - Copy file path after save + + Save image after copy - - Upload storage + + Save image file after copying it - - Imgur storage + + Save Path - - S3 storage (require config.ini file with s3 credentials) - - - - - HistoryWidget - - - Latest Uploads + + Change... - - Screenshots history is empty + + Choose a Folder - - Copy URL - URL kopiëren - - - - URL copied to clipboard. - URL gekopieerd naar klembord. - - - - Open in browser + + Unable to write to directory. - - ImgS3Uploader - - - Uploading Image - Bezig met uploaden van afbeelding... - - - - Upload image to S3 - - - - - Delete image from S3 - - - - - Unable to remove screenshot from the remote storage. - - - - - Network error - - - - - Possibly it doesn't exist anymore - - - - - Do you want to remove screenshot from local history anyway? - - - - - S3 Creds URL is not found in your configuration file - - - - Copy URL - URL kopiëren - - - Open URL - URL openen - - - Delete image - Afbeelding verwijderen - - - Image to Clipboard. - Afbeelding naar klembord. - - - Unable to open the URL. - Kan URL niet openen. - - - - URL copied to clipboard. - URL gekopieerd naar klembord. - - - - Deleting image... - - - - - Remove screenshot from history? - - - - Screenshot copied to clipboard. - Schermafdruk gekopieerd naar klembord. - - - - ImgS3UploaderTool - - - Image Uploader - Afbeeldingsuploader - - - - Upload the selection to S3 bucket - - - - - ImgUploader - - - Upload image to S3 - - - - - - Uploading Image - Bezig met uploaden van afbeelding... - - - - Upload image - - - - - Unable to open the URL. - Kan URL niet openen. - - - - URL copied to clipboard. - URL gekopieerd naar klembord. - - - - Screenshot copied to clipboard. - Schermafdruk gekopieerd naar klembord. - - - - Deleting image... - - - - - Copy URL - URL kopiëren - - - - Open URL - URL openen - - - - Delete image - Afbeelding verwijderen - - - - Image to Clipboard. - Afbeelding naar klembord. - - ImgurUploader - + Upload to Imgur Uploaden naar Imgur + Uploading Image - Bezig met uploaden van afbeelding... + Bezig met uploaden van afbeelding... + Copy URL - URL kopiëren + URL kopiëren + Open URL - URL openen + URL openen + Delete image - Afbeelding verwijderen + Afbeelding verwijderen + Image to Clipboard. - Afbeelding naar klembord. + Afbeelding naar klembord. - + + Unable to open the URL. Kan URL niet openen. + URL copied to clipboard. - URL gekopieerd naar klembord. + URL gekopieerd naar klembord. + Screenshot copied to clipboard. - Schermafdruk gekopieerd naar klembord. + Schermafdruk gekopieerd naar klembord. ImgurUploaderTool - + Image Uploader Afbeeldingsuploader - + Upload the selection to Imgur Upload de selectie naar Imgur @@ -706,90 +528,110 @@ Druk op spatie om het zijpaneel te openen. InfoWindow - + About Over + + SPACEBAR + + + + Right Click - Rechtsklikken + Rechtsklikken + Mouse Wheel - Muiswiel + Muiswiel + Move selection 1px - Selectie 1px verplaatsen + Selectie 1px verplaatsen + Resize selection 1px - Afmetingen van selectie 1px aanpassen + Afmetingen van selectie 1px aanpassen + Quit capture - Vastleggen afsluiten + Vastleggen afsluiten + Copy to clipboard - Kopiëren naar klembord + Kopiëren naar klembord + Save selection as a file - Selectie opslaan als bestand + Selectie opslaan als bestand + Undo the last modification - Laatste wijziging ongedaan maken + Laatste wijziging ongedaan maken + Toggle visibility of sidebar with options of the selected tool - Zijbalk met gereedschapsopties tonen/verbergen + Zijbalk met gereedschapsopties tonen/verbergen + Show color picker - Kleurkiezer tonen + Kleurkiezer tonen + Change the tool's thickness - Wijzig de gereedschapsdikte + Wijzig de gereedschapsdikte + Available shortcuts in the screen capture mode. - Beschikbare sneltoetsen in de vastlegmodus. + Beschikbare sneltoetsen in de vastlegmodus. + Key - Toets + Toets + Description - Omschrijving + Omschrijving - + <u><b>License</b></u> <u><b>Лиценца</b></u> - + <u><b>Version</b></u> <u><b>Верзија</b></u> + <u><b>Shortcuts</b></u> - <u><b>Пречице</b></u> + <u><b>Пречице</b></u> LineTool - + Line Lijn - + Set the Line as the paint tool Lijn instellen als verfgereedschap @@ -797,12 +639,12 @@ Druk op spatie om het zijpaneel te openen. MarkerTool - + Marker Markeerstift - + Set the Marker as the paint tool Markeerstift instellen als verfgereedschap @@ -810,12 +652,12 @@ Druk op spatie om het zijpaneel te openen. MoveTool - + Move Verplaatsen - + Move the selection area Selectiegebied verplaatsen @@ -823,12 +665,12 @@ Druk op spatie om het zijpaneel te openen. PencilTool - + Pencil Potlood - + Set the Pencil as the paint tool Potlood instellen als verfgereedschap @@ -836,169 +678,253 @@ Druk op spatie om het zijpaneel te openen. PinTool - + Pin Tool Vastmaken - + Pin image on the desktop Afbeelding vastmaken op bureaublad + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + + + QObject - + Save Error Fout tijdens opslaan - - + + Capture saved as Schermafdruk opgeslagen als - + + Capture saved to clipboard. + + + + Capture saved to clipboard Schermafdruk vastgelegd op klembord - - + + Error trying to save as Fout tijdens opslaan als - - Save screenshot - - - - - Capture saved and copied to the clipboard as - - - - - - - - + + + + + Unable to connect via DBus Kan niet verbinden via DBus - + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + Error Fout - + Unable to write in Kan niet wegschrijven naar - + URL copied to clipboard. URL gekopieerd naar klembord. - - Hi, I'm already running! -You can find me in the system tray. + + Options - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. + + Arguments - - Resize selection right 1px + + arguments - - Resize selection left 1px + + Usage - - Resize selection up 1px + + options - - Resize selection down 1px + + Per default runs Flameshot in the background and adds a tray icon for configuration. - - - Toggle side panel - - - - - Move selection left 1px - - - - - Move selection right 1px - - - - - Move selection up 1px - - - - - Move selection down 1px - - - - - Quit capture - Vastleggen afsluiten - - - - Screenshot history - - - - - Capture screen - - - - Move selection 1px - Selectie 1px verplaatsen - - - - Show color picker - Kleurkiezer tonen - - - - Change the tool's thickness - Wijzig de gereedschapsdikte - RectangleTool - + Rectangle Rechthoek - + Set the Rectangle as the paint tool Rechthoek instellen als verfgereedschap @@ -1006,12 +932,12 @@ You can find me in the system tray. RedoTool - + Redo Opnieuw - + Redo the next modification Volgende wijziging opnieuw toepassen @@ -1019,13 +945,13 @@ You can find me in the system tray. SaveTool - + Save Сачувај Opslaan - + Save the capture Schermafdruk opslaan @@ -1033,7 +959,7 @@ You can find me in the system tray. ScreenGrabber - + Unable to capture screen Kan scherm niet vastleggen @@ -1041,76 +967,35 @@ You can find me in the system tray. SelectionTool - + Rectangular Selection Rechthoekige selectie - + Set Selection as the paint tool Selectie instellen als verfgereedschap - - SetShortcutDialog - - - Set Shortcut - - - - - Enter new shortcut to change - - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - - - - - ShortcutsWidget - - - Hot Keys - - - - - Available shortcuts in the screen capture mode. - Beschikbare sneltoetsen in de vastlegmodus. - - - - Description - Omschrijving - - - - Key - Toets - - SidePanelWidget - + Active thickness: Actieve dikte: - + Active color: Actieve kleur: - + Press ESC to cancel Druk op Esc om te annuleren - + Grab Color Kleur opnemen @@ -1118,12 +1003,12 @@ You can find me in the system tray. SizeIndicatorTool - + Selection Size Indicator Grootteindicatie van selectie - + Show the dimensions of the selection (X Y) Toon de afmetingen van de selectie (X Y) @@ -1131,107 +1016,107 @@ You can find me in the system tray. StrftimeChooserWidget - + Century (00-99) Eeuw (00-99) - + Year (00-99) Jaar (00-99) - + Year (2000) Jaar (2000) - + Month Name (jan) Naam van de maand (јаn) - + Month Name (january) Naam van de maand (јаnuari) - + Month (01-12) Maand (01-12) - + Week Day (1-7) Weekdag (1-7) - + Week (01-53) Week (01-53) - + Day Name (mon) Naam van de dag (ma) - + Day Name (monday) Naam van de dag (maandag) - + Day (01-31) Dag (01-31) - + Day of Month (1-31) Dag van de maand (1-31) - + Day (001-366) Dag (001-366) - + Time (%H-%M-%S) Tijd (%H-%M-%S) - + Time (%H-%M) Tijd (%H-%M) - + Hour (00-23) Uur (00-23) - + Hour (01-12) Uur (01-12) - + Minute (00-59) Minuten (00-59) - + Second (00-59) Seconden (00-59) - + Full Date (%m/%d/%y) Volledige datum (%m/%d/%y) - + Full Date (%Y-%m-%d) Volledige datum (%Y-%m-%d) @@ -1239,7 +1124,7 @@ You can find me in the system tray. SystemNotification - + Flameshot Info Flameshot-informatie @@ -1247,22 +1132,22 @@ You can find me in the system tray. TextConfig - + StrikeOut Doorhalen - + Underline Onderstrepen - + Bold Vetgedrukt - + Italic Cursief @@ -1270,12 +1155,12 @@ You can find me in the system tray. TextTool - + Text Tekst - + Add text to your capture Voeg tekst toe aan je schermafdruk @@ -1283,37 +1168,37 @@ You can find me in the system tray. UIcolorEditor - + UI Color Editor Kleurenschemabewerker - + Change the color moving the selectors and see the changes in the preview buttons. Wijzig de kleur d.m.v. de selectie-indicators en bekijk de wijzigingen op de voorbeeldknoppen. - + Select a Button to modify it Kies een te bewerken knop - + Main Color Hoofdkleur - + Click on this button to set the edition mode of the main color. Klik op deze knop om de hoofdkleur te bwerken. - + Contrast Color Contrastkleur - + Click on this button to set the edition mode of the contrast color. Klik op deze knop om de contrastkleur te bewerken. @@ -1321,12 +1206,12 @@ You can find me in the system tray. UndoTool - + Undo Ongedaan mken - + Undo the last modification Laatste wijziging ongedaan maken @@ -1334,25 +1219,25 @@ You can find me in the system tray. UtilityPanel - - Hide + + Close VisualsEditor - + Opacity of area outside selection: Doorzichtigheid van gebied buiten selectie: - + Button Selection Knopselectie - + Select All Alles selecteren diff --git a/data/translations/Internationalization_nl_NL.ts b/data/translations/Internationalization_nl_NL.ts new file mode 100644 index 00000000..b3f64ffa --- /dev/null +++ b/data/translations/Internationalization_nl_NL.ts @@ -0,0 +1,1244 @@ + + + + + AppLauncher + + + App Launcher + App-opstartprogramma + + + + Choose an app to open the capture + Kies een app om de schermafdruk mee te openen + + + + AppLauncherWidget + + + Open With + Open met + + + + Launch in terminal + Start in de Terminal + + + + Keep open after selection + Openhouden na selectie + + + + + Error + Fout + + + + Unable to write in + Kan niet schrijven + + + + Unable to launch in terminal. + Kan niet in de Terminal geopend worden. + + + + ArrowTool + + + Arrow + Pijl + + + + Set the Arrow as the paint tool + Stel de pijl in als het tekengereedschap + + + + BlurTool + + Blur + Verwischen + + + Set Blur as the paint tool + Vervaging instellen als verfgereedschap + + + + CaptureLauncher + + + <b>Capture Mode</b> + <b>Opnamemodus</b> + + + + Rectangular Region + Rechthoekige regio + + + + Full Screen (All Monitors) + Volledig scherm (alle monitoren) + + + + No Delay + Geen vertraging + + + + second + seconde + + + + seconds + seconden + + + + Take new screenshot + Maak een nieuwe schermafbeelding + + + + Area: + Gebied: + + + + Delay: + Vertraging: + + + + CaptureWidget + + + Unable to capture screen + Kan scherm niet vastleggen + + + + Select an area with the mouse, or press Esc to exit. +Press Enter to capture the screen. +Press Right Click to show the color picker. +Use the Mouse Wheel to change the thickness of your tool. +Press Space to open the side panel. + Selecteer een gebied met de muis of druk op Esc om af te sluiten. +Druk op Enter om het scherm vast te leggen. +Druk met de rechtermuisknop om de kleurenkiezer weer te geven. +Gebruik het muiswiel om de dikte van uw gereedschap te wijzigen. +Druk op de spatiebalk om het zijpaneel te openen. + + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + Cirkel teller + + + + Add an autoincrementing counter bubble + Voeg een automatisch oplopende bel toe + + + + CircleTool + + + Circle + Cirkel + + + + Set the Circle as the paint tool + Stel de cirkel in als het verfgereedschap + + + + ConfigWindow + + + Configuration + Instellingen + + + + Interface + gebruikersomgeving + + + + Filename Editor + Bestandsnaambewerker + + + + General + Algemeen + + + + Controller + + + &Take Screenshot + &Maak een Schermopname + + + + &Open Launcher + &Open Starter + + + + &Configuration + &Configuratie + + + + &About + + + + &Information + &Informatie + + + + &Quit + &Sluiten + + + + CopyTool + + + Copy + Kopiëren + + + + Copy the selection into the clipboard + Kopieer de selectie naar het klembord + + + + DBusUtils + + + Unable to connect via DBus + Kan geen verbinding maken via DBus + + + + ExitTool + + + Exit + Afsluiten + + + + Leave the capture screen + Verlaat het opnamescherm + + + + FileNameEditor + + + Edit the name of your captures: + Bewerk de naam van je schermafdrukken: + + + + Edit: + Bewerk: + + + + Preview: + Voorbeeld: + + + + Save + Opslaan + + + + Saves the pattern + Patroon opslaan + + + + Reset + Standaardwaarden + + + + Restores the saved pattern + Herstelt het opgeslagen patroon + + + + Clear + Wissen + + + + Deletes the name + Verwijder de naam + + + + GeneneralConf + + + + Import + Importeren + + + + + + + Error + Fout + + + + Unable to read file. + Bestand kan niet gelezen worden. + + + + + Unable to write file. + Kan bestand niet wegschrijven. + + + + Save File + Bestand opslaan + + + + Confirm Reset + Herstellen bevestigen + + + + Are you sure you want to reset the configuration? + Weet u zeker dat u de configuratie opnieuw wilt instellen? + + + + Show help message + Toon helpbericht + + + + Show the help message at the beginning in the capture mode. + Toon het helpbericht aan het begin in de vastlegmodus. + + + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + + + Show desktop notifications + Bureaubladmeldingen weergeven + + + + Show tray icon + Pictogram in het systeemvak weergeven + + + + Show the systemtray icon + Toon het systeemvakpictogram + + + + Configuration File + Configuratie bestand + + + + Export + Exporteren + + + + Reset + Standaardwaarden + + + + Launch at startup + Automatisch opstarten + + + + Launch Flameshot + Start Flameshot + + + + Close after capture + Sluit na schermopname + + + + Close after taking a screenshot + Sluit na het maken van een schermopname + + + + Copy URL after upload + Kopieer URL na upload + + + + Copy URL and close window after upload + Kopieer URL en sluit venster na upload + + + + Save image after copy + + + + + Save image file after copying it + + + + + Save Path + + + + + Change... + + + + + Choose a Folder + + + + + Unable to write to directory. + + + + + ImgurUploader + + + Upload to Imgur + Uploaden naar Imgur + + + + Uploading Image + Afbeelding uploaden + + + + Copy URL + URL kopiëren + + + + Open URL + URL Openen + + + + Delete image + Afbeelding verwijderen + + + + Image to Clipboard. + Afbeelding naar klembord. + + + + + Unable to open the URL. + Kan URL niet openen. + + + + URL copied to clipboard. + URL gekopieerd naar klembord. + + + + Screenshot copied to clipboard. + Schermafdruk gekopieerd naar klembord. + + + + ImgurUploaderTool + + + Image Uploader + Afbeelding uploader + + + + Upload the selection to Imgur + Upload de selectie naar Imgur + + + + InfoWindow + + + About + Over + + + + SPACEBAR + SPATIEBALK + + + + Right Click + Rechter muisklik + + + + Mouse Wheel + Muiswiel + + + + Move selection 1px + Verplaats selectie 1px + + + + Resize selection 1px + Formaat selectie 1px wijzigen + + + + Quit capture + Stop met vastleggen + + + + Copy to clipboard + Kopieer naar klembord + + + + Save selection as a file + Bewaar selectie als bestand + + + + Undo the last modification + Laatste wijziging ongedaan maken + + + + Toggle visibility of sidebar with options of the selected tool + Zijbalk met gereedschapsopties tonen/verbergen + + + + Show color picker + Toon kleurkiezer + + + + Change the tool's thickness + Wijzig de gereedschapsdikte + + + + Available shortcuts in the screen capture mode. + Beschikbare snelkoppelingen in de schermopnamemodus. + + + + Key + Toets + + + + Description + Omschrijving + + + + <u><b>License</b></u> + <u><b>Licentie</b></u> + + + + <u><b>Version</b></u> + <u><b>Versie</b></u> + + + + <u><b>Shortcuts</b></u> + <u><b>Snelkoppelingen</b></u> + + + + LineTool + + + Line + Lijn + + + + Set the Line as the paint tool + Lijn instellen als verfgereedschap + + + + MarkerTool + + + Marker + Markeerstift + + + + Set the Marker as the paint tool + Markeerstift instellen als verfgereedschap + + + + MoveTool + + + Move + Verplaatsen + + + + Move the selection area + Selectiegebied verplaatsen + + + + PencilTool + + + Pencil + Potlood + + + + Set the Pencil as the paint tool + Stel het potlood in als het verfgereedschap + + + + PinTool + + + Pin Tool + Prikbord gereedschap + + + + Pin image on the desktop + Pin afbeelding op het bureaublad + + + + PixelateTool + + + Pixelate + Verkorrelen + + + + Set Pixelate as the paint tool + Stel verkorrelen in als het tekengereedschap + + + + QObject + + + Save Error + Fout tijdens opslaan + + + + + Capture saved as + Schermafdruk opgeslagen als + + + + Capture saved to clipboard. + + + + + Capture saved to clipboard + Opname opgeslagen naar klembord + + + + + Error trying to save as + Fout bij opslaan als + + + + + + + + Unable to connect via DBus + Kan niet verbinden via DBus + + + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + + Error + Fout + + + + Unable to write in + Geen schrijftoegang tot + + + + URL copied to clipboard. + URL gekopieerd naar klembord. + + + + Options + + + + + Arguments + + + + + arguments + + + + + Usage + + + + + options + + + + + Per default runs Flameshot in the background and adds a tray icon for configuration. + + + + + RectangleTool + + + Rectangle + Rechthoek + + + + Set the Rectangle as the paint tool + Rechthoek instellen als verfgereedschap + + + + RedoTool + + + Redo + Opnieuw + + + + Redo the next modification + Volgende wijziging opnieuw toepassen + + + + SaveTool + + + Save + Opslaan + + + + Save the capture + Schermafdruk opslaan + + + + ScreenGrabber + + + Unable to capture screen + Kan scherm niet vastleggen + + + + SelectionTool + + + Rectangular Selection + Rechthoekige selectie + + + + Set Selection as the paint tool + Selectie instellen als verfgereedschap + + + + SidePanelWidget + + + Active thickness: + Actieve dikte: + + + + Active color: + Actieve kleur: + + + + Press ESC to cancel + Druk op ESC om te annuleren + + + + Grab Color + Kies een kleur + + + + SizeIndicatorTool + + + Selection Size Indicator + Grootteindicatie van selectie + + + + Show the dimensions of the selection (X Y) + Toon de afmetingen van de selectie (X Y) + + + + StrftimeChooserWidget + + + Century (00-99) + Eeuw (00-99) + + + + Year (00-99) + Jaar (00-99) + + + + Year (2000) + Jaar (2000) + + + + Month Name (jan) + Naam van de maand (јаn) + + + + Month Name (january) + Naam van de maand (јаnuari) + + + + Month (01-12) + Maand (01-12) + + + + Week Day (1-7) + Dag van de week (1-7) + + + + Week (01-53) + Week (01-53) + + + + Day Name (mon) + Naam van de dag (ma) + + + + Day Name (monday) + Naam van de dag (maandag) + + + + Day (01-31) + Dag (01-31) + + + + Day of Month (1-31) + Dag van de maand (1-31) + + + + Day (001-366) + Dag (001-366) + + + + Time (%H-%M-%S) + Tijd (%U-%M-%S) + + + + Time (%H-%M) + Tijd (%U-%M) + + + + Hour (00-23) + Uur (00-23) + + + + Hour (01-12) + Uur (01-12) + + + + Minute (00-59) + Minuten (00-59) + + + + Second (00-59) + Seconde (00-59) + + + + Full Date (%m/%d/%y) + Volledige datum (%m/%d/%j) + + + + Full Date (%Y-%m-%d) + Volledige datum (%J-%m-%d) + + + + SystemNotification + + + Flameshot Info + Flameshot Informatie + + + + TextConfig + + + StrikeOut + Doorstrepen + + + + Underline + Onderstrepen + + + + Bold + Vet + + + + Italic + Cursief + + + + TextTool + + + Text + Tekst + + + + Add text to your capture + Voeg tekst toe aan uw schermopname + + + + UIcolorEditor + + + UI Color Editor + UI Kleur Editor + + + + Change the color moving the selectors and see the changes in the preview buttons. + Verander de kleur door de selectors te bewegen en bekijk de veranderingen in de voorbeeldknoppen. + + + + Select a Button to modify it + Selecteer een knop om deze te wijzigen + + + + Main Color + Hoofdkleur + + + + Click on this button to set the edition mode of the main color. + Klik op deze knop om de hoofdkleur te bwerken. + + + + Contrast Color + Contrastkleur + + + + Click on this button to set the edition mode of the contrast color. + Klik op deze knop om de contrastkleur te bewerken. + + + + UndoTool + + + Undo + Ongedaan maken + + + + Undo the last modification + Laatste wijziging ongedaan maken + + + + UtilityPanel + + + Close + + + + + VisualsEditor + + + Opacity of area outside selection: + Doorzichtigheid van gebied buiten selectie: + + + + Button Selection + Knopselectie + + + + Select All + Alles selecteren + + + diff --git a/data/translations/Internationalization_pl.ts b/data/translations/Internationalization_pl.ts new file mode 100644 index 00000000..82ca5456 --- /dev/null +++ b/data/translations/Internationalization_pl.ts @@ -0,0 +1,1243 @@ + + + + + AppLauncher + + + App Launcher + Uruchamianie aplikacji + + + + Choose an app to open the capture + Wybierz aplikację do otwierania zrzutu + + + + AppLauncherWidget + + + Open With + Otwórz w + + + + Launch in terminal + Otwórz w terminalu + + + + Keep open after selection + Pozostaw otwarte po zaznaczeniu + + + + + Error + Błąd + + + + Unable to write in + Nie można zapisać + + + + Unable to launch in terminal. + Nie można uruchomić w terminalu. + + + + ArrowTool + + + Arrow + Strzałka + + + + Set the Arrow as the paint tool + Rysowanie strzałek + + + + BlurTool + + Blur + Rozmycie + + + Set Blur as the paint tool + Rozmywanie obszarów + + + + CaptureLauncher + + + <b>Capture Mode</b> + <b>Tryb przechwytywania</b> + + + + Rectangular Region + Zaznaczony obszar + + + + Full Screen (All Monitors) + Pełny ekran (Wszystkie monitory) + + + + No Delay + Bez opóźnienia + + + + second + sekunda + + + + seconds + sekundy + + + + Take new screenshot + Wykonaj nowy zrzut ekranu + + + + Area: + Obszar: + + + + Delay: + Opóźnienie: + + + + CaptureWidget + + + Unable to capture screen + Nie można przechwycić ekranu + + + + Select an area with the mouse, or press Esc to exit. +Press Enter to capture the screen. +Press Right Click to show the color picker. +Use the Mouse Wheel to change the thickness of your tool. +Press Space to open the side panel. + Wybierz obszar za pomocą myszy lub wciśnij Esc aby wyjść. +Wciśnij Enter, aby wykonać zrzut ekranu. +Prawy klik, aby pokazać próbnik kolorów. +Spacja, aby pokazać panel boczny. + + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + Licznik + + + + Add an autoincrementing counter bubble + Dodaj automatycznie zwiększający się bąbelek licznika + + + + CircleTool + + + Circle + Okręgi + + + + Set the Circle as the paint tool + Rysowanie okręgów i elips + + + + ConfigWindow + + + Configuration + Konfiguracja + + + + Interface + Interfejs + + + + Filename Editor + Edytor nazw plików + + + + General + Ogólne + + + + Controller + + + &Take Screenshot + &Zrzut ekranu + + + + &Open Launcher + Pokaż &okno + + + + &Configuration + &Konfiguracja + + + + &About + O progr&amie + + + &Information + &Informacje + + + + &Quit + &Wyjdź + + + + CopyTool + + + Copy + Kopiuj + + + + Copy the selection into the clipboard + Kopiuj zaznaczony obszar do schowka + + + + DBusUtils + + + Unable to connect via DBus + Nie można się połączyć za pomocą DBus + + + + ExitTool + + + Exit + Wyjdź + + + + Leave the capture screen + Opuść ekran przechwytywania + + + + FileNameEditor + + + Edit the name of your captures: + Edycja wzorca nazwy plików: + + + + Edit: + Edytuj: + + + + Preview: + Podgląd: + + + + Save + Zapisz + + + + Saves the pattern + Zapisuje wzorzec + + + + Reset + Reset + + + + Restores the saved pattern + Resetuje wzorzec + + + + Clear + Wyczyść + + + + Deletes the name + Czyści wzorzec + + + + GeneneralConf + + + + Import + Import + + + + + + + Error + Błąd + + + + Unable to read file. + Nie można odczytać pliku. + + + + + Unable to write file. + Nie można zapisać pliku. + + + + Save File + Zapisz plik + + + + Confirm Reset + Potwierdź Reset + + + + Are you sure you want to reset the configuration? + Czy na pewno chcesz zresetować konfigurację? + + + + Show help message + Pokaż podpowiedzi + + + + Show the help message at the beginning in the capture mode. + Pokaż podpowiedzi na początku trybu przechwytywania. + + + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + + + Show desktop notifications + Pokaż powiadomienia ekranowe + + + + Show tray icon + Pokaż ikonę w trayu + + + + Show the systemtray icon + Pokaż ikonę w zasobniku systemowym + + + + Configuration File + Plik konfiguracyjny + + + + Export + Export + + + + Reset + Reset + + + + Launch at startup + Uruchom podczas startu + + + + Launch Flameshot + Uruchom Flameshot + + + + Close after capture + Zamknij po wykonaniu zrzutu + + + + Close after taking a screenshot + Zamknij po wykonaniu zrzutu ekranu + + + + Copy URL after upload + Kopiuj adres URL po wysłaniu + + + + Copy URL and close window after upload + Kopiuj adres URL po wysłaniu i zamknij okno + + + + Save image after copy + + + + + Save image file after copying it + + + + + Save Path + + + + + Change... + + + + + Choose a Folder + + + + + Unable to write to directory. + + + + + ImgurUploader + + + Upload to Imgur + Wyślij do Imgur + + + + Uploading Image + Wysyłanie obrazka + + + + Copy URL + Kopiuj URL + + + + Open URL + Otwórz URL + + + + Delete image + Usuń obrazek + + + + Image to Clipboard. + Obrazek do schowka. + + + + + Unable to open the URL. + Nie można otworzyć adresu URL. + + + + URL copied to clipboard. + URL skopiowany do schowka. + + + + Screenshot copied to clipboard. + Zrzut ekranu skopiowany do schowka. + + + + ImgurUploaderTool + + + Image Uploader + Uploader obrazów + + + + Upload the selection to Imgur + Wyślij zaznaczenie do Imgur + + + + InfoWindow + + + About + O programie + + + + SPACEBAR + SPACJA + + + + Right Click + Prawy klik + + + + Mouse Wheel + Kółko myszy + + + + Move selection 1px + Przesuń zaznaczenie o 1px + + + + Resize selection 1px + Zmień rozmiar zaznaczenia o 1px + + + + Quit capture + Zakończ przechwytywanie + + + + Copy to clipboard + Kopiuj do schowka + + + + Save selection as a file + Zapisz zaznaczenie jako plik + + + + Undo the last modification + Cofnij ostatnią modyfikację + + + + Toggle visibility of sidebar with options of the selected tool + Przełącz widoczność paska bocznego z opcjami wybranego narzędzia + + + + Show color picker + Pokaż próbnik kolorów + + + + Change the tool's thickness + Zmień grubość narzędzia + + + + Available shortcuts in the screen capture mode. + Dostępne skróty w trybie przechwytywania obrazu. + + + + Key + Klawisz + + + + Description + Działanie + + + + <u><b>License</b></u> + <u><b>Licencja</b></u> + + + + <u><b>Version</b></u> + <u><b>Wersja</b></u> + + + + <u><b>Shortcuts</b></u> + <u><b>Skróty klawiszowe</b></u> + + + + LineTool + + + Line + Linia + + + + Set the Line as the paint tool + Ustawia linię jako narzędzie do rysowania + + + + MarkerTool + + + Marker + Marker + + + + Set the Marker as the paint tool + Ustawia Marker jako narzędzie rysowania + + + + MoveTool + + + Move + Przesuwanie + + + + Move the selection area + Przesuwa zaznaczenie + + + + PencilTool + + + Pencil + Ołówek + + + + Set the Pencil as the paint tool + Ustawia ołówek jako narzędzie do rysowania + + + + PinTool + + + Pin Tool + Narzędzie przypinania + + + + Pin image on the desktop + Przypnij obrazek do pulpitu + + + + PixelateTool + + + Pixelate + Zamazywanie + + + + Set Pixelate as the paint tool + Ustaw Zamazywanie jako narzędzie malowania + + + + QObject + + + Save Error + Błąd zapisu + + + + + Capture saved as + Zaznaczenie zapisano jako + + + + Capture saved to clipboard. + + + + + Capture saved to clipboard + Zrzut skopiowano do schowka + + + + + Error trying to save as + Błąd przy próbie zapisu jako + + + + + + + + Unable to connect via DBus + Nie udało się połączyć za pomocą DBus + + + + Powerful yet simple to use screenshot software. + Zaawansowany lecz prosty w użyciu program do zrzutów ekranu. + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + + Error + Błąd + + + + Unable to write in + Nie można zapisać w + + + + URL copied to clipboard. + URL skopiowany do schowka. + + + + Options + Opcje + + + + Arguments + Argumenty + + + + arguments + argumenty + + + + Usage + Użycie + + + + options + opcje + + + + Per default runs Flameshot in the background and adds a tray icon for configuration. + Domyślnie uruchamia Flameshot w tle i dodaje ikonę w zasobniku systemowym do konfiguracji. + + + + RectangleTool + + + Rectangle + Prostokąt + + + + Set the Rectangle as the paint tool + Ustawia prostokąt jako narzędzie do rysowania + + + + RedoTool + + + Redo + Ponów + + + + Redo the next modification + Ponów następną modyfikację + + + + SaveTool + + + Save + Zapisz + + + + Save the capture + Zapisz zaznaczenie + + + + ScreenGrabber + + + Unable to capture screen + Nie można przechwycić ekranu + + + + SelectionTool + + + Rectangular Selection + Zaznaczenie prostokątne + + + + Set Selection as the paint tool + Ustawia zaznaczenie prostokątne jako narzędzie do rysowania + + + + SidePanelWidget + + + Active thickness: + Grubość: + + + + Active color: + Kolor: + + + + Press ESC to cancel + Wciśnij ESC, aby anulować + + + + Grab Color + Pobierz kolor + + + + SizeIndicatorTool + + + Selection Size Indicator + Miernik zaznaczenia + + + + Show the dimensions of the selection (X Y) + Pokazuje wymiary zaznaczenia (X Y) + + + + StrftimeChooserWidget + + + Century (00-99) + Wiek (00-99) + + + + Year (00-99) + Rok (00-99) + + + + Year (2000) + Rok (2000) + + + + Month Name (jan) + Nazwa miesiąca (cze) + + + + Month Name (january) + Nazwa miesiąca (czerwiec) + + + + Month (01-12) + Miesiąc (01-12) + + + + Week Day (1-7) + Dzień tygodnia (1-7) + + + + Week (01-53) + Tydzień (01-53) + + + + Day Name (mon) + Nazwa dniaa (pią) + + + + Day Name (monday) + Nazwa dnia (piątek) + + + + Day (01-31) + Dzień (01-31) + + + + Day of Month (1-31) + Dzień miesiąca (1-31) + + + + Day (001-366) + Dzień (001-366) + + + + Time (%H-%M-%S) + Czas (%H-%M-%S) + + + + Time (%H-%M) + Czas (%H-%M) + + + + Hour (00-23) + Godzina (00-23) + + + + Hour (01-12) + Godzina (01-12) + + + + Minute (00-59) + Minuta (00-59) + + + + Second (00-59) + Sekunda (00-59) + + + + Full Date (%m/%d/%y) + Data (%m/%d/%y) + + + + Full Date (%Y-%m-%d) + Data (%Y-%m-%d) + + + + SystemNotification + + + Flameshot Info + Flameshot Info + + + + TextConfig + + + StrikeOut + Przekreślenie + + + + Underline + Podkreślenie + + + + Bold + Pogrubienie + + + + Italic + Kursywa + + + + TextTool + + + Text + Tekst + + + + Add text to your capture + Dodaje tekst do zrzutu + + + + UIcolorEditor + + + UI Color Editor + Edytor kolorów interfejsu + + + + Change the color moving the selectors and see the changes in the preview buttons. + Zmień kolor przesuwając selektory i obserwując podgląd przycisków. + + + + Select a Button to modify it + Wybierz przycisk do zmodyfikowania + + + + Main Color + Kolor główny + + + + Click on this button to set the edition mode of the main color. + Kliknij na przycisk aby móc modyfikować kolor główny. + + + + Contrast Color + Kolor kontrastowy + + + + Click on this button to set the edition mode of the contrast color. + Kliknij na przycisk aby móc modyfikować kolor kontrastowy. + + + + UndoTool + + + Undo + Cofnij + + + + Undo the last modification + Cofnij ostatnią zmianę + + + + UtilityPanel + + + Close + + + + + VisualsEditor + + + Opacity of area outside selection: + Przezroczystość obszaru poza zaznaczeniem: + + + + Button Selection + Wybór przycisków + + + + Select All + Wybierz wszystkie + + + diff --git a/data/translations/Internationalization_pt_BR.ts b/data/translations/Internationalization_pt_BR.ts new file mode 100644 index 00000000..20b46783 --- /dev/null +++ b/data/translations/Internationalization_pt_BR.ts @@ -0,0 +1,1244 @@ + + + + + AppLauncher + + + App Launcher + Iniciar app + + + + Choose an app to open the capture + Escolha uma aplicação para abrir a captura + + + + AppLauncherWidget + + + Open With + Abrir Com + + + + Launch in terminal + Abrir no terminal + + + + Keep open after selection + Manter aberto após seleção + + + + + Error + Erro + + + + Unable to write in + Não é possível escrever em + + + + Unable to launch in terminal. + Não foi possível abrir no terminal. + + + + ArrowTool + + + Arrow + Flecha + + + + Set the Arrow as the paint tool + Usar a Flecha como ferramenta de desenho + + + + BlurTool + + Blur + Desfoque + + + Set Blur as the paint tool + Usar o Desfoque como ferramenta de desenho + + + + CaptureLauncher + + + <b>Capture Mode</b> + + + + + Rectangular Region + + + + + Full Screen (All Monitors) + + + + + No Delay + + + + + second + + + + + seconds + + + + + Take new screenshot + + + + + Area: + + + + + Delay: + + + + + CaptureWidget + + + Unable to capture screen + Não foi possível capturar a tela + + + + Select an area with the mouse, or press Esc to exit. +Press Enter to capture the screen. +Press Right Click to show the color picker. +Use the Mouse Wheel to change the thickness of your tool. +Press Space to open the side panel. + Selecione uma área com o mouse, ou precione Esc para sair. +Pressione Enter para capturar a tela. +Pressione o botão direito do mouse para abrir o seletor de cores. +Use a roda do mouse para aumentar a grossura do pincel. +Pressione espaço abrir o painel lateral. + + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + + + + CircleTool + + + Circle + Círculo + + + + Set the Circle as the paint tool + Usar o Círculo como ferramenta de desenho + + + + ConfigWindow + + + Configuration + Configuração + + + + Interface + Interface + + + + Filename Editor + Editor de nome de arquivo + + + + General + Geral + + + + Controller + + + &Take Screenshot + &Tirar Screenshot + + + + &Open Launcher + + + + + &Configuration + &Configuração + + + + &About + + + + &Information + &Informações + + + + &Quit + &Sair + + + + CopyTool + + + Copy + Copiar + + + + Copy the selection into the clipboard + Copia a seleção para a área de transferência + + + + DBusUtils + + + Unable to connect via DBus + Não foi possível conectar via DBus + + + + ExitTool + + + Exit + Sair + + + + Leave the capture screen + Sair da ferramenta de captura + + + + FileNameEditor + + + Edit the name of your captures: + Edite o nome das suas capturas: + + + + Edit: + Editar: + + + + Preview: + Preview: + + + + Save + Salvar + + + + Saves the pattern + Salva o padrão + + + + Reset + Reiniciar + + + + Restores the saved pattern + Restaura o padrão salvo + + + + Clear + Limpar + + + + Deletes the name + Deleta o nome + + + + GeneneralConf + + + + Import + Importar + + + + + + + Error + Erro + + + + Unable to read file. + Não foi possível ler o arquivo. + + + + + Unable to write file. + Não foi possível escrever no arquivo. + + + + Save File + Salvar Arquivo + + + + Confirm Reset + Confirmar Reset + + + + Are you sure you want to reset the configuration? + Tem certeza que deseja resetar a configuração? + + + + Show help message + Mostrar mensagem de ajuda + + + + Show the help message at the beginning in the capture mode. + Mostrar mensagem de ajuda no início do modo de captura. + + + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + + + Show desktop notifications + Mostrar notificações de Desktop + + + + Show tray icon + Mostrar ícone de tray + + + + Show the systemtray icon + Mosrar ícone na barra de aplicações + + + + Configuration File + Arquivo de Configurações + + + + Export + Exportar + + + + Reset + Reset + + + + Launch at startup + Iniciar junto com o sistema + + + + Launch Flameshot + Iniciar Flameshot + + + + Close after capture + + + + + Close after taking a screenshot + + + + + Copy URL after upload + + + + + Copy URL and close window after upload + + + + + Save image after copy + + + + + Save image file after copying it + + + + + Save Path + + + + + Change... + + + + + Choose a Folder + + + + + Unable to write to directory. + + + + + ImgurUploader + + + Upload to Imgur + Upload no Imgur + + + + Uploading Image + Upando Imagem + + + + Copy URL + Copiar URL + + + + Open URL + Abrir URL + + + + Delete image + Deletar imagem + + + + Image to Clipboard. + Imagem na área de transferência. + + + + + Unable to open the URL. + Não foi possível abrir a URL. + + + + URL copied to clipboard. + URL copiada para a área de transferência. + + + + Screenshot copied to clipboard. + Screenshot copiada para a área de transferência. + + + + ImgurUploaderTool + + + Image Uploader + Uploader de imagens + + + + Upload the selection to Imgur + Upa a seleção no Imgur + + + + InfoWindow + + + About + Sobre + + + + SPACEBAR + + + + + Right Click + Botão Direito + + + + Mouse Wheel + Roda do mouse + + + + Move selection 1px + Move a seleção em 1px + + + + Resize selection 1px + Redimensiona a seleção em 1px + + + + Quit capture + Sair da captura + + + + Copy to clipboard + Copiar para área de transferência + + + + Save selection as a file + Salvar seleção em um arquivo + + + + Undo the last modification + Desfazer última modificação + + + + Toggle visibility of sidebar with options of the selected tool + Alterar barra lateral com as opções da ferramenta selecionada + + + + Show color picker + Mostrar seletor de cores + + + + Change the tool's thickness + Mudar a grossura do pincel + + + + Available shortcuts in the screen capture mode. + Atalhos disponívels na tela de captura. + + + + Key + Tecla + + + + Description + Descrição + + + + <u><b>License</b></u> + <u><b>Licença</b></u> + + + + <u><b>Version</b></u> + <u><b>Versão</b></u> + + + + <u><b>Shortcuts</b></u> + <u><b>Atalhos</b></u> + + + + LineTool + + + Line + Linha + + + + Set the Line as the paint tool + Usar a Linha como ferramenta de desenho + + + + MarkerTool + + + Marker + Marcador + + + + Set the Marker as the paint tool + Usar o marcador como ferramenta de desenho + + + + MoveTool + + + Move + Mover + + + + Move the selection area + Mover a área de seleção + + + + PencilTool + + + Pencil + Pincel + + + + Set the Pencil as the paint tool + Usar o Lápis como ferramenta de desenho + + + + PinTool + + + Pin Tool + Ferramenta de fixação + + + + Pin image on the desktop + Fixar imagem no desktop + + + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + + + + + QObject + + + Save Error + Erro ao salvar + + + + + Capture saved as + Captura salva como + + + + Capture saved to clipboard. + + + + + Capture saved to clipboard + Captura salva na área de transferência + + + + + Error trying to save as + Erro ao tentar salvar como + + + + + + + + Unable to connect via DBus + Não foi possível conectar via DBus + + + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + + Error + Erro + + + + Unable to write in + Não foi possível escrever em + + + + Options + + + + + Arguments + + + + + arguments + + + + + Usage + + + + + options + + + + + Per default runs Flameshot in the background and adds a tray icon for configuration. + + + + + URL copied to clipboard. + URL copiada para a área de transferência. + + + + RectangleTool + + + Rectangle + Retângulo + + + + Set the Rectangle as the paint tool + Usar o Retângulo como ferramenta de desenho + + + + RedoTool + + + Redo + Refazer + + + + Redo the next modification + Refazer última modificação + + + + SaveTool + + + Save + Salvar + + + + Save the capture + Salvar a captura + + + + ScreenGrabber + + + Unable to capture screen + Não foi possível capturar a tela + + + + SelectionTool + + + Rectangular Selection + Seleção Retangular + + + + Set Selection as the paint tool + Usar o Selecionador como ferramenta de desenho + + + + SidePanelWidget + + + Active thickness: + Grossura: + + + + Active color: + Cor: + + + + Press ESC to cancel + Presione Esc para cancelar + + + + Grab Color + Usar Cor + + + + SizeIndicatorTool + + + Selection Size Indicator + Indicador do Tamanho da Seleção + + + + Show the dimensions of the selection (X Y) + Mostra as dimenções da seleção (X Y) + + + + StrftimeChooserWidget + + + Century (00-99) + Século (00-99) + + + + Year (00-99) + Ano (00-99) + + + + Year (2000) + Ano (2000) + + + + Month Name (jan) + Nome do mês (jan) + + + + Month Name (january) + Nome do mês (janeiro) + + + + Month (01-12) + Mês (01-12) + + + + Week Day (1-7) + Dia da semana (1-7) + + + + Week (01-53) + Semana (01-53) + + + + Day Name (mon) + Nome do dia (seg) + + + + Day Name (monday) + Nome do dia (segunda) + + + + Day (01-31) + Dia (01-31) + + + + Day of Month (1-31) + Dia do Mês (1-31) + + + + Day (001-366) + Dia (001-366) + + + + Time (%H-%M-%S) + Tempo (%H-%M-%S) + + + + Time (%H-%M) + Tempo (%H-%M) + + + + Hour (00-23) + Hora (00-23) + + + + Hour (01-12) + Hora (01-12) + + + + Minute (00-59) + Minuto (00-59) + + + + Second (00-59) + Segundo (00-59) + + + + Full Date (%m/%d/%y) + Data Completa (%m/%d/%y) + + + + Full Date (%Y-%m-%d) + Data Completa (%Y-%m-%d) + + + + SystemNotification + + + Flameshot Info + Informações do Flameshot + + + + TextConfig + + + StrikeOut + Sobrescrito + + + + Underline + Sublinhado + + + + Bold + Negrito + + + + Italic + Itálico + + + + TextTool + + + Text + Texto + + + + Add text to your capture + Adicionar texto à captura + + + + UIcolorEditor + + + UI Color Editor + Interface de Edição de Cores + + + + Change the color moving the selectors and see the changes in the preview buttons. + Modifique a cor movendo os seletores e veja as mudanças nos botões de preview. + + + + Select a Button to modify it + Selecione um botão para modificá-lo + + + + Main Color + Cor Principal + + + + Click on this button to set the edition mode of the main color. + Clique neste botão para setar o modo de edição da cor principal. + + + + Contrast Color + Cor de Contraste + + + + Click on this button to set the edition mode of the contrast color. + Clique neste botão para setar o modo de edição da cor de contraste. + + + + UndoTool + + + Undo + Desfazer + + + + Undo the last modification + Desfazer a última modificação + + + + UtilityPanel + + + Close + + + + + VisualsEditor + + + Opacity of area outside selection: + Opacidade da área de seleção: + + + + Button Selection + Botão de seleção + + + + Select All + Selecionar Todos + + + diff --git a/data/translations/Internationalization_ru.ts b/data/translations/Internationalization_ru.ts new file mode 100644 index 00000000..f334866c --- /dev/null +++ b/data/translations/Internationalization_ru.ts @@ -0,0 +1,1244 @@ + + + + + AppLauncher + + + App Launcher + Запуск приложения + + + + Choose an app to open the capture + Выберите приложение, которым открыть снимок + + + + AppLauncherWidget + + + Open With + Открыть с помощью + + + + Launch in terminal + Запустить в терминале + + + + Keep open after selection + Оставить запущенным после выделения + + + + + Error + Ошибка + + + + Unable to write in + Не удалось сохранить + + + + Unable to launch in terminal. + Не удалось запустить в терминале. + + + + ArrowTool + + + Arrow + Стрелка + + + + Set the Arrow as the paint tool + Выбрать Стрелку инструментом для рисования + + + + BlurTool + + Blur + Размытие + + + Set Blur as the paint tool + Выбрать Размытие инструментом для рисования + + + + CaptureLauncher + + + <b>Capture Mode</b> + <b>Режим захвата</b> + + + + Rectangular Region + Прямоугольная область + + + + Full Screen (All Monitors) + Весь экран (все мониторы) + + + + No Delay + Без задержки + + + + second + сек + + + + seconds + сек + + + + Take new screenshot + Сделать новый снимок + + + + Area: + Область: + + + + Delay: + Задержка: + + + + CaptureWidget + + + Unable to capture screen + Не удалось захватить экран + + + + Select an area with the mouse, or press Esc to exit. +Press Enter to capture the screen. +Press Right Click to show the color picker. +Use the Mouse Wheel to change the thickness of your tool. +Press Space to open the side panel. + Выберите область с помощью мыши, или нажмите Esc, чтобы выйти. +Нажмите Enter, чтобы захватить экран. +Нажмите правую кнопку мыши, чтобы показать выбор цвета. +Используйте колесо мыши, чтобы выбрать толщину текущего инструмента. +Нажмите Пробел, чтобы открыть боковую панель. + + + + Tool Settings + Настройки инструмента + + + + CircleCountTool + + + Circle Counter + Нумерация + + + + Add an autoincrementing counter bubble + Добавить круг с автоинкрементирующимся счетчиком + + + + CircleTool + + + Circle + Окружность + + + + Set the Circle as the paint tool + Выбрать Окружность инструментом для рисования + + + + ConfigWindow + + + Configuration + Настройка + + + + Interface + Интерфейс + + + + Filename Editor + Редактор имен файлов + + + + General + Общие + + + + Controller + + + &Take Screenshot + &Сделать снимок + + + + &Open Launcher + &Открыть лаунчер + + + + &Configuration + &Настройка + + + + &About + &Информация + + + &Information + &Информация + + + + &Quit + &Выход + + + + CopyTool + + + Copy + Скопировать + + + + Copy the selection into the clipboard + Скопировать выделение в буфер обмена + + + + DBusUtils + + + Unable to connect via DBus + Не удалось подключиться через DBus + + + + ExitTool + + + Exit + Выход + + + + Leave the capture screen + Покинуть захват экрана + + + + FileNameEditor + + + Edit the name of your captures: + Отредактируйте имя ваших снимков: + + + + Edit: + Шаблон: + + + + Preview: + Предпросмотр: + + + + Save + Сохранить + + + + Saves the pattern + Сохранить шаблон + + + + Reset + Сбросить + + + + Restores the saved pattern + Восстанавливает сохраненный шаблон + + + + Clear + Очистить + + + + Deletes the name + Удаляет имя + + + + GeneneralConf + + + + Import + Импорт + + + + + + + Error + Ошибка + + + + Unable to read file. + Не удалось прочитать файл. + + + + + Unable to write file. + Не удалось записать файл. + + + + Save File + Сохранить файл + + + + Confirm Reset + Подтвердить сброс + + + + Are you sure you want to reset the configuration? + Вы действительно хотите сбросить настройки? + + + + Show help message + Показывать справочное сообщение + + + + Show the help message at the beginning in the capture mode. + Показывать справочное сообщение перед началом захвата экрана. + + + + Show the side panel button + Показывать кнопку боковой панели + + + + Show the side panel toggle button in the capture mode. + Показывать кнопку открытия боковой панели в режиме захвата. + + + + + Show desktop notifications + Показывать уведомления + + + + Show tray icon + Показывать значок в трее + + + + Show the systemtray icon + Показать значок в системном трее + + + + Configuration File + Файл конфигурации + + + + Export + Экспорт + + + + Reset + Сброс + + + + Launch at startup + Запускать при старте системы + + + + Launch Flameshot + Запустить Flameshot + + + + Close after capture + Закрыть после снимка + + + + Close after taking a screenshot + Закрыть после снимка + + + + Copy URL after upload + Копировать URL после загрузки + + + + Copy URL and close window after upload + Копировать URL и закрыть окно после загрузки + + + + Save image after copy + Сохранять изображение после копирования + + + + Save image file after copying it + Сохранять файл изображения после копирования + + + + Save Path + Путь сохранения + + + + Change... + Сменить... + + + + Choose a Folder + Выберите папку + + + + Unable to write to directory. + Не удалось записать в папку. + + + + ImgurUploader + + + Upload to Imgur + Загрузить в Imgur + + + + Uploading Image + Загрузка изображения + + + + Copy URL + Скопировать URL + + + + Open URL + Открыть URL + + + + Delete image + Удалить изображение + + + + Image to Clipboard. + Изображение в буфер обмена. + + + + + Unable to open the URL. + Не удалось открыть URL. + + + + URL copied to clipboard. + URL скопирован в буфер обмена. + + + + Screenshot copied to clipboard. + Снимок скопирован в буфер обмена. + + + + ImgurUploaderTool + + + Image Uploader + Отправка изображений + + + + Upload the selection to Imgur + Загрузить выделение на Imgur + + + + InfoWindow + + + About + Информация + + + + SPACEBAR + Пробел + + + + Right Click + Правый клик + + + + Mouse Wheel + Колесико мыши + + + + Move selection 1px + Переместить выделение на 1px + + + + Resize selection 1px + Изменить размер выделения на 1px + + + + Quit capture + Выйти из захвата экрана + + + + Copy to clipboard + Скопировать в буфер обмена + + + + Save selection as a file + Сохранить выделение в файл + + + + Undo the last modification + Отменить последнее изменение + + + + Toggle visibility of sidebar with options of the selected tool + Показать боковую панель с настройками инструмента + + + + Show color picker + Показать выбор цвета + + + + Change the tool's thickness + Изменить толщину инструмента + + + + Available shortcuts in the screen capture mode. + Доступные горячие клавиши в режиме захвата экрана. + + + + Key + Клавиша + + + + Description + Описание + + + + <u><b>License</b></u> + <u><b>Лицензия</b></u> + + + + <u><b>Version</b></u> + <u><b>Версия</b></u> + + + + <u><b>Shortcuts</b></u> + <u><b>Горячие клавиши</b></u> + + + + LineTool + + + Line + Линия + + + + Set the Line as the paint tool + Выбрать Линию инструментом для рисования + + + + MarkerTool + + + Marker + Маркер + + + + Set the Marker as the paint tool + Выбрать Маркер инструментом для рисования + + + + MoveTool + + + Move + Перемещение + + + + Move the selection area + Выбрать Перемещение инструментом для рисования + + + + PencilTool + + + Pencil + Карандаш + + + + Set the Pencil as the paint tool + Выбрать Карандаш инструментом для рисования + + + + PinTool + + + Pin Tool + Булавка + + + + Pin image on the desktop + Прикрепить изображение к рабочему столу + + + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + Выбрать Pixelate инструментом для рисования + + + + QObject + + + Save Error + Ошибка сохранения + + + + + Capture saved as + Снимок сохранён как + + + + Capture saved to clipboard. + Снимок сохранён в буфер обмена. + + + + Capture saved to clipboard + Снимок сохранён в буфер обмена + + + + + Error trying to save as + Ошибка при попытке сохранить как + + + + + + + + Unable to connect via DBus + Не удалось подключиться через DBus + + + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + + Error + Ошибка + + + + Unable to write in + Не удалось сохранить + + + + URL copied to clipboard. + URL скопирован в буфер обмена. + + + + Options + + + + + Arguments + + + + + arguments + + + + + Usage + + + + + options + + + + + Per default runs Flameshot in the background and adds a tray icon for configuration. + + + + + RectangleTool + + + Rectangle + Прямоугольник + + + + Set the Rectangle as the paint tool + Выбрать Прямоугольник инструментом для рисования + + + + RedoTool + + + Redo + Повторить + + + + Redo the next modification + Повторить последнее изменение + + + + SaveTool + + + Save + Сохранить + + + + Save the capture + Сохранить снимок + + + + ScreenGrabber + + + Unable to capture screen + Не удалось захватить экран + + + + SelectionTool + + + Rectangular Selection + Прямоугольное выделение + + + + Set Selection as the paint tool + Выбрать Прямоугольное выделение инструментом для рисования + + + + SidePanelWidget + + + Active thickness: + Активная толщина: + + + + Active color: + Активный цвет: + + + + Press ESC to cancel + Нажмите Esc для отмены + + + + Grab Color + Захватить цвет с экрана + + + + SizeIndicatorTool + + + Selection Size Indicator + Индикатор размера выделения + + + + Show the dimensions of the selection (X Y) + Показывает размер выделения (X Y) + + + + StrftimeChooserWidget + + + Century (00-99) + Век (00-99) + + + + Year (00-99) + Год (00-99) + + + + Year (2000) + Год (2000) + + + + Month Name (jan) + Название месяца (янв) + + + + Month Name (january) + Название месяца (январь) + + + + Month (01-12) + Месяц (01-12) + + + + Week Day (1-7) + День недели (1-7) + + + + Week (01-53) + Неделя (01-53) + + + + Day Name (mon) + День недели (пн) + + + + Day Name (monday) + День недели (понедельник) + + + + Day (01-31) + День (01-31) + + + + Day of Month (1-31) + День месяца (1-31) + + + + Day (001-366) + День (001-366) + + + + Time (%H-%M-%S) + Время (%H-%M-%S) + + + + Time (%H-%M) + Время (%H-%M) + + + + Hour (00-23) + Час (00-23) + + + + Hour (01-12) + Час (01-12) + + + + Minute (00-59) + Минута (00-59) + + + + Second (00-59) + Секунда (00-59) + + + + Full Date (%m/%d/%y) + Полная дата (%m/%d/%y) + + + + Full Date (%Y-%m-%d) + Полная дата (%Y-%m-%d) + + + + SystemNotification + + + Flameshot Info + Flameshot Инфо + + + + TextConfig + + + StrikeOut + Зачеркнутый + + + + Underline + Подчеркнутый + + + + Bold + Полужирный + + + + Italic + Курсив + + + + TextTool + + + Text + Текст + + + + Add text to your capture + Добавить текст на снимок + + + + UIcolorEditor + + + UI Color Editor + Редактор цвета интерфейса + + + + Change the color moving the selectors and see the changes in the preview buttons. + Измените цвет, перемещая выделение, и посмотрите изменения в кнопках предварительного просмотра. + + + + Select a Button to modify it + Выберите кнопку, чтобы изменить ее + + + + Main Color + Основной цвет + + + + Click on this button to set the edition mode of the main color. + Нажмите на эту кнопку, чтобы перейти в режим редактирования основного цвета. + + + + Contrast Color + Контрастный цвет + + + + Click on this button to set the edition mode of the contrast color. + Нажмите на эту кнопку, чтобы перейти в режим редактирования контрастного цвета. + + + + UndoTool + + + Undo + Отменить + + + + Undo the last modification + Отменить последнее изменение + + + + UtilityPanel + + + Close + Закрыть + + + + VisualsEditor + + + Opacity of area outside selection: + Затемнение невыделенной области: + + + + Button Selection + Выбор кнопок + + + + Select All + Выбрать все + + + diff --git a/data/translations/Internationalization_sk.ts b/data/translations/Internationalization_sk.ts new file mode 100644 index 00000000..73a9c2fc --- /dev/null +++ b/data/translations/Internationalization_sk.ts @@ -0,0 +1,1250 @@ + + + + + AppLauncher + + + App Launcher + Spúšťač aplikácií + + + + Choose an app to open the capture + Vyberte aplikáciu na otvorenie snímky obrazovky + + + + AppLauncherWidget + + + Open With + Otvoriť s + + + + Launch in terminal + Otvoriť v termináli + + + + Keep open after selection + Nechať otvorené po výbere + + + + + Error + Chyba + + + + Unable to write in + Zlyhal zápis do + + + + Unable to launch in terminal. + Nepodarilo sa spustiť v termináli. + + + + ArrowTool + + + Arrow + Šípka + + + + Set the Arrow as the paint tool + Nastaviť Šípku ako nástroj pre úpravy + + + + BlurTool + + Blur + Rozmazanie + + + Set Blur as the paint tool + Nastaviť Rozmazanie ako nástroj pre úpravy + + + + CaptureLauncher + + + <b>Capture Mode</b> + <b>Režim zachytávania</b> + + + + Rectangular Region + Pravouhlá oblasť + + + + Full Screen (All Monitors) + Celá obrazovka (všetky monitory) + + + + No Delay + Bez oneskorenia + + + + second + sekunda + + + + seconds + sekundy + + + + Take new screenshot + Zachytiť novú snímku + + + + Area: + Oblasť: + + + + Delay: + Oneskorenie: + + + + CaptureWidget + + + Unable to capture screen + Nepodarilo sa zachytiť obrazovku + + + + Select an area with the mouse, or press Esc to exit. +Press Enter to capture the screen. +Press Right Click to show the color picker. +Use the Mouse Wheel to change the thickness of your tool. +Press Space to open the side panel. + Vyberte oblasť snímania pomocou myši alebo stlačte Esc pre ukončenie. +Stlačte Enter pre zachytenie obrazovky. +Kliknite pravým tlačidlom pre zobrazenie nástroja pre výber farby. +Použite kolečko myši pre zmenu hrúbky vybraného nástroja. +Stlačte medzerník pre otvorenie postranného panelu. + + + + Tool Settings + Nastavenia nástrojov + + + + CircleCountTool + + + Circle Counter + Bodové počítadlo + + + + Add an autoincrementing counter bubble + Pridá bublinu s číslom (vždy zvýšeným o jednotku) + + + + CircleTool + + + Circle + Kruh + + + + Set the Circle as the paint tool + + + + + ConfigWindow + + + Configuration + Konfigurácia + + + + Interface + Používateľské rozhranie + + + + Filename Editor + Editor názvov súborov + + + + General + Všeobecné + + + + Controller + + + &Take Screenshot + &Vytvoriť snímku + + + + &Open Launcher + + + + + &Configuration + &Konfigurácia + + + + &About + O &programe + + + &Information + &Informácie + + + + &Quit + &Ukončiť + + + + CopyTool + + + Copy + Kopírovať + + + + Copy the selection into the clipboard + Kopírovať výber do schránky + + + + DBusUtils + + + Unable to connect via DBus + Nie je možné pripojiť sa prostredníctvom DBus + + + + ExitTool + + + Exit + Ukončiť + + + + Leave the capture screen + Opustiť obrazovku so zachytávaním obrazovky + + + + FileNameEditor + + + Edit the name of your captures: + Upraviť meno vašich snímok obrazovky: + + + + Edit: + Upraviť: + + + + Preview: + Ukážka: + + + + Save + Uložiť + + + + Saves the pattern + Uloží vzor + + + + Reset + Resetovať + + + + Restores the saved pattern + Vráti zmeny + + + + Clear + Vyčistiť + + + + Deletes the name + Vymaže meno + + + + GeneneralConf + + + + Import + Importovať + + + + + + + Error + Chyba + + + + Unable to read file. + Zlyhalo čítanie súboru. + + + + + Unable to write file. + Zlyhal zápis do súboru. + + + + Save File + Uložiť súbor + + + + Confirm Reset + Potvrdiť Reset + + + + Are you sure you want to reset the configuration? + Naozaj si želáte resetovať aktuálnu konfiguráciu? + + + + Show help message + Zobraziť nápovedu + + + + Show the help message at the beginning in the capture mode. + Zobraziť nápovedu na začiatku počas režimu zachytávania obrazovky. + + + + Show the side panel button + Zobraziť tlačidlo na postrannom paneli + + + + Show the side panel toggle button in the capture mode. + V režime zachytávania zobrazovať tlačidlo na postrannom paneli. + + + + + Show desktop notifications + Zobraziť systémové upozornenia + + + + Show tray icon + Zobraziť stavovú ikonu + + + + Show the systemtray icon + Zobraziť ikonu v stavovej oblasti + + + + Configuration File + Súbor s konfiguráciou + + + + Export + Exportovať + + + + Reset + Resetovať + + + + Launch at startup + Spúšťať pri štarte + + + + Launch Flameshot + Spustiť Flameshot + + + + Close after capture + Zavrieť po vytvorení snímky + + + + Close after taking a screenshot + Zatvoriť po vytvorení snímky obrazovky + + + + Copy URL after upload + Kopírovať URL po uploade + + + + Copy URL and close window after upload + Po nahratí skopírovať URL a zavrieť okno + + + + Save image after copy + Uložiť obrázok po kopírovaní + + + + Save image file after copying it + Uložiť obrázok so súborom po jeho skopírovaní + + + + Save Path + Cesta pre ukladanie + + + + Change... + Zmeniť... + + + + Choose a Folder + Vyberte priečinok + + + + Unable to write to directory. + Zápis do adresára nie je možný. + + + + ImgurUploader + + + Upload to Imgur + Nahrať na Imgur + + + + Uploading Image + Nahrávam obrázok + + + + Copy URL + Kopírovať URL + + + + Open URL + Otvoriť URL + + + + Delete image + Vymazať obrázok + + + + Image to Clipboard. + Obrázok do schránky. + + + + + Unable to open the URL. + Nepodarilo sa otvoriť URL. + + + + URL copied to clipboard. + URL skopírovaná do schránky. + + + + Screenshot copied to clipboard. + Snímka obrazovky bola skopírovaná do schránky. + + + + ImgurUploaderTool + + + Image Uploader + Uploader obrázkov + + + + Upload the selection to Imgur + Nahrať výber na Imgur + + + + InfoWindow + + + About + O programe + + + + SPACEBAR + MEDZERNÍK + + + + Right Click + Kliknutie pravým tlačidlom + + + + Mouse Wheel + Kolečko myši + + + + Move selection 1px + Presunúť výber o 1 px + + + + Resize selection 1px + Zmeniť rozmery výberu o 1 px + + + + Quit capture + Ukončiť zachytávanie obrazovky + + + + Copy to clipboard + Kopírovať do schránky + + + + Save selection as a file + Zapísať výber do súboru + + + + Undo the last modification + Vrátiť poslednú úpravu + + + + Toggle visibility of sidebar with options of the selected tool + Prepnúť viditeľnosť bočnej lišty s možnosťami vybraného nástroja + + + + Show color picker + Zobraziť dialóg na výber farby + + + + Change the tool's thickness + Zmena hrúbky nástroja + + + + Available shortcuts in the screen capture mode. + Dostupné klávesové skratky v režime zachytávania obrazovky. + + + + Key + Kláves + + + + Description + Popis + + + + <u><b>License</b></u> + <u><b>Licencia</b></u> + + + + <u><b>Version</b></u> + <u><b>Verzia</b></u> + + + + <u><b>Shortcuts</b></u> + <u><b>Klávesové skratky</b></u> + + + + LineTool + + + Line + Čiara + + + + Set the Line as the paint tool + Nastaviť Čiaru ako nástroj pre úpravy + + + + MarkerTool + + + Marker + Fixka + + + + Set the Marker as the paint tool + Nastaviť Fixku ako nástroj pre úpravy + + + + MoveTool + + + Move + Presun + + + + Move the selection area + Presunúť oblasť výberu + + + + PencilTool + + + Pencil + Ceruzka + + + + Set the Pencil as the paint tool + Nastaviť Ceruzku ako nástroj pre úpravy + + + + PinTool + + + Pin Tool + Pripínačik + + + + Pin image on the desktop + Pripnúť obrázok na plochu + + + + PixelateTool + + + Pixelate + Rozštvorčekovanie + + + + Set Pixelate as the paint tool + Nastaviť Rozštvorčekovanie ako nástroj pre úpravy + + + + QObject + + + + + + + Unable to connect via DBus + Nie je možné pripojiť sa prostredníctvom DBus + + + + Powerful yet simple to use screenshot software. + Mocný, no zároveň tiež jednoduchý softvér na zachytávanie obrazovky. + + + + See + Pozrite + + + + Capture the entire desktop. + Zachytiť celú plochu. + + + + Open the capture launcher. + Otvoriť spúšťač zachytávania. + + + + Start a manual capture in GUI mode. + Spustiť manuálne zachytávanie v GUI režime. + + + + Configure + Konfigurovať + + + + Capture a single screen. + Zachytiť jeden monitor. + + + + Path where the capture will be saved + Cesta, kam bude snímka uložená + + + + Save the capture to the clipboard + Uložiť snímku do schránky + + + + Delay time in milliseconds + Oneskorenie času v milisekundách + + + + Set the filename pattern + Nastaviť masku pre pomenovanie súborov + + + + Enable or disable the trayicon + Povoliť alebo zakázať ikonu v lište + + + + Enable or disable run at startup + Povoliť alebo zakázáť spustenie pri štarte systému + + + + Show the help message in the capture mode + Ukazovať nápovedu v režime zachytávania + + + + Define the main UI color + Nastaviť farbu hlavného používateľského rozhrania + + + + Define the contrast UI color + Nastaviť kontrastnú farbu používateľského rozhrania + + + + Print raw PNG capture + Zobraziť surovú PNG snímku + + + + Define the screen to capture + Nastaviť monitor, ktorý bude zachytávaný + + + + default: screen containing the cursor + predvolené: monitor, na ktorom je kurzor myši + + + + Screen number + Číslo monitora + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + Neplatná farba, tento prepínač podporuje nasledovné formáty: +- #RGB (každá zo zložiek R, G a B je samostatným hexadecimálnym číslom) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- anglické mená farieb ako 'blue' alebo 'red' +Možno budete musieť napísať pred '#' opačnú lomku, teda '\#FFF' + + + + Invalid delay, it must be higher than 0 + Neplatné oneskorenie, musí byť vyššie ako 0 + + + + Invalid screen number, it must be non negative + Neplatné číslo monitora, môže byť len kladné + + + + Invalid path, it must be a real path in the system + Neplatná cesta, musí sa jednať o skutočnú cestu na systéme + + + + Invalid value, it must be defined as 'true' or 'false' + Neplatná hodnota, musí byť definovaná ako 'pravda' alebo 'nepravda' + + + + Error + Chyba + + + + Unable to write in + Zlyhal zápis do + + + + Capture saved to clipboard. + Snímka uložená do schránky. + + + + Capture saved to clipboard + Snímka uložená do schránky + + + + + Capture saved as + Snímka uložená ako + + + + + Error trying to save as + Chyba pri ukladaní do + + + + Save Error + Chyba pri ukladaní + + + + URL copied to clipboard. + URL skopírovaná do schránky. + + + + Options + Voľby + + + + Arguments + Argumenty + + + + arguments + argumenty + + + + Usage + Použitie + + + + options + voľby + + + + Per default runs Flameshot in the background and adds a tray icon for configuration. + Štandardne sa Flameshot spúšťa na pozadí a pridáva do lišty ikonu, ktorou je ho možné ovládať. + + + + RectangleTool + + + Rectangle + Obdĺžnik + + + + Set the Rectangle as the paint tool + Nastaviť Obdĺžnik ako nástroj pre úpravy + + + + RedoTool + + + Redo + Znova + + + + Redo the next modification + Zopakovať úpravu + + + + SaveTool + + + Save + Uložiť + + + + Save the capture + Uložiť snímku obrazovky + + + + ScreenGrabber + + + Unable to capture screen + Nepodarilo sa zachytiť obrazovku + + + + SelectionTool + + + Rectangular Selection + Obdĺžnikový výber + + + + Set Selection as the paint tool + Nastaviť Výber ako nástroj pre úpravy + + + + SidePanelWidget + + + Active thickness: + Aktívna hrúbka: + + + + Active color: + Aktívna farba: + + + + Press ESC to cancel + Stlačte ESC pre zrušenie + + + + Grab Color + Snímať farbu + + + + SizeIndicatorTool + + + Selection Size Indicator + Ukazovateľ veľkosti výberu + + + + Show the dimensions of the selection (X Y) + Zobraziť rozmery výberu (X Y) + + + + StrftimeChooserWidget + + + Century (00-99) + Storočie (00-99) + + + + Year (00-99) + Rok (00-99) + + + + Year (2000) + Rok (2000) + + + + Month Name (jan) + Meno mesiaca (jan) + + + + Month Name (january) + Meno mesiaca (január) + + + + Month (01-12) + Mesiac (01-12) + + + + Week Day (1-7) + Deň v týždni (1-7) + + + + Week (01-53) + Týždeň (01-53) + + + + Day Name (mon) + Meno dňa (pon) + + + + Day Name (monday) + Meno dňa (pondelok) + + + + Day (01-31) + Deň (01-31) + + + + Day of Month (1-31) + Deň v mesiaci (1-31) + + + + Day (001-366) + Deň (001-366) + + + + Time (%H-%M-%S) + Čas (%H-%M-%S) + + + + Time (%H-%M) + Čas (%H-%M) + + + + Hour (00-23) + Hodina (00-23) + + + + Hour (01-12) + Hodina (01-12) + + + + Minute (00-59) + Minúta (00-59) + + + + Second (00-59) + Sekunda (00-59) + + + + Full Date (%m/%d/%y) + Celý dátum (%m/%d/%y) + + + + Full Date (%Y-%m-%d) + Celý dátum (%Y-%m-%d) + + + + SystemNotification + + + Flameshot Info + Informácie o programe Flameshot + + + + TextConfig + + + StrikeOut + Preškrtnuté + + + + Underline + Podčiarknuté + + + + Bold + Tučné + + + + Italic + Kurzíva + + + + TextTool + + + Text + Text + + + + Add text to your capture + Pridať text do snímky + + + + UIcolorEditor + + + UI Color Editor + Editor farieb používateľského rozhrania + + + + Change the color moving the selectors and see the changes in the preview buttons. + Presunom bežcov nastavte farbu a sledujte tieto zmeny v náhľade. + + + + Select a Button to modify it + Kliknite na tlačidlo pre jeho úpravu + + + + Main Color + Hlavná farba + + + + Click on this button to set the edition mode of the main color. + Pre nastavenie hlavnej farby kliknite na toto tlačidlo. + + + + Contrast Color + Kontrastná farba + + + + Click on this button to set the edition mode of the contrast color. + Pre nastavenie kontrastnej farby kliknite na toto tlačidlo. + + + + UndoTool + + + Undo + Späť + + + + Undo the last modification + Vrátiť poslednú úpravu + + + + UtilityPanel + + + Close + Zavrieť + + + + VisualsEditor + + + Opacity of area outside selection: + Priehľadnosť oblasti mimo výberu: + + + + Button Selection + Výber tlačidiel + + + + Select All + Vybrať všetky + + + diff --git a/translations/Internationalization_sr.ts b/data/translations/Internationalization_sr_SP.ts similarity index 52% rename from translations/Internationalization_sr.ts rename to data/translations/Internationalization_sr_SP.ts index 269cb9d6..cc53f10d 100644 --- a/translations/Internationalization_sr.ts +++ b/data/translations/Internationalization_sr_SP.ts @@ -4,12 +4,12 @@ AppLauncher - + App Launcher Покретач - + Choose an app to open the capture Изаберите програм у ком желите да отворите снимак @@ -17,33 +17,33 @@ AppLauncherWidget - + Open With Отвори помоћу - + Launch in terminal Покрени у терминалу - + Keep open after selection Остави отворено након избора - - + + Error Грешка - + Unable to write in Нисам успео да сачувам - + Unable to launch in terminal. Нисам успео да покренем у терминалу. @@ -51,12 +51,12 @@ ArrowTool - + Arrow Стрелица - + Set the Arrow as the paint tool Избор цртања стрелице @@ -64,60 +64,58 @@ BlurTool - Blur - Замућење + Замућење - Set Blur as the paint tool - Избор цртања замућене области + Избор цртања замућене области CaptureLauncher - + <b>Capture Mode</b> - + Rectangular Region - + Full Screen (All Monitors) - + No Delay - + second - + seconds - + Take new screenshot - + Area: - + Delay: @@ -125,12 +123,12 @@ CaptureWidget - + Unable to capture screen Нисам успео да снимим екран - + Select an area with the mouse, or press Esc to exit. Press Enter to capture the screen. Press Right Click to show the color picker. @@ -142,16 +140,34 @@ Press Space to open the side panel. Можете користити точкић миша за избор дебљине алатки. Притисните размак на тастатури за приказ помоћног панела. + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + CircleTool - + Circle Круг - + Set the Circle as the paint tool Избор цртања круга @@ -159,27 +175,22 @@ Press Space to open the side panel. ConfigWindow - + Configuration Подешавања - + Interface Изглед - + Filename Editor Избор имена датотеке - - Shortcuts - - - - + General Опште @@ -187,45 +198,44 @@ Press Space to open the side panel. Controller - + &Take Screenshot &Направи снимак екрана - + &Open Launcher - + &Configuration &Подешавања - - &Information - Ин&формације + + &About + - + &Information + Ин&формације + + + &Quit &Излаз - - - &Latest Uploads - - CopyTool - + Copy Запамти - + Copy the selection into the clipboard Копира избор у привремену оставу @@ -233,7 +243,7 @@ Press Space to open the side panel. DBusUtils - + Unable to connect via DBus Нисам успео да се повежем кроз DBus @@ -241,12 +251,12 @@ Press Space to open the side panel. ExitTool - + Exit Излаз - + Leave the capture screen Напусти екран за снимање @@ -254,451 +264,263 @@ Press Space to open the side panel. FileNameEditor - + Edit the name of your captures: Уређивање имена снимака: - + Edit: Уређивање: - + Preview: Преглед: - + Save Сачувај - + Saves the pattern Сачувај шаблон - + Reset Ресетуј - + Restores the saved pattern Поврати сачувани шаблон - + Clear Очисти - + Deletes the name Брише име - - FilePathConfiguration - - - Screenshot path default: - - - - - Use fixed path for screenshots to save - - - - - Browse - - - - - Clear - Очисти - - - - Select default path for Screenshots - - - GeneneralConf - - + + Import Увоз - - - + + + + Error Грешка - + Unable to read file. Нисам успео да прочитам датотеку. - - + + Unable to write file. Нисам успео да сачувам датотеку. - + Save File Сачувај датотеку - + Confirm Reset Потврда поништавања - + Are you sure you want to reset the configuration? Да ли сте сигурни да желите да поништите сва прилагођена подешавања? - + Show help message Приказуј поруку са упутством - + Show the help message at the beginning in the capture mode. Приказуј поруку са кратким упутством на почетку снимања екрана. - - + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + + Show desktop notifications Користи системска обавештења - + Show tray icon Иконица на системској полици - + Show the systemtray icon Приказуј иконицу на системској полици - + Configuration File Датотека са подешавањима - + Export Извоз - + Reset Поништи - + Launch at startup Покрени на почетку - - + Launch Flameshot Покрени Flameshot - - Show welcome message on launch + + Close after capture - - Close application after capture - - - - + Close after taking a screenshot - + Copy URL after upload - + Copy URL and close window after upload - - - Copy file path after save + + Save image after copy - - Upload storage + + Save image file after copying it - - Imgur storage + + Save Path - - S3 storage (require config.ini file with s3 credentials) - - - - - HistoryWidget - - - Latest Uploads + + Change... - - Screenshots history is empty + + Choose a Folder - - Copy URL - Запамти интернет адресу - - - - URL copied to clipboard. - Интернет адреса је сачувана у привременој меморији. - - - - Open in browser + + Unable to write to directory. - - ImgS3Uploader - - - Uploading Image - Објављујем слику - - - - Upload image to S3 - - - - - Delete image from S3 - - - - - Unable to remove screenshot from the remote storage. - - - - - Network error - - - - - Possibly it doesn't exist anymore - - - - - Do you want to remove screenshot from local history anyway? - - - - - S3 Creds URL is not found in your configuration file - - - - Copy URL - Запамти интернет адресу - - - Open URL - Посети интернет адресу - - - Delete image - Избриши слику - - - Image to Clipboard. - Сачувај у привремену меморију. - - - Unable to open the URL. - Нисам успео да посетим интернет адресу. - - - - URL copied to clipboard. - Интернет адреса је сачувана у привременој меморији. - - - - Deleting image... - - - - - Remove screenshot from history? - - - - Screenshot copied to clipboard. - Слика је сачувана у привременој меморији. - - - - ImgS3UploaderTool - - - Image Uploader - Објављивање слике - - - - Upload the selection to S3 bucket - - - - - ImgUploader - - - Upload image to S3 - - - - - - Uploading Image - Објављујем слику - - - - Upload image - - - - - Unable to open the URL. - Нисам успео да посетим интернет адресу. - - - - URL copied to clipboard. - Интернет адреса је сачувана у привременој меморији. - - - - Screenshot copied to clipboard. - Слика је сачувана у привременој меморији. - - - - Deleting image... - - - - - Copy URL - Запамти интернет адресу - - - - Open URL - Посети интернет адресу - - - - Delete image - Избриши слику - - - - Image to Clipboard. - Сачувај у привремену меморију. - - ImgurUploader - + Upload to Imgur Објави на Imgur + Uploading Image - Објављујем слику + Објављујем слику + Copy URL - Запамти интернет адресу + Запамти интернет адресу + Open URL - Посети интернет адресу + Посети интернет адресу + Delete image - Избриши слику + Избриши слику + Image to Clipboard. - Сачувај у привремену меморију. + Сачувај у привремену меморију. - + + Unable to open the URL. Нисам успео да посетим интернет адресу. + URL copied to clipboard. - Интернет адреса је сачувана у привременој меморији. + Интернет адреса је сачувана у привременој меморији. + Screenshot copied to clipboard. - Слика је сачувана у привременој меморији. + Слика је сачувана у привременој меморији. ImgurUploaderTool - + Image Uploader Објављивање слике - + Upload the selection to Imgur Објави избор на Imgur сајту @@ -706,86 +528,110 @@ Press Space to open the side panel. InfoWindow - + About О програму + + SPACEBAR + + + + Right Click - Десни клик + Десни клик + Mouse Wheel - Точкић миша + Точкић миша + Move selection 1px - Помери избор за 1px + Помери избор за 1px + Resize selection 1px - Увећај избор за 1px + Увећај избор за 1px + Quit capture - Излаз из снимача екрана + Излаз из снимача екрана + Copy to clipboard - Запамти у привременој меморији + Запамти у привременој меморији + Save selection as a file - Сачувај избор у датотеку + Сачувај избор у датотеку + Undo the last modification - Поништи последње измене + Поништи последње измене + + Toggle visibility of sidebar with options of the selected tool + + + + Show color picker - Прикажи избор боје + Прикажи избор боје + Change the tool's thickness - Измени дебљину линије алата + Измени дебљину линије алата + Available shortcuts in the screen capture mode. - Доступне пречице у моду снимка екрана. + Доступне пречице у моду снимка екрана. + Key - Тастер + Тастер + Description - Опис + Опис - + <u><b>License</b></u> <u><b>Лиценца</b></u> - + <u><b>Version</b></u> <u><b>Верзија</b></u> + <u><b>Shortcuts</b></u> - <u><b>Пречице</b></u> + <u><b>Пречице</b></u> LineTool - + Line Линија - + Set the Line as the paint tool Избор цртања линије @@ -793,12 +639,12 @@ Press Space to open the side panel. MarkerTool - + Marker Маркер - + Set the Marker as the paint tool Избор цртања маркером @@ -806,12 +652,12 @@ Press Space to open the side panel. MoveTool - + Move Премештање - + Move the selection area Премешта изабрану област @@ -819,12 +665,12 @@ Press Space to open the side panel. PencilTool - + Pencil Оловка - + Set the Pencil as the paint tool Избор цртања оловком @@ -832,169 +678,253 @@ Press Space to open the side panel. PinTool - + Pin Tool Закачка - + Pin image on the desktop Закачи слику за радну површину + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + + + QObject - + Save Error Грешка приликом упусивања - - + + Capture saved as Сачувај снимак као - + + Capture saved to clipboard. + + + + Capture saved to clipboard Снимак је сачуван у привремену меморију - - + + Error trying to save as Грешка приликом уписивања као - - Save screenshot - - - - - Capture saved and copied to the clipboard as - - - - - - - - + + + + + Unable to connect via DBus Нисам успео да се повежем кроз DBus - + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + Error Грешка - + Unable to write in Нисам успео са сачувам - + URL copied to clipboard. Интернет адреса је сачувана у привременој меморији. - - Hi, I'm already running! -You can find me in the system tray. + + Options - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. + + Arguments - - Resize selection right 1px + + arguments - - Resize selection left 1px + + Usage - - Resize selection up 1px + + options - - Resize selection down 1px + + Per default runs Flameshot in the background and adds a tray icon for configuration. - - - Toggle side panel - - - - - Move selection left 1px - - - - - Move selection right 1px - - - - - Move selection up 1px - - - - - Move selection down 1px - - - - - Quit capture - Излаз из снимача екрана - - - - Screenshot history - - - - - Capture screen - - - - Move selection 1px - Помери избор за 1px - - - - Show color picker - Прикажи избор боје - - - - Change the tool's thickness - Измени дебљину линије алата - RectangleTool - + Rectangle Правоугаоник - + Set the Rectangle as the paint tool Избор цртања обојеног правоугаоника @@ -1002,12 +932,12 @@ You can find me in the system tray. RedoTool - + Redo Понови - + Redo the next modification Понови поништену измену @@ -1015,13 +945,13 @@ You can find me in the system tray. SaveTool - + Save Сачувај Сохранить - + Save the capture Сачувај снимак @@ -1029,7 +959,7 @@ You can find me in the system tray. ScreenGrabber - + Unable to capture screen Нисам успео да снимим екран @@ -1037,76 +967,35 @@ You can find me in the system tray. SelectionTool - + Rectangular Selection Правоугаони оквир - + Set Selection as the paint tool Избор цртања правоугаоног оквира - - SetShortcutDialog - - - Set Shortcut - - - - - Enter new shortcut to change - - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - - - - - ShortcutsWidget - - - Hot Keys - - - - - Available shortcuts in the screen capture mode. - Доступне пречице у моду снимка екрана. - - - - Description - Опис - - - - Key - Тастер - - SidePanelWidget - + Active thickness: - + Active color: Активна боја: - + Press ESC to cancel Притисните ESC за прекид - + Grab Color Преузмите боју @@ -1114,12 +1003,12 @@ You can find me in the system tray. SizeIndicatorTool - + Selection Size Indicator Приказ величине избора - + Show the dimensions of the selection (X Y) Приказује величину избора (X Y) @@ -1127,107 +1016,107 @@ You can find me in the system tray. StrftimeChooserWidget - + Century (00-99) Век (00-99) - + Year (00-99) Година (00-99) - + Year (2000) Година (2000) - + Month Name (jan) Име месеца (јан) - + Month Name (january) Име месеца (јануар) - + Month (01-12) Месец (01-12) - + Week Day (1-7) Дани у недељи (1-7) - + Week (01-53) Недеља (01-53) - + Day Name (mon) Дан у недељи (пон) - + Day Name (monday) Дан у недељи (понедељак) - + Day (01-31) Дан (01-31) - + Day of Month (1-31) Дан месеца (1-31) - + Day (001-366) Дан (001-366) - + Time (%H-%M-%S) Време (%H-%M-%S) - + Time (%H-%M) Време (%H-%M) - + Hour (00-23) Сат (00-23) - + Hour (01-12) Сат (01-12) - + Minute (00-59) Минута (00-59) - + Second (00-59) Секунда (00-59) - + Full Date (%m/%d/%y) Комплетан датум (%m/%d/%y) - + Full Date (%Y-%m-%d) Комплетан датум (%Y-%m-%d) @@ -1235,7 +1124,7 @@ You can find me in the system tray. SystemNotification - + Flameshot Info Информације о Flameshot-у @@ -1243,22 +1132,22 @@ You can find me in the system tray. TextConfig - + StrikeOut Прецртано - + Underline Подвучено - + Bold Задебљано - + Italic Накошено @@ -1266,12 +1155,12 @@ You can find me in the system tray. TextTool - + Text Текст - + Add text to your capture Додаје текст на снимак @@ -1279,37 +1168,37 @@ You can find me in the system tray. UIcolorEditor - + UI Color Editor Уређивање боје сучеља - + Change the color moving the selectors and see the changes in the preview buttons. Измените боју померањем изборника и видите резултат у прегледу дугмића. - + Select a Button to modify it Изаберите дугме да би га изменили - + Main Color Основна боја - + Click on this button to set the edition mode of the main color. Кликните на дугме да би прешли у режим уређивања основне боје. - + Contrast Color Боја контраста - + Click on this button to set the edition mode of the contrast color. Кликните на дугме да би прешли у режим уређивања боје контраста. @@ -1317,12 +1206,12 @@ You can find me in the system tray. UndoTool - + Undo Поништи - + Undo the last modification Поништи последњу измену @@ -1330,25 +1219,25 @@ You can find me in the system tray. UtilityPanel - - Hide + + Close VisualsEditor - + Opacity of area outside selection: Провидност подручја ван избора: - + Button Selection Избор дугмића - + Select All Изабери све diff --git a/data/translations/Internationalization_sv_SE.ts b/data/translations/Internationalization_sv_SE.ts new file mode 100644 index 00000000..52cbd45d --- /dev/null +++ b/data/translations/Internationalization_sv_SE.ts @@ -0,0 +1,1244 @@ + + + + + AppLauncher + + + App Launcher + Programstartare + + + + Choose an app to open the capture + Välj ett program för att öppna skärmklippet + + + + AppLauncherWidget + + + Open With + Öppna med + + + + Launch in terminal + Öppna i terminal + + + + Keep open after selection + Håll öppen efter urval + + + + + Error + Fel + + + + Unable to write in + Kan inte skriva i + + + + Unable to launch in terminal. + Kunde inte öppna i terminal. + + + + ArrowTool + + + Arrow + Pil + + + + Set the Arrow as the paint tool + Välj pil som ritverktyg + + + + BlurTool + + Blur + Oskärpa + + + Set Blur as the paint tool + Välj Oskärpa som ritverktyg + + + + CaptureLauncher + + + <b>Capture Mode</b> + + + + + Rectangular Region + + + + + Full Screen (All Monitors) + + + + + No Delay + + + + + second + + + + + seconds + + + + + Take new screenshot + + + + + Area: + + + + + Delay: + + + + + CaptureWidget + + + Unable to capture screen + Kunde inte avbilda skärmen + + + + Select an area with the mouse, or press Esc to exit. +Press Enter to capture the screen. +Press Right Click to show the color picker. +Use the Mouse Wheel to change the thickness of your tool. +Press Space to open the side panel. + Välj ett område med muspekaren eller tryck ESC för att avbryta. +Tryck Enter för att fånga skärmklipp. +Högerklicka för att visa färgväljaren. +Använd Scrollhjulet för att ändra tjockleken på ditt verktyg. +Tryck Space för att öppna sidopanelen. + + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + + + + CircleTool + + + Circle + Cirkel + + + + Set the Circle as the paint tool + Välj cirkel som ritverktyg + + + + ConfigWindow + + + Configuration + Konfiguration + + + + Interface + Gränssnitt + + + + Filename Editor + Redigera filnamn + + + + General + Allmänt + + + + Controller + + + &Take Screenshot + &Ta skärmdump + + + + &Open Launcher + + + + + &Configuration + &Konfiguration + + + + &About + + + + &Information + &Information + + + + &Quit + &Avsluta + + + + CopyTool + + + Copy + Kopiera + + + + Copy the selection into the clipboard + Kopiera urval till klippbordet + + + + DBusUtils + + + Unable to connect via DBus + Kunde inte ansluta via DBus + + + + ExitTool + + + Exit + Stäng + + + + Leave the capture screen + Lämna skärmklippsvy + + + + FileNameEditor + + + Edit the name of your captures: + Redigera namnet på dina skärmklipp: + + + + Edit: + Redigera: + + + + Preview: + Förhandsgranska: + + + + Save + Spara + + + + Saves the pattern + Sparar mönstret + + + + Reset + Återställ + + + + Restores the saved pattern + Återställer det sparade mönstret + + + + Clear + Rensa + + + + Deletes the name + Raderar namnet + + + + GeneneralConf + + + + Import + Importera + + + + + + + Error + Fel + + + + Unable to read file. + Kunde inte läsa filen. + + + + + Unable to write file. + Kunde inte skriva till filen. + + + + Save File + Spara fil + + + + Confirm Reset + Bekräfta återställning + + + + Are you sure you want to reset the configuration? + Är du säker på att du vill återställa konfigurationen? + + + + Show help message + Visa hjälpmeddelande + + + + Show the help message at the beginning in the capture mode. + Visa hjälpmeddelande vid början av skärmklippsläge. + + + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + + + Show desktop notifications + Visa skrivbordsnotifieringar + + + + Show tray icon + Visa ikon i systemfältet + + + + Show the systemtray icon + Visa ikon i systemfältet + + + + Configuration File + Konfigurationsfil + + + + Export + Exportera + + + + Reset + Återställ + + + + Launch at startup + Starta vid uppstart + + + + Launch Flameshot + Starta Flameshot + + + + Close after capture + + + + + Close after taking a screenshot + + + + + Copy URL after upload + + + + + Copy URL and close window after upload + + + + + Save image after copy + + + + + Save image file after copying it + + + + + Save Path + + + + + Change... + + + + + Choose a Folder + + + + + Unable to write to directory. + + + + + ImgurUploader + + + Upload to Imgur + Ladda upp till Imgur + + + + Uploading Image + Laddar upp bild + + + + Copy URL + Kopiera URL + + + + Open URL + Öppna URL + + + + Delete image + Radera bild + + + + Image to Clipboard. + Bild till klippbord. + + + + + Unable to open the URL. + Kunde inte öppna URL. + + + + URL copied to clipboard. + URL kopierad till klippbord. + + + + Screenshot copied to clipboard. + Skärmklipp kopierat till klippbord. + + + + ImgurUploaderTool + + + Image Uploader + Bilduppladdare + + + + Upload the selection to Imgur + Ladda upp skärmklipp till Imgur + + + + InfoWindow + + + About + Om + + + + SPACEBAR + + + + + Right Click + Högerklick + + + + Mouse Wheel + Scrollhjul + + + + Move selection 1px + Flytta urval 1px + + + + Resize selection 1px + Ändra storlek urval 1px + + + + Quit capture + Stäng skärmavbildning + + + + Copy to clipboard + Kopiera till klippbord + + + + Save selection as a file + Spara urval som fil + + + + Undo the last modification + Ångra senaste ändringen + + + + Toggle visibility of sidebar with options of the selected tool + Ändra synlighet för sidomeny med alternativ för det valda verktyget + + + + Show color picker + Visa färgväljare + + + + Change the tool's thickness + Ändra verktygets tjocklek + + + + Available shortcuts in the screen capture mode. + Tillgängliga kortkommandon i skärmklippsläge. + + + + Key + Tangent + + + + Description + Beskrivning + + + + <u><b>License</b></u> + <u><b>Licens</b></u> + + + + <u><b>Version</b></u> + <u><b>Version</b></u> + + + + <u><b>Shortcuts</b></u> + <u><b>Genvägar</b></u> + + + + LineTool + + + Line + Linje + + + + Set the Line as the paint tool + Välj linje som ritverktyg + + + + MarkerTool + + + Marker + Överstrykningspenna + + + + Set the Marker as the paint tool + Välj Överstrykningspenna som ritverktyg + + + + MoveTool + + + Move + Flytta + + + + Move the selection area + Flytta urvalsområde + + + + PencilTool + + + Pencil + Penna + + + + Set the Pencil as the paint tool + Välj Penna som ritverktyg + + + + PinTool + + + Pin Tool + Fäst + + + + Pin image on the desktop + Fäst bilden på skrivbordet + + + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + + + + + QObject + + + Save Error + Spara fel + + + + + Capture saved as + Urval sparad som + + + + Capture saved to clipboard. + + + + + Capture saved to clipboard + Urval sparat till klippbord + + + + + Error trying to save as + Fel vid spara som + + + + + + + + Unable to connect via DBus + Kunde inte ansluta via DBus + + + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + + Error + Fel + + + + Unable to write in + Kunde inte skriva i + + + + Options + + + + + Arguments + + + + + arguments + + + + + Usage + + + + + options + + + + + Per default runs Flameshot in the background and adds a tray icon for configuration. + + + + + URL copied to clipboard. + URL kopierad till klippbord. + + + + RectangleTool + + + Rectangle + Rektangel + + + + Set the Rectangle as the paint tool + Välj Rektangel som ritverktyg + + + + RedoTool + + + Redo + Upprepa + + + + Redo the next modification + Upprepa nästa ändring + + + + SaveTool + + + Save + Spara + + + + Save the capture + Spara skärmklippet + + + + ScreenGrabber + + + Unable to capture screen + Kunde inte avbilda skärmen + + + + SelectionTool + + + Rectangular Selection + Rektangulärt urval + + + + Set Selection as the paint tool + Välj Urval som ritverktyg + + + + SidePanelWidget + + + Active thickness: + Aktiv tjocklek: + + + + Active color: + Aktiv färg: + + + + Press ESC to cancel + Tryck ESC för att avbryta + + + + Grab Color + Hämta färg + + + + SizeIndicatorTool + + + Selection Size Indicator + Storleksindikator urval + + + + Show the dimensions of the selection (X Y) + Visa dimensionerna av urval (X Y) + + + + StrftimeChooserWidget + + + Century (00-99) + Århundrade (00-99) + + + + Year (00-99) + År (00-99) + + + + Year (2000) + År (2000) + + + + Month Name (jan) + Månad namn (jan) + + + + Month Name (january) + Månad namn (januari) + + + + Month (01-12) + Månad (01-12) + + + + Week Day (1-7) + Veckodag (1-7) + + + + Week (01-53) + Vecka (1-53) + + + + Day Name (mon) + Dag namn (mån) + + + + Day Name (monday) + Dag namn (måndag) + + + + Day (01-31) + Dag (01-31) + + + + Day of Month (1-31) + Dag i månad (1-31) + + + + Day (001-366) + Dag (001-366) + + + + Time (%H-%M-%S) + Tid (%H-%M-%S) + + + + Time (%H-%M) + Tid (%H-%M) + + + + Hour (00-23) + Timme (00-23) + + + + Hour (01-12) + Timme (01-12) + + + + Minute (00-59) + Minut (00-59) + + + + Second (00-59) + Sekund (00-59) + + + + Full Date (%m/%d/%y) + Fullständingt datum (%m/%d/%y) + + + + Full Date (%Y-%m-%d) + Fullständigt datum (%Y-%m-%d) + + + + SystemNotification + + + Flameshot Info + Flameshot information + + + + TextConfig + + + StrikeOut + Överstruken + + + + Underline + Understruken + + + + Bold + Fet + + + + Italic + Kursiv + + + + TextTool + + + Text + Text + + + + Add text to your capture + Lägg till text på ditt skärmklipp + + + + UIcolorEditor + + + UI Color Editor + UI färgeditor + + + + Change the color moving the selectors and see the changes in the preview buttons. + Ändra färgen genom att röra reglagen och se ändringarna på förhandsgranskningsknapparna. + + + + Select a Button to modify it + Välj en knapp för att redigera den + + + + Main Color + Huvudfärg + + + + Click on this button to set the edition mode of the main color. + Klicka här för att redigera huvudfärg. + + + + Contrast Color + Kontrastfärg + + + + Click on this button to set the edition mode of the contrast color. + Klicka här för att redigera kontrastfärg. + + + + UndoTool + + + Undo + Ångra + + + + Undo the last modification + Ångra senaste ändringen + + + + UtilityPanel + + + Close + + + + + VisualsEditor + + + Opacity of area outside selection: + Opacitet för område utanför urval: + + + + Button Selection + Knappval + + + + Select All + Välj alla + + + diff --git a/translations/Internationalization_tr.ts b/data/translations/Internationalization_tr.ts similarity index 51% rename from translations/Internationalization_tr.ts rename to data/translations/Internationalization_tr.ts index aea50b5f..b10f5b52 100644 --- a/translations/Internationalization_tr.ts +++ b/data/translations/Internationalization_tr.ts @@ -4,12 +4,12 @@ AppLauncher - + App Launcher Uygulama Başlatıcı - + Choose an app to open the capture Yakalamayı açmak için bir uygulama seçin @@ -17,33 +17,33 @@ AppLauncherWidget - + Open With ile Aç - + Launch in terminal Terminalde aç - + Keep open after selection Seçimden sonra açık tutun - - + + Error Hata - + Unable to write in Yazma mümkün değil - + Unable to launch in terminal. Terminalde başlatılamadı. @@ -51,12 +51,12 @@ ArrowTool - + Arrow Ok - + Set the Arrow as the paint tool Oku çizim aracı olarak ayarlar @@ -64,60 +64,58 @@ BlurTool - Blur - Bulanıklık + Bulanıklık - Set Blur as the paint tool - Bulnıklığı boyama aracı olarak ayarlar + Bulnıklığı boyama aracı olarak ayarlar CaptureLauncher - + <b>Capture Mode</b> - + Rectangular Region - + Full Screen (All Monitors) - + No Delay - + second - + seconds - + Take new screenshot - + Area: - + Delay: @@ -125,12 +123,12 @@ CaptureWidget - + Unable to capture screen Ekran resmi alınamadı - + Select an area with the mouse, or press Esc to exit. Press Enter to capture the screen. Press Right Click to show the color picker. @@ -142,16 +140,34 @@ Renk seçiciyi göstermek için farenin sağ tuşuna tıklayın. Aracınızın kalınlığını değiştirmek için Fare Tekerleğini kullanın. Yan paneli açmak için Boşluk tuşuna basın. + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + CircleTool - + Circle Çember - + Set the Circle as the paint tool Çemberi boyama aracı olarak ayarlar @@ -159,27 +175,22 @@ Yan paneli açmak için Boşluk tuşuna basın. ConfigWindow - + Configuration Ayarlar - + Interface Arayüz - + Filename Editor Dosya Adı Düzenleyici - - Shortcuts - - - - + General Genel @@ -187,45 +198,44 @@ Yan paneli açmak için Boşluk tuşuna basın. Controller - + &Take Screenshot &Ekran Resmi Al - + &Open Launcher - + &Configuration &Ayarlar - - &Information - &Bilgi + + &About + - + &Information + &Bilgi + + + &Quit &Çıkış - - - &Latest Uploads - - CopyTool - + Copy Kopyala - + Copy the selection into the clipboard Seçimi panoya kopyalar @@ -233,7 +243,7 @@ Yan paneli açmak için Boşluk tuşuna basın. DBusUtils - + Unable to connect via DBus DBus ile bağlanılamadı @@ -241,12 +251,12 @@ Yan paneli açmak için Boşluk tuşuna basın. ExitTool - + Exit Çıkış - + Leave the capture screen Yakalama ekranından ayrıl @@ -254,451 +264,263 @@ Yan paneli açmak için Boşluk tuşuna basın. FileNameEditor - + Edit the name of your captures: Çekimlerinizin adını düzenleyin: - + Edit: Düzenle: - + Preview: Önizleme: - + Save Kaydet - + Saves the pattern Desenini kaydeder - + Reset Sıfırla - + Restores the saved pattern Kaydedilen deseni geri yükler - + Clear Temizle - + Deletes the name İsmi siler - - FilePathConfiguration - - - Screenshot path default: - - - - - Use fixed path for screenshots to save - - - - - Browse - - - - - Clear - Temizle - - - - Select default path for Screenshots - - - GeneneralConf - - + + Import Dışa aktar - - - + + + + Error Hata - + Unable to read file. Dosya okunamıyor. - - + + Unable to write file. Dosya yazılamıyor. - + Save File Dosyayı Kaydet - + Confirm Reset Sıfırlamayı Onayla - + Are you sure you want to reset the configuration? Ayarları sıfırlamak istediğinizden emin misiniz? - + Show help message Yardım mesajını göster - + Show the help message at the beginning in the capture mode. Yakalama modunda başında yardım mesajını gösterin. - - + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + + Show desktop notifications Masaüstü bildirimlerini göster - + Show tray icon Tepsi simgesini göster - + Show the systemtray icon Sistem tepsisi simgesini göster - + Configuration File Yapılandırma Dosyası - + Export Dışa aktar - + Reset Sıfırla - + Launch at startup Başlangıçta başlatın - - + Launch Flameshot Flameshot'ı başlat - - Show welcome message on launch + + Close after capture - - Close application after capture - - - - + Close after taking a screenshot - + Copy URL after upload - + Copy URL and close window after upload - - - Copy file path after save + + Save image after copy - - Upload storage + + Save image file after copying it - - Imgur storage + + Save Path - - S3 storage (require config.ini file with s3 credentials) - - - - - HistoryWidget - - - Latest Uploads + + Change... - - Screenshots history is empty + + Choose a Folder - - Copy URL - URL Kopyala - - - - URL copied to clipboard. - URL panoya kopyalandı. - - - - Open in browser + + Unable to write to directory. - - ImgS3Uploader - - - Uploading Image - Resim Yükleniyor - - - - Upload image to S3 - - - - - Delete image from S3 - - - - - Unable to remove screenshot from the remote storage. - - - - - Network error - - - - - Possibly it doesn't exist anymore - - - - - Do you want to remove screenshot from local history anyway? - - - - - S3 Creds URL is not found in your configuration file - - - - Copy URL - URL Kopyala - - - Open URL - URL Aç - - - Delete image - Resmi sil - - - Image to Clipboard. - Resim Pano'ya. - - - Unable to open the URL. - URL açılamıyor. - - - - URL copied to clipboard. - URL panoya kopyalandı. - - - - Deleting image... - - - - - Remove screenshot from history? - - - - Screenshot copied to clipboard. - Ekran görüntüsü panoya kopyalandı. - - - - ImgS3UploaderTool - - - Image Uploader - Resim Yükleme Aracı - - - - Upload the selection to S3 bucket - - - - - ImgUploader - - - Upload image to S3 - - - - - - Uploading Image - Resim Yükleniyor - - - - Upload image - - - - - Unable to open the URL. - URL açılamıyor. - - - - URL copied to clipboard. - URL panoya kopyalandı. - - - - Screenshot copied to clipboard. - Ekran görüntüsü panoya kopyalandı. - - - - Deleting image... - - - - - Copy URL - URL Kopyala - - - - Open URL - URL Aç - - - - Delete image - Resmi sil - - - - Image to Clipboard. - Resim Pano'ya. - - ImgurUploader - + Upload to Imgur Imgur'a yükle + Uploading Image - Resim Yükleniyor + Resim Yükleniyor + Copy URL - URL Kopyala + URL Kopyala + Open URL - URL Aç + URL Aç + Delete image - Resmi sil + Resmi sil + Image to Clipboard. - Resim Pano'ya. + Resim Pano'ya. - + + Unable to open the URL. URL açılamıyor. + URL copied to clipboard. - URL panoya kopyalandı. + URL panoya kopyalandı. + Screenshot copied to clipboard. - Ekran görüntüsü panoya kopyalandı. + Ekran görüntüsü panoya kopyalandı. ImgurUploaderTool - + Image Uploader Resim Yükleme Aracı - + Upload the selection to Imgur Seçimi Imgur'a yükler @@ -706,86 +528,110 @@ Yan paneli açmak için Boşluk tuşuna basın. InfoWindow - + About Hakkında + + SPACEBAR + + + + Right Click - Sağ Tık + Sağ Tık + Mouse Wheel - Fare Tekerleği + Fare Tekerleği + Move selection 1px - 1px seçimini hareket ettir + 1px seçimini hareket ettir + Resize selection 1px - 1px seçimini yeniden boyutlandır + 1px seçimini yeniden boyutlandır + Quit capture - Çıkış + Çıkış + Copy to clipboard - Panoya kopyala + Panoya kopyala + Save selection as a file - Seçimi dosya olarak kaydet + Seçimi dosya olarak kaydet + Undo the last modification - Son değişikliği geri al + Son değişikliği geri al + + Toggle visibility of sidebar with options of the selected tool + + + + Show color picker - Renk seçici göster + Renk seçici göster + Change the tool's thickness - Araç kalınlığını değiştirin + Araç kalınlığını değiştirin + Available shortcuts in the screen capture mode. - Ekran yakalama modunda kullanılabilir kısayollar. + Ekran yakalama modunda kullanılabilir kısayollar. + Key - Anahtar + Anahtar + Description - Tanım + Tanım - + <u><b>License</b></u> <u><b>Lisans</b></u> - + <u><b>Version</b></u> <u><b>Sürüm</b></u> + <u><b>Shortcuts</b></u> - <u><b>Kısayollar</b></u> + <u><b>Kısayollar</b></u> LineTool - + Line Çizgi - + Set the Line as the paint tool Çizgiyi boyama aracı olarak ayarlar @@ -793,12 +639,12 @@ Yan paneli açmak için Boşluk tuşuna basın. MarkerTool - + Marker İşaretleyici - + Set the Marker as the paint tool İşaretleyiciyi boyama aracı olarak ayarlar @@ -806,12 +652,12 @@ Yan paneli açmak için Boşluk tuşuna basın. MoveTool - + Move Oynat - + Move the selection area Seçim alanını hareket ettir @@ -819,12 +665,12 @@ Yan paneli açmak için Boşluk tuşuna basın. PencilTool - + Pencil Kurşun Kalem - + Set the Pencil as the paint tool Kurşun Kalemi çizim aracı olarak ayarlar @@ -832,169 +678,253 @@ Yan paneli açmak için Boşluk tuşuna basın. PinTool - + Pin Tool Pin Aracı - + Pin image on the desktop Masaüstündeki PIN resmi + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + + + QObject - + Save Error Kaydetme Hatası - - + + Capture saved as Yakalama farklı kaydedildi - + + Capture saved to clipboard. + + + + Capture saved to clipboard Yakalama panoya kaydedildi - - + + Error trying to save as Farklı kaydetmeye çalışılırken hata oluştu - - Save screenshot - - - - - Capture saved and copied to the clipboard as - - - - - - - - + + + + + Unable to connect via DBus DBus ile bağlanılamadı - + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + Error Hata - + Unable to write in Yazma mümkün değil - + URL copied to clipboard. URL panoya kopyalandı. - - Hi, I'm already running! -You can find me in the system tray. + + Options - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. + + Arguments - - Resize selection right 1px + + arguments - - Resize selection left 1px + + Usage - - Resize selection up 1px + + options - - Resize selection down 1px + + Per default runs Flameshot in the background and adds a tray icon for configuration. - - - Toggle side panel - - - - - Move selection left 1px - - - - - Move selection right 1px - - - - - Move selection up 1px - - - - - Move selection down 1px - - - - - Quit capture - Çıkış - - - - Screenshot history - - - - - Capture screen - - - - Move selection 1px - 1px seçimini hareket ettir - - - - Show color picker - Renk seçici göster - - - - Change the tool's thickness - Araç kalınlığını değiştirin - RectangleTool - + Rectangle Dikdörtgen - + Set the Rectangle as the paint tool Dikdörtgeni boyama aracı olarak ayarlar @@ -1002,12 +932,12 @@ You can find me in the system tray. RedoTool - + Redo Yeniden - + Redo the next modification @@ -1015,12 +945,12 @@ You can find me in the system tray. SaveTool - + Save Kaydet - + Save the capture Yakalamayı kaydet @@ -1028,7 +958,7 @@ You can find me in the system tray. ScreenGrabber - + Unable to capture screen Ekran resmi alınamadı @@ -1036,76 +966,35 @@ You can find me in the system tray. SelectionTool - + Rectangular Selection Dikdörtgen Seçim - + Set Selection as the paint tool Seçimi boyama aracı olarak ayarlar - - SetShortcutDialog - - - Set Shortcut - - - - - Enter new shortcut to change - - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - - - - - ShortcutsWidget - - - Hot Keys - - - - - Available shortcuts in the screen capture mode. - Ekran yakalama modunda kullanılabilir kısayollar. - - - - Description - Tanım - - - - Key - Anahtar - - SidePanelWidget - + Active thickness: - + Active color: Aktif Renk: - + Press ESC to cancel Çıkmak için ESC'ye tıklayın - + Grab Color @@ -1113,12 +1002,12 @@ You can find me in the system tray. SizeIndicatorTool - + Selection Size Indicator Seçim Boyutu Göstergesi - + Show the dimensions of the selection (X Y) Seçimin boyutlarını gösterir (X Y) @@ -1126,107 +1015,107 @@ You can find me in the system tray. StrftimeChooserWidget - + Century (00-99) Ülke (00-99) - + Year (00-99) Yıl (00-99) - + Year (2000) Yıl (2000) - + Month Name (jan) Ay Adı (Oca) - + Month Name (january) Ay Adı (Ocak) - + Month (01-12) Ay (01-12) - + Week Day (1-7) Haftanın Günü (1-7) - + Week (01-53) Hafta (01-53) - + Day Name (mon) Gün Adı (pzt) - + Day Name (monday) Gün Adı (pazartesi) - + Day (01-31) Gün (01-31) - + Day of Month (1-31) Ayın Günü (1-31) - + Day (001-366) Gün (001-366) - + Time (%H-%M-%S) - + Time (%H-%M) - + Hour (00-23) Saat (00-23) - + Hour (01-12) Saat (01-12) - + Minute (00-59) Dakika (00-59) - + Second (00-59) Saniye (00-59) - + Full Date (%m/%d/%y) Tam Tarih (%d/%m/%y) - + Full Date (%Y-%m-%d) Tam Tarih (%d-%m-%Y) @@ -1234,7 +1123,7 @@ You can find me in the system tray. SystemNotification - + Flameshot Info Flameshot Hakkında @@ -1242,22 +1131,22 @@ You can find me in the system tray. TextConfig - + StrikeOut - + Underline Altçizgi - + Bold Kalın - + Italic Eğik @@ -1265,12 +1154,12 @@ You can find me in the system tray. TextTool - + Text Metin - + Add text to your capture Bilgisayardan yazı ekle @@ -1278,37 +1167,37 @@ You can find me in the system tray. UIcolorEditor - + UI Color Editor UI Renk Editörü - + Change the color moving the selectors and see the changes in the preview buttons. Seçicileri hareket ettiren rengi değiştirin ve önizleme düğmelerindeki değişiklikleri görün. - + Select a Button to modify it Değiştirmek için bir buton seçin - + Main Color Ana Renk - + Click on this button to set the edition mode of the main color. Ana rengin baskı modunu ayarlamak için bu butonu tıklayın. - + Contrast Color Kontrast Renk - + Click on this button to set the edition mode of the contrast color. Kontrast renginin baskı modunu ayarlamak için bu butonu tıklayın. @@ -1316,12 +1205,12 @@ You can find me in the system tray. UndoTool - + Undo Geri - + Undo the last modification Son değişikliği geri al @@ -1329,25 +1218,25 @@ You can find me in the system tray. UtilityPanel - - Hide + + Close VisualsEditor - + Opacity of area outside selection: Seçimin dışındaki alanın opaklığı: - + Button Selection Buton Seçimi - + Select All Tümünü Seç diff --git a/data/translations/Internationalization_uk.ts b/data/translations/Internationalization_uk.ts new file mode 100644 index 00000000..d037e18e --- /dev/null +++ b/data/translations/Internationalization_uk.ts @@ -0,0 +1,1244 @@ + + + + + AppLauncher + + + App Launcher + Запуск програми + + + + Choose an app to open the capture + Виберіть програму, щоб відкрити знімок + + + + AppLauncherWidget + + + Open With + Відкрити у + + + + Launch in terminal + Запустити у терміналі + + + + Keep open after selection + Не закривати після вибору + + + + + Error + Помилка + + + + Unable to write in + Не вдалось записати + + + + Unable to launch in terminal. + Не вдалось запустити у терміналі. + + + + ArrowTool + + + Arrow + Стрілка + + + + Set the Arrow as the paint tool + Вибрати стрілку інструментом малювання + + + + BlurTool + + Blur + Розмиття + + + Set Blur as the paint tool + Вибрати розмиття інструментом малювання + + + + CaptureLauncher + + + <b>Capture Mode</b> + + + + + Rectangular Region + + + + + Full Screen (All Monitors) + + + + + No Delay + + + + + second + + + + + seconds + + + + + Take new screenshot + + + + + Area: + + + + + Delay: + + + + + CaptureWidget + + + Unable to capture screen + Не вдалось захопити екран + + + + Select an area with the mouse, or press Esc to exit. +Press Enter to capture the screen. +Press Right Click to show the color picker. +Use the Mouse Wheel to change the thickness of your tool. +Press Space to open the side panel. + Виберіть область мишкою або натисніть Esc для виходу. +Натисніть Enter щоб захопити екран. +Натисніть праву кнопку миші, щоб показати вибір кольору. +Використовуйте колесо миші для зміни товщини вибраного інструменту. +Натисніть Пробіл, щоб відкрити бічну панель. + + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + + + + CircleTool + + + Circle + Коло + + + + Set the Circle as the paint tool + Вибрати коло інструментом малювання + + + + ConfigWindow + + + Configuration + Налаштування + + + + Interface + Інтерфейс + + + + Filename Editor + Редактор імені файлів + + + + General + Загальне + + + + Controller + + + &Take Screenshot + &Зробити знімок + + + + &Open Launcher + + + + + &Configuration + &Налаштування + + + + &About + + + + &Information + &Інформація + + + + &Quit + Ви&йти + + + + CopyTool + + + Copy + Копіювати + + + + Copy the selection into the clipboard + Копіювати вибране до буферу обміну + + + + DBusUtils + + + Unable to connect via DBus + Не вдалось підключитись через DBus + + + + ExitTool + + + Exit + Вийти + + + + Leave the capture screen + Вийти із захоплення екрану + + + + FileNameEditor + + + Edit the name of your captures: + Відредагуйте ім'я ваших знімків: + + + + Edit: + Шаблон: + + + + Preview: + Перегляд: + + + + Save + Зберегти + + + + Saves the pattern + Зберегти шаблон + + + + Reset + Скинути + + + + Restores the saved pattern + Відновлює збережений шаблон + + + + Clear + Очистити + + + + Deletes the name + Видаляє ім'я + + + + GeneneralConf + + + + Import + Імпорт + + + + + + + Error + Помилка + + + + Unable to read file. + Не вдалось прочитати файл. + + + + + Unable to write file. + Не вдалось записати файл. + + + + Save File + Зберегти файл + + + + Confirm Reset + Підтвердити скидання + + + + Are you sure you want to reset the configuration? + Ви дійсно хочете скинути налаштування? + + + + Show help message + Показувати повідомлення довідки + + + + Show the help message at the beginning in the capture mode. + Показувати повідомлення довідки на початку режиму захоплення. + + + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + + + Show desktop notifications + Показувати повідомлення + + + + Show tray icon + Показувати значок на панелі + + + + Show the systemtray icon + Показувати значок на панелі повідомленнь + + + + Configuration File + Файл налаштувань + + + + Export + Експорт + + + + Reset + Скинути + + + + Launch at startup + Запускати при старті системи + + + + Launch Flameshot + Запускати Flameshot + + + + Close after capture + + + + + Close after taking a screenshot + + + + + Copy URL after upload + + + + + Copy URL and close window after upload + + + + + Save image after copy + + + + + Save image file after copying it + + + + + Save Path + + + + + Change... + + + + + Choose a Folder + + + + + Unable to write to directory. + + + + + ImgurUploader + + + Upload to Imgur + Вивантажити до Imgur + + + + Uploading Image + Вивантаження зображення + + + + Copy URL + Скопіювати URL + + + + Open URL + Відкрити URL + + + + Delete image + Видалити зображення + + + + Image to Clipboard. + Зображення до буферу обміну. + + + + + Unable to open the URL. + Не вдалось відкрити URL. + + + + URL copied to clipboard. + URL скопійовано до буферу обміну. + + + + Screenshot copied to clipboard. + Знімок скопійовано до буферу обміну. + + + + ImgurUploaderTool + + + Image Uploader + Вивантаження зображень + + + + Upload the selection to Imgur + Вивантажити вибране до Imgur + + + + InfoWindow + + + About + Про... + + + + SPACEBAR + + + + + Right Click + Права кнопка миші + + + + Mouse Wheel + Колесо миші + + + + Move selection 1px + Перемістити виділення на 1px + + + + Resize selection 1px + Змінити розмір виділення на 1px + + + + Quit capture + Вийти із захоплення екрану + + + + Copy to clipboard + Копіювати до буферу обміну + + + + Save selection as a file + Зберегти вибране до файлу + + + + Undo the last modification + Скасувати останню зміну + + + + Toggle visibility of sidebar with options of the selected tool + Переключити видимість бічної панелі + + + + Show color picker + Показати вибір кольору + + + + Change the tool's thickness + Змінити товщину інструменту + + + + Available shortcuts in the screen capture mode. + Доступні комбінації клавіш у режимі захоплення екрану. + + + + Key + Клавіша + + + + Description + Опис + + + + <u><b>License</b></u> + <u><b>Ліцензія</b></u> + + + + <u><b>Version</b></u> + <u><b>Версія</b></u> + + + + <u><b>Shortcuts</b></u> + <u><b>Комбінації клавіш</b></u> + + + + LineTool + + + Line + Лінія + + + + Set the Line as the paint tool + Вибрати лінію інструментом малювання + + + + MarkerTool + + + Marker + Маркер + + + + Set the Marker as the paint tool + Вибрати маркер інструментом малювання + + + + MoveTool + + + Move + Переміщення + + + + Move the selection area + Перемістити вибір + + + + PencilTool + + + Pencil + Олівець + + + + Set the Pencil as the paint tool + Вибрати олівець інструментом малювання + + + + PinTool + + + Pin Tool + Прикріплення + + + + Pin image on the desktop + Прикріпити зображення до робочого столу + + + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + + + + + QObject + + + Save Error + Помилка збереження + + + + + Capture saved as + Знімок збережено як + + + + Capture saved to clipboard. + + + + + Capture saved to clipboard + Знімок збережено до буферу обміну + + + + + Error trying to save as + Помилка під час збереження як + + + + + + + + Unable to connect via DBus + Не вдалось підключитись через DBus + + + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + + Error + Помилка + + + + Unable to write in + Не вдалось зберегти + + + + URL copied to clipboard. + URL скопійовано до буферу обміну. + + + + Options + + + + + Arguments + + + + + arguments + + + + + Usage + + + + + options + + + + + Per default runs Flameshot in the background and adds a tray icon for configuration. + + + + + RectangleTool + + + Rectangle + Прямокутник + + + + Set the Rectangle as the paint tool + Вибрати прямокутник інструментом малювання + + + + RedoTool + + + Redo + Повторити + + + + Redo the next modification + Повторити наступну зміну + + + + SaveTool + + + Save + Зберегти + + + + Save the capture + Зберегти знімок + + + + ScreenGrabber + + + Unable to capture screen + Не вдалось захопити екран + + + + SelectionTool + + + Rectangular Selection + Прямокутне виділення + + + + Set Selection as the paint tool + Вибрати прямокутне виділення інструментом малювання + + + + SidePanelWidget + + + Active thickness: + Активна товщина: + + + + Active color: + Активний колір: + + + + Press ESC to cancel + Натисніть Esc для скасування + + + + Grab Color + Визначити колір з екрану + + + + SizeIndicatorTool + + + Selection Size Indicator + Індикатор розміру виділення + + + + Show the dimensions of the selection (X Y) + Показує розмір виділення (X Y) + + + + StrftimeChooserWidget + + + Century (00-99) + Століття (00-99) + + + + Year (00-99) + Рік (00-99) + + + + Year (2000) + Рік (2000) + + + + Month Name (jan) + Назва місяця (січ) + + + + Month Name (january) + Назва місяця (січень) + + + + Month (01-12) + Місяць (01-12) + + + + Week Day (1-7) + День тижня (1-7) + + + + Week (01-53) + Тиждень (01-53) + + + + Day Name (mon) + Назва дня тижня (пн) + + + + Day Name (monday) + Назва дня тижня (понеділок) + + + + Day (01-31) + День (01-31) + + + + Day of Month (1-31) + День місяця (1-31) + + + + Day (001-366) + День (001-366) + + + + Time (%H-%M-%S) + Час (%H-%M-%S) + + + + Time (%H-%M) + Час (%H-%M) + + + + Hour (00-23) + Година (00-23) + + + + Hour (01-12) + Година (01-12) + + + + Minute (00-59) + Хвилина (00-59) + + + + Second (00-59) + Секунда (00-59) + + + + Full Date (%m/%d/%y) + Повна дата (%m/%d/%y) + + + + Full Date (%Y-%m-%d) + Повна дата (%Y-%m-%d) + + + + SystemNotification + + + Flameshot Info + Довідка Flameshot + + + + TextConfig + + + StrikeOut + Перекреслення + + + + Underline + Підкреслення + + + + Bold + Жирний + + + + Italic + Курсив + + + + TextTool + + + Text + Текст + + + + Add text to your capture + Додати текст на знімок + + + + UIcolorEditor + + + UI Color Editor + Редактор кольору інтерфейсу + + + + Change the color moving the selectors and see the changes in the preview buttons. + Змініть колір пересуваючи виділення та перегляньте зміни у кнопках перегляду. + + + + Select a Button to modify it + Виберіть кнопку, щоб змінити її + + + + Main Color + Основний колір + + + + Click on this button to set the edition mode of the main color. + Натисніть на цю кнопку, щоб включити режим редагування основного кольору. + + + + Contrast Color + Контрасний колір + + + + Click on this button to set the edition mode of the contrast color. + Натисніть на цю кнопку, щоб включити режим редагування контрасного кольору. + + + + UndoTool + + + Undo + Скасувати + + + + Undo the last modification + Скасувати останню зміну + + + + UtilityPanel + + + Close + + + + + VisualsEditor + + + Opacity of area outside selection: + Нерозорість області за межами вибору: + + + + Button Selection + Вибір кнопок + + + + Select All + Вибрати все + + + diff --git a/data/translations/Internationalization_zh_CN.ts b/data/translations/Internationalization_zh_CN.ts new file mode 100644 index 00000000..9707b663 --- /dev/null +++ b/data/translations/Internationalization_zh_CN.ts @@ -0,0 +1,1251 @@ + + + + + AppLauncher + + + App Launcher + 应用启动器 + + + + Choose an app to open the capture + 选择一个应用打开此截图 + + + + AppLauncherWidget + + + Open With + 打开 + + + + Launch in terminal + 在终端中启动 + + + + Keep open after selection + 选择后保持此窗口打开 + + + + + Error + 错误 + + + + Unable to launch in terminal. + 无法在终端中启动。 + + + + Unable to write in + 无法写入 + + + + ArrowTool + + + Arrow + 箭头 + + + + Set the Arrow as the paint tool + 选择箭头作为绘画工具 + + + + BlurTool + + Blur + 模糊 + + + Set Blur as the paint tool + 选择模糊作为绘画工具 + + + + CaptureLauncher + + + <b>Capture Mode</b> + <b>捕获模式</b> + + + + Rectangular Region + 方形区域 + + + + Full Screen (All Monitors) + 全屏(所有显示器) + + + + No Delay + 无延迟 + + + + second + + + + + seconds + + + + + Take new screenshot + 获取新屏幕截图 + + + + Area: + 区域: + + + + Delay: + 延迟: + + + + CaptureWidget + + + Unable to capture screen + 无法捕获屏幕 + 无法捕获屏幕 + + + + Select an area with the mouse, or press Esc to exit. +Press Enter to capture the screen. +Press Right Click to show the color picker. +Use the Mouse Wheel to change the thickness of your tool. +Press Space to open the side panel. + 用鼠标选择一个区域,或按 Esc 退出。 +按 Enter 键捕捉屏幕。 +按住鼠标右键显示颜色选择器。 +使用鼠标滚轮来改变绘画工具的宽度。 +按下空格键以打开侧边面板。 + + + + Tool Settings + 工具设置 + + + + CircleCountTool + + + Circle Counter + 圆圈计数 + + + + Add an autoincrementing counter bubble + 添加数字自动递增的计数圆圈 + + + + CircleTool + + + Circle + 圆环 + + + + Set the Circle as the paint tool + 选择圆环作为绘画工具 + + + + ConfigWindow + + + Configuration + 配置 + + + + Interface + 界面 + + + + Filename Editor + 文件名编辑器 + + + + General + 常规 + + + + Controller + + + &Take Screenshot + 进行截图(&T) + + + + &Open Launcher + 打开启动器(&O) + + + + &Configuration + 配置(&C) + + + + &About + 关于(&A) + + + &Information + 信息(&I) + + + + &Quit + 退出(&Q) + + + + CopyTool + + + Copy + 复制 + + + + Copy the selection into the clipboard + 复制选择到剪贴板 + + + + DBusUtils + + + Unable to connect via DBus + 无法通过 DBus 进行连接 + + + + ExitTool + + + Exit + 退出 + + + + Leave the capture screen + 离开屏幕捕获 + + + + FileNameEditor + + + Edit the name of your captures: + 编辑您的截图名称: + + + + Edit: + 编辑器: + + + + Preview: + 预览: + + + + Save + 保存 + + + + Saves the pattern + 保存样式 + + + + Reset + 恢复 + + + + Restores the saved pattern + 恢复保存的样式 + + + + Clear + 清空 + + + + Deletes the name + 删除这个名字 + + + + GeneneralConf + + + Show help message + 显示帮助文档 + + + + Show the help message at the beginning in the capture mode. + 在捕获之前显示帮助信息。 + + + + + Show desktop notifications + 显示桌面通知 + + + + Show tray icon + 显示托盘图标 + + + + Show the systemtray icon + 显示任务栏图标 + + + + + Import + 导入 + + + + + + + Error + 错误 + + + + Unable to read file. + 无法读取文件。 + + + + + Unable to write file. + 无法写入文件。 + + + + Save File + 保存到文件 + + + + Confirm Reset + 确定重置 + + + + Are you sure you want to reset the configuration? + 你确定你想要重置配置? + + + + Show the side panel button + 显示侧边栏按钮 + + + + Show the side panel toggle button in the capture mode. + 在捕获模式下显示侧边栏切换按钮。 + + + + Configuration File + 配置文件 + + + + Export + 导出 + + + + Reset + 重置 + + + + Launch at startup + 开机时启动 + + + + Launch Flameshot + 启动 Flameshot + + + + Close after capture + 捕获后关闭 + + + + Close after taking a screenshot + 获取屏幕截图后关闭 + + + + Copy URL after upload + 上传后复制 URL + + + + Copy URL and close window after upload + 上传后复制 URL 并关闭窗口 + + + + Save image after copy + 复制后保存图像 + + + + Save image file after copying it + 复制到剪贴板后保存图像文件 + + + + Save Path + 保存路径 + + + + Change... + 变更… + + + + Choose a Folder + 选择文件夹 + + + + Unable to write to directory. + 无法写入目录。 + + + + ImgurUploader + + + Upload to Imgur + 上传到Imgur + + + + Uploading Image + 正在上传 + + + + Copy URL + 复制链接 + + + + Open URL + 打开链接 + + + + Delete image + 删除图像 + + + + Image to Clipboard. + 保存文件到剪贴板。 + + + + + Unable to open the URL. + 无法打开此链接。 + + + + URL copied to clipboard. + 复制链接到剪贴板。 + + + + Screenshot copied to clipboard. + 截图复制到剪贴板。 + + + + ImgurUploaderTool + + + Image Uploader + 上传图片 + + + + Upload the selection to Imgur + 上传选择到 Imgur + + + + InfoWindow + + + About + 关于 + + + + SPACEBAR + 空格 + + + + Right Click + 右键 + + + + Mouse Wheel + 鼠标滑轮 + + + + Move selection 1px + 移动选择 1 px + + + + Resize selection 1px + 调整选择大小 1 px + + + + Quit capture + 退出捕获 + + + + Copy to clipboard + 复制到剪贴板 + + + + Save selection as a file + 将选择保存为文件 + + + + Undo the last modification + 撤消上次修改 + + + + Toggle visibility of sidebar with options of the selected tool + 切换侧边栏可见性 + + + + Show color picker + 显示颜色选择器 + + + + Change the tool's thickness + 改变工具的厚度 + + + + Key + + + + + Description + 描述 + + + + <u><b>License</b></u> + <u><b>许可证</b></u> + + + + <u><b>Version</b></u> + <u><b>版本</b></u> + + + + <u><b>Shortcuts</b></u> + <u><b>快捷键</b></u> + + + + Available shortcuts in the screen capture mode. + 屏幕捕捉模式中的可用快捷键。 + + + + LineTool + + + Line + 直线 + + + + Set the Line as the paint tool + 将直线线设置为绘画工具 + + + + MarkerTool + + + Marker + 标记 + + + + Set the Marker as the paint tool + 将标记设置为绘画工具 + + + + MoveTool + + + Move + 移动 + + + + Move the selection area + 移动选择区域 + + + + PencilTool + + + Pencil + 铅笔 + + + + Set the Pencil as the paint tool + 将铅笔设置为绘画工具 + + + + PinTool + + + Pin Tool + 贴图工具 + + + + Pin image on the desktop + 在桌面上固定图像 + + + + PixelateTool + + + Pixelate + 像素化 + + + + Set Pixelate as the paint tool + 将像素化设置为绘画工具 + + + + QObject + + + Save Error + 保存错误 + + + + + Capture saved as + 捕获已保存为 + + + + Capture saved to clipboard. + 捕获已保存至剪贴板。 + + + + Capture saved to clipboard + 捕获已保存至剪贴板 + + + + + Error trying to save as + 尝试另存为时出错 + + + + + + + + Unable to connect via DBus + 无法通过DBus进行连接 + + + + Powerful yet simple to use screenshot software. + 强大又易用的屏幕截图软件。 + + + + See + 参见 + + + + Capture the entire desktop. + 捕获整个桌面。 + + + + Open the capture launcher. + 打开截图启动器。 + + + + Start a manual capture in GUI mode. + 以图形界面模式进行手动截图。 + + + + Configure + 配置 + + + + Capture a single screen. + 捕获单个屏幕。 + + + + Path where the capture will be saved + 截图保存路径 + + + + Save the capture to the clipboard + 将截图保存至剪贴板 + + + + Delay time in milliseconds + 延迟时间,以毫秒计 + + + + Set the filename pattern + 设置文件名模式 + + + + Enable or disable the trayicon + 启用或禁用托盘图标 + + + + Enable or disable run at startup + 启用或禁用开机启动 + + + + Show the help message in the capture mode + 在捕获模式中显示帮助信息 + + + + Define the main UI color + 定义用户界面主颜色 + + + + Define the contrast UI color + 定义用户界面对比色 + + + + Print raw PNG capture + 输出原始 PNG 图像 + + + + Define the screen to capture + 定义要捕获的屏幕 + + + + default: screen containing the cursor + 默认:包含鼠标指针的屏幕 + + + + Screen number + 屏幕编号 + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + 颜色无效,该选项支持以下格式: +- #RGB(R、G、B 每项均为单个十六进制数字) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- 常用英文颜色名称,如“blue”或“red” +您可能需要对 # 字符进行转义,如“\#FFF” + + + + Invalid delay, it must be higher than 0 + 无效的延迟时间,数字必须大于0 + + + + Invalid screen number, it must be non negative + 无效的屏幕编号,编号不能为负数 + + + + Invalid path, it must be a real path in the system + 无效的路径,必须为系统中真实存在的路径 + + + + Invalid value, it must be defined as 'true' or 'false' + 无效的值,必须指定“true”或“false” + + + + Error + 错误 + + + + Unable to write in + 无法写入 + + + + URL copied to clipboard. + URL 已复制到剪贴板。 + + + + Options + 选项 + + + + Arguments + 参数 + + + + arguments + 参数 + + + + Usage + 用法 + + + + options + 选项 + + + + Per default runs Flameshot in the background and adds a tray icon for configuration. + 默认情况下,火焰截图启动后将在后台运行,并在托盘显示一个图标。 + + + + RectangleTool + + + Rectangle + 实心矩形 + + + + Set the Rectangle as the paint tool + 将实心矩形设置为绘画工具 + + + + RedoTool + + + Redo + 重做 + + + + Redo the next modification + 重做上次修改 + + + + SaveTool + + + Save + 保存 + + + + Save the capture + 保存捕获 + + + + ScreenGrabber + + + Unable to capture screen + 无法捕获屏幕 + + + + SelectionTool + + + Rectangular Selection + 矩形选择 + + + + Set Selection as the paint tool + 将矩形选择设置为绘画工具 + + + + SidePanelWidget + + + Active thickness: + 当前宽度: + + + + Active color: + 活动颜色: + + + + Press ESC to cancel + 按下 ESC 键以取消 + + + + Grab Color + 获取颜色 + + + + SizeIndicatorTool + + + Selection Size Indicator + 选择尺寸指示 + + + + Show the dimensions of the selection (X Y) + 显示选择的尺寸 (X Y) + + + + StrftimeChooserWidget + + + Century (00-99) + 世纪(00-99) + + + + Year (00-99) + 年(00-99) + + + + Year (2000) + 年(2000) + + + + Month Name (jan) + 月(1月 - 12月) + + + + Month Name (january) + 月(一月 - 十二月) + + + + Month (01-12) + 月 (01-12) + + + + Week Day (1-7) + 周内的日(1-7) + + + + Week (01-53) + 周(01-53) + + + + Day Name (mon) + 星期(一 - 七) + + + + Day Name (monday) + 星期(星期一 - 星期日) + + + + Day (01-31) + 天(01-31) + + + + Day of Month (1-31) + 一月中的某天(1-31) + + + + Day (001-366) + 天(001-366) + + + + Time (%H-%M-%S) + 时间(%H-%M-%S) + + + + Time (%H-%M) + 时间(%H-%M) + + + + Hour (00-23) + 小时(00-23) + + + + Hour (01-12) + 小时(01-12) + + + + Minute (00-59) + 分钟(00-59) + + + + Second (00-59) + 秒(00-59) + + + + Full Date (%m/%d/%y) + 完整日期(%m/%d/%y) + + + + Full Date (%Y-%m-%d) + 完整日期(%Y-%m-%d) + + + + SystemNotification + + + Flameshot Info + Flameshot 消息 + + + + TextConfig + + + StrikeOut + 删除线 + + + + Underline + 下划线 + + + + Bold + 粗体 + + + + Italic + 斜体 + + + + TextTool + + + Text + 文本 + + + + Add text to your capture + 在您的捕获中添加文本 + + + + UIcolorEditor + + + UI Color Editor + 用户界面颜色编辑器 + + + + Change the color moving the selectors and see the changes in the preview buttons. + 移动颜色选择并在预览按钮查看。 + + + + Select a Button to modify it + 选择一个按钮以进行修改 + + + + Main Color + 主色 + + + + Click on this button to set the edition mode of the main color. + 点击按钮设置主色。 + + + + Contrast Color + 对比色 + + + + Click on this button to set the edition mode of the contrast color. + 点击按钮设置对比色。 + + + + UndoTool + + + Undo + 撤消 + + + + Undo the last modification + 撤消上次修改 + + + + UtilityPanel + + + Close + 关闭 + + + + VisualsEditor + + + Opacity of area outside selection: + 选中区域之外的不透明度: + + + + Button Selection + 按钮选择 + + + + Select All + 全选 + + + diff --git a/translations/Internationalization_zh_TW.ts b/data/translations/Internationalization_zh_TW.ts similarity index 51% rename from translations/Internationalization_zh_TW.ts rename to data/translations/Internationalization_zh_TW.ts index a08c1b71..ec754add 100644 --- a/translations/Internationalization_zh_TW.ts +++ b/data/translations/Internationalization_zh_TW.ts @@ -4,12 +4,12 @@ AppLauncher - + App Launcher 應用程式啟動器 - + Choose an app to open the capture 選擇一個程式打開此截圖 @@ -17,33 +17,33 @@ AppLauncherWidget - + Open With 打開 - + Launch in terminal 在終端機中啟動 - + Keep open after selection 選擇後維持此視窗開啟 - - + + Error 錯誤 - + Unable to launch in terminal. 無法在終端機中啟動 - + Unable to write in 無法寫入 @@ -51,12 +51,12 @@ ArrowTool - + Arrow 箭頭 - + Set the Arrow as the paint tool 選擇箭頭作為繪製工具 @@ -64,60 +64,58 @@ BlurTool - Blur - 模糊 + 模糊 - Set Blur as the paint tool - 選擇模糊作為繪製工具 + 選擇模糊作為繪製工具 CaptureLauncher - + <b>Capture Mode</b> - + Rectangular Region - + Full Screen (All Monitors) - + No Delay - + second - + seconds - + Take new screenshot - + Area: - + Delay: @@ -125,12 +123,12 @@ CaptureWidget - + Unable to capture screen 無法擷取螢幕 - + Select an area with the mouse, or press Esc to exit. Press Enter to capture the screen. Press Right Click to show the color picker. @@ -138,16 +136,34 @@ Use the Mouse Wheel to change the thickness of your tool. Press Space to open the side panel. + + + Tool Settings + + + + + CircleCountTool + + + Circle Counter + + + + + Add an autoincrementing counter bubble + + CircleTool - + Circle 圈型 - + Set the Circle as the paint tool 選擇圈型作為繪畫工具 @@ -155,27 +171,22 @@ Press Space to open the side panel. ConfigWindow - + Configuration 設定 - + Interface 介面 - + Filename Editor 檔案名稱編輯器 - - Shortcuts - - - - + General 一般 @@ -183,45 +194,44 @@ Press Space to open the side panel. Controller - + &Take Screenshot - + &Open Launcher - + &Configuration &設定 - - &Information - &資訊 + + &About + - + &Information + &資訊 + + + &Quit &結束 - - - &Latest Uploads - - CopyTool - + Copy 複製 - + Copy the selection into the clipboard @@ -229,7 +239,7 @@ Press Space to open the side panel. DBusUtils - + Unable to connect via DBus 無法透過 DBus 進行連接 @@ -237,12 +247,12 @@ Press Space to open the side panel. ExitTool - + Exit 離開 - + Leave the capture screen 離開螢幕擷取 @@ -250,443 +260,263 @@ Press Space to open the side panel. FileNameEditor - + Edit the name of your captures: 編輯您的截圖名稱: - + Edit: 編輯器: - + Preview: 預覽: - + Save 存檔 - + Saves the pattern 儲存樣式 - + Reset 重設 - + Restores the saved pattern 恢復儲存的樣式 - + Clear 清空 - + Deletes the name 刪除這個名稱 - - FilePathConfiguration - - - Screenshot path default: - - - - - Use fixed path for screenshots to save - - - - - Browse - - - - - Clear - 清空 - - - - Select default path for Screenshots - - - GeneneralConf - + Show help message 顯示説明資訊 - + Show the help message at the beginning in the capture mode. 在擷取之前顯示説明資訊 - - + + Show desktop notifications 顯示桌面通知 - + Show tray icon 顯示託盤圖示 - + Show the systemtray icon 顯示工作列圖示 - - + + Import 匯入 - - - + + + + Error 錯誤 - + Unable to read file. 無法讀取檔案 - - + + Unable to write file. 無法寫入檔案 - + Save File 存檔 - + Confirm Reset 確認重設 - + Are you sure you want to reset the configuration? 你確定你想要重設? - + + Show the side panel button + + + + + Show the side panel toggle button in the capture mode. + + + + Configuration File 設定檔 - + Export 匯出 - + Reset 重設 - + Launch at startup 自動啟動 - - + Launch Flameshot - - Show welcome message on launch + + Close after capture - - Close application after capture - - - - + Close after taking a screenshot - + Copy URL after upload - + Copy URL and close window after upload - - - Copy file path after save + + Save image after copy - - Upload storage + + Save image file after copying it - - Imgur storage + + Save Path - - S3 storage (require config.ini file with s3 credentials) - - - - - HistoryWidget - - - Latest Uploads + + Change... - - Screenshots history is empty + + Choose a Folder - - Copy URL - 複製連結 - - - - URL copied to clipboard. - 連結已複製到剪貼簿 - - - - Open in browser + + Unable to write to directory. - - ImgS3Uploader - - - Uploading Image - 正在上傳 - - - - Upload image to S3 - - - - - Delete image from S3 - - - - - Unable to remove screenshot from the remote storage. - - - - - Network error - - - - - Possibly it doesn't exist anymore - - - - - Do you want to remove screenshot from local history anyway? - - - - - S3 Creds URL is not found in your configuration file - - - - Copy URL - 複製連結 - - - Open URL - 打開連結 - - - Image to Clipboard. - 將檔案複製到剪貼簿 - - - Unable to open the URL. - 無法打開此連結 - - - - URL copied to clipboard. - 連結已複製到剪貼簿 - - - - Deleting image... - - - - - Remove screenshot from history? - - - - Screenshot copied to clipboard. - 截圖已複製到剪貼簿 - - - - ImgS3UploaderTool - - - Image Uploader - 上傳圖片 - - - - Upload the selection to S3 bucket - - - - - ImgUploader - - - Upload image to S3 - - - - - - Uploading Image - 正在上傳 - - - - Upload image - - - - - Unable to open the URL. - 無法打開此連結 - - - - URL copied to clipboard. - 連結已複製到剪貼簿 - - - - Screenshot copied to clipboard. - 截圖已複製到剪貼簿 - - - - Deleting image... - - - - - Copy URL - 複製連結 - - - - Open URL - 打開連結 - - - - Delete image - - - - - Image to Clipboard. - 將檔案複製到剪貼簿 - - ImgurUploader - + Upload to Imgur 上傳到 Imgur + Uploading Image - 正在上傳 + 正在上傳 + Copy URL - 複製連結 + 複製連結 + Open URL - 打開連結 + 打開連結 + + Delete image + + + + Image to Clipboard. - 將檔案複製到剪貼簿 + 將檔案複製到剪貼簿 - + + Unable to open the URL. 無法打開此連結 + URL copied to clipboard. - 連結已複製到剪貼簿 + 連結已複製到剪貼簿 + Screenshot copied to clipboard. - 截圖已複製到剪貼簿 + 截圖已複製到剪貼簿 ImgurUploaderTool - + Image Uploader 上傳圖片 - + Upload the selection to Imgur 上傳到 Imgur @@ -694,86 +524,110 @@ Press Space to open the side panel. InfoWindow - + About 關於 + + SPACEBAR + + + + Right Click - 右鍵 + 右鍵 + Mouse Wheel - 滑鼠滑輪 + 滑鼠滑輪 + Move selection 1px - 移動 1px + 移動 1px + Resize selection 1px - 調整大小 1px + 調整大小 1px + Quit capture - 結束擷取 + 結束擷取 + Copy to clipboard - 複製到剪貼簿 + 複製到剪貼簿 + Save selection as a file - 將選擇範圍另存新檔 + 將選擇範圍另存新檔 + Undo the last modification - 復原上次修改 + 復原上次修改 + + Toggle visibility of sidebar with options of the selected tool + + + + Show color picker - 顯示顏色選擇器 + 顯示顏色選擇器 + Change the tool's thickness - 改變工具的寬度 + 改變工具的寬度 + Key - + + Description - 描述 + 描述 - + <u><b>License</b></u> <u><b>授權條款</b></u> - + <u><b>Version</b></u> <u><b>版本</b></u> + <u><b>Shortcuts</b></u> - <u><b>快速鍵</b></u> + <u><b>快速鍵</b></u> + Available shortcuts in the screen capture mode. - 螢幕擷取模式中的可用快速鍵 + 螢幕擷取模式中的可用快速鍵 LineTool - + Line 直線 - + Set the Line as the paint tool 將直線線設定為繪畫工具 @@ -781,12 +635,12 @@ Press Space to open the side panel. MarkerTool - + Marker 標記 - + Set the Marker as the paint tool 將標記設定為繪畫工具 @@ -794,12 +648,12 @@ Press Space to open the side panel. MoveTool - + Move 移動 - + Move the selection area 移動選擇區域 @@ -807,12 +661,12 @@ Press Space to open the side panel. PencilTool - + Pencil 鉛筆 - + Set the Pencil as the paint tool 將鉛筆設定為繪畫工具 @@ -820,169 +674,253 @@ Press Space to open the side panel. PinTool - + Pin Tool - + Pin image on the desktop + + PixelateTool + + + Pixelate + + + + + Set Pixelate as the paint tool + + + QObject - + Save Error 存檔錯誤 - - + + Capture saved as 截圖已另存為 - + + Capture saved to clipboard. + + + + Capture saved to clipboard - - + + Error trying to save as 嘗試另存新檔時發生錯誤 - - Save screenshot - - - - - Capture saved and copied to the clipboard as - - - - - - - - + + + + + Unable to connect via DBus 無法透過 DBus 進行連接 - + + Powerful yet simple to use screenshot software. + + + + + See + + + + + Capture the entire desktop. + + + + + Open the capture launcher. + + + + + Start a manual capture in GUI mode. + + + + + Configure + + + + + Capture a single screen. + + + + + Path where the capture will be saved + + + + + Save the capture to the clipboard + + + + + Delay time in milliseconds + + + + + Set the filename pattern + + + + + Enable or disable the trayicon + + + + + Enable or disable run at startup + + + + + Show the help message in the capture mode + + + + + Define the main UI color + + + + + Define the contrast UI color + + + + + Print raw PNG capture + + + + + Define the screen to capture + + + + + default: screen containing the cursor + + + + + Screen number + + + + + Invalid color, this flag supports the following formats: +- #RGB (each of R, G, and B is a single hex digit) +- #RRGGBB +- #RRRGGGBBB +- #RRRRGGGGBBBB +- Named colors like 'blue' or 'red' +You may need to escape the '#' sign as in '\#FFF' + + + + + Invalid delay, it must be higher than 0 + + + + + Invalid screen number, it must be non negative + + + + + Invalid path, it must be a real path in the system + + + + + Invalid value, it must be defined as 'true' or 'false' + + + + Error 錯誤 - + Unable to write in 無法寫入 - + URL copied to clipboard. 連結已複製到剪貼簿 - - Hi, I'm already running! -You can find me in the system tray. + + Options - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. + + Arguments - - Resize selection right 1px + + arguments - - Resize selection left 1px + + Usage - - Resize selection up 1px + + options - - Resize selection down 1px + + Per default runs Flameshot in the background and adds a tray icon for configuration. - - - Toggle side panel - - - - - Move selection left 1px - - - - - Move selection right 1px - - - - - Move selection up 1px - - - - - Move selection down 1px - - - - - Quit capture - 結束擷取 - - - - Screenshot history - - - - - Capture screen - - - - Move selection 1px - 移動 1px - - - - Show color picker - 顯示顏色選擇器 - - - - Change the tool's thickness - 改變工具的寬度 - RectangleTool - + Rectangle 實心矩形 - + Set the Rectangle as the paint tool 將實心矩形設定為繪畫工具 @@ -990,12 +928,12 @@ You can find me in the system tray. RedoTool - + Redo - + Redo the next modification @@ -1003,12 +941,12 @@ You can find me in the system tray. SaveTool - + Save 儲存 - + Save the capture 儲存擷取 @@ -1016,7 +954,7 @@ You can find me in the system tray. ScreenGrabber - + Unable to capture screen 無法擷取螢幕 @@ -1024,76 +962,35 @@ You can find me in the system tray. SelectionTool - + Rectangular Selection 矩形選擇 - + Set Selection as the paint tool 將矩形選擇設定為繪畫工具 - - SetShortcutDialog - - - Set Shortcut - - - - - Enter new shortcut to change - - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - - - - - ShortcutsWidget - - - Hot Keys - - - - - Available shortcuts in the screen capture mode. - 螢幕擷取模式中的可用快速鍵 - - - - Description - 描述 - - - - Key - - - SidePanelWidget - + Active thickness: - + Active color: - + Press ESC to cancel - + Grab Color @@ -1101,12 +998,12 @@ You can find me in the system tray. SizeIndicatorTool - + Selection Size Indicator 選擇尺寸指示 - + Show the dimensions of the selection (X Y) 顯示選擇的尺寸 (X Y) @@ -1114,107 +1011,107 @@ You can find me in the system tray. StrftimeChooserWidget - + Century (00-99) 世紀 (00-99) - + Year (00-99) 年 (00-99) - + Year (2000) 年 (2000) - + Month Name (jan) 月 (jul) - + Month Name (january) 月 (juliol) - + Month (01-12) 月 (01-12) - + Week Day (1-7) 平常日 (1-7) - + Week (01-53) 周 (01-53) - + Day Name (mon) 星期 (dg) - + Day Name (monday) 星期 (diumenge) - + Day (01-31) 天 (01-31) - + Day of Month (1-31) 一月中的某天 (1-31) - + Day (001-366) 天 (001-366) - + Time (%H-%M-%S) - + Time (%H-%M) - + Hour (00-23) 小時 (00-23) - + Hour (01-12) 小時 (01-12) - + Minute (00-59) 分鐘 (00-59) - + Second (00-59) 秒 (00-59) - + Full Date (%m/%d/%y) 日期 (%m/%d/%y) - + Full Date (%Y-%m-%d) 日期 (%Y-%m-%d) @@ -1222,7 +1119,7 @@ You can find me in the system tray. SystemNotification - + Flameshot Info @@ -1230,22 +1127,22 @@ You can find me in the system tray. TextConfig - + StrikeOut - + Underline - + Bold - + Italic @@ -1253,12 +1150,12 @@ You can find me in the system tray. TextTool - + Text - + Add text to your capture @@ -1266,37 +1163,37 @@ You can find me in the system tray. UIcolorEditor - + UI Color Editor UI 顏色編輯器 - + Change the color moving the selectors and see the changes in the preview buttons. 移動顏色選擇並在預覽按鈕檢視 - + Select a Button to modify it 選擇一個按鈕來修改它 - + Main Color 主色 - + Click on this button to set the edition mode of the main color. 點選按鈕設定主色 - + Contrast Color 對比色 - + Click on this button to set the edition mode of the contrast color. 點選按鈕設定對比色 @@ -1304,12 +1201,12 @@ You can find me in the system tray. UndoTool - + Undo 復原 - + Undo the last modification 復原上次修改 @@ -1317,25 +1214,25 @@ You can find me in the system tray. UtilityPanel - - Hide + + Close VisualsEditor - + Opacity of area outside selection: 選擇區域以外的不透明度 - + Button Selection 按鈕選擇 - + Select All 全選 diff --git a/data/win-installer/Bitmaps/CPACK_WIX_UI_BANNER.BMP b/data/win-installer/Bitmaps/CPACK_WIX_UI_BANNER.BMP new file mode 100644 index 00000000..08a76ed6 Binary files /dev/null and b/data/win-installer/Bitmaps/CPACK_WIX_UI_BANNER.BMP differ diff --git a/data/win-installer/Bitmaps/CPACK_WIX_UI_DIALOG.BMP b/data/win-installer/Bitmaps/CPACK_WIX_UI_DIALOG.BMP new file mode 100644 index 00000000..5322703e Binary files /dev/null and b/data/win-installer/Bitmaps/CPACK_WIX_UI_DIALOG.BMP differ diff --git a/data/win-installer/LICENSE/GPL-3.0.txt b/data/win-installer/LICENSE/GPL-3.0.txt new file mode 100644 index 00000000..9cecc1d4 --- /dev/null +++ b/data/win-installer/LICENSE/GPL-3.0.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + 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 3 of the License, or + (at your option) any later version. + + 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 . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/dbus/make/org.dharkael.Flameshot.service b/dbus/make/org.dharkael.Flameshot.service deleted file mode 100644 index 4a24495b..00000000 --- a/dbus/make/org.dharkael.Flameshot.service +++ /dev/null @@ -1,3 +0,0 @@ -[D-BUS Service] -Name=org.dharkael.Flameshot -Exec=/usr/local/bin/flameshot diff --git a/dbus/other-path/service-gen.sh b/dbus/other-path/service-gen.sh deleted file mode 100644 index 69e956e8..00000000 --- a/dbus/other-path/service-gen.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/bash - -DIR=$(pwd) -TARGET="/usr/bin" - -if [ -n "$1" ] - then - TARGET=${1%/} -fi - -FILE='[D-BUS Service]\nName=org.dharkael.Flameshot\nExec=##REPLACE##/flameshot' - -FILE=${FILE//##REPLACE##/$TARGET} -echo -e $FILE > $DIR/org.dharkael.Flameshot.service diff --git a/dbus/package/org.dharkael.Flameshot.service b/dbus/package/org.dharkael.Flameshot.service deleted file mode 100644 index 6b11aac6..00000000 --- a/dbus/package/org.dharkael.Flameshot.service +++ /dev/null @@ -1,3 +0,0 @@ -[D-BUS Service] -Name=org.dharkael.Flameshot -Exec=/usr/bin/flameshot diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index 08aff7ae..00000000 --- a/debian/changelog +++ /dev/null @@ -1,5 +0,0 @@ -flameshot (0.6.0-1) unstable; urgency=medium - - * Initial deb package. - - -- Boyuan Yang Wed, 27 Feb 2019 13:19:39 -0500 diff --git a/debian/compat b/debian/compat deleted file mode 100644 index ec635144..00000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/debian/source/format b/debian/source/format deleted file mode 100644 index 163aaf8d..00000000 --- a/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (quilt) diff --git a/docs/0000-template.md b/docs/0000-template.md new file mode 100644 index 00000000..e69de29b diff --git a/CONTRIBUTING.md b/docs/CONTRIBUTING.md similarity index 91% rename from CONTRIBUTING.md rename to docs/CONTRIBUTING.md index 41d1caaf..f982f12c 100644 --- a/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -30,6 +30,7 @@ Check this nice official documentation from Qt docs as it explains how to transl ## Code +For small fixes or incremental improvements simply fork the repo and follow the process below. For larger changes submit an [RFC:](RFC.md) 1. [Fork](https://help.github.com/articles/fork-a-repo/) the repository and [clone](https://help.github.com/articles/cloning-a-repository/) your fork. 2. Start coding! @@ -49,7 +50,7 @@ Check this nice official documentation from Qt docs as it explains how to transl ## Issues 1. Do a quick search on GitHub to check if the issue has already been reported. -2. [Open an issue](https://github.com/lupoDharkael/flameshot/issues/new) and describe the issue you are having - you could include: +2. [Open an issue](https://github.com/flameshot-org/flameshot/issues/new) and describe the issue you are having - you could include: - Screenshots - Ways to reproduce the issue. - Your Flameshot version. diff --git a/docs/RFC.md b/docs/RFC.md new file mode 100644 index 00000000..ed43c477 --- /dev/null +++ b/docs/RFC.md @@ -0,0 +1,233 @@ +# Flameshot RFCs + +[Flameshot RFCs]: #flameshot-rfcs + +Many changes, including bug fixes and documentation improvements can be +implemented and reviewed via the normal GitHub pull request workflow. + +Some changes though are "substantial", and we ask that these be put through a +bit of a design process and produce a consensus among the Flameshot community and development team. + +The "RFC" (request for comments) process is intended to provide a consistent +and controlled path for new features to enter the language and standard +libraries, so that all stakeholders can be confident about the direction the +project is evolving in. + +## Table of Contents + +[Table of Contents]: #table-of-contents + + + [Opening](#flameshot-rfcs) + + [Table of Contents] + + [When you need to follow this process] + + [Before creating an RFC] + + [What the process is] + + [The RFC life-cycle] + + [Reviewing RFCs] + + [Implementing an RFC] + + [RFC Postponement] + + [Help this is all too informal!] + +## When you need to follow this process + +[When you need to follow this process]: #when-you-need-to-follow-this-process + +You need to follow this process if you intend to make "substantial" changes to +flameshot or the RFC process itself. What constitutes a +"substantial" change is evolving based on community norms and varies depending +on what part of the ecosystem you are proposing to change, but may include the +following. + + + Any changes breaking compatibility to command line flags or config files. + + Any major changes to the UI + + Substantial new features like new tools. + +Some changes do not require an RFC: + + + Rephrasing, reorganizing, refactoring, or otherwise "changing shape does + + not change meaning". + + + Improving translations. + + Additions that strictly improve objective, numerical quality criteria + + (warning removal, speedup, better platform coverage, etc.) + + + Additions only likely to be _noticed by_ other developers-of-flameshot, + + invisible to users-of-flameshot. + +If you submit a pull request to implement a new feature without going through +the RFC process, it may be closed with a polite request to submit an RFC first. + +## Before creating an RFC + +[Before creating an RFC]: #before-creating-an-rfc + +A hastily-proposed RFC can hurt its chances of acceptance. Low quality +proposals, proposals for previously-rejected features, or those that don't fit +into the near-term roadmap, may be quickly rejected, which can be demotivating +for the unprepared contributor. Laying some groundwork ahead of the RFC can +make the process smoother. + +Although there is no single way to prepare for submitting an RFC, it is +generally a good idea to pursue feedback from other project developers +beforehand, to ascertain that the RFC may be desirable; having a consistent +impact on the project requires concerted effort toward consensus-building. + +The most common preparations for writing and submitting an RFC include talking +the idea over on our [official Slack server](flameshotworkspace.slack.com) or opening an issue on github for discussion. + +## What the process is + +[What the process is]: #what-the-process-is + +In short, to get a major feature added to Flameshot, one must first get the RFC +merged into the RFC repository as a markdown file. At that point the RFC is +"active" and may be implemented with the goal of eventual inclusion into Flameshot. + + + Fork the Flameshot repo + + Copy `docs/0000-template.md` to `docs/RFC/0000-my-feature.md` (where "my-feature" is + + descriptive). Don't assign an RFC number yet; This is going to be the PR + number and we'll rename the file accordingly if the RFC is accepted. + + + Fill in the RFC. Put care into the details: RFCs that do not present + + convincing motivation, demonstrate lack of understanding of the design's + impact, or are disingenuous about the drawbacks or alternatives tend to + be poorly-received. + + + Submit a pull request. As a pull request the RFC will receive design + + feedback from the larger community, and the author should be prepared to + revise it in response. + + + Build consensus and integrate feedback. RFCs that have broad support are + + much more likely to make progress than those that don't receive any + comments. Feel free to reach out to the RFC assignee in particular to get + help identifying stakeholders and obstacles. + + + The team will discuss the RFC pull request, as much as possible in the + + comment thread of the pull request itself. Offline discussion will be + summarized on the pull request comment thread. + + + RFCs rarely go through this process unchanged, especially as alternatives + + and drawbacks are shown. You can make edits, big and small, to the RFC to + clarify or change the design, but make changes as new commits to the pull + request, and leave a comment on the pull request explaining your changes. + Specifically, do not squash or rebase commits after they are visible on the + pull request. + + + At some point, a member of the development team will propose a "motion for final + + comment period" (FCP), along with a *disposition* for the RFC (merge, close, + or postpone). + + - This step is taken when enough of the tradeoffs have been discussed that + + the development is in a position to make a decision. That does not require + consensus amongst all participants in the RFC thread (which is usually + impossible). However, the argument supporting the disposition on the RFC + needs to have already been clearly articulated, and there should not be a + strong consensus *against* that position outside of the development team. Team + members use their best judgment in taking this step, and the FCP itself + ensures there is ample time and notification for stakeholders to push back + if it is made prematurely. + + + In most cases, the FCP period is quiet, and the RFC is either merged or + + closed. However, sometimes substantial new arguments or ideas are raised, + the FCP is canceled, and the RFC goes back into development mode. + +## The RFC life-cycle + +[The RFC life-cycle]: #the-rfc-life-cycle + +Once an RFC becomes "active" then authors may implement it and submit the +feature as a pull request to the Flameshot repo. Being "active" is not a rubber +stamp, and in particular still does not mean the feature will ultimately be +merged; it does mean that in principle all the major stakeholders have agreed +to the feature and are amenable to merging it. + +Furthermore, the fact that a given RFC has been accepted and is "active" +implies nothing about what priority is assigned to its implementation, nor does +it imply anything about whether a developer has been assigned the task of +implementing the feature. While it is not *necessary* that the author of the +RFC also write the implementation, it is by far the most effective way to see +an RFC through to completion: authors should not expect that other project +developers will take on responsibility for implementing their accepted feature. + +Modifications to "active" RFCs can be done in follow-up pull requests. We +strive to write each RFC in a manner that it will reflect the final design of +the feature; but the nature of the process means that we cannot expect every +merged RFC to actually reflect what the end result will be at the time of the +next major release. + +In general, once accepted, RFCs should not be substantially changed. Only very +minor changes should be submitted as amendments. More substantial changes +should be new RFCs, with a note added to the original RFC. Exactly what counts +as a "very minor change" is up to the development team. + + + +## Reviewing RFCs + +[Reviewing RFCs]: #reviewing-rfcs + +The preferred method of discussing RFC's is the github issue. However, the development team may schedule meetings with the +author and/or relevant stakeholders to discuss the issues in greater detail. In either +case a summary from the meeting will be posted back to the RFC pull request. + +The development team makes final decisions about RFCs after the benefits and drawbacks +are well understood. These decisions can be made at any time, but the sub-team +will regularly issue decisions. When a decision is made, the RFC pull request +will either be merged or closed. In either case, if the reasoning is not clear +from the discussion in thread, the sub-team will add a comment describing the +rationale for the decision. + +## Implementing an RFC + +[Implementing an RFC]: #implementing-an-rfc + +Some accepted RFCs represent vital features that need to be implemented right +away. Other accepted RFCs can represent features that can wait until some +arbitrary developer feels like doing the work. Every accepted RFC has an +associated issue tracking its implementation in the Flameshot repository; thus that +associated issue can be assigned a priority via the triage process that the +team uses for all issues in the Flameshot repository. + +The author of an RFC is not obligated to implement it. Of course, the RFC +author (like any other developer) is welcome to post an implementation for +review after the RFC has been accepted. + +If you are interested in working on the implementation for an "active" RFC, but +cannot determine if someone else is already working on it, feel free to ask +(e.g. by leaving a comment on the associated issue). + +## RFC Postponement + +[RFC Postponement]: #rfc-postponement + +Some RFC pull requests are tagged with the "postponed" label when they are +closed (as part of the rejection process). An RFC closed with "postponed" is +marked as such because we want neither to think about evaluating the proposal +nor about implementing the described feature until some time in the future, and +we believe that we can afford to wait until then to do so. + +Usually an RFC pull request marked as "postponed" has already passed an +informal first round of evaluation, namely the round of "do we think we would +ever possibly consider making this change, as outlined in the RFC pull request, +or some semi-obvious variation of it." (When the answer to the latter question +is "no", then the appropriate response is to close the RFC, not postpone it.) + +### Help this is all too informal! + +[Help this is all too informal!]: #help-this-is-all-too-informal + +The process is intended to be as lightweight as reasonable for the present +circumstances. As usual, we are trying to let the process be driven by +consensus and community norms, not impose more structure than necessary. diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md new file mode 100644 index 00000000..e7864e3a --- /dev/null +++ b/docs/ReleaseNotes.md @@ -0,0 +1,63 @@ +# 0.8 Release Notes +Thanks to all the testers and contributors that helped make version 0.8! We are very excited to have improved many bugs and added new features in version 0.8. + +## Known Issues +* Wayland support is experimental. In generic packages (Snap, Flatpak, AppImage) there may be extra issues with Wayland. +* In generic packages(Snap, Flatpak, AppImage) due to confinement "Open With External Application" does not work. +* If "close after capture" is enabled, and a user copies the image to clipboard, the image may not actually be in the clipboard. We recommend using the "Save" feature with close after capture. + + +## New Features +* Fix capture after pressing ctrl + S during textarea input (#311) +* Add translation: + - Japanese (#361) + - Brazilian Portuguese (#364) + - Serbian (#376) + - Dutch (#440) + - Ukrainian (#464) + - German (#467) + - Slovak (#525) + - Basque + - Czech + - Swedish + - Italian + - Korean + - Dutch +* Allow enter key to copy image to clipboard (#362) +* side panel: Add thickness slider (#374) +* Add support for saving as JPG and BMP files. (#436) +* Allow 45 degree adjustment for some tools (#439) +* Add option to close after capture (WARNING: this function is buggy! It may not work well if you are going to copy the image to clipboard! If you encounter problems related to clipboard, please disable this feature in the configuration and try again. This is a known bug, see #557 and #569 .) +* Add a basic launcher panel. +* Add option to auto copy URL after upload (#553) +* Add a circle counter tool. +* Replace the blur tool with pixelate tool. +* Convert buildsystem from QMake to CMake. +* Add launcher action into .desktop file. +* Added Generic Packages (Snap, Flatpak, AppImage) +* Improved Windows support + + +## Preview of New Features + +### Pixelate +The behavior of the blur tool has been modified so if the "thickness" is 0 or 1, the old blur behavior is preserved. If the thickness is increased past 1 the image will pixelate by the thickness: +![](images/pixelate.gif) + +### Countertool +A popular request has been to add a tool that counts upward. This can be helpful when creating directions. +![](images/counter.gif) + + +### Sidebar +A button has been added to open the sidebar. This tool was previously only accessible by hitting "Spacebar" which made usage on tablets difficult. This sidebar allows advanced modifications for many tools. + +![](images/sidebar.gif) + + +## Fixes +* Exit non-zero when aborting with --raw. (#424) +* Enable Pin and Text tool by default. (#443) +* Fix the problem that moving or resizing does not affect screenshot. (#459) +* Fix problem with re-enabling disabled tray icon (#495) +* Fix compilation problem against Qt 5.15. \ No newline at end of file diff --git a/docs/appdata/flameshot.appdata.xml b/docs/appdata/flameshot.appdata.xml deleted file mode 100644 index 3d2745ad..00000000 --- a/docs/appdata/flameshot.appdata.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - flameshot.desktop - CC0-1.0 - GPL-3.0-or-later and ASL 2.0 and GPLv2 and LGPLv3 and Free Art - Flameshot - Powerful and simple to use screenshot software - -

- Powerful and simple to use screenshot software with built-in - editor with advanced features. -

-
- - - https://raw.githubusercontent.com/lupoDharkael/flameshot/master/img/preview/usageStatic.png - - - https://raw.githubusercontent.com/lupoDharkael/flameshot/master/img/preview/animatedUsage.gif - - - https://github.com/lupoDharkael/flameshot - https://github.com/lupoDharkael -
diff --git a/docs/appdata/flameshot.metainfo.xml b/docs/appdata/flameshot.metainfo.xml new file mode 100644 index 00000000..56d9ef2a --- /dev/null +++ b/docs/appdata/flameshot.metainfo.xml @@ -0,0 +1,32 @@ + + + org.flameshot.flameshot + CC0-1.0 + GPL-3.0-or-later + Flameshot + + + + + Powerful and simple to use screenshot software + +

+ Powerful and simple to use screenshot software with built-in + editor with advanced features. +

+
+ + flameshot + + + https://raw.githubusercontent.com/flameshot-org/flameshot/master/data/img/preview/usageStatic.png + + + https://raw.githubusercontent.com/flameshot-org/flameshot/master/data/img/preview/animatedUsage.gif + + + https://github.com/flameshot-org/flameshot + https://github.com/flameshot-org/flameshot/issues/new + flameshot.desktop + +
diff --git a/docs/desktopEntry/package/flameshot.desktop b/docs/desktopEntry/package/flameshot.desktop index 9a3b3865..f3ffc2c7 100644 --- a/docs/desktopEntry/package/flameshot.desktop +++ b/docs/desktopEntry/package/flameshot.desktop @@ -7,27 +7,35 @@ GenericName[pl]=Zrzuty ekranu GenericName[fr]=Outil de capture d'écran GenericName[ja]=スクリーンショットツール GenericName[ru]=Создание скриншотов +GenericName[sk]=Nástroj na zachytávanie obrazovky GenericName[sr]=Снимач екрана GenericName[uk]=Інструмент скриншотів +GenericName[es]=Herramienta de captura de pantalla Comment=Powerful yet simple to use screenshot software. Comment[zh_CN]=强大又易用的屏幕截图软件 Comment[pl]=Proste w użyciu narzędzie do zrzutów ekranu Comment[fr]=Logiciel de capture d'écran puissant et simple d'utilisation. Comment[ja]=パワフルで使いやすいスクリーンショットソフトウェア。 Comment[ru]=Простой и функциональный инструмент для создания скриншотов +Comment[sk]=Mocný, no tiež jednoduchý softvér na zachytávanie obrazovky. Comment[sr]=Једноставан, а моћан алат за снимање екрана Comment[uk]=Потужний простий у використанні додаток для створення знімків екрану. +Comment[es]=Software de captura de pantalla potente y fácil de usar. Keywords=flameshot;screenshot;capture;shutter; Keywords[zh_CN]=flameshot;screenshot;capture;shutter;截图;屏幕; Keywords[fr]=flameshot;capture d'écran;capter;shutter; Keywords[ja]=flameshot;screenshot;capture;shutter;スクリーンショット;キャプチャー; +Keywords[es]=flameshot;screenshot;capture;shutter;captura; Exec=flameshot Icon=flameshot Terminal=false Type=Application Categories=Graphics; StartupNotify=false -Actions=Configure;Capture; +Actions=Configure;Capture;Launcher; +X-DBUS-StartupType=Unique +X-DBUS-ServiceName=org.flameshot.Flameshot +X-KDE-DBUS-Restricted-Interfaces=org_kde_kwin_effect-screenshot [Desktop Action Configure] Name=Configure @@ -36,8 +44,10 @@ Name[pl]=Konfiguruj Name[fr]=Configurer Name[ja]=設定 Name[ru]=Настройки +Name[sk]=Nastaviť Name[sr]=Подешавања Name[uk]=Налаштувати +Name[es]=Configurar Exec=flameshot config [Desktop Action Capture] @@ -47,6 +57,15 @@ Name[pl]=Zrzut ekranu Name[fr]=Prendre une capture d'écran Name[ja]=スクリーンショットを撮る Name[ru]=Сделать скриншот +Name[sk]=Zachytiť obrazovku Name[sr]=Сними екран Name[uk]=Зробити знімок +Name[es]=Tomar captura de pantalla Exec=flameshot gui --delay 500 + +[Desktop Action Launcher] +Name=Open launcher +Name[de]=Starter öffnen +Name[sk]=Otvoriť spúšťač +Name[zh_CN]=打开启动器 +Exec=flameshot launcher diff --git a/docs/images/counter.gif b/docs/images/counter.gif new file mode 100644 index 00000000..01b5264e Binary files /dev/null and b/docs/images/counter.gif differ diff --git a/docs/images/pixelate.gif b/docs/images/pixelate.gif new file mode 100644 index 00000000..4b880bde Binary files /dev/null and b/docs/images/pixelate.gif differ diff --git a/docs/images/sidebar.gif b/docs/images/sidebar.gif new file mode 100644 index 00000000..03bda70c Binary files /dev/null and b/docs/images/sidebar.gif differ diff --git a/docs/bash-completion/flameshot b/docs/shell-completion/flameshot similarity index 89% rename from docs/bash-completion/flameshot rename to docs/shell-completion/flameshot index 58f5233d..60c197e3 100644 --- a/docs/bash-completion/flameshot +++ b/docs/shell-completion/flameshot @@ -1,5 +1,8 @@ -# bash-completion for flameshot command +#compdef flameshot + +# Shell completion for flameshot command # To be installed in "/usr/share/bash-completion/completions/flameshot" +# and "/usr/share/zsh/site-functions/" _flameshot() { local prev cur cmd gui_opts full_opts config_opts @@ -64,4 +67,10 @@ _flameshot() { ;; esac } + +if [[ -n ${ZSH_VERSION} ]]; then + autoload -U bashcompinit + bashcompinit +fi + complete -F _flameshot flameshot diff --git a/docs/shortcuts-config/flameshot-shortcuts-kde b/docs/shortcuts-config/flameshot-shortcuts-kde index 408f1498..3f949de6 100644 --- a/docs/shortcuts-config/flameshot-shortcuts-kde +++ b/docs/shortcuts-config/flameshot-shortcuts-kde @@ -25,7 +25,7 @@ ActionsCount=1 [Data_1_1Actions0] Arguments='Pictures/Screenshots' 0 0 Call=graphicCapture -RemoteApp=org.dharkael.Flameshot +RemoteApp=org.flameshot.Flameshot RemoteObj=/ Type=DBUS @@ -54,7 +54,7 @@ ActionsCount=1 [Data_1_2Actions0] Arguments='Pictures/Screenshots' 3000 0 Call=graphicCapture -RemoteApp=org.dharkael.Flameshot +RemoteApp=org.flameshot.Flameshot RemoteObj=/ Type=DBUS @@ -83,7 +83,7 @@ ActionsCount=1 [Data_1_3Actions0] Arguments='Pictures/Screenshots' false 0 0 Call=fullScreen -RemoteApp=org.dharkael.Flameshot +RemoteApp=org.flameshot.Flameshot RemoteObj=/ Type=DBUS @@ -112,7 +112,7 @@ ActionsCount=1 [Data_1_4Actions0] Arguments='' true 0 0 Call=fullScreen -RemoteApp=org.dharkael.Flameshot +RemoteApp=org.flameshot.Flameshot RemoteObj=/ Type=DBUS diff --git a/src/third-party/Qt-Color-Widgets/COPYING b/external/Qt-Color-Widgets/COPYING similarity index 100% rename from src/third-party/Qt-Color-Widgets/COPYING rename to external/Qt-Color-Widgets/COPYING diff --git a/src/third-party/Qt-Color-Widgets/LICENSE-EXCEPTION b/external/Qt-Color-Widgets/LICENSE-EXCEPTION similarity index 100% rename from src/third-party/Qt-Color-Widgets/LICENSE-EXCEPTION rename to external/Qt-Color-Widgets/LICENSE-EXCEPTION diff --git a/src/third-party/Qt-Color-Widgets/README.md b/external/Qt-Color-Widgets/README.md similarity index 100% rename from src/third-party/Qt-Color-Widgets/README.md rename to external/Qt-Color-Widgets/README.md diff --git a/src/third-party/Qt-Color-Widgets/color_widgets.pri b/external/Qt-Color-Widgets/color_widgets.pri similarity index 100% rename from src/third-party/Qt-Color-Widgets/color_widgets.pri rename to external/Qt-Color-Widgets/color_widgets.pri diff --git a/src/third-party/Qt-Color-Widgets/color_widgets.pro b/external/Qt-Color-Widgets/color_widgets.pro similarity index 100% rename from src/third-party/Qt-Color-Widgets/color_widgets.pro rename to external/Qt-Color-Widgets/color_widgets.pro diff --git a/src/third-party/Qt-Color-Widgets/include/ColorWheel b/external/Qt-Color-Widgets/include/ColorWheel similarity index 100% rename from src/third-party/Qt-Color-Widgets/include/ColorWheel rename to external/Qt-Color-Widgets/include/ColorWheel diff --git a/src/third-party/Qt-Color-Widgets/include/color_wheel.hpp b/external/Qt-Color-Widgets/include/color_wheel.hpp similarity index 100% rename from src/third-party/Qt-Color-Widgets/include/color_wheel.hpp rename to external/Qt-Color-Widgets/include/color_wheel.hpp diff --git a/src/third-party/Qt-Color-Widgets/src/alphaback.png b/external/Qt-Color-Widgets/src/alphaback.png similarity index 100% rename from src/third-party/Qt-Color-Widgets/src/alphaback.png rename to external/Qt-Color-Widgets/src/alphaback.png diff --git a/src/third-party/Qt-Color-Widgets/src/color_utils.cpp b/external/Qt-Color-Widgets/src/color_utils.cpp similarity index 100% rename from src/third-party/Qt-Color-Widgets/src/color_utils.cpp rename to external/Qt-Color-Widgets/src/color_utils.cpp diff --git a/src/third-party/Qt-Color-Widgets/src/color_utils.hpp b/external/Qt-Color-Widgets/src/color_utils.hpp similarity index 100% rename from src/third-party/Qt-Color-Widgets/src/color_utils.hpp rename to external/Qt-Color-Widgets/src/color_utils.hpp diff --git a/src/third-party/Qt-Color-Widgets/src/color_wheel.cpp b/external/Qt-Color-Widgets/src/color_wheel.cpp similarity index 99% rename from src/third-party/Qt-Color-Widgets/src/color_wheel.cpp rename to external/Qt-Color-Widgets/src/color_wheel.cpp index 37a03437..22915f54 100644 --- a/src/third-party/Qt-Color-Widgets/src/color_wheel.cpp +++ b/external/Qt-Color-Widgets/src/color_wheel.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include namespace color_widgets { @@ -72,7 +73,7 @@ public: , color_from(&QColor::fromHsvF) , rainbow_from_hue(&detail::rainbow_hsv) { - QColor bgColor = widget->palette().background().color(); + QColor bgColor = widget->palette().window().color(); bgBrightness = color_widgets::detail::color_lumaF(bgColor); } diff --git a/src/third-party/Qt-Color-Widgets/src/color_widgets.qrc b/external/Qt-Color-Widgets/src/color_widgets.qrc similarity index 100% rename from src/third-party/Qt-Color-Widgets/src/color_widgets.qrc rename to external/Qt-Color-Widgets/src/color_widgets.qrc diff --git a/src/third-party/singleapplication/CHANGELOG.md b/external/singleapplication/CHANGELOG.md similarity index 100% rename from src/third-party/singleapplication/CHANGELOG.md rename to external/singleapplication/CHANGELOG.md diff --git a/src/third-party/singleapplication/LICENSE b/external/singleapplication/LICENSE similarity index 100% rename from src/third-party/singleapplication/LICENSE rename to external/singleapplication/LICENSE diff --git a/src/third-party/singleapplication/README.md b/external/singleapplication/README.md similarity index 100% rename from src/third-party/singleapplication/README.md rename to external/singleapplication/README.md diff --git a/src/third-party/singleapplication/Windows.md b/external/singleapplication/Windows.md similarity index 100% rename from src/third-party/singleapplication/Windows.md rename to external/singleapplication/Windows.md diff --git a/src/third-party/singleapplication/singleapplication.cpp b/external/singleapplication/singleapplication.cpp similarity index 99% rename from src/third-party/singleapplication/singleapplication.cpp rename to external/singleapplication/singleapplication.cpp index 093c52e5..a83bd807 100644 --- a/src/third-party/singleapplication/singleapplication.cpp +++ b/external/singleapplication/singleapplication.cpp @@ -116,7 +116,8 @@ void SingleApplicationPrivate::genBlockServerName(int timeout) #endif #ifdef Q_OS_UNIX QProcess process; - process.start(QStringLiteral("whoami")); + process.start(QStringLiteral("whoami"), QStringList{}); + if (process.waitForFinished(timeout) && process.exitCode() == QProcess::NormalExit) { appData.addData(process.readLine()); diff --git a/src/third-party/singleapplication/singleapplication.h b/external/singleapplication/singleapplication.h similarity index 100% rename from src/third-party/singleapplication/singleapplication.h rename to external/singleapplication/singleapplication.h diff --git a/src/third-party/singleapplication/singleapplication.pri b/external/singleapplication/singleapplication.pri similarity index 100% rename from src/third-party/singleapplication/singleapplication.pri rename to external/singleapplication/singleapplication.pri diff --git a/src/third-party/singleapplication/singleapplication_p.h b/external/singleapplication/singleapplication_p.h similarity index 100% rename from src/third-party/singleapplication/singleapplication_p.h rename to external/singleapplication/singleapplication_p.h diff --git a/rpm/flameshot.spec b/rpm/flameshot.spec deleted file mode 100644 index e0607c61..00000000 --- a/rpm/flameshot.spec +++ /dev/null @@ -1,67 +0,0 @@ -Name: flameshot -Version: 0.6.0 -Release: 1%{?dist} -Summary: Powerful yet simple to use screenshot software -Summary(eu-ES): Potente pero simple de usar software de capturas - -%global sourcename flameshot - -Group: Application -License: GPLv3 -URL: https://github.com/lupoDharkael/%{sourcename} -Source0: https://github.com/lupoDharkael/%{sourcename}/archive/v%{version}.tar.gz - -#%%define _binaries_in_noarch_packages_terminate_build 0 -#BuildArch: noarch - -BuildRequires: gcc-c++ >= 4.9.2 -BuildRequires: pkgconfig(Qt5Core) >= 5.3.0 -BuildRequires: pkgconfig(Qt5Gui) >= 5.3.0 -BuildRequires: pkgconfig(Qt5Widgets) >= 5.3.0 -BuildRequires: qt5-qttools-devel -BuildRequires: qt5-linguist -BuildRequires: qt5-qtsvg-devel -BuildRequires: git - -Requires: qt5-qtbase >= 5.3.0 -Requires: qt5-qttools -Requires: qt5-qtsvg - -%description -Flameshot is a screenshot software, it's -powerful yet simple to use for GNU/Linux - -%prep -%setup -q -n v%{version} - -%build -#%%qmake_qt5 PREFIX=%{_prefix} -%qmake_qt5 CONFIG+=packaging CONFIG-=debug CONFIG+=release -make %{?_smp_mflags} - -%install -%make_install INSTALL_ROOT=%{buildroot} - -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig - -%files -%doc README.md -%license LICENSE -%{_bindir}/%{name} -%{_datadir}/dbus-1/interfaces/org.dharkael.Flameshot.xml -%{_datadir}/metainfo/flameshot.appdata.xml -%{_datadir}/dbus-1/services/org.dharkael.Flameshot.service -%{_datadir}/flameshot/translations/Internationalization_*.qm -%{_datadir}/applications/%{name}.desktop -%{_datadir}/bash-completion/completions/%{name} -%{_datadir}/icons/hicolor - -%changelog -* Sat Aug 18 2018 Zetao Yang - 0.6.0-1 -- Updated for flameshot 0.6.0 -- More details, please see https://flameshot.js.org/#/changelog?id=v060 -* Tue Jan 09 2018 Zetao Yang - 0.5.0-1 -- Initial package for flameshot 0.5.0 -- More details, please see https://flameshot.js.org/#/changelog?id=v051 - diff --git a/.travis/services/0x0.st.sh b/scripts/upload_services/0x0.st.sh similarity index 100% rename from .travis/services/0x0.st.sh rename to scripts/upload_services/0x0.st.sh diff --git a/.travis/services/file.io.sh b/scripts/upload_services/file.io.sh similarity index 100% rename from .travis/services/file.io.sh rename to scripts/upload_services/file.io.sh diff --git a/.travis/services/transfer.sh.sh b/scripts/upload_services/transfer.sh.sh similarity index 100% rename from .travis/services/transfer.sh.sh rename to scripts/upload_services/transfer.sh.sh diff --git a/.travis/services/transferwee.py b/scripts/upload_services/transferwee.py old mode 100755 new mode 100644 similarity index 73% rename from .travis/services/transferwee.py rename to scripts/upload_services/transferwee.py index 3bf4fc30..60fea046 --- a/.travis/services/transferwee.py +++ b/scripts/upload_services/transferwee.py @@ -1,7 +1,7 @@ -#!/usr/bin/env python3.7 +#!/usr/bin/env python3 # -# Copyright (c) 2018-2019 Leonardo Taccari +# Copyright (c) 2018-2020 Leonardo Taccari # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -38,9 +38,9 @@ files from a `we.tl' or `wetransfer.com/downloads' URLs and upload files that will be shared via emails or link. """ - from typing import List import os.path +import re import urllib.parse import zlib @@ -50,6 +50,7 @@ import requests WETRANSFER_API_URL = 'https://wetransfer.com/api/v4/transfers' WETRANSFER_DOWNLOAD_URL = WETRANSFER_API_URL + '/{transfer_id}/download' WETRANSFER_UPLOAD_EMAIL_URL = WETRANSFER_API_URL + '/email' +WETRANSFER_VERIFY_URL = WETRANSFER_API_URL + '/{transfer_id}/verify' WETRANSFER_UPLOAD_LINK_URL = WETRANSFER_API_URL + '/link' WETRANSFER_FILES_URL = WETRANSFER_API_URL + '/{transfer_id}/files' WETRANSFER_PART_PUT_URL = WETRANSFER_FILES_URL + '/{file_id}/part-put-url' @@ -57,6 +58,7 @@ WETRANSFER_FINALIZE_MPP_URL = WETRANSFER_FILES_URL + '/{file_id}/finalize-mpp' WETRANSFER_FINALIZE_URL = WETRANSFER_API_URL + '/{transfer_id}/finalize' WETRANSFER_DEFAULT_CHUNK_SIZE = 5242880 +WETRANSFER_EXPIRE_IN = 604800 def download_url(url: str) -> str: @@ -87,7 +89,7 @@ def download_url(url: str) -> str: url = r.url recipient_id = None - params = url.replace('https://wetransfer.com/downloads/', '').split('/') + params = urllib.parse.urlparse(url).path.split('/')[2:] if len(params) == 2: transfer_id, security_hash = params @@ -97,26 +99,39 @@ def download_url(url: str) -> str: return None j = { + "intent": "entire_transfer", "security_hash": security_hash, } if recipient_id: j["recipient_id"] = recipient_id - r = requests.post(WETRANSFER_DOWNLOAD_URL.format(transfer_id=transfer_id), - json=j) + s = _prepare_session() + r = s.post(WETRANSFER_DOWNLOAD_URL.format(transfer_id=transfer_id), + json=j) j = r.json() return j.get('direct_link') -def download(url: str) -> None: +def _file_unquote(file: str) -> str: + """Given a URL encoded file unquote it. + + All occurences of `\', `/' and `../' will be ignored to avoid possible + directory traversals. + """ + return urllib.parse.unquote(file).replace('../', '').replace('/', '').replace('\\', '') + + +def download(url: str, file: str = '') -> None: """Given a `we.tl/' or `wetransfer.com/downloads/' download it. - First a direct link is retrieved (via download_url()), the filename will - be extracted to it and it will be fetched and stored on the current + First a direct link is retrieved (via download_url()), the filename can be + provided via the optional `file' argument. If not provided the filename + will be extracted to it and it will be fetched and stored on the current working directory. """ dl_url = download_url(url) - file = urllib.parse.urlparse(dl_url).path.split('/')[-1] + if not file: + file = _file_unquote(urllib.parse.urlparse(dl_url).path.split('/')[-1]) r = requests.get(dl_url, stream=True) with open(file, 'wb') as f: @@ -138,8 +153,24 @@ def _file_name_and_size(file: str) -> dict: } +def _prepare_session() -> requests.Session: + """Prepare a wetransfer.com session. + + Return a requests session that will always pass the initial X-CSRF-Token: + and with cookies properly populated that can be used for wetransfer + requests. + """ + s = requests.Session() + r = s.get('https://wetransfer.com/') + m = re.search('name="csrf-token" content="([^"]+)"', r.text) + s.headers.update({'X-CSRF-Token': m.group(1)}) + + return s + + def _prepare_email_upload(filenames: List[str], message: str, - sender: str, recipients: List[str]) -> str: + sender: str, recipients: List[str], + session: requests.Session) -> str: """Given a list of filenames, message a sender and recipients prepare for the email upload. @@ -153,11 +184,29 @@ def _prepare_email_upload(filenames: List[str], message: str, "ui_language": "en", } - r = requests.post(WETRANSFER_UPLOAD_EMAIL_URL, json=j) + r = session.post(WETRANSFER_UPLOAD_EMAIL_URL, json=j) return r.json() -def _prepare_link_upload(filenames: List[str], message: str) -> str: +def _verify_email_upload(transfer_id: str, session: requests.Session) -> str: + """Given a transfer_id, read the code from standard input. + + Return the parsed JSON response. + """ + code = input('Code:') + + j = { + "code": code, + "expire_in": WETRANSFER_EXPIRE_IN, + } + + r = session.post(WETRANSFER_VERIFY_URL.format(transfer_id=transfer_id), + json=j) + return r.json() + + +def _prepare_link_upload(filenames: List[str], message: str, + session: requests.Session) -> str: """Given a list of filenames and a message prepare for the link upload. Return the parsed JSON response. @@ -168,22 +217,24 @@ def _prepare_link_upload(filenames: List[str], message: str) -> str: "ui_language": "en", } - r = requests.post(WETRANSFER_UPLOAD_LINK_URL, json=j) + r = session.post(WETRANSFER_UPLOAD_LINK_URL, json=j) return r.json() -def _prepare_file_upload(transfer_id: str, file: str) -> str: +def _prepare_file_upload(transfer_id: str, file: str, + session: requests.Session) -> str: """Given a transfer_id and file prepare it for the upload. Return the parsed JSON response. """ j = _file_name_and_size(file) - r = requests.post(WETRANSFER_FILES_URL.format(transfer_id=transfer_id), - json=j) + r = session.post(WETRANSFER_FILES_URL.format(transfer_id=transfer_id), + json=j) return r.json() def _upload_chunks(transfer_id: str, file_id: str, file: str, + session: requests.Session, default_chunk_size: int = WETRANSFER_DEFAULT_CHUNK_SIZE) -> str: """Given a transfer_id, file_id and file upload it. @@ -206,22 +257,22 @@ def _upload_chunks(transfer_id: str, file_id: str, file: str, "retries": 0 } - r = requests.post( + r = session.post( WETRANSFER_PART_PUT_URL.format(transfer_id=transfer_id, file_id=file_id), json=j) url = r.json().get('url') - r = requests.options(url, + requests.options(url, headers={ 'Origin': 'https://wetransfer.com', 'Access-Control-Request-Method': 'PUT', }) - r = requests.put(url, data=chunk) + requests.put(url, data=chunk) j = { 'chunk_count': chunk_number } - r = requests.put( + r = session.put( WETRANSFER_FINALIZE_MPP_URL.format(transfer_id=transfer_id, file_id=file_id), json=j) @@ -229,12 +280,12 @@ def _upload_chunks(transfer_id: str, file_id: str, file: str, return r.json() -def _finalize_upload(transfer_id: str) -> str: +def _finalize_upload(transfer_id: str, session: requests.Session) -> str: """Given a transfer_id finalize the upload. Return the parsed JSON response. """ - r = requests.put(WETRANSFER_FINALIZE_URL.format(transfer_id=transfer_id)) + r = session.put(WETRANSFER_FINALIZE_URL.format(transfer_id=transfer_id)) return r.json() @@ -260,31 +311,34 @@ def upload(files: List[str], message: str = '', sender: str = None, # Check that all files exists for f in files: if not os.path.exists(f): - return None + raise FileNotFoundError(f) # Check that there are no duplicates filenames # (despite possible different dirname()) filenames = [os.path.basename(f) for f in files] if len(files) != len(set(filenames)): - return None + raise FileExistsError('Duplicate filenames') transfer_id = None + s = _prepare_session() if sender and recipients: # email upload transfer_id = \ - _prepare_email_upload(filenames, message, sender, recipients)['id'] + _prepare_email_upload(files, message, sender, recipients, s)['id'] + _verify_email_upload(transfer_id, s) else: # link upload - transfer_id = _prepare_link_upload(filenames, message)['id'] + transfer_id = _prepare_link_upload(files, message, s)['id'] for f in files: - file_id = _prepare_file_upload(transfer_id, os.path.basename(f))['id'] - _upload_chunks(transfer_id, file_id, f) + file_id = _prepare_file_upload(transfer_id, f, s)['id'] + _upload_chunks(transfer_id, file_id, f, s) - return _finalize_upload(transfer_id)['shortened_url'] + return _finalize_upload(transfer_id, s)['shortened_url'] if __name__ == '__main__': + from sys import exit import argparse ap = argparse.ArgumentParser( @@ -297,6 +351,8 @@ if __name__ == '__main__': dp = sp.add_parser('download', help='download files') dp.add_argument('-g', action='store_true', help='only print the direct link (without downloading it)') + dp.add_argument('-o', type=str, default='', metavar='file', + help='output file to be used') dp.add_argument('url', nargs='+', type=str, metavar='url', help='URL (we.tl/... or wetransfer.com/downloads/...)') @@ -318,7 +374,7 @@ if __name__ == '__main__': print(download_url(u)) else: for u in args.url: - download(u) + download(u, args.o) exit(0) if args.action == 'upload': @@ -327,4 +383,4 @@ if __name__ == '__main__': # No action selected, print help message ap.print_help() - exit(1) + exit(1) \ No newline at end of file diff --git a/.travis/services/wetransfer.com.sh b/scripts/upload_services/wetransfer.com.sh old mode 100755 new mode 100644 similarity index 86% rename from .travis/services/wetransfer.com.sh rename to scripts/upload_services/wetransfer.com.sh index e730f46d..89901c34 --- a/.travis/services/wetransfer.com.sh +++ b/scripts/upload_services/wetransfer.com.sh @@ -20,6 +20,11 @@ if [ ! -f "$FILE" ]; then exit 1 fi -RESPONSE=$(python3 transferwee.py upload "${FILE}") + +scripts_path=`dirname $0` + +python3 -m pip install -U -q requests + +RESPONSE=$(python3 ${scripts_path}/transferwee.py upload "${FILE}") echo "${RESPONSE}" # to terminal diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 00000000..96928ac6 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,208 @@ +find_package( + Qt5 + CONFIG + REQUIRED + Core + Gui + Widgets + Network + Svg + DBus + LinguistTools) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +add_executable(flameshot) + +add_executable(Flameshot::flameshot ALIAS flameshot) + +if(WIN32) + set_property(TARGET flameshot PROPERTY WIN32_EXECUTABLE true) +endif() + +add_subdirectory(cli) +add_subdirectory(config) +add_subdirectory(core) +add_subdirectory(utils) +add_subdirectory(widgets) +add_subdirectory(tools) + +set(FLAMESHOT_TS_FILES + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_ca.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_cs.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_de_DE.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_es.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_eu_ES.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_fr.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_hu.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_it_IT.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_ja.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_ka.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_ko.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_nl.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_nl_NL.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_pl.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_pt_BR.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_ru.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_sk.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_sr_SP.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_sv_SE.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_tr.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_uk.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_zh_CN.ts + ${CMAKE_SOURCE_DIR}/data/translations/Internationalization_zh_TW.ts) + +if(GENERATE_TS) + qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${FLAMESHOT_TS_FILES}) +else() + qt5_add_translation(QM_FILES ${FLAMESHOT_TS_FILES}) +endif() + +target_sources( + flameshot + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../external/singleapplication/singleapplication.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/../external/Qt-Color-Widgets/src/color_utils.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/../external/Qt-Color-Widgets/src/color_wheel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/../external/Qt-Color-Widgets/include/color_wheel.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/../data/graphics.qrc + ${CMAKE_CURRENT_SOURCE_DIR}/../data/icon.rc # windows binary icon resource file + ${QM_FILES} + main.cpp) + +target_include_directories( + flameshot + PUBLIC $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $) + +target_link_libraries( + flameshot + project_warnings + project_options + Qt5::Svg + Qt5::DBus + Qt5::Network + Qt5::Widgets) + +target_compile_definitions(flameshot PRIVATE APP_PREFIX="${CMAKE_INSTALL_PREFIX}") +target_compile_definitions(flameshot PRIVATE APP_VERSION="v${PROJECT_VERSION}") +target_compile_definitions(flameshot PRIVATE IMGUR_CLIENT_ID="313baf0c7b4d3ff") +target_compile_definitions(flameshot PRIVATE QAPPLICATION_CLASS=QApplication) + +foreach(FILE ${QM_FILES}) + get_filename_component(F_NAME ${FILE} NAME) + add_custom_command( + TARGET flameshot + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${F_NAME} + ${CMAKE_CURRENT_BINARY_DIR}/translations/${F_NAME}) +endforeach() +# ###################################################################################################################### +# Installation instructions + +include(GNUInstallDirs) +set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/Flameshot) + +# Install binary +install( + TARGETS flameshot + EXPORT flameshot-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + +# Install desktop files, completion and dbus files +configure_file(${CMAKE_SOURCE_DIR}/docs/desktopEntry/package/flameshot.desktop + ${CMAKE_CURRENT_BINARY_DIR}/share/applications/flameshot.desktop COPYONLY) + +configure_file(${CMAKE_SOURCE_DIR}/docs/appdata/flameshot.metainfo.xml + ${CMAKE_CURRENT_BINARY_DIR}/share/metainfo/flameshot.metainfo.xml COPYONLY) + +configure_file(${CMAKE_SOURCE_DIR}/docs/shell-completion/flameshot + ${CMAKE_CURRENT_BINARY_DIR}/share/bash-completion/completions/flameshot COPYONLY) + +configure_file(${CMAKE_SOURCE_DIR}/docs/shell-completion/flameshot + ${CMAKE_CURRENT_BINARY_DIR}/share/zsh/site-functions/_flameshot COPYONLY) + +configure_file(${CMAKE_SOURCE_DIR}/data/dbus/org.flameshot.Flameshot.xml + ${CMAKE_CURRENT_BINARY_DIR}/share/dbus-1/interfaces/org.flameshot.Flameshot.xml COPYONLY) + +configure_file(${CMAKE_SOURCE_DIR}/data/dbus/org.flameshot.Flameshot.service.in + ${CMAKE_CURRENT_BINARY_DIR}/share/dbus-1/services/org.flameshot.Flameshot.service) + +# Install Icons +configure_file(${CMAKE_SOURCE_DIR}/data/img/hicolor/48x48/apps/flameshot.png + ${CMAKE_CURRENT_BINARY_DIR}/share/icons/hicolor/48x48/apps/flameshot.png COPYONLY) + +configure_file(${CMAKE_SOURCE_DIR}/data/img/hicolor/128x128/apps/flameshot.png + ${CMAKE_CURRENT_BINARY_DIR}/share/icons/hicolor/128x128/apps/flameshot.png COPYONLY) + +configure_file(${CMAKE_SOURCE_DIR}/data/img/hicolor/scalable/apps/flameshot.svg + ${CMAKE_CURRENT_BINARY_DIR}/share/icons/hicolor/scalable/apps/flameshot.svg COPYONLY) + +# Install assets +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/share/ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}) + +# Install Translations +install(FILES ${QM_FILES} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/flameshot/translations) + + +# windeployqt +if(WIN32) + if(EXISTS $ENV{QTDIR}/bin/windeployqt.exe) + if(CMAKE_BUILD_TYPE MATCHES Release) + set(BINARIES_TYPE --release) + else() + set(BINARIES_TYPE --debug) + endif() + + add_custom_command( + TARGET flameshot POST_BUILD + COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_DIR}/windeployqt_stuff + COMMAND $ENV{QTDIR}/bin/windeployqt.exe ${BINARIES_TYPE} --no-translations --compiler-runtime --no-system-d3d-compiler --no-angle --no-webkit2 --no-quick-import --dir ${CMAKE_BINARY_DIR}/windeployqt_stuff $ + # copy translations manually + # QM_FILES + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/windeployqt_stuff/translations + COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/src/translations ${CMAKE_BINARY_DIR}/windeployqt_stuff/translations + ) + + install( + DIRECTORY ${CMAKE_BINARY_DIR}/windeployqt_stuff/ + DESTINATION bin + ) + + else() + message("Unable to find executable QTDIR/bin/windeployqt.") + endif() +endif() diff --git a/src/cli/CMakeLists.txt b/src/cli/CMakeLists.txt new file mode 100644 index 00000000..5be613ac --- /dev/null +++ b/src/cli/CMakeLists.txt @@ -0,0 +1 @@ +target_sources(flameshot PRIVATE commandlineparser.cpp commandoption.cpp commandargument.cpp) diff --git a/src/cli/commandlineparser.cpp b/src/cli/commandlineparser.cpp index 71437b26..049dbd22 100644 --- a/src/cli/commandlineparser.cpp +++ b/src/cli/commandlineparser.cpp @@ -61,7 +61,7 @@ QString optionsToString(const QList& options, // generate the text QString result; if (!dashedOptionList.isEmpty()) { - result += QLatin1String("Options:\n"); + result += QObject::tr("Options") + ":\n"; QString linePadding = QStringLiteral(" ").repeated(size + 4).prepend("\n"); for (int i = 0; i < options.length(); ++i) { @@ -75,7 +75,7 @@ QString optionsToString(const QList& options, } } if (!arguments.isEmpty()) { - result += QLatin1String("Arguments:\n"); + result += QObject::tr("Arguments") + ":\n"; } for (int i = 0; i < arguments.length(); ++i) { result += QStringLiteral(" %1 %2\n") @@ -327,16 +327,25 @@ void CommandLineParser::printHelp(QStringList args, const Node* node) { args.removeLast(); // remove the help, it's always the last QString helpText; + // add usage info QString argName = node->argument.name(); if (argName.isEmpty()) { argName = qApp->applicationName(); } - QString argText = node->subNodes.isEmpty() ? "" : "[arguments]"; - helpText += QStringLiteral("Usage: %1 [%2-options] %3\n\n") + QString argText = + node->subNodes.isEmpty() ? "" : "[" + QObject::tr("arguments") + "]"; + helpText += QObject::tr("Usage") + ": %1 [%2-" + QObject::tr("options") + + QStringLiteral("] %3\n\n") .arg(args.join(QStringLiteral(" "))) .arg(argName) .arg(argText); + + // short section about default behavior + helpText += QObject::tr("Per default runs Flameshot in the background and \ + adds a tray icon for configuration."); + helpText += "\n\n"; + // add command options and subarguments QList subArgs; for (const Node& n : node->subNodes) diff --git a/src/config/CMakeLists.txt b/src/config/CMakeLists.txt new file mode 100644 index 00000000..72360542 --- /dev/null +++ b/src/config/CMakeLists.txt @@ -0,0 +1,11 @@ +target_sources( + flameshot + PRIVATE buttonlistview.cpp + clickablelabel.cpp + configwindow.cpp + extendedslider.cpp + filenameeditor.cpp + geneneralconf.cpp + strftimechooserwidget.cpp + uicoloreditor.cpp + visualseditor.cpp) diff --git a/src/config/buttonlistview.cpp b/src/config/buttonlistview.cpp index 45280d6b..6db9192b 100644 --- a/src/config/buttonlistview.cpp +++ b/src/config/buttonlistview.cpp @@ -35,9 +35,9 @@ ButtonListView::ButtonListView(QWidget* parent) void ButtonListView::initButtonList() { ToolFactory factory; - auto listTypes = CaptureButton::getIterableButtonTypes(); + auto listTypes = CaptureToolButton::getIterableButtonTypes(); - for (const CaptureButton::ButtonType t : listTypes) { + for (const CaptureToolButton::ButtonType t : listTypes) { CaptureTool* tool = factory.CreateTool(t); // add element to the local map @@ -63,14 +63,14 @@ void ButtonListView::initButtonList() void ButtonListView::updateActiveButtons(QListWidgetItem* item) { - CaptureButton::ButtonType bType = m_buttonTypeByName[item->text()]; + CaptureToolButton::ButtonType bType = m_buttonTypeByName[item->text()]; if (item->checkState() == Qt::Checked) { m_listButtons.append(bType); // TODO refactor so we don't need external sorts - using bt = CaptureButton::ButtonType; + using bt = CaptureToolButton::ButtonType; std::sort(m_listButtons.begin(), m_listButtons.end(), [](bt a, bt b) { - return CaptureButton::getPriorityByButton(a) < - CaptureButton::getPriorityByButton(b); + return CaptureToolButton::getPriorityByButton(a) < + CaptureToolButton::getPriorityByButton(b); }); } else { m_listButtons.remove(m_listButtons.indexOf(bType)); @@ -100,10 +100,10 @@ void ButtonListView::selectAll() void ButtonListView::updateComponents() { m_listButtons = ConfigHandler().getButtons(); - auto listTypes = CaptureButton::getIterableButtonTypes(); + auto listTypes = CaptureToolButton::getIterableButtonTypes(); for (int i = 0; i < this->count(); ++i) { QListWidgetItem* item = this->item(i); - auto elem = static_cast(listTypes.at(i)); + auto elem = static_cast(listTypes.at(i)); if (m_listButtons.contains(elem)) { item->setCheckState(Qt::Checked); } else { diff --git a/src/config/buttonlistview.h b/src/config/buttonlistview.h index 8cefeb6a..55bacb7b 100644 --- a/src/config/buttonlistview.h +++ b/src/config/buttonlistview.h @@ -17,7 +17,7 @@ #pragma once -#include "src/widgets/capture/capturebutton.h" +#include "src/widgets/capture/capturetoolbutton.h" #include class ButtonListView : public QListWidget @@ -36,8 +36,8 @@ protected: void initButtonList(); private: - QVector m_listButtons; - QMap m_buttonTypeByName; + QVector m_listButtons; + QMap m_buttonTypeByName; void updateActiveButtons(QListWidgetItem*); }; diff --git a/src/config/configwindow.cpp b/src/config/configwindow.cpp index c3c2aa14..cc5f804c 100644 --- a/src/config/configwindow.cpp +++ b/src/config/configwindow.cpp @@ -26,7 +26,7 @@ #include "src/utils/confighandler.h" #include "src/utils/globalvalues.h" #include "src/utils/pathinfo.h" -#include "src/widgets/capture/capturebutton.h" +#include "src/widgets/capture/capturetoolbutton.h" #include #include #include @@ -56,7 +56,7 @@ ConfigWindow::ConfigWindow(QWidget* parent) connect( m_configWatcher, &QFileSystemWatcher::fileChanged, this, changedSlot); - QColor background = this->palette().background().color(); + QColor background = this->palette().window().color(); bool isDark = ColorUtils::colorIsDark(background); QString modifier = isDark ? PathInfo::whiteIconPath() : PathInfo::blackIconPath(); diff --git a/src/config/filenameeditor.cpp b/src/config/filenameeditor.cpp index abbcc64d..a8631a73 100644 --- a/src/config/filenameeditor.cpp +++ b/src/config/filenameeditor.cpp @@ -62,7 +62,7 @@ void FileNameEditor::initWidgets() // preview m_outputLabel = new QLineEdit(this); m_outputLabel->setDisabled(true); - QString foreground = this->palette().foreground().color().name(); + QString foreground = this->palette().windowText().color().name(); m_outputLabel->setStyleSheet(QStringLiteral("color: %1").arg(foreground)); QPalette pal = m_outputLabel->palette(); QColor color = diff --git a/src/config/geneneralconf.cpp b/src/config/geneneralconf.cpp index 58e55687..f9d68483 100644 --- a/src/config/geneneralconf.cpp +++ b/src/config/geneneralconf.cpp @@ -18,6 +18,8 @@ #include "geneneralconf.h" #include "filepathconfiguration.h" #include "src/core/controller.h" +#include "src/utils/confighandler.h" +#include "src/utils/filenamehandler.h" #include "src/tools/storage/imgstorages.h" #include "src/utils/confighandler.h" #include @@ -25,24 +27,27 @@ #include #include #include +#include #include #include #include +#include #include #include - GeneneralConf::GeneneralConf(QWidget* parent) : QWidget(parent) { m_layout = new QVBoxLayout(this); m_layout->setAlignment(Qt::AlignTop); initShowHelp(); + initShowSidePanelButton(); initShowDesktopNotification(); initShowTrayIcon(); initAutostart(); initShowStartupLaunchMessage(); initCloseAfterCapture(); initCopyAndCloseAfterUpload(); + initSaveAfterCopy(); initCopyPathAfterSave(); initUploadStorage(); initFilePathConfiguration(); @@ -56,11 +61,20 @@ void GeneneralConf::updateComponents() { ConfigHandler config; m_helpMessage->setChecked(config.showHelpValue()); + m_sidePanelButton->setChecked(config.showSidePanelButtonValue()); m_sysNotifications->setChecked(config.desktopNotificationValue()); m_autostart->setChecked(config.startupLaunchValue()); m_closeAfterCapture->setChecked(config.closeAfterScreenshotValue()); m_copyAndCloseAfterUpload->setChecked( config.copyAndCloseAfterUploadEnabled()); + m_saveAfterCopy->setChecked(config.saveAfterCopyValue()); + + if (!config.saveAfterCopyPathValue().isEmpty()) { + m_savePath->setText(config.saveAfterCopyPathValue()); + } else { + ConfigHandler().setSaveAfterCopyPath( + QStandardPaths::writableLocation(QStandardPaths::PicturesLocation)); + } m_copyPathAfterSave->setChecked(config.copyPathAfterSaveEnabled()); #if defined(Q_OS_LINUX) || defined(Q_OS_UNIX) @@ -73,6 +87,11 @@ void GeneneralConf::showHelpChanged(bool checked) ConfigHandler().setShowHelp(checked); } +void GeneneralConf::showSidePanelButtonChanged(bool checked) +{ + ConfigHandler().setShowSidePanelButton(checked); +} + void GeneneralConf::showDesktopNotificationChanged(bool checked) { ConfigHandler().setDesktopNotification(checked); @@ -176,6 +195,19 @@ void GeneneralConf::initShowHelp() &GeneneralConf::showHelpChanged); } +void GeneneralConf::initShowSidePanelButton() +{ + m_sidePanelButton = new QCheckBox(tr("Show the side panel button"), this); + m_sidePanelButton->setChecked(ConfigHandler().showSidePanelButtonValue()); + m_sidePanelButton->setToolTip( + tr("Show the side panel toggle button in the capture mode.")); + m_layout->addWidget(m_sidePanelButton); + + connect(m_sidePanelButton, + &QCheckBox::clicked, + this, + &GeneneralConf::showSidePanelButtonChanged); +} void GeneneralConf::initShowDesktopNotification() { m_sysNotifications = new QCheckBox(tr("Show desktop notifications"), this); @@ -299,6 +331,62 @@ void GeneneralConf::initCopyAndCloseAfterUpload() }); } +void GeneneralConf::initSaveAfterCopy() +{ + m_saveAfterCopy = new QCheckBox(tr("Save image after copy"), this); + m_saveAfterCopy->setToolTip(tr("Save image file after copying it")); + m_layout->addWidget(m_saveAfterCopy); + connect(m_saveAfterCopy, + &QCheckBox::clicked, + this, + &GeneneralConf::saveAfterCopyChanged); + + QHBoxLayout* pathLayout = new QHBoxLayout(); + m_layout->addStretch(); + QGroupBox* box = new QGroupBox(tr("Save Path")); + box->setFlat(true); + box->setLayout(pathLayout); + m_layout->addWidget(box); + + m_savePath = new QLineEdit( + QStandardPaths::writableLocation(QStandardPaths::PicturesLocation), this); + m_savePath->setDisabled(true); + QString foreground = this->palette().foreground().color().name(); + m_savePath->setStyleSheet(QStringLiteral("color: %1").arg(foreground)); + pathLayout->addWidget(m_savePath); + + m_changeSaveButton = new QPushButton(tr("Change..."), this); + pathLayout->addWidget(m_changeSaveButton); + connect(m_changeSaveButton, + &QPushButton::clicked, + this, + &GeneneralConf::changeSavePath); +} + +void GeneneralConf::saveAfterCopyChanged(bool checked) +{ + ConfigHandler().setSaveAfterCopy(checked); +} + +void GeneneralConf::changeSavePath() +{ + QString path = QFileDialog::getExistingDirectory( + this, + tr("Choose a Folder"), + QStandardPaths::writableLocation(QStandardPaths::PicturesLocation), + QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); + if (path.isEmpty()) { + return; + } + if (!QFileInfo(path).isWritable()) { + QMessageBox::about( + this, tr("Error"), tr("Unable to write to directory.")); + return; + } + m_savePath->setText(path); + ConfigHandler().setSaveAfterCopyPath(path); +} + void GeneneralConf::initCopyPathAfterSave() { m_copyPathAfterSave = new QCheckBox(tr("Copy file path after save"), this); diff --git a/src/config/geneneralconf.h b/src/config/geneneralconf.h index e5d881f7..ac3bab6d 100644 --- a/src/config/geneneralconf.h +++ b/src/config/geneneralconf.h @@ -22,8 +22,11 @@ class QVBoxLayout; class QCheckBox; class QPushButton; +class QLabel; +class QLineEdit; class FilePathConfiguration; + class GeneneralConf : public QWidget { Q_OBJECT @@ -35,20 +38,24 @@ public slots: private slots: void showHelpChanged(bool checked); + void showSidePanelButtonChanged(bool checked); void showDesktopNotificationChanged(bool checked); void showTrayIconChanged(bool checked); void autostartChanged(bool checked); - void showStartupLaunchMessageChanged(bool checked); void closeAfterCaptureChanged(bool checked); + void saveAfterCopyChanged(bool checked); + void changeSavePath(); void importConfiguration(); void exportFileConfiguration(); void resetConfiguration(); + void showStartupLaunchMessageChanged(bool checked); private: QVBoxLayout* m_layout; QCheckBox* m_sysNotifications; QCheckBox* m_showTray; QCheckBox* m_helpMessage; + QCheckBox* m_sidePanelButton; QCheckBox* m_autostart; QCheckBox* m_showStartupLaunchMessage; QCheckBox* m_closeAfterCapture; @@ -57,9 +64,13 @@ private: QPushButton* m_importButton; QPushButton* m_exportButton; QPushButton* m_resetButton; + QCheckBox* m_saveAfterCopy; + QLineEdit* m_savePath; + QPushButton* m_changeSaveButton; FilePathConfiguration* m_filePathConfiguration; void initShowHelp(); + void initShowSidePanelButton(); void initShowDesktopNotification(); void initShowTrayIcon(); void initConfingButtons(); @@ -67,6 +78,7 @@ private: void initShowStartupLaunchMessage(); void initCloseAfterCapture(); void initCopyAndCloseAfterUpload(); + void initSaveAfterCopy(); void initCopyPathAfterSave(); void initUploadStorage(); void initFilePathConfiguration(); diff --git a/src/config/uicoloreditor.cpp b/src/config/uicoloreditor.cpp index 161b77dc..4761e938 100644 --- a/src/config/uicoloreditor.cpp +++ b/src/config/uicoloreditor.cpp @@ -116,7 +116,7 @@ void UIcolorEditor::initButtons() QGroupBox* frame = new QGroupBox(); frame->setFixedSize(frameSize, frameSize); - m_buttonMainColor = new CaptureButton(m_buttonIconType, frame); + m_buttonMainColor = new CaptureToolButton(m_buttonIconType, frame); m_buttonMainColor->move(m_buttonMainColor->x() + extraSize / 2, m_buttonMainColor->y() + extraSize / 2); QHBoxLayout* h1 = new QHBoxLayout(); @@ -129,7 +129,7 @@ void UIcolorEditor::initButtons() " mode of the main color.")); QGroupBox* frame2 = new QGroupBox(); - m_buttonContrast = new CaptureButton(m_buttonIconType, frame2); + m_buttonContrast = new CaptureToolButton(m_buttonIconType, frame2); m_buttonContrast->move(m_buttonContrast->x() + extraSize / 2, m_buttonContrast->y() + extraSize / 2); @@ -145,11 +145,11 @@ void UIcolorEditor::initButtons() " mode of the contrast color.")); connect(m_buttonMainColor, - &CaptureButton::pressedButton, + &CaptureToolButton::pressedButton, this, &UIcolorEditor::changeLastButton); connect(m_buttonContrast, - &CaptureButton::pressedButton, + &CaptureToolButton::pressedButton, this, &UIcolorEditor::changeLastButton); // clicking the labels changes the button too @@ -163,7 +163,7 @@ void UIcolorEditor::initButtons() } // visual update for the selected button -void UIcolorEditor::changeLastButton(CaptureButton* b) +void UIcolorEditor::changeLastButton(CaptureToolButton* b) { if (m_lastButtonPressed != b) { m_lastButtonPressed = b; diff --git a/src/config/uicoloreditor.h b/src/config/uicoloreditor.h index 4b1f6f0a..bc57f881 100644 --- a/src/config/uicoloreditor.h +++ b/src/config/uicoloreditor.h @@ -18,12 +18,12 @@ #pragma once #include "color_wheel.hpp" -#include "src/widgets/capture/capturebutton.h" +#include "src/widgets/capture/capturetoolbutton.h" #include class QVBoxLayout; class QHBoxLayout; -class CaptureButton; +class CaptureToolButton; class ClickableLabel; class UIcolorEditor : public QGroupBox @@ -38,19 +38,19 @@ public slots: private slots: void updateUIcolor(); void updateLocalColor(const QColor); - void changeLastButton(CaptureButton*); + void changeLastButton(CaptureToolButton*); private: QColor m_uiColor, m_contrastColor; - CaptureButton* m_buttonMainColor; + CaptureToolButton* m_buttonMainColor; ClickableLabel* m_labelMain; - CaptureButton* m_buttonContrast; + CaptureToolButton* m_buttonContrast; ClickableLabel* m_labelContrast; - CaptureButton* m_lastButtonPressed; + CaptureToolButton* m_lastButtonPressed; color_widgets::ColorWheel* m_colorWheel; - static const CaptureButton::ButtonType m_buttonIconType = - CaptureButton::TYPE_CIRCLE; + static const CaptureToolButton::ButtonType m_buttonIconType = + CaptureToolButton::TYPE_CIRCLE; QHBoxLayout* m_hLayout; QVBoxLayout* m_vLayout; diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt new file mode 100644 index 00000000..2cea0765 --- /dev/null +++ b/src/core/CMakeLists.txt @@ -0,0 +1,9 @@ + +# Required to generate MOC +target_sources(flameshot PRIVATE controller.h flameshotdbusadapter.h) + +target_sources(flameshot PRIVATE capturerequest.cpp controller.cpp flameshotdbusadapter.cpp) + +IF(WIN32) + target_sources(flameshot PRIVATE globalshortcutfilter.h globalshortcutfilter.cpp) +ENDIF() diff --git a/src/core/capturerequest.cpp b/src/core/capturerequest.cpp index b58bfcb5..dfefac83 100644 --- a/src/core/capturerequest.cpp +++ b/src/core/capturerequest.cpp @@ -87,7 +87,7 @@ void CaptureRequest::exportCapture(const QPixmap& p) if (m_path.isEmpty()) { ScreenshotSaver().saveToFilesystemGUI(p); } else { - ScreenshotSaver().saveToFilesystem(p, m_path); + ScreenshotSaver().saveToFilesystem(p, m_path, ""); } } diff --git a/src/core/controller.cpp b/src/core/controller.cpp index 9b6f4e69..6c804ac1 100644 --- a/src/core/controller.cpp +++ b/src/core/controller.cpp @@ -22,7 +22,7 @@ #include "src/utils/history.h" #include "src/utils/screengrabber.h" #include "src/utils/systemnotification.h" -#include "src/widgets/capture/capturebutton.h" +#include "src/widgets/capture/capturetoolbutton.h" #include "src/widgets/capture/capturewidget.h" #include "src/widgets/capturelauncher.h" #include "src/widgets/historywidget.h" @@ -95,6 +95,8 @@ void Controller::requestCapture(const CaptureRequest& request) this->startFullscreenCapture(id); }); break; + // TODO: Figure out the code path that gets here so the deprated warning + // can be fixed case CaptureRequest::SCREEN_MODE: { int&& number = request.data().toInt(); doLater(request.delay(), this, [this, id, number]() { @@ -188,8 +190,10 @@ void Controller::openInfoWindow() void Controller::openLauncherWindow() { - CaptureLauncher* w = new CaptureLauncher(); - w->show(); + if (!m_launcherWindow) { + m_launcherWindow = new CaptureLauncher(); + } + m_launcherWindow->show(); } void Controller::enableTrayIcon() @@ -210,11 +214,10 @@ void Controller::enableTrayIcon() &QAction::triggered, this, &Controller::openLauncherWindow); - QAction* configAction = new QAction(tr("&Configuration"), this); connect( configAction, &QAction::triggered, this, &Controller::openConfigWindow); - QAction* infoAction = new QAction(tr("&Information"), this); + QAction* infoAction = new QAction(tr("&About"), this); connect(infoAction, &QAction::triggered, this, &Controller::openInfoWindow); QAction* quitAction = new QAction(tr("&Quit"), this); connect(quitAction, &QAction::triggered, qApp, &QCoreApplication::quit); diff --git a/src/core/controller.h b/src/core/controller.h index 299133b4..2308abcc 100644 --- a/src/core/controller.h +++ b/src/core/controller.h @@ -29,7 +29,7 @@ class CaptureWidget; class ConfigWindow; class InfoWindow; class QSystemTrayIcon; - +class CaptureLauncher; using lambda = std::function; class Controller : public QObject @@ -84,6 +84,7 @@ private: QMap m_requestMap; QPointer m_captureWindow; QPointer m_infoWindow; + QPointer m_launcherWindow; QPointer m_configWindow; QPointer m_trayIcon; }; diff --git a/src/core/flameshotdbusadapter.h b/src/core/flameshotdbusadapter.h index 873e1428..12b9152f 100644 --- a/src/core/flameshotdbusadapter.h +++ b/src/core/flameshotdbusadapter.h @@ -23,7 +23,7 @@ class FlameshotDBusAdapter : public QDBusAbstractAdaptor { Q_OBJECT - Q_CLASSINFO("D-Bus Interface", "org.dharkael.Flameshot") + Q_CLASSINFO("D-Bus Interface", "org.flameshot.Flameshot") public: explicit FlameshotDBusAdapter(QObject* parent = nullptr); diff --git a/src/main.cpp b/src/main.cpp index f4010c1b..417f584d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -71,7 +71,7 @@ int main(int argc, char* argv[]) app.installTranslator(&qtTranslator); app.setAttribute(Qt::AA_DontCreateNativeWidgetSiblings, true); app.setApplicationName(QStringLiteral("flameshot")); - app.setOrganizationName(QStringLiteral("Dharkael")); + app.setOrganizationName(QStringLiteral("flameshot")); auto c = Controller::getInstance(); #if defined(Q_OS_LINUX) || defined(Q_OS_UNIX) @@ -82,7 +82,7 @@ int main(int argc, char* argv[]) QObject::tr("Unable to connect via DBus")); } dbus.registerObject(QStringLiteral("/"), c); - dbus.registerService(QStringLiteral("org.dharkael.Flameshot")); + dbus.registerService(QStringLiteral("org.flameshot.Flameshot")); #endif // Exporting captures must be connected after the dbus interface // or the dbus signal gets blocked until we end the exports. @@ -96,65 +96,64 @@ int main(int argc, char* argv[]) * ------------*/ QCoreApplication app(argc, argv); app.setApplicationName(QStringLiteral("flameshot")); - app.setOrganizationName(QStringLiteral("Dharkael")); + app.setOrganizationName(QStringLiteral("flameshot")); app.setApplicationVersion(qApp->applicationVersion()); CommandLineParser parser; // Add description parser.setDescription( - QStringLiteral("Powerful yet simple to use screenshot software.")); - parser.setGeneralErrorMessage(QStringLiteral("See 'flameshot --help'.")); + QObject::tr("Powerful yet simple to use screenshot software.")); + parser.setGeneralErrorMessage(QObject::tr("See") + " flameshot --help."); // Arguments CommandArgument fullArgument(QStringLiteral("full"), - QStringLiteral("Capture the entire desktop.")); - CommandArgument launcherArgument( - QStringLiteral("launcher"), QStringLiteral("Open the capture launcher.")); + QObject::tr("Capture the entire desktop.")); + CommandArgument launcherArgument(QStringLiteral("launcher"), + QObject::tr("Open the capture launcher.")); CommandArgument guiArgument( QStringLiteral("gui"), - QStringLiteral("Start a manual capture in GUI mode.")); + QObject::tr("Start a manual capture in GUI mode.")); CommandArgument configArgument(QStringLiteral("config"), - QStringLiteral("Configure flameshot.")); + QObject::tr("Configure") + " flameshot."); CommandArgument screenArgument(QStringLiteral("screen"), - QStringLiteral("Capture a single screen.")); + QObject::tr("Capture a single screen.")); // Options CommandOption pathOption( { "p", "path" }, - QStringLiteral("Path where the capture will be saved"), + QObject::tr("Path where the capture will be saved"), QStringLiteral("path")); CommandOption clipboardOption( - { "c", "clipboard" }, - QStringLiteral("Save the capture to the clipboard")); + { "c", "clipboard" }, QObject::tr("Save the capture to the clipboard")); CommandOption delayOption({ "d", "delay" }, - QStringLiteral("Delay time in milliseconds"), + QObject::tr("Delay time in milliseconds"), QStringLiteral("milliseconds")); CommandOption filenameOption({ "f", "filename" }, - QStringLiteral("Set the filename pattern"), + QObject::tr("Set the filename pattern"), QStringLiteral("pattern")); CommandOption trayOption({ "t", "trayicon" }, - QStringLiteral("Enable or disable the trayicon"), + QObject::tr("Enable or disable the trayicon"), QStringLiteral("bool")); CommandOption autostartOption( { "a", "autostart" }, - QStringLiteral("Enable or disable run at startup"), + QObject::tr("Enable or disable run at startup"), QStringLiteral("bool")); CommandOption showHelpOption( { "s", "showhelp" }, - QStringLiteral("Show the help message in the capture mode"), + QObject::tr("Show the help message in the capture mode"), QStringLiteral("bool")); CommandOption mainColorOption({ "m", "maincolor" }, - QStringLiteral("Define the main UI color"), + QObject::tr("Define the main UI color"), QStringLiteral("color-code")); CommandOption contrastColorOption( { "k", "contrastcolor" }, - QStringLiteral("Define the contrast UI color"), + QObject::tr("Define the contrast UI color"), QStringLiteral("color-code")); CommandOption rawImageOption({ "r", "raw" }, - QStringLiteral("Print raw PNG capture")); + QObject::tr("Print raw PNG capture")); CommandOption screenNumberOption( { "n", "number" }, - QStringLiteral( - "Define the screen to capture,\ndefault: screen containing the cursor"), - QStringLiteral("Screen number"), + QObject::tr("Define the screen to capture") + ",\n" + + QObject::tr("default: screen containing the cursor"), + QObject::tr("Screen number"), QStringLiteral("-1")); // Add checkers @@ -162,25 +161,26 @@ int main(int argc, char* argv[]) QColor parsedColor(colorCode); return parsedColor.isValid() && parsedColor.alphaF() == 1.0; }; - QString colorErr = "Invalid color, " - "this flag supports the following formats:\n" - "- #RGB (each of R, G, and B is a single hex digit)\n" - "- #RRGGBB\n- #RRRGGGBBB\n" - "- #RRRRGGGGBBBB\n" - "- Named colors like 'blue' or 'red'\n" - "You may need to escape the '#' sign as in '\\#FFF'"; + QString colorErr = + QObject::tr("Invalid color, " + "this flag supports the following formats:\n" + "- #RGB (each of R, G, and B is a single hex digit)\n" + "- #RRGGBB\n- #RRRGGGBBB\n" + "- #RRRRGGGGBBBB\n" + "- Named colors like 'blue' or 'red'\n" + "You may need to escape the '#' sign as in '\\#FFF'"); const QString delayErr = - QStringLiteral("Invalid delay, it must be higher than 0"); + QObject::tr("Invalid delay, it must be higher than 0"); const QString numberErr = - QStringLiteral("Invalid screen number, it must be non negative"); + QObject::tr("Invalid screen number, it must be non negative"); auto numericChecker = [](const QString& delayValue) -> bool { int value = delayValue.toInt(); return value >= 0; }; const QString pathErr = - QStringLiteral("Invalid path, it must be a real path in the system"); + QObject::tr("Invalid path, it must be a real path in the system"); auto pathChecker = [pathErr](const QString& pathValue) -> bool { bool res = QDir(pathValue).exists(); if (!res) { @@ -191,7 +191,7 @@ int main(int argc, char* argv[]) }; const QString booleanErr = - QStringLiteral("Invalid value, it must be defined as 'true' or 'false'"); + QObject::tr("Invalid value, it must be defined as 'true' or 'false'"); auto booleanChecker = [](const QString& value) -> bool { return value == QLatin1String("true") || value == QLatin1String("false"); @@ -241,7 +241,7 @@ int main(int argc, char* argv[]) if (parser.isSet(helpOption) || parser.isSet(versionOption)) { } else if (parser.isSet(launcherArgument)) { // LAUNCHER QDBusMessage m = QDBusMessage::createMethodCall( - QStringLiteral("org.dharkael.Flameshot"), + QStringLiteral("org.flameshot.Flameshot"), QStringLiteral("/"), QLatin1String(""), QStringLiteral("openLauncher")); @@ -261,7 +261,7 @@ int main(int argc, char* argv[]) // Send message QDBusMessage m = QDBusMessage::createMethodCall( - QStringLiteral("org.dharkael.Flameshot"), + QStringLiteral("org.flameshot.Flameshot"), QStringLiteral("/"), QLatin1String(""), QStringLiteral("graphicCapture")); @@ -312,7 +312,7 @@ int main(int argc, char* argv[]) // Send message QDBusMessage m = QDBusMessage::createMethodCall( - QStringLiteral("org.dharkael.Flameshot"), + QStringLiteral("org.flameshot.Flameshot"), QStringLiteral("/"), QLatin1String(""), QStringLiteral("fullScreen")); @@ -368,7 +368,7 @@ int main(int argc, char* argv[]) // Send message QDBusMessage m = QDBusMessage::createMethodCall( - QStringLiteral("org.dharkael.Flameshot"), + QStringLiteral("org.flameshot.Flameshot"), QStringLiteral("/"), QLatin1String(""), QStringLiteral("captureScreen")); @@ -400,7 +400,7 @@ int main(int argc, char* argv[]) ConfigHandler config; if (autostart) { QDBusMessage m = QDBusMessage::createMethodCall( - QStringLiteral("org.dharkael.Flameshot"), + QStringLiteral("org.flameshot.Flameshot"), QStringLiteral("/"), QLatin1String(""), QStringLiteral("autostartEnabled")); @@ -428,7 +428,7 @@ int main(int argc, char* argv[]) } if (tray) { QDBusMessage m = QDBusMessage::createMethodCall( - QStringLiteral("org.dharkael.Flameshot"), + QStringLiteral("org.flameshot.Flameshot"), QStringLiteral("/"), QLatin1String(""), QStringLiteral("trayIconEnabled")); @@ -465,7 +465,7 @@ int main(int argc, char* argv[]) // Open gui when no options if (!someFlagSet) { QDBusMessage m = QDBusMessage::createMethodCall( - QStringLiteral("org.dharkael.Flameshot"), + QStringLiteral("org.flameshot.Flameshot"), QStringLiteral("/"), QLatin1String(""), QStringLiteral("openConfig")); diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt new file mode 100644 index 00000000..dd892be2 --- /dev/null +++ b/src/tools/CMakeLists.txt @@ -0,0 +1,60 @@ +target_sources(flameshot PRIVATE arrow/arrowtool.h arrow/arrowtool.cpp) +target_sources(flameshot PRIVATE pixelate/pixelatetool.h pixelate/pixelatetool.cpp) +target_sources(flameshot PRIVATE circle/circletool.h circle/circletool.cpp) +target_sources(flameshot PRIVATE circlecount/circlecounttool.h circlecount/circlecounttool.cpp) +target_sources(flameshot PRIVATE copy/copytool.h copy/copytool.cpp) +target_sources(flameshot PRIVATE exit/exittool.h exit/exittool.cpp) +target_sources( + flameshot + PRIVATE imgur/imguruploader.h + imgur/imguruploadertool.h + imgur/imguruploader.cpp + imgur/imguruploadertool.cpp) +target_sources( + flameshot + PRIVATE launcher/applaunchertool.h + launcher/applauncherwidget.h + launcher/launcheritemdelegate.h + launcher/terminallauncher.h + launcher/applaunchertool.cpp + launcher/applauncherwidget.cpp + launcher/launcheritemdelegate.cpp + launcher/openwithprogram.cpp + launcher/terminallauncher.cpp) +target_sources(flameshot PRIVATE line/linetool.h line/linetool.cpp) +target_sources(flameshot PRIVATE marker/markertool.h marker/markertool.cpp) +target_sources(flameshot PRIVATE move/movetool.h move/movetool.cpp) +target_sources(flameshot PRIVATE pencil/penciltool.h pencil/penciltool.cpp) +target_sources( + flameshot + PRIVATE pin/pintool.h + pin/pinwidget.h + pin/pintool.cpp + pin/pinwidget.cpp) +target_sources(flameshot PRIVATE rectangle/rectangletool.h rectangle/rectangletool.cpp) +target_sources(flameshot PRIVATE redo/redotool.h redo/redotool.cpp) +target_sources(flameshot PRIVATE save/savetool.h save/savetool.cpp) +target_sources(flameshot PRIVATE selection/selectiontool.h selection/selectiontool.cpp) +target_sources(flameshot PRIVATE sizeindicator/sizeindicatortool.h sizeindicator/sizeindicatortool.cpp) +target_sources( + flameshot + PRIVATE text/textconfig.h + text/texttool.h + text/textwidget.h + text/textconfig.cpp + text/texttool.cpp + text/textwidget.cpp) +target_sources(flameshot PRIVATE undo/undotool.h undo/undotool.cpp) + +target_sources( + flameshot + PRIVATE abstractactiontool.cpp + abstractpathtool.cpp + abstracttwopointtool.cpp + capturecontext.cpp + toolfactory.cpp + abstractactiontool.h + abstractpathtool.h + abstracttwopointtool.h + capturetool.h + toolfactory.h) diff --git a/src/tools/abstractactiontool.h b/src/tools/abstractactiontool.h index 1dba903c..0c973c91 100644 --- a/src/tools/abstractactiontool.h +++ b/src/tools/abstractactiontool.h @@ -36,6 +36,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + virtual ToolType nameID() const = 0; + public slots: void drawEnd(const QPoint& p) override; void drawMove(const QPoint& p) override; diff --git a/src/tools/abstractpathtool.h b/src/tools/abstractpathtool.h index 8b4a93f9..f1f4cfe3 100644 --- a/src/tools/abstractpathtool.h +++ b/src/tools/abstractpathtool.h @@ -42,6 +42,8 @@ protected: void updateBackup(const QPixmap& pixmap); void addPoint(const QPoint& point); + virtual ToolType nameID() const = 0; + QPixmap m_pixmapBackup; QRect m_backupArea; QColor m_color; diff --git a/src/tools/abstracttwopointtool.cpp b/src/tools/abstracttwopointtool.cpp index 820ada93..ab54291a 100644 --- a/src/tools/abstracttwopointtool.cpp +++ b/src/tools/abstracttwopointtool.cpp @@ -72,6 +72,9 @@ void AbstractTwoPointTool::undo(QPixmap& pixmap) { QPainter p(&pixmap); p.drawPixmap(backupRect(pixmap.rect()).topLeft(), m_pixmapBackup); + if (this->nameID() == ToolType::CIRCLECOUNT) { + emit requestAction(REQ_DECREMENT_CIRCLE_COUNT); + } } void AbstractTwoPointTool::drawEnd(const QPoint& p) diff --git a/src/tools/abstracttwopointtool.h b/src/tools/abstracttwopointtool.h index 3a83bbec..061807a9 100644 --- a/src/tools/abstracttwopointtool.h +++ b/src/tools/abstracttwopointtool.h @@ -53,6 +53,8 @@ protected: bool m_supportsOrthogonalAdj = false; bool m_supportsDiagonalAdj = false; + virtual ToolType nameID() const = 0; + private: QPoint adjustedVector(QPoint v) const; }; diff --git a/src/tools/arrow/arrowtool.cpp b/src/tools/arrow/arrowtool.cpp index c8b8030c..7c31f131 100644 --- a/src/tools/arrow/arrowtool.cpp +++ b/src/tools/arrow/arrowtool.cpp @@ -88,9 +88,9 @@ QString ArrowTool::name() const return tr("Arrow"); } -QString ArrowTool::nameID() +ToolType ArrowTool::nameID() const { - return QLatin1String(""); + return ToolType::ARROW; } QString ArrowTool::description() const diff --git a/src/tools/arrow/arrowtool.h b/src/tools/arrow/arrowtool.h index 73828500..c947c9ec 100644 --- a/src/tools/arrow/arrowtool.h +++ b/src/tools/arrow/arrowtool.h @@ -19,6 +19,7 @@ #include "src/tools/abstracttwopointtool.h" #include +#include class ArrowTool : public AbstractTwoPointTool { @@ -28,7 +29,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -38,6 +38,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/blur/blurtool.cpp b/src/tools/blur/blurtool.cpp deleted file mode 100644 index 3bc0403a..00000000 --- a/src/tools/blur/blurtool.cpp +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors -// -// This file is part of Flameshot. -// -// Flameshot 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 3 of the License, or -// (at your option) any later version. -// -// Flameshot 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 Flameshot. If not, see . - -#include "blurtool.h" -#include -#include -#include -#include -#include - -BlurTool::BlurTool(QObject* parent) - : AbstractTwoPointTool(parent) -{} - -QIcon BlurTool::icon(const QColor& background, bool inEditor) const -{ - Q_UNUSED(inEditor); - return QIcon(iconPath(background) + "blur.svg"); -} -QString BlurTool::name() const -{ - return tr("Blur"); -} - -QString BlurTool::nameID() -{ - return QLatin1String(""); -} - -QString BlurTool::description() const -{ - return tr("Set Blur as the paint tool"); -} - -CaptureTool* BlurTool::copy(QObject* parent) -{ - return new BlurTool(parent); -} - -void BlurTool::process(QPainter& painter, - const QPixmap& pixmap, - bool recordUndo) -{ - if (recordUndo) { - updateBackup(pixmap); - } - QPoint& p0 = m_points.first; - QPoint& p1 = m_points.second; - auto pixelRatio = pixmap.devicePixelRatio(); - - QRect selection = QRect(p0, p1).normalized(); - QRect selectionScaled = - QRect(p0 * pixelRatio, p1 * pixelRatio).normalized(); - - QGraphicsBlurEffect* blur = new QGraphicsBlurEffect; - blur->setBlurRadius(10); - QGraphicsPixmapItem* item = - new QGraphicsPixmapItem(pixmap.copy(selectionScaled)); - item->setGraphicsEffect(blur); - - QGraphicsScene scene; - scene.addItem(item); - - scene.render(&painter, selection, QRectF()); - blur->setBlurRadius(12); - for (int cnt = 100; cnt > 0; cnt--) { - scene.render(&painter, selection, QRectF()); - } -} - -void BlurTool::paintMousePreview(QPainter& painter, - const CaptureContext& context) -{ - Q_UNUSED(context); - Q_UNUSED(painter); -} - -void BlurTool::drawStart(const CaptureContext& context) -{ - m_thickness = context.thickness; - m_points.first = context.mousePos; - m_points.second = context.mousePos; -} - -void BlurTool::pressed(const CaptureContext& context) -{ - Q_UNUSED(context); -} diff --git a/src/tools/capturecontext.h b/src/tools/capturecontext.h index 8912f967..498509bb 100644 --- a/src/tools/capturecontext.h +++ b/src/tools/capturecontext.h @@ -42,6 +42,7 @@ struct CaptureContext QPoint mousePos; // Value of the desired thickness int thickness; + int circleCount; // Mode of the capture widget bool fullscreen; diff --git a/src/tools/capturetool.h b/src/tools/capturetool.h index 77ce9015..1f6250f5 100644 --- a/src/tools/capturetool.h +++ b/src/tools/capturetool.h @@ -23,6 +23,30 @@ #include #include +enum class ToolType +{ + ARROW, + CIRCLE, + CIRCLECOUNT, + COPY, + EXIT, + IMGUR, + LAUNCHER, + LINE, + MARKER, + MOVE, + PENCIL, + PIN, + PIXELATE, + RECTANGLE, + REDO, + SAVE, + SELECTION, + SIZEINDICATOR, + TEXT, + UNDO +}; + class CaptureTool : public QObject { Q_OBJECT @@ -64,6 +88,10 @@ public: REQ_ADD_CHILD_WINDOW, // Instance this->widget()'s widget which handles its own lifetime. REQ_ADD_EXTERNAL_WIDGETS, + + REQ_INCREMENT_CIRCLE_COUNT, + + REQ_DECREMENT_CIRCLE_COUNT, }; explicit CaptureTool(QObject* parent = nullptr) @@ -91,7 +119,7 @@ public: virtual QString name() const = 0; // Codename for the tool, this hsouldn't change as it is used as ID // for the tool in the internals of Flameshot - static QString nameID(); + virtual ToolType nameID() const = 0; // Short description of the tool. virtual QString description() const = 0; diff --git a/src/tools/circle/circletool.cpp b/src/tools/circle/circletool.cpp index 23a00cc3..243b0645 100644 --- a/src/tools/circle/circletool.cpp +++ b/src/tools/circle/circletool.cpp @@ -38,9 +38,9 @@ QString CircleTool::name() const return tr("Circle"); } -QString CircleTool::nameID() +ToolType CircleTool::nameID() const { - return QLatin1String(""); + return ToolType::CIRCLE; } QString CircleTool::description() const diff --git a/src/tools/circle/circletool.h b/src/tools/circle/circletool.h index ab7032a9..886ee209 100644 --- a/src/tools/circle/circletool.h +++ b/src/tools/circle/circletool.h @@ -27,7 +27,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -37,6 +36,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/circlecount/circlecounttool.cpp b/src/tools/circlecount/circlecounttool.cpp new file mode 100644 index 00000000..3b9ca65c --- /dev/null +++ b/src/tools/circlecount/circlecounttool.cpp @@ -0,0 +1,134 @@ +// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors +// +// This file is part of Flameshot. +// +// Flameshot 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 3 of the License, or +// (at your option) any later version. +// +// Flameshot 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 Flameshot. If not, see . + +#include "circlecounttool.h" +#include +namespace { +#define PADDING_VALUE 2 +} + +CircleCountTool::CircleCountTool(QObject* parent) + : AbstractTwoPointTool(parent) +{ + m_count = 0; +} + +QIcon CircleCountTool::icon(const QColor& background, bool inEditor) const +{ + Q_UNUSED(inEditor); + return QIcon(iconPath(background) + "circlecount-outline.svg"); +} +QString CircleCountTool::name() const +{ + return tr("Circle Counter"); +} + +ToolType CircleCountTool::nameID() const +{ + return ToolType::CIRCLECOUNT; +} + +QString CircleCountTool::description() const +{ + return tr("Add an autoincrementing counter bubble"); +} + +CaptureTool* CircleCountTool::copy(QObject* parent) +{ + return new CircleCountTool(parent); +} + +void CircleCountTool::process(QPainter& painter, + const QPixmap& pixmap, + bool recordUndo) +{ + if (recordUndo) { + updateBackup(pixmap); + } + painter.setBrush(m_color); + + int bubble_size = m_thickness; + // Decrease by 1px so the border is properly ereased when doing undo + painter.drawEllipse(m_points.first, bubble_size - 1, bubble_size - 1); + QRect textRect = QRect(m_points.first.x() - bubble_size / 2, + m_points.first.y() - bubble_size / 2, + bubble_size, + bubble_size); + auto orig_font = painter.font(); + auto new_font = orig_font; + auto fontSize = bubble_size; + new_font.setPixelSize(fontSize); + painter.setFont(new_font); + + QRect bRect = + painter.boundingRect(textRect, Qt::AlignCenter, QString::number(m_count)); + + while (bRect.width() > textRect.width()) { + fontSize--; + if (fontSize == 0) { + break; + } + new_font.setPixelSize(fontSize); + painter.setFont(new_font); + + bRect = painter.boundingRect( + textRect, Qt::AlignCenter, QString::number(m_count)); + } + + // Lightness value ranges from 0-255, we split at 75 as this looks best + if (m_color.lightness() <= 75) { + painter.setPen(Qt::white); + } else { + painter.setPen(Qt::black); + } + + painter.drawText(textRect, Qt::AlignCenter, QString::number(m_count)); + painter.setFont(orig_font); +} + +void CircleCountTool::paintMousePreview(QPainter& painter, + const CaptureContext& context) +{ + m_thickness = context.thickness + PADDING_VALUE; + if (m_thickness < 15) { + m_thickness = 15; + } + + // Thickness for pen is *2 to range from radius to diameter to match the + // ellipse draw function + painter.setPen( + QPen(context.color, m_thickness * 2, Qt::SolidLine, Qt::RoundCap)); + painter.drawLine(context.mousePos, + { context.mousePos.x() + 1, context.mousePos.y() + 1 }); +} + +void CircleCountTool::drawStart(const CaptureContext& context) +{ + m_color = context.color; + m_thickness = context.thickness + PADDING_VALUE; + if (m_thickness < 15) { + m_thickness = 15; + } + m_points.first = context.mousePos; + m_count = context.circleCount; + emit requestAction(REQ_INCREMENT_CIRCLE_COUNT); +} + +void CircleCountTool::pressed(const CaptureContext& context) +{ + Q_UNUSED(context); +} diff --git a/src/tools/circlecount/circlecounttool.h b/src/tools/circlecount/circlecounttool.h new file mode 100644 index 00000000..68415da8 --- /dev/null +++ b/src/tools/circlecount/circlecounttool.h @@ -0,0 +1,47 @@ +// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors +// +// This file is part of Flameshot. +// +// Flameshot 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 3 of the License, or +// (at your option) any later version. +// +// Flameshot 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 Flameshot. If not, see . + +#pragma once + +#include "src/tools/abstracttwopointtool.h" + +class CircleCountTool : public AbstractTwoPointTool +{ + Q_OBJECT +public: + explicit CircleCountTool(QObject* parent = nullptr); + + QIcon icon(const QColor& background, bool inEditor) const override; + QString name() const override; + QString description() const override; + + CaptureTool* copy(QObject* parent = nullptr) override; + void process(QPainter& painter, + const QPixmap& pixmap, + bool recordUndo = false) override; + void paintMousePreview(QPainter& painter, + const CaptureContext& context) override; + +protected: + ToolType nameID() const override; + +private: + unsigned int m_count; +public slots: + void drawStart(const CaptureContext& context) override; + void pressed(const CaptureContext& context) override; +}; diff --git a/src/tools/copy/copytool.cpp b/src/tools/copy/copytool.cpp index 60148237..ffa528d6 100644 --- a/src/tools/copy/copytool.cpp +++ b/src/tools/copy/copytool.cpp @@ -38,9 +38,9 @@ QString CopyTool::name() const return tr("Copy"); } -QString CopyTool::nameID() +ToolType CopyTool::nameID() const { - return QLatin1String(""); + return ToolType::COPY; } QString CopyTool::description() const diff --git a/src/tools/copy/copytool.h b/src/tools/copy/copytool.h index 9e051ec7..f8fe081b 100644 --- a/src/tools/copy/copytool.h +++ b/src/tools/copy/copytool.h @@ -29,11 +29,13 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; }; diff --git a/src/tools/exit/exittool.cpp b/src/tools/exit/exittool.cpp index 6676f174..f794c6f1 100644 --- a/src/tools/exit/exittool.cpp +++ b/src/tools/exit/exittool.cpp @@ -37,9 +37,9 @@ QString ExitTool::name() const return tr("Exit"); } -QString ExitTool::nameID() +ToolType ExitTool::nameID() const { - return QLatin1String(""); + return ToolType::EXIT; } QString ExitTool::description() const diff --git a/src/tools/exit/exittool.h b/src/tools/exit/exittool.h index d6ecc0cf..109b3e32 100644 --- a/src/tools/exit/exittool.h +++ b/src/tools/exit/exittool.h @@ -29,11 +29,13 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; }; diff --git a/src/tools/launcher/applaunchertool.cpp b/src/tools/launcher/applaunchertool.cpp index 5c12f0d8..edacdc8c 100644 --- a/src/tools/launcher/applaunchertool.cpp +++ b/src/tools/launcher/applaunchertool.cpp @@ -37,9 +37,9 @@ QString AppLauncher::name() const return tr("App Launcher"); } -QString AppLauncher::nameID() +ToolType AppLauncher::nameID() const { - return QLatin1String(""); + return ToolType::LAUNCHER; } QString AppLauncher::description() const diff --git a/src/tools/launcher/applaunchertool.h b/src/tools/launcher/applaunchertool.h index 9e28873b..9a7513a7 100644 --- a/src/tools/launcher/applaunchertool.h +++ b/src/tools/launcher/applaunchertool.h @@ -29,13 +29,15 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; QWidget* widget() override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; diff --git a/src/tools/launcher/applauncherwidget.cpp b/src/tools/launcher/applauncherwidget.cpp index 1df96b50..4ae24175 100644 --- a/src/tools/launcher/applauncherwidget.cpp +++ b/src/tools/launcher/applauncherwidget.cpp @@ -112,6 +112,8 @@ void AppLauncherWidget::launch(const QModelIndex& index) QString command = index.data(Qt::UserRole) .toString() .replace(QRegExp("(\\%.)"), '"' + m_tempFile + '"'); + + QString app_name = index.data(Qt::UserRole).toString().split(" ").at(0); bool inTerminal = index.data(Qt::UserRole + 1).toBool() || m_terminalCheckbox->isChecked(); if (inTerminal) { @@ -121,7 +123,7 @@ void AppLauncherWidget::launch(const QModelIndex& index) this, tr("Error"), tr("Unable to launch in terminal.")); } } else { - QProcess::startDetached(command); + QProcess::startDetached(app_name, { m_tempFile }); } if (!m_keepOpen) { close(); diff --git a/src/tools/launcher/openwithprogram.cpp b/src/tools/launcher/openwithprogram.cpp index cf5d1921..3fbd0e1c 100644 --- a/src/tools/launcher/openwithprogram.cpp +++ b/src/tools/launcher/openwithprogram.cpp @@ -21,8 +21,12 @@ #include "src/utils/filenamehandler.h" #include #include -#include #include +#ifdef _WIN32_WINNT +#undef _WIN32_WINNT +#define _WIN32_WINNT 0x601 +#endif +#include #pragma comment(lib, "Shell32.lib") #else diff --git a/src/tools/launcher/terminallauncher.cpp b/src/tools/launcher/terminallauncher.cpp index 0028980c..32afb563 100644 --- a/src/tools/launcher/terminallauncher.cpp +++ b/src/tools/launcher/terminallauncher.cpp @@ -59,5 +59,5 @@ bool TerminalLauncher::launchDetached(const QString& command) { TerminalApp app = getPreferedTerminal(); QString s = app.name + " " + app.arg + " " + command; - return QProcess::startDetached(s); + return QProcess::startDetached(app.name, { app.arg, command }); } diff --git a/src/tools/line/linetool.cpp b/src/tools/line/linetool.cpp index 32c28018..c5f402a0 100644 --- a/src/tools/line/linetool.cpp +++ b/src/tools/line/linetool.cpp @@ -41,9 +41,9 @@ QString LineTool::name() const return tr("Line"); } -QString LineTool::nameID() +ToolType LineTool::nameID() const { - return QLatin1String(""); + return ToolType::LINE; } QString LineTool::description() const diff --git a/src/tools/line/linetool.h b/src/tools/line/linetool.h index 28c6b76d..e312d5a0 100644 --- a/src/tools/line/linetool.h +++ b/src/tools/line/linetool.h @@ -27,7 +27,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -37,6 +36,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/marker/markertool.cpp b/src/tools/marker/markertool.cpp index 264edb9b..f0503960 100644 --- a/src/tools/marker/markertool.cpp +++ b/src/tools/marker/markertool.cpp @@ -41,9 +41,9 @@ QString MarkerTool::name() const return tr("Marker"); } -QString MarkerTool::nameID() +ToolType MarkerTool::nameID() const { - return QLatin1String(""); + return ToolType::MARKER; } QString MarkerTool::description() const diff --git a/src/tools/marker/markertool.h b/src/tools/marker/markertool.h index 9b3b88e6..a15791af 100644 --- a/src/tools/marker/markertool.h +++ b/src/tools/marker/markertool.h @@ -27,7 +27,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -37,6 +36,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/move/movetool.cpp b/src/tools/move/movetool.cpp index b5fd1859..24e2d858 100644 --- a/src/tools/move/movetool.cpp +++ b/src/tools/move/movetool.cpp @@ -37,9 +37,9 @@ QString MoveTool::name() const return tr("Move"); } -QString MoveTool::nameID() +ToolType MoveTool::nameID() const { - return QLatin1String(""); + return ToolType::MOVE; } QString MoveTool::description() const diff --git a/src/tools/move/movetool.h b/src/tools/move/movetool.h index 9e202fbf..dd36d98d 100644 --- a/src/tools/move/movetool.h +++ b/src/tools/move/movetool.h @@ -29,7 +29,7 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); + ToolType nameID() const override; QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; diff --git a/src/tools/pencil/penciltool.cpp b/src/tools/pencil/penciltool.cpp index 4948c860..77961dbd 100644 --- a/src/tools/pencil/penciltool.cpp +++ b/src/tools/pencil/penciltool.cpp @@ -32,9 +32,9 @@ QString PencilTool::name() const return tr("Pencil"); } -QString PencilTool::nameID() +ToolType PencilTool::nameID() const { - return QLatin1String(""); + return ToolType::PENCIL; } QString PencilTool::description() const diff --git a/src/tools/pencil/penciltool.h b/src/tools/pencil/penciltool.h index 05135f16..63dc0de0 100644 --- a/src/tools/pencil/penciltool.h +++ b/src/tools/pencil/penciltool.h @@ -27,7 +27,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -38,6 +37,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/pin/pintool.cpp b/src/tools/pin/pintool.cpp index 4f418bfc..613bd32d 100644 --- a/src/tools/pin/pintool.cpp +++ b/src/tools/pin/pintool.cpp @@ -37,9 +37,9 @@ QString PinTool::name() const return tr("Pin Tool"); } -QString PinTool::nameID() +ToolType PinTool::nameID() const { - return QLatin1String(""); + return ToolType::PIN; } QString PinTool::description() const diff --git a/src/tools/pin/pintool.h b/src/tools/pin/pintool.h index 16986fae..0192f53d 100644 --- a/src/tools/pin/pintool.h +++ b/src/tools/pin/pintool.h @@ -29,13 +29,15 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; QWidget* widget() override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; diff --git a/src/tools/pin/pinwidget.cpp b/src/tools/pin/pinwidget.cpp index ab4edb41..4c95ed06 100644 --- a/src/tools/pin/pinwidget.cpp +++ b/src/tools/pin/pinwidget.cpp @@ -60,7 +60,7 @@ int PinWidget::margin() const void PinWidget::wheelEvent(QWheelEvent* e) { - int val = e->delta() > 0 ? 15 : -15; + int val = e->angleDelta().y() > 0 ? 15 : -15; int newWidth = qBound(50, m_label->width() + val, maximumWidth()); int newHeight = qBound(50, m_label->height() + val, maximumHeight()); diff --git a/src/tools/pixelate/pixelatetool.cpp b/src/tools/pixelate/pixelatetool.cpp new file mode 100644 index 00000000..6f742279 --- /dev/null +++ b/src/tools/pixelate/pixelatetool.cpp @@ -0,0 +1,115 @@ +// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors +// +// This file is part of Flameshot. +// +// Flameshot 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 3 of the License, or +// (at your option) any later version. +// +// Flameshot 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 Flameshot. If not, see . + +#include "pixelatetool.h" +#include +#include +#include +#include +#include +#include +#include + +PixelateTool::PixelateTool(QObject* parent) + : AbstractTwoPointTool(parent) +{} + +QIcon PixelateTool::icon(const QColor& background, bool inEditor) const +{ + Q_UNUSED(inEditor); + return QIcon(iconPath(background) + "pixelate.svg"); +} +QString PixelateTool::name() const +{ + return tr("Pixelate"); +} + +ToolType PixelateTool::nameID() const +{ + return ToolType::PIXELATE; +} + +QString PixelateTool::description() const +{ + return tr("Set Pixelate as the paint tool"); +} + +CaptureTool* PixelateTool::copy(QObject* parent) +{ + return new PixelateTool(parent); +} + +void PixelateTool::process(QPainter& painter, + const QPixmap& pixmap, + bool recordUndo) +{ + + if (recordUndo) { + updateBackup(pixmap); + } + + QPoint& p0 = m_points.first; + QPoint& p1 = m_points.second; + QRect selection = QRect(p0, p1).normalized(); + + // If thickness is less than 1, use old blur process + if (m_thickness <= 1) { + auto pixelRatio = pixmap.devicePixelRatio(); + + QRect selectionScaled = + QRect(p0 * pixelRatio, p1 * pixelRatio).normalized(); + + QGraphicsBlurEffect* blur = new QGraphicsBlurEffect; + blur->setBlurRadius(10); + QGraphicsPixmapItem* item = + new QGraphicsPixmapItem(pixmap.copy(selectionScaled)); + item->setGraphicsEffect(blur); + + QGraphicsScene scene; + scene.addItem(item); + + scene.render(&painter, selection, QRectF()); + blur->setBlurRadius(12); + scene.render(&painter, selection, QRectF()); + } else { + int width = selection.width() * (0.5 / qMax(1, m_thickness)); + + QPixmap t = pixmap.copy(selection); + t = t.scaledToWidth(qMax(width, 10), Qt::SmoothTransformation); + t = t.scaledToWidth(selection.width()); + painter.drawImage(selection, t.toImage()); + } +} + +void PixelateTool::paintMousePreview(QPainter& painter, + const CaptureContext& context) +{ + Q_UNUSED(context); + Q_UNUSED(painter); +} + +void PixelateTool::drawStart(const CaptureContext& context) +{ + m_thickness = context.thickness; + m_points.first = context.mousePos; + m_points.second = context.mousePos; +} + +void PixelateTool::pressed(const CaptureContext& context) +{ + Q_UNUSED(context); +} diff --git a/src/tools/blur/blurtool.h b/src/tools/pixelate/pixelatetool.h similarity index 90% rename from src/tools/blur/blurtool.h rename to src/tools/pixelate/pixelatetool.h index 36b8dfda..9336819d 100644 --- a/src/tools/blur/blurtool.h +++ b/src/tools/pixelate/pixelatetool.h @@ -19,15 +19,14 @@ #include "src/tools/abstracttwopointtool.h" -class BlurTool : public AbstractTwoPointTool +class PixelateTool : public AbstractTwoPointTool { Q_OBJECT public: - explicit BlurTool(QObject* parent = nullptr); + explicit PixelateTool(QObject* parent = nullptr); QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -37,6 +36,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/rectangle/rectangletool.cpp b/src/tools/rectangle/rectangletool.cpp index 8d506aec..ec50273f 100644 --- a/src/tools/rectangle/rectangletool.cpp +++ b/src/tools/rectangle/rectangletool.cpp @@ -38,9 +38,9 @@ QString RectangleTool::name() const return tr("Rectangle"); } -QString RectangleTool::nameID() +ToolType RectangleTool::nameID() const { - return QLatin1String(""); + return ToolType::RECTANGLE; } QString RectangleTool::description() const diff --git a/src/tools/rectangle/rectangletool.h b/src/tools/rectangle/rectangletool.h index 1f81c2f6..fc936c9f 100644 --- a/src/tools/rectangle/rectangletool.h +++ b/src/tools/rectangle/rectangletool.h @@ -27,7 +27,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -37,6 +36,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/redo/redotool.cpp b/src/tools/redo/redotool.cpp index 047d272b..1c35b355 100644 --- a/src/tools/redo/redotool.cpp +++ b/src/tools/redo/redotool.cpp @@ -37,9 +37,9 @@ QString RedoTool::name() const return tr("Redo"); } -QString RedoTool::nameID() +ToolType RedoTool::nameID() const { - return QLatin1String(""); + return ToolType::REDO; } QString RedoTool::description() const diff --git a/src/tools/redo/redotool.h b/src/tools/redo/redotool.h index a35fbf6f..4c0791a0 100644 --- a/src/tools/redo/redotool.h +++ b/src/tools/redo/redotool.h @@ -29,11 +29,13 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; }; diff --git a/src/tools/save/savetool.cpp b/src/tools/save/savetool.cpp index 587ba190..43c194b0 100644 --- a/src/tools/save/savetool.cpp +++ b/src/tools/save/savetool.cpp @@ -38,9 +38,9 @@ QString SaveTool::name() const return tr("Save"); } -QString SaveTool::nameID() +ToolType SaveTool::nameID() const { - return QLatin1String(""); + return ToolType::SAVE; } QString SaveTool::description() const @@ -64,7 +64,7 @@ void SaveTool::pressed(const CaptureContext& context) } } else { bool ok = ScreenshotSaver().saveToFilesystem( - context.selectedScreenshotArea(), context.savePath); + context.selectedScreenshotArea(), context.savePath, ""); if (ok) { emit requestAction(REQ_CAPTURE_DONE_OK); } diff --git a/src/tools/save/savetool.h b/src/tools/save/savetool.h index 4d0ae752..3c79e442 100644 --- a/src/tools/save/savetool.h +++ b/src/tools/save/savetool.h @@ -29,11 +29,13 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; }; diff --git a/src/tools/selection/selectiontool.cpp b/src/tools/selection/selectiontool.cpp index d72e6361..3c28792d 100644 --- a/src/tools/selection/selectiontool.cpp +++ b/src/tools/selection/selectiontool.cpp @@ -43,9 +43,9 @@ QString SelectionTool::name() const return tr("Rectangular Selection"); } -QString SelectionTool::nameID() +ToolType SelectionTool::nameID() const { - return QLatin1String(""); + return ToolType::SELECTION; } QString SelectionTool::description() const diff --git a/src/tools/selection/selectiontool.h b/src/tools/selection/selectiontool.h index 7f215558..f8448dbd 100644 --- a/src/tools/selection/selectiontool.h +++ b/src/tools/selection/selectiontool.h @@ -29,7 +29,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -39,6 +38,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/sizeindicator/sizeindicatortool.cpp b/src/tools/sizeindicator/sizeindicatortool.cpp index fa04aef9..f3c77ddf 100644 --- a/src/tools/sizeindicator/sizeindicatortool.cpp +++ b/src/tools/sizeindicator/sizeindicatortool.cpp @@ -37,9 +37,9 @@ QString SizeIndicatorTool::name() const return tr("Selection Size Indicator"); } -QString SizeIndicatorTool::nameID() +ToolType SizeIndicatorTool::nameID() const { - return QLatin1String(""); + return ToolType::SIZEINDICATOR; } QString SizeIndicatorTool::description() const diff --git a/src/tools/sizeindicator/sizeindicatortool.h b/src/tools/sizeindicator/sizeindicatortool.h index bebef9e3..26fca63c 100644 --- a/src/tools/sizeindicator/sizeindicatortool.h +++ b/src/tools/sizeindicator/sizeindicatortool.h @@ -29,11 +29,13 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; }; diff --git a/src/tools/text/textconfig.cpp b/src/tools/text/textconfig.cpp index c8d50372..1e27cd8e 100644 --- a/src/tools/text/textconfig.cpp +++ b/src/tools/text/textconfig.cpp @@ -40,10 +40,9 @@ TextConfig::TextConfig(QWidget* parent) int index = fontsCB->findText(font().family()); fontsCB->setCurrentIndex(index); - QColor bgColor(palette().background().color()); - QString iconPrefix = ColorUtils::colorIsDark(bgColor) - ? PathInfo::whiteIconPath() - : PathInfo::blackIconPath(); + QString iconPrefix = ColorUtils::colorIsDark(palette().windowText().color()) + ? PathInfo::blackIconPath() + : PathInfo::whiteIconPath(); m_strikeOutButton = new QPushButton( QIcon(iconPrefix + "format_strikethrough.svg"), QLatin1String("")); diff --git a/src/tools/text/texttool.cpp b/src/tools/text/texttool.cpp index 1fa59908..c791b20d 100644 --- a/src/tools/text/texttool.cpp +++ b/src/tools/text/texttool.cpp @@ -57,9 +57,9 @@ QString TextTool::name() const return tr("Text"); } -QString TextTool::nameID() +ToolType TextTool::nameID() const { - return QLatin1String(""); + return ToolType::TEXT; } QString TextTool::description() const diff --git a/src/tools/text/texttool.h b/src/tools/text/texttool.h index 63cf192d..136bf05e 100644 --- a/src/tools/text/texttool.h +++ b/src/tools/text/texttool.h @@ -36,7 +36,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; QWidget* widget() override; @@ -50,6 +49,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawEnd(const QPoint& p) override; void drawMove(const QPoint& p) override; diff --git a/src/tools/toolfactory.cpp b/src/tools/toolfactory.cpp index 682e81b1..6281a1dc 100644 --- a/src/tools/toolfactory.cpp +++ b/src/tools/toolfactory.cpp @@ -17,8 +17,8 @@ #include "toolfactory.h" #include "arrow/arrowtool.h" -#include "blur/blurtool.h" #include "circle/circletool.h" +#include "circlecount/circlecounttool.h" #include "copy/copytool.h" #include "exit/exittool.h" #include "launcher/applaunchertool.h" @@ -27,6 +27,7 @@ #include "move/movetool.h" #include "pencil/penciltool.h" #include "pin/pintool.h" +#include "pixelate/pixelatetool.h" #include "rectangle/rectangletool.h" #include "redo/redotool.h" #include "save/savetool.h" @@ -41,71 +42,74 @@ ToolFactory::ToolFactory(QObject* parent) : QObject(parent) {} -CaptureTool* ToolFactory::CreateTool(CaptureButton::ButtonType t, +CaptureTool* ToolFactory::CreateTool(CaptureToolButton::ButtonType t, QObject* parent) { StorageManager storageManager; - - CaptureTool* tool; + CaptureTool *tool; switch (t) { - case CaptureButton::TYPE_ARROW: + case CaptureToolButton::TYPE_ARROW: tool = new ArrowTool(parent); break; - case CaptureButton::TYPE_CIRCLE: + case CaptureToolButton::TYPE_CIRCLE: tool = new CircleTool(parent); break; - case CaptureButton::TYPE_COPY: + case CaptureToolButton::TYPE_COPY: tool = new CopyTool(parent); break; - case CaptureButton::TYPE_EXIT: + case CaptureToolButton::TYPE_EXIT: tool = new ExitTool(parent); break; case CaptureButton::TYPE_IMAGEUPLOADER: tool = storageManager.imgUploaderTool( ConfigHandler().uploadStorage(), parent); break; - case CaptureButton::TYPE_DRAWER: + case CaptureToolButton::TYPE_DRAWER: tool = new LineTool(parent); break; - case CaptureButton::TYPE_MARKER: + case CaptureToolButton::TYPE_MARKER: tool = new MarkerTool(parent); break; - case CaptureButton::TYPE_MOVESELECTION: + case CaptureToolButton::TYPE_MOVESELECTION: tool = new MoveTool(parent); break; - case CaptureButton::TYPE_PENCIL: + case CaptureToolButton::TYPE_PENCIL: tool = new PencilTool(parent); break; - case CaptureButton::TYPE_RECTANGLE: + case CaptureToolButton::TYPE_RECTANGLE: tool = new RectangleTool(parent); break; - case CaptureButton::TYPE_SAVE: + case CaptureToolButton::TYPE_SAVE: tool = new SaveTool(parent); break; - case CaptureButton::TYPE_SELECTION: + case CaptureToolButton::TYPE_SELECTION: tool = new SelectionTool(parent); break; - case CaptureButton::TYPE_SELECTIONINDICATOR: + case CaptureToolButton::TYPE_SELECTIONINDICATOR: tool = new SizeIndicatorTool(parent); break; - case CaptureButton::TYPE_UNDO: + case CaptureToolButton::TYPE_UNDO: tool = new UndoTool(parent); break; - case CaptureButton::TYPE_REDO: + case CaptureToolButton::TYPE_REDO: tool = new RedoTool(parent); break; - case CaptureButton::TYPE_OPEN_APP: + case CaptureToolButton::TYPE_OPEN_APP: tool = new AppLauncher(parent); break; - case CaptureButton::TYPE_BLUR: - tool = new BlurTool(parent); + case CaptureToolButton::TYPE_PIXELATE: + tool = new PixelateTool(parent); break; - case CaptureButton::TYPE_PIN: + case CaptureToolButton::TYPE_PIN: tool = new PinTool(parent); break; - case CaptureButton::TYPE_TEXT: + case CaptureToolButton::TYPE_TEXT: tool = new TextTool(parent); break; + case CaptureToolButton::TYPE_CIRCLECOUNT: + tool = new CircleCountTool(parent); + break; + default: tool = nullptr; break; diff --git a/src/tools/toolfactory.h b/src/tools/toolfactory.h index 0dc0c12d..bb6e6e6c 100644 --- a/src/tools/toolfactory.h +++ b/src/tools/toolfactory.h @@ -18,7 +18,7 @@ #pragma once #include "src/tools/capturetool.h" -#include "src/widgets/capture/capturebutton.h" +#include "src/widgets/capture/capturetoolbutton.h" #include class CaptureTool; @@ -33,6 +33,6 @@ public: ToolFactory(const ToolFactory&) = delete; ToolFactory& operator=(const ToolFactory&) = delete; - CaptureTool* CreateTool(CaptureButton::ButtonType t, + CaptureTool* CreateTool(CaptureToolButton::ButtonType t, QObject* parent = nullptr); }; diff --git a/src/tools/undo/undotool.cpp b/src/tools/undo/undotool.cpp index c3846a43..efadb0ce 100644 --- a/src/tools/undo/undotool.cpp +++ b/src/tools/undo/undotool.cpp @@ -37,9 +37,9 @@ QString UndoTool::name() const return tr("Undo"); } -QString UndoTool::nameID() +ToolType UndoTool::nameID() const { - return QLatin1String(""); + return ToolType::UNDO; } QString UndoTool::description() const diff --git a/src/tools/undo/undotool.h b/src/tools/undo/undotool.h index 50efbec9..140407ea 100644 --- a/src/tools/undo/undotool.h +++ b/src/tools/undo/undotool.h @@ -29,11 +29,13 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; }; diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt new file mode 100644 index 00000000..048d09ab --- /dev/null +++ b/src/utils/CMakeLists.txt @@ -0,0 +1,21 @@ +# Required to generate MOC +target_sources( + flameshot + PRIVATE dbusutils.h + filenamehandler.h + screengrabber.h + systemnotification.h) + +target_sources( + flameshot + PRIVATE filenamehandler.cpp + screengrabber.cpp + confighandler.cpp + systemnotification.cpp + screenshotsaver.cpp + dbusutils.cpp + globalvalues.cpp + desktopfileparse.cpp + desktopinfo.cpp + pathinfo.cpp + colorutils.cpp) diff --git a/src/utils/confighandler.cpp b/src/utils/confighandler.cpp index c9836247..06ec01c3 100644 --- a/src/utils/confighandler.cpp +++ b/src/utils/confighandler.cpp @@ -30,9 +30,9 @@ ConfigHandler::ConfigHandler() m_settings.setDefaultFormat(QSettings::IniFormat); } -QVector ConfigHandler::getButtons() +QVector ConfigHandler::getButtons() { - QVector buttons; + QVector buttons; if (m_settings.contains(QStringLiteral("buttons"))) { // TODO: remove toList in v1.0 QVector buttonsInt = m_settings.value(QStringLiteral("buttons")) @@ -46,31 +46,35 @@ QVector ConfigHandler::getButtons() buttons = fromIntToButton(buttonsInt); } else { // Default tools - buttons << CaptureButton::TYPE_PENCIL << CaptureButton::TYPE_DRAWER - << CaptureButton::TYPE_ARROW << CaptureButton::TYPE_SELECTION - << CaptureButton::TYPE_RECTANGLE << CaptureButton::TYPE_CIRCLE - << CaptureButton::TYPE_MARKER << CaptureButton::TYPE_BLUR - << CaptureButton::TYPE_SELECTIONINDICATOR - << CaptureButton::TYPE_MOVESELECTION << CaptureButton::TYPE_UNDO - << CaptureButton::TYPE_REDO << CaptureButton::TYPE_COPY - << CaptureButton::TYPE_SAVE << CaptureButton::TYPE_EXIT - << CaptureButton::TYPE_IMAGEUPLOADER -#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX) - << CaptureButton::TYPE_OPEN_APP -#endif - << CaptureButton::TYPE_PIN << CaptureButton::TYPE_TEXT; + buttons << CaptureToolButton::TYPE_PENCIL + << CaptureToolButton::TYPE_DRAWER + << CaptureToolButton::TYPE_ARROW + << CaptureToolButton::TYPE_SELECTION + << CaptureToolButton::TYPE_RECTANGLE + << CaptureToolButton::TYPE_CIRCLE + << CaptureToolButton::TYPE_MARKER + << CaptureToolButton::TYPE_PIXELATE + << CaptureToolButton::TYPE_SELECTIONINDICATOR + << CaptureToolButton::TYPE_MOVESELECTION + << CaptureToolButton::TYPE_UNDO << CaptureToolButton::TYPE_REDO + << CaptureToolButton::TYPE_COPY << CaptureToolButton::TYPE_SAVE + << CaptureToolButton::TYPE_EXIT + << CaptureToolButton::TYPE_IMAGEUPLOADER + << CaptureToolButton::TYPE_OPEN_APP + << CaptureToolButton::TYPE_PIN << CaptureToolButton::TYPE_TEXT + << CaptureToolButton::TYPE_CIRCLECOUNT; } - using bt = CaptureButton::ButtonType; + using bt = CaptureToolButton::ButtonType; std::sort(buttons.begin(), buttons.end(), [](bt a, bt b) { - return CaptureButton::getPriorityByButton(a) < - CaptureButton::getPriorityByButton(b); + return CaptureToolButton::getPriorityByButton(a) < + CaptureToolButton::getPriorityByButton(b); }); return buttons; } void ConfigHandler::setButtons( - const QVector& buttons) + const QVector& buttons) { QVector l = fromButtonToInt(buttons); normalizeButtons(l); @@ -172,9 +176,9 @@ QColor ConfigHandler::uiContrastColorValue() { QColor res = QColor(39, 0, 50); - if (m_settings.contains(QStringLiteral("contastUiColor"))) { + if (m_settings.contains(QStringLiteral("contrastUiColor"))) { QString hex = - m_settings.value(QStringLiteral("contastUiColor")).toString(); + m_settings.value(QStringLiteral("contrastUiColor")).toString(); if (QColor::isValidColor(hex)) { res = QColor(hex); @@ -186,7 +190,7 @@ QColor ConfigHandler::uiContrastColorValue() void ConfigHandler::setUIContrastColor(const QColor& c) { - m_settings.setValue(QStringLiteral("contastUiColor"), c.name()); + m_settings.setValue(QStringLiteral("contrastUiColor"), c.name()); } QColor ConfigHandler::drawColorValue() @@ -223,6 +227,18 @@ void ConfigHandler::setShowHelp(const bool showHelp) m_settings.setValue(QStringLiteral("showHelp"), showHelp); } +bool ConfigHandler::showSidePanelButtonValue() +{ + return m_settings.value(QStringLiteral("showSidePanelButton"), true) + .toBool(); +} + +void ConfigHandler::setShowSidePanelButton(const bool showSidePanelButton) +{ + m_settings.setValue(QStringLiteral("showSidePanelButton"), + showSidePanelButton); +} + bool ConfigHandler::desktopNotificationValue() { bool res = true; @@ -425,6 +441,15 @@ void ConfigHandler::setCopyAndCloseAfterUploadEnabled(const bool value) { m_settings.setValue(QStringLiteral("copyAndCloseAfterUpload"), value); } +bool ConfigHandler::saveAfterCopyValue() +{ + return m_settings.value(QStringLiteral("saveAfterCopy")).toBool(); +} + +void ConfigHandler::setSaveAfterCopy(const bool save) +{ + m_settings.setValue(QStringLiteral("saveAfterCopy"), save); +} bool ConfigHandler::copyPathAfterSaveEnabled() { @@ -455,6 +480,16 @@ const QString& ConfigHandler::uploadStorage() return m_strRes; } +QString ConfigHandler::saveAfterCopyPathValue() +{ + return m_settings.value(QStringLiteral("saveAfterCopyPath")).toString(); +} + +void ConfigHandler::setSaveAfterCopyPath(const QString& path) +{ + m_settings.setValue(QStringLiteral("saveAfterCopyPath"), path); +} + void ConfigHandler::setDefaults() { m_settings.clear(); @@ -463,8 +498,8 @@ void ConfigHandler::setDefaults() void ConfigHandler::setAllTheButtons() { QVector buttons; - auto listTypes = CaptureButton::getIterableButtonTypes(); - for (const CaptureButton::ButtonType t : listTypes) { + auto listTypes = CaptureToolButton::getIterableButtonTypes(); + for (const CaptureToolButton::ButtonType t : listTypes) { buttons << static_cast(t); } // TODO: remove toList in v1.0 @@ -479,7 +514,7 @@ QString ConfigHandler::configFilePath() const bool ConfigHandler::normalizeButtons(QVector& buttons) { - auto listTypes = CaptureButton::getIterableButtonTypes(); + auto listTypes = CaptureToolButton::getIterableButtonTypes(); QVector listTypesInt; for (auto i : listTypes) listTypesInt << static_cast(i); @@ -494,17 +529,17 @@ bool ConfigHandler::normalizeButtons(QVector& buttons) return hasChanged; } -QVector ConfigHandler::fromIntToButton( +QVector ConfigHandler::fromIntToButton( const QVector& l) { - QVector buttons; + QVector buttons; for (auto const i : l) - buttons << static_cast(i); + buttons << static_cast(i); return buttons; } QVector ConfigHandler::fromButtonToInt( - const QVector& l) + const QVector& l) { QVector buttons; for (auto const i : l) diff --git a/src/utils/confighandler.h b/src/utils/confighandler.h index f720d16d..da16ca3a 100644 --- a/src/utils/confighandler.h +++ b/src/utils/confighandler.h @@ -17,19 +17,18 @@ #pragma once -#include "src/widgets/capture/capturebutton.h" +#include "src/widgets/capture/capturetoolbutton.h" #include #include #include -class ConfigHandler : public QObject +class ConfigHandler { - public: explicit ConfigHandler(); - QVector getButtons(); - void setButtons(const QVector&); + QVector getButtons(); + void setButtons(const QVector&); QVector getUserColors(); void setUserColors(const QVector&); @@ -51,6 +50,9 @@ public: bool showHelpValue(); void setShowHelp(const bool); + bool showSidePanelButtonValue(); + void setShowSidePanelButton(const bool); + bool desktopNotificationValue(); void setDesktopNotification(const bool); @@ -81,6 +83,11 @@ public: bool copyAndCloseAfterUploadEnabled(); void setCopyAndCloseAfterUploadEnabled(const bool); + bool saveAfterCopyValue(); + void setSaveAfterCopy(const bool); + + QString saveAfterCopyPathValue(); + void setSaveAfterCopyPath(const QString&); bool copyPathAfterSaveEnabled(); void setCopyPathAfterSaveEnabled(const bool); @@ -105,6 +112,8 @@ private: bool normalizeButtons(QVector&); - QVector fromIntToButton(const QVector& l); - QVector fromButtonToInt(const QVector& l); + QVector fromIntToButton( + const QVector& l); + QVector fromButtonToInt( + const QVector& l); }; diff --git a/src/utils/dbusutils.cpp b/src/utils/dbusutils.cpp index 145444e2..070a1667 100644 --- a/src/utils/dbusutils.cpp +++ b/src/utils/dbusutils.cpp @@ -29,14 +29,14 @@ void DBusUtils::connectPrintCapture(QDBusConnection& session, uint id) { m_id = id; // captureTaken - session.connect(QStringLiteral("org.dharkael.Flameshot"), + session.connect(QStringLiteral("org.flameshot.Flameshot"), QStringLiteral("/"), QLatin1String(""), QStringLiteral("captureTaken"), this, SLOT(captureTaken(uint, QByteArray))); // captureFailed - session.connect(QStringLiteral("org.dharkael.Flameshot"), + session.connect(QStringLiteral("org.flameshot.Flameshot"), QStringLiteral("/"), QLatin1String(""), QStringLiteral("captureFailed"), diff --git a/src/utils/screenshotsaver.cpp b/src/utils/screenshotsaver.cpp index 0115e43a..f013b15c 100644 --- a/src/utils/screenshotsaver.cpp +++ b/src/utils/screenshotsaver.cpp @@ -27,14 +27,31 @@ ScreenshotSaver::ScreenshotSaver() {} +// TODO: If data is saved to the clipboard before the notification is sent via +// dbus, the application freezes. void ScreenshotSaver::saveToClipboard(const QPixmap& capture) { - SystemNotification().sendMessage(QObject::tr("Capture saved to clipboard")); - QApplication::clipboard()->setPixmap(capture); + + // If we are able to properly save the file, save the file and copy to + // clipboard. + if ((ConfigHandler().saveAfterCopyValue()) && + (!ConfigHandler().saveAfterCopyPathValue().isEmpty())) { + saveToFilesystem(capture, + ConfigHandler().saveAfterCopyPathValue(), + QObject::tr("Capture saved to clipboard.")); + QApplication::clipboard()->setPixmap(capture); + } + // Otherwise only save to clipboard + else { + SystemNotification().sendMessage( + QObject::tr("Capture saved to clipboard")); + QApplication::clipboard()->setPixmap(capture); + } } bool ScreenshotSaver::saveToFilesystem(const QPixmap& capture, - const QString& path) + const QString& path, + const QString& messagePrefix) { QString completePath = FileNameHandler().generateAbsolutePath(path); completePath += QLatin1String(".png"); @@ -44,9 +61,11 @@ bool ScreenshotSaver::saveToFilesystem(const QPixmap& capture, if (ok) { ConfigHandler().setSavePath(path); - saveMessage = QObject::tr("Capture saved as ") + completePath; + saveMessage = + messagePrefix + QObject::tr("Capture saved as ") + completePath; } else { - saveMessage = QObject::tr("Error trying to save as ") + completePath; + saveMessage = messagePrefix + QObject::tr("Error trying to save as ") + + completePath; notificationPath = ""; } @@ -83,10 +102,9 @@ bool ScreenshotSaver::saveToFilesystemGUI(const QPixmap& capture) ok = capture.save(savePath); if (ok) { - ConfigHandler config; QString pathNoFile = savePath.left(savePath.lastIndexOf(QLatin1String("/"))); - config.setSavePath(pathNoFile); + ConfigHandler().setSavePath(pathNoFile); QString msg = QObject::tr("Capture saved as ") + savePath; if (config.copyPathAfterSaveEnabled()) { QApplication::clipboard()->setText(savePath); diff --git a/src/utils/screenshotsaver.h b/src/utils/screenshotsaver.h index f18fefef..b528cbd7 100644 --- a/src/utils/screenshotsaver.h +++ b/src/utils/screenshotsaver.h @@ -26,6 +26,8 @@ public: ScreenshotSaver(); void saveToClipboard(const QPixmap& capture); - bool saveToFilesystem(const QPixmap& capture, const QString& path); + bool saveToFilesystem(const QPixmap& capture, + const QString& path, + const QString& messagePrefix); bool saveToFilesystemGUI(const QPixmap& capture); }; diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt new file mode 100644 index 00000000..219b981a --- /dev/null +++ b/src/widgets/CMakeLists.txt @@ -0,0 +1,23 @@ +add_subdirectory(panel) +add_subdirectory(capture) + +# Required to generate MOC +target_sources( + flameshot + PRIVATE capturelauncher.h + draggablewidgetmaker.h + imagelabel.h + infowindow.h + loadspinner.h + notificationwidget.h + orientablepushbutton.h) + +target_sources( + flameshot + PRIVATE capturelauncher.cpp + draggablewidgetmaker.cpp + imagelabel.cpp + infowindow.cpp + loadspinner.cpp + notificationwidget.cpp + orientablepushbutton.cpp) diff --git a/src/widgets/capture/CMakeLists.txt b/src/widgets/capture/CMakeLists.txt new file mode 100644 index 00000000..fe94aa99 --- /dev/null +++ b/src/widgets/capture/CMakeLists.txt @@ -0,0 +1,23 @@ +# Required to generate MOC +target_sources( + flameshot + PRIVATE buttonhandler.h + capturebutton.h + capturetoolbutton.h + capturewidget.h + colorpicker.h + hovereventfilter.h + selectionwidget.h + notifierbox.h) + +target_sources( + flameshot + PRIVATE buttonhandler.cpp + capturebutton.cpp + capturetoolbutton.cpp + capturewidget.cpp + colorpicker.cpp + hovereventfilter.cpp + modificationcommand.cpp + notifierbox.cpp + selectionwidget.cpp) diff --git a/src/widgets/capture/buttonhandler.cpp b/src/widgets/capture/buttonhandler.cpp index f20e5be5..cc6b9a2c 100644 --- a/src/widgets/capture/buttonhandler.cpp +++ b/src/widgets/capture/buttonhandler.cpp @@ -24,7 +24,8 @@ // ButtonHandler is a habdler for every active button. It makes easier to // manipulate the buttons as a unit. -ButtonHandler::ButtonHandler(const QVector& v, QObject* parent) +ButtonHandler::ButtonHandler(const QVector& v, + QObject* parent) : QObject(parent) { setButtons(v); @@ -39,7 +40,7 @@ ButtonHandler::ButtonHandler(QObject* parent) void ButtonHandler::hide() { - for (CaptureButton* b : m_vectorButtons) + for (CaptureToolButton* b : m_vectorButtons) b->hide(); } @@ -48,14 +49,14 @@ void ButtonHandler::show() if (m_vectorButtons.isEmpty() || m_vectorButtons.first()->isVisible()) { return; } - for (CaptureButton* b : m_vectorButtons) + for (CaptureToolButton* b : m_vectorButtons) b->animatedShow(); } bool ButtonHandler::isVisible() const { bool ret = true; - for (const CaptureButton* b : m_vectorButtons) { + for (const CaptureToolButton* b : m_vectorButtons) { if (!b->isVisible()) { ret = false; break; @@ -239,7 +240,7 @@ QVector ButtonHandler::verticalPoints(const QPoint& center, QRect ButtonHandler::intersectWithAreas(const QRect& rect) { QRect res; - for (const QRect& r : m_screenRegions.rects()) { + for (const QRect& r : m_screenRegions) { QRect temp = rect.intersected(r); if (temp.height() * temp.width() > res.height() * res.width()) { res = temp; @@ -361,12 +362,12 @@ void ButtonHandler::adjustHorizontalCenter(QPoint& center) } // setButtons redefines the buttons of the button handler -void ButtonHandler::setButtons(const QVector v) +void ButtonHandler::setButtons(const QVector v) { if (v.isEmpty()) return; - for (CaptureButton* b : m_vectorButtons) + for (CaptureToolButton* b : m_vectorButtons) delete (b); m_vectorButtons = v; m_buttonBaseSize = GlobalValues::buttonBaseSize(); diff --git a/src/widgets/capture/buttonhandler.h b/src/widgets/capture/buttonhandler.h index 3edd22e7..ec76edd4 100644 --- a/src/widgets/capture/buttonhandler.h +++ b/src/widgets/capture/buttonhandler.h @@ -17,12 +17,12 @@ #pragma once -#include "capturebutton.h" +#include "capturetoolbutton.h" #include #include #include -class CaptureButton; +class CaptureToolButton; class QRect; class QPoint; @@ -30,7 +30,8 @@ class ButtonHandler : public QObject { Q_OBJECT public: - ButtonHandler(const QVector&, QObject* parent = nullptr); + ButtonHandler(const QVector&, + QObject* parent = nullptr); explicit ButtonHandler(QObject* parent = nullptr); void hideSectionUnderMouse(const QPoint& p); @@ -39,7 +40,7 @@ public: bool buttonsAreInside() const; size_t size() const; - void setButtons(const QVector); + void setButtons(const QVector); bool contains(const QPoint& p) const; void updateScreenRegions(const QVector& rects); void updateScreenRegions(const QRect& rect); @@ -59,7 +60,7 @@ private: QRect intersectWithAreas(const QRect& rect); - QVector m_vectorButtons; + QVector m_vectorButtons; QRegion m_screenRegions; diff --git a/src/widgets/capture/capturebutton.cpp b/src/widgets/capture/capturebutton.cpp index 426a645d..d49b49da 100644 --- a/src/widgets/capture/capturebutton.cpp +++ b/src/widgets/capture/capturebutton.cpp @@ -16,56 +16,35 @@ // along with Flameshot. If not, see . #include "capturebutton.h" -#include "src/tools/capturetool.h" -#include "src/tools/toolfactory.h" #include "src/utils/colorutils.h" #include "src/utils/confighandler.h" #include "src/utils/globalvalues.h" -#include "src/widgets/capture/capturewidget.h" -#include #include -#include -#include -#include -#include -// Button represents a single button of the capture widget, it can enable -// multiple functionality. - -CaptureButton::CaptureButton(const ButtonType t, QWidget* parent) +CaptureButton::CaptureButton(QWidget* parent) : QPushButton(parent) - , m_buttonType(t) { - initButton(); - if (t == TYPE_SELECTIONINDICATOR) { - QFont f = this->font(); - setFont(QFont(f.family(), 7, QFont::Bold)); - } else { - updateIcon(); - } - setCursor(Qt::ArrowCursor); + init(); } -void CaptureButton::initButton() +CaptureButton::CaptureButton(const QString& text, QWidget* parent) + : QPushButton(text, parent) { - m_tool = ToolFactory().CreateTool(m_buttonType, this); + init(); +} +CaptureButton::CaptureButton(const QIcon& icon, + const QString& text, + QWidget* parent) + : QPushButton(icon, text, parent) +{ + init(); +} + +void CaptureButton::init() +{ + setCursor(Qt::ArrowCursor); setFocusPolicy(Qt::NoFocus); - resize(GlobalValues::buttonBaseSize(), GlobalValues::buttonBaseSize()); - setMask(QRegion(QRect(-1, - -1, - GlobalValues::buttonBaseSize() + 2, - GlobalValues::buttonBaseSize() + 2), - QRegion::Ellipse)); - - setToolTip(m_tool->description()); - - m_emergeAnimation = new QPropertyAnimation(this, "size", this); - m_emergeAnimation->setEasingCurve(QEasingCurve::InOutQuad); - m_emergeAnimation->setDuration(80); - m_emergeAnimation->setStartValue(QSize(0, 0)); - m_emergeAnimation->setEndValue( - QSize(GlobalValues::buttonBaseSize(), GlobalValues::buttonBaseSize())); auto dsEffect = new QGraphicsDropShadowEffect(this); dsEffect->setBlurRadius(5); @@ -75,131 +54,36 @@ void CaptureButton::initButton() setGraphicsEffect(dsEffect); } -void CaptureButton::updateIcon() -{ - setIcon(icon()); - setIconSize(size() * 0.6); -} - -QVector CaptureButton::getIterableButtonTypes() -{ - return iterableButtonTypes; -} - QString CaptureButton::globalStyleSheet() { - QColor mainColor = ConfigHandler().uiMainColorValue(); - QString baseSheet = "CaptureButton { border-radius: %3;" - "background-color: %1; color: %4 }" - "CaptureButton:hover { background-color: %2; }" - "CaptureButton:pressed:!hover { " - "background-color: %1; }"; - // define color when mouse is hovering - QColor contrast = ColorUtils::contrastColor(m_mainColor); - - // foreground color - QString color = ColorUtils::colorIsDark(mainColor) ? "white" : "black"; - - return baseSheet.arg(mainColor.name()) - .arg(contrast.name()) - .arg(GlobalValues::buttonBaseSize() / 2) - .arg(color); + return CaptureButton(nullptr).styleSheet(); } QString CaptureButton::styleSheet() const { - QString baseSheet = "CaptureButton { border-radius: %3;" + QString baseSheet = "CaptureButton { border: none;" + "padding: 3px 8px;" "background-color: %1; color: %4 }" + "CaptureToolButton { border-radius: %3;" + "padding: 0; }" "CaptureButton:hover { background-color: %2; }" "CaptureButton:pressed:!hover { " "background-color: %1; }"; // define color when mouse is hovering QColor contrast = ColorUtils::contrastColor(m_mainColor); // foreground color - QString color = ColorUtils::colorIsDark(m_mainColor) ? "white" : "black"; + QColor color = ColorUtils::colorIsDark(m_mainColor) ? Qt::white : Qt::black; return baseSheet.arg(m_mainColor.name()) .arg(contrast.name()) .arg(GlobalValues::buttonBaseSize() / 2) - .arg(color); -} - -// get icon returns the icon for the type of button -QIcon CaptureButton::icon() const -{ - return m_tool->icon(m_mainColor, true); -} - -void CaptureButton::mousePressEvent(QMouseEvent* e) -{ - if (e->button() == Qt::LeftButton) { - emit pressedButton(this); - emit pressed(); - } -} - -void CaptureButton::animatedShow() -{ - if (!isVisible()) { - show(); - m_emergeAnimation->start(); - connect( - m_emergeAnimation, &QPropertyAnimation::finished, this, []() {}); - } -} - -CaptureTool* CaptureButton::tool() const -{ - return m_tool; + .arg(color.name()); } void CaptureButton::setColor(const QColor& c) { m_mainColor = c; setStyleSheet(styleSheet()); - updateIcon(); } QColor CaptureButton::m_mainColor = ConfigHandler().uiMainColorValue(); - -static std::map buttonTypeOrder{ - { CaptureButton::TYPE_PENCIL, 0 }, - { CaptureButton::TYPE_DRAWER, 1 }, - { CaptureButton::TYPE_ARROW, 2 }, - { CaptureButton::TYPE_SELECTION, 3 }, - { CaptureButton::TYPE_RECTANGLE, 4 }, - { CaptureButton::TYPE_CIRCLE, 5 }, - { CaptureButton::TYPE_MARKER, 6 }, - { CaptureButton::TYPE_TEXT, 7 }, - { CaptureButton::TYPE_BLUR, 8 }, - { CaptureButton::TYPE_SELECTIONINDICATOR, 9 }, - { CaptureButton::TYPE_MOVESELECTION, 10 }, - { CaptureButton::TYPE_UNDO, 11 }, - { CaptureButton::TYPE_REDO, 12 }, - { CaptureButton::TYPE_COPY, 13 }, - { CaptureButton::TYPE_SAVE, 14 }, - { CaptureButton::TYPE_EXIT, 15 }, - { CaptureButton::TYPE_IMAGEUPLOADER, 16 }, - { CaptureButton::TYPE_OPEN_APP, 17 }, - { CaptureButton::TYPE_PIN, 18 }, -}; - -int CaptureButton::getPriorityByButton(CaptureButton::ButtonType b) -{ - auto it = buttonTypeOrder.find(b); - return it == buttonTypeOrder.cend() ? (int)buttonTypeOrder.size() - : it->second; -} - -QVector CaptureButton::iterableButtonTypes = { - CaptureButton::TYPE_PENCIL, CaptureButton::TYPE_DRAWER, - CaptureButton::TYPE_ARROW, CaptureButton::TYPE_SELECTION, - CaptureButton::TYPE_RECTANGLE, CaptureButton::TYPE_CIRCLE, - CaptureButton::TYPE_MARKER, CaptureButton::TYPE_TEXT, - CaptureButton::TYPE_BLUR, CaptureButton::TYPE_SELECTIONINDICATOR, - CaptureButton::TYPE_MOVESELECTION, CaptureButton::TYPE_UNDO, - CaptureButton::TYPE_REDO, CaptureButton::TYPE_COPY, - CaptureButton::TYPE_SAVE, CaptureButton::TYPE_EXIT, - CaptureButton::TYPE_IMAGEUPLOADER, CaptureButton::TYPE_OPEN_APP, - CaptureButton::TYPE_PIN, -}; diff --git a/src/widgets/capture/capturebutton.h b/src/widgets/capture/capturebutton.h index 744ecd19..dc4991d4 100644 --- a/src/widgets/capture/capturebutton.h +++ b/src/widgets/capture/capturebutton.h @@ -17,83 +17,28 @@ #pragma once -#include #include -#include - -class QWidget; -class QPropertyAnimation; -class CaptureTool; class CaptureButton : public QPushButton { Q_OBJECT public: - // Don't forget to add the new types to CaptureButton::iterableButtonTypes - // in the .cpp and the order value in the private array buttonTypeOrder - enum ButtonType - { - TYPE_PENCIL = 0, - TYPE_DRAWER = 1, - TYPE_ARROW = 2, - TYPE_SELECTION = 3, - TYPE_RECTANGLE = 4, - TYPE_CIRCLE = 5, - TYPE_MARKER = 6, - TYPE_SELECTIONINDICATOR = 7, - TYPE_MOVESELECTION = 8, - TYPE_UNDO = 9, - TYPE_COPY = 10, - TYPE_SAVE = 11, - TYPE_EXIT = 12, - TYPE_IMAGEUPLOADER = 13, - TYPE_OPEN_APP = 14, - TYPE_BLUR = 15, - TYPE_REDO = 16, - TYPE_PIN = 17, - TYPE_TEXT = 18, - }; - -#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0) - Q_ENUMS(ButtonType) -#else - Q_ENUM(ButtonType) -#endif - CaptureButton() = delete; - explicit CaptureButton(const ButtonType, QWidget* parent = nullptr); + CaptureButton(QWidget* parent = nullptr); + CaptureButton(const QString& text, QWidget* parent = nullptr); + CaptureButton(const QIcon& icon, + const QString& text, + QWidget* parent = nullptr); static QString globalStyleSheet(); - static QVector getIterableButtonTypes(); - static int getPriorityByButton(CaptureButton::ButtonType); - QString name() const; - QString description() const; - QIcon icon() const; QString styleSheet() const; - CaptureTool* tool() const; void setColor(const QColor& c); - void animatedShow(); - -protected: - virtual void mousePressEvent(QMouseEvent*); - static QVector iterableButtonTypes; - - CaptureTool* m_tool; - -signals: - void pressedButton(CaptureButton*); private: - CaptureButton(QWidget* parent = nullptr); - ButtonType m_buttonType; - - QPropertyAnimation* m_emergeAnimation; - static QColor m_mainColor; - void initButton(); - void updateIcon(); + void init(); }; diff --git a/src/widgets/capture/capturetoolbutton.cpp b/src/widgets/capture/capturetoolbutton.cpp new file mode 100644 index 00000000..a102cc16 --- /dev/null +++ b/src/widgets/capture/capturetoolbutton.cpp @@ -0,0 +1,169 @@ +// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors +// +// This file is part of Flameshot. +// +// Flameshot 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 3 of the License, or +// (at your option) any later version. +// +// Flameshot 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 Flameshot. If not, see . + +#include "capturetoolbutton.h" +#include "src/tools/capturetool.h" +#include "src/tools/toolfactory.h" +#include "src/utils/colorutils.h" +#include "src/utils/confighandler.h" +#include "src/utils/globalvalues.h" +#include "src/widgets/capture/capturewidget.h" +#include +#include +#include +#include +#include + +// Button represents a single button of the capture widget, it can enable +// multiple functionality. + +CaptureToolButton::CaptureToolButton(const ButtonType t, QWidget* parent) + : CaptureButton(parent) + , m_buttonType(t) +{ + initButton(); + if (t == TYPE_SELECTIONINDICATOR) { + QFont f = this->font(); + setFont(QFont(f.family(), 7, QFont::Bold)); + } else { + updateIcon(); + } +} + +void CaptureToolButton::initButton() +{ + m_tool = ToolFactory().CreateTool(m_buttonType, this); + + resize(GlobalValues::buttonBaseSize(), GlobalValues::buttonBaseSize()); + setMask(QRegion(QRect(-1, + -1, + GlobalValues::buttonBaseSize() + 2, + GlobalValues::buttonBaseSize() + 2), + QRegion::Ellipse)); + + setToolTip(m_tool->description()); + + m_emergeAnimation = new QPropertyAnimation(this, "size", this); + m_emergeAnimation->setEasingCurve(QEasingCurve::InOutQuad); + m_emergeAnimation->setDuration(80); + m_emergeAnimation->setStartValue(QSize(0, 0)); + m_emergeAnimation->setEndValue( + QSize(GlobalValues::buttonBaseSize(), GlobalValues::buttonBaseSize())); +} + +void CaptureToolButton::updateIcon() +{ + setIcon(icon()); + setIconSize(size() * 0.6); +} + +QVector +CaptureToolButton::getIterableButtonTypes() +{ + return iterableButtonTypes; +} + +// get icon returns the icon for the type of button +QIcon CaptureToolButton::icon() const +{ + return m_tool->icon(m_mainColor, true); +} + +void CaptureToolButton::mousePressEvent(QMouseEvent* e) +{ + if (e->button() == Qt::LeftButton) { + emit pressedButton(this); + emit pressed(); + } +} + +void CaptureToolButton::animatedShow() +{ + if (!isVisible()) { + show(); + m_emergeAnimation->start(); + connect( + m_emergeAnimation, &QPropertyAnimation::finished, this, []() {}); + } +} + +CaptureTool* CaptureToolButton::tool() const +{ + return m_tool; +} + +void CaptureToolButton::setColor(const QColor& c) +{ + CaptureButton::setColor(c); + updateIcon(); +} + +QColor CaptureToolButton::m_mainColor = ConfigHandler().uiMainColorValue(); + +static std::map buttonTypeOrder{ + { CaptureToolButton::TYPE_PENCIL, 0 }, + { CaptureToolButton::TYPE_DRAWER, 1 }, + { CaptureToolButton::TYPE_ARROW, 2 }, + { CaptureToolButton::TYPE_SELECTION, 3 }, + { CaptureToolButton::TYPE_RECTANGLE, 4 }, + { CaptureToolButton::TYPE_CIRCLE, 5 }, + { CaptureToolButton::TYPE_MARKER, 6 }, + { CaptureToolButton::TYPE_TEXT, 7 }, + { CaptureToolButton::TYPE_PIXELATE, 8 }, + { CaptureToolButton::TYPE_CIRCLECOUNT, 9 }, + { CaptureToolButton::TYPE_SELECTIONINDICATOR, 10 }, + { CaptureToolButton::TYPE_MOVESELECTION, 11 }, + { CaptureToolButton::TYPE_UNDO, 12 }, + { CaptureToolButton::TYPE_REDO, 13 }, + { CaptureToolButton::TYPE_COPY, 14 }, + { CaptureToolButton::TYPE_SAVE, 15 }, + { CaptureToolButton::TYPE_EXIT, 16 }, + { CaptureToolButton::TYPE_IMAGEUPLOADER, 17 }, + { CaptureToolButton::TYPE_OPEN_APP, 18 }, + { CaptureToolButton::TYPE_PIN, 19 }, +}; + +int CaptureToolButton::getPriorityByButton(CaptureToolButton::ButtonType b) +{ + auto it = buttonTypeOrder.find(b); + return it == buttonTypeOrder.cend() ? (int)buttonTypeOrder.size() + : it->second; +} + +QVector + CaptureToolButton::iterableButtonTypes = { + CaptureToolButton::TYPE_PENCIL, + CaptureToolButton::TYPE_DRAWER, + CaptureToolButton::TYPE_ARROW, + CaptureToolButton::TYPE_SELECTION, + CaptureToolButton::TYPE_RECTANGLE, + CaptureToolButton::TYPE_CIRCLE, + CaptureToolButton::TYPE_MARKER, + CaptureToolButton::TYPE_TEXT, + CaptureToolButton::TYPE_PIXELATE, + CaptureToolButton::TYPE_SELECTIONINDICATOR, + CaptureToolButton::TYPE_MOVESELECTION, + CaptureToolButton::TYPE_UNDO, + CaptureToolButton::TYPE_REDO, + CaptureToolButton::TYPE_COPY, + CaptureToolButton::TYPE_SAVE, + CaptureToolButton::TYPE_EXIT, + CaptureToolButton::TYPE_IMAGEUPLOADER, + CaptureToolButton::TYPE_OPEN_APP, + CaptureToolButton::TYPE_PIN, + CaptureToolButton::TYPE_CIRCLECOUNT, + }; diff --git a/src/widgets/capture/capturetoolbutton.h b/src/widgets/capture/capturetoolbutton.h new file mode 100644 index 00000000..2a2908da --- /dev/null +++ b/src/widgets/capture/capturetoolbutton.h @@ -0,0 +1,93 @@ +// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors +// +// This file is part of Flameshot. +// +// Flameshot 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 3 of the License, or +// (at your option) any later version. +// +// Flameshot 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 Flameshot. If not, see . + +#pragma once + +#include "capturebutton.h" +#include +#include + +class QWidget; +class QPropertyAnimation; +class CaptureTool; + +class CaptureToolButton : public CaptureButton +{ + Q_OBJECT + +public: + // Don't forget to add the new types to CaptureButton::iterableButtonTypes + // in the .cpp and the order value in the private array buttonTypeOrder + enum ButtonType + { + TYPE_PENCIL = 0, + TYPE_DRAWER = 1, + TYPE_ARROW = 2, + TYPE_SELECTION = 3, + TYPE_RECTANGLE = 4, + TYPE_CIRCLE = 5, + TYPE_MARKER = 6, + TYPE_SELECTIONINDICATOR = 7, + TYPE_MOVESELECTION = 8, + TYPE_UNDO = 9, + TYPE_COPY = 10, + TYPE_SAVE = 11, + TYPE_EXIT = 12, + TYPE_IMAGEUPLOADER = 13, + TYPE_OPEN_APP = 14, + TYPE_PIXELATE = 15, + TYPE_REDO = 16, + TYPE_PIN = 17, + TYPE_TEXT = 18, + TYPE_CIRCLECOUNT = 19, + + }; + Q_ENUM(ButtonType) + + explicit CaptureToolButton(const ButtonType, QWidget* parent = nullptr); + + static QVector getIterableButtonTypes(); + static int getPriorityByButton(CaptureToolButton::ButtonType); + + QString name() const; + QString description() const; + QIcon icon() const; + CaptureTool* tool() const; + + void setColor(const QColor& c); + void animatedShow(); + +protected: + void mousePressEvent(QMouseEvent* e) override; + static QVector iterableButtonTypes; + + CaptureTool* m_tool; + +signals: + void pressedButton(CaptureToolButton*); + +private: + CaptureToolButton(QWidget* parent = nullptr); + ButtonType m_buttonType; + + QPropertyAnimation* m_emergeAnimation; + + static QColor m_mainColor; + + void initButton(); + void updateIcon(); +}; diff --git a/src/widgets/capture/capturewidget.cpp b/src/widgets/capture/capturewidget.cpp index 21214f24..57dd68c3 100644 --- a/src/widgets/capture/capturewidget.cpp +++ b/src/widgets/capture/capturewidget.cpp @@ -36,6 +36,7 @@ #include "src/widgets/capture/hovereventfilter.h" #include "src/widgets/capture/modificationcommand.h" #include "src/widgets/capture/notifierbox.h" +#include "src/widgets/orientablepushbutton.h" #include "src/widgets/panel/sidepanelwidget.h" #include #include @@ -47,9 +48,10 @@ #include #include #include +#include // CaptureWidget is the main component used to capture the screen. It contains -// an are of selection with its respective buttons. +// an area of selection with its respective buttons. // enableSaveWIndow CaptureWidget::CaptureWidget(const uint id, @@ -86,7 +88,7 @@ CaptureWidget::CaptureWidget(const uint id, setMouseTracking(true); initContext(savePath, fullScreen); initShortcuts(); - + m_context.circleCount = 1; #ifdef Q_OS_WIN // Top left of the whole set of screens QPoint topLeft(0, 0); @@ -175,13 +177,14 @@ void CaptureWidget::updateButtons() m_uiColor = m_config.uiMainColorValue(); m_contrastUiColor = m_config.uiContrastColorValue(); - QVector vectorButtons; - for (const CaptureButton::ButtonType& t : m_config.getButtons()) { - CaptureButton* b = new CaptureButton(t, this); - if (t == CaptureButton::TYPE_SELECTIONINDICATOR) { + auto buttons = m_config.getButtons(); + QVector vectorButtons; + + for (const CaptureToolButton::ButtonType& t : buttons) { + CaptureToolButton* b = new CaptureToolButton(t, this); + if (t == CaptureToolButton::TYPE_SELECTIONINDICATOR) { m_sizeIndButton = b; } - b->setColor(m_uiColor); makeChild(b); @@ -317,7 +320,7 @@ void CaptureWidget::paintEvent(QPaintEvent*) painter.setRenderHint(QPainter::Antialiasing); painter.setBrush(m_uiColor); for (auto r : m_selection->handlerAreas()) { - painter.drawRoundRect(r, 100, 100); + painter.drawRoundedRect(r, 100, 100); } } } @@ -604,7 +607,7 @@ void CaptureWidget::keyReleaseEvent(QKeyEvent* e) void CaptureWidget::wheelEvent(QWheelEvent* e) { - m_context.thickness += e->delta() / 120; + m_context.thickness += e->angleDelta().y() / 120; m_context.thickness = qBound(0, m_context.thickness, 100); QPoint topLeft = qApp->desktop() @@ -624,8 +627,8 @@ void CaptureWidget::resizeEvent(QResizeEvent* e) QWidget::resizeEvent(e); m_context.widgetDimensions = rect(); m_context.widgetOffset = mapToGlobal(QPoint(0, 0)); - m_panel->setFixedHeight(height()); if (!m_context.fullscreen) { + m_panel->setFixedHeight(height()); m_buttonHandler->updateScreenRegions(rect()); } } @@ -649,12 +652,32 @@ void CaptureWidget::initContext(const QString& savePath, bool fullscreen) void CaptureWidget::initPanel() { - m_panel = new UtilityPanel(this); - makeChild(m_panel); QRect panelRect = rect(); if (m_context.fullscreen) { panelRect = QGuiApplication::primaryScreen()->geometry(); } + + ConfigHandler config; + + if (config.showSidePanelButtonValue()) { + auto* panelToggleButton = + new OrientablePushButton(tr("Tool Settings"), this); + makeChild(panelToggleButton); + panelToggleButton->setOrientation( + OrientablePushButton::VerticalBottomToTop); + panelToggleButton->move(panelRect.x(), + panelRect.y() + panelRect.height() / 2 - + panelToggleButton->width() / 2); + panelToggleButton->setCursor(Qt::ArrowCursor); + (new DraggableWidgetMaker(this))->makeDraggable(panelToggleButton); + connect(panelToggleButton, + &QPushButton::clicked, + this, + &CaptureWidget::togglePanel); + } + + m_panel = new UtilityPanel(this); + makeChild(m_panel); panelRect.moveTo(mapFromGlobal(panelRect.topLeft())); panelRect.setWidth(m_colorPicker->width() * 1.5); m_panel->setGeometry(panelRect); @@ -694,7 +717,7 @@ void CaptureWidget::initSelection() m_selection->setGeometry(QRect()); } -void CaptureWidget::setState(CaptureButton* b) +void CaptureWidget::setState(CaptureToolButton* b) { if (!b) { return; @@ -748,6 +771,15 @@ void CaptureWidget::handleButtonSignal(CaptureTool::Request r) m_undoStack.setIndex(0); update(); break; + + case CaptureTool::REQ_INCREMENT_CIRCLE_COUNT: + incrementCircleCount(); + break; + + case CaptureTool::REQ_DECREMENT_CIRCLE_COUNT: + decrementCircleCount(); + break; + case CaptureTool::REQ_CLOSE_GUI: close(); break; @@ -766,6 +798,9 @@ void CaptureWidget::handleButtonSignal(CaptureTool::Request r) m_undoStack.undo(); break; case CaptureTool::REQ_REDO_MODIFICATION: + if (m_undoStack.redoText() == "Circle Counter") { + this->incrementCircleCount(); + } m_undoStack.redo(); break; case CaptureTool::REQ_REDRAW: @@ -775,6 +810,7 @@ void CaptureWidget::handleButtonSignal(CaptureTool::Request r) m_panel->toggle(); break; case CaptureTool::REQ_SHOW_COLOR_PICKER: + // TODO break; case CaptureTool::REQ_MOVE_MODE: setState(m_activeButton); // Disable the actual button @@ -830,6 +866,16 @@ void CaptureWidget::setDrawColor(const QColor& c) } } +void CaptureWidget::incrementCircleCount() +{ + m_context.circleCount++; +} + +void CaptureWidget::decrementCircleCount() +{ + m_context.circleCount--; +} + void CaptureWidget::setDrawThickness(const int& t) { m_context.thickness = qBound(0, t, 100); @@ -1069,7 +1115,7 @@ void CaptureWidget::saveScreenshot() if (m_context.savePath.isEmpty()) { ScreenshotSaver().saveToFilesystemGUI(pixmap()); } else { - ScreenshotSaver().saveToFilesystem(pixmap(), m_context.savePath); + ScreenshotSaver().saveToFilesystem(pixmap(), m_context.savePath, ""); } close(); } diff --git a/src/widgets/capture/capturewidget.h b/src/widgets/capture/capturewidget.h index ddeb68cd..33cdd73f 100644 --- a/src/widgets/capture/capturewidget.h +++ b/src/widgets/capture/capturewidget.h @@ -26,7 +26,7 @@ #pragma once #include "buttonhandler.h" -#include "capturebutton.h" +#include "capturetoolbutton.h" #include "src/tools/capturecontext.h" #include "src/tools/capturetool.h" #include "src/utils/confighandler.h" @@ -92,11 +92,14 @@ private slots: void upMove(); void downMove(); - void setState(CaptureButton* b); + void setState(CaptureToolButton* b); void processTool(CaptureTool* t); void handleButtonSignal(CaptureTool::Request r); - void setDrawColor(const QColor& c); - void setDrawThickness(const int& t); + void setDrawColor(const QColor &c); + void setDrawThickness(const int &t); + void incrementCircleCount(); + void decrementCircleCount(); + protected: void paintEvent(QPaintEvent*); @@ -119,6 +122,7 @@ protected: // Outside selection opacity int m_opacity; + // utility flags bool m_mouseIsClicked; bool m_rightClick; @@ -145,9 +149,9 @@ private: private: QUndoStack m_undoStack; - QPointer m_sizeIndButton; + QPointer m_sizeIndButton; // Last pressed button - QPointer m_activeButton; + QPointer m_activeButton; QPointer m_activeTool; QPointer m_toolWidget; diff --git a/src/widgets/capture/colorpicker.cpp b/src/widgets/capture/colorpicker.cpp index 371034cc..a4bba16e 100644 --- a/src/widgets/capture/colorpicker.cpp +++ b/src/widgets/capture/colorpicker.cpp @@ -89,7 +89,7 @@ void ColorPicker::paintEvent(QPaintEvent*) highlight.moveTo(highlight.x() - 3, highlight.y() - 3); highlight.setHeight(highlight.height() + 6); highlight.setWidth(highlight.width() + 6); - painter.drawRoundRect(highlight, 100, 100); + painter.drawRoundedRect(highlight, 100, 100); painter.setPen(QColor(Qt::black)); } diff --git a/src/widgets/capturelauncher.cpp b/src/widgets/capturelauncher.cpp index f89332f2..1366b577 100644 --- a/src/widgets/capturelauncher.cpp +++ b/src/widgets/capturelauncher.cpp @@ -18,7 +18,9 @@ #include "capturelauncher.h" #include "src/core/controller.h" #include "src/utils/screengrabber.h" +#include "src/utils/screenshotsaver.h" #include "src/widgets/imagelabel.h" + #include "src/widgets/notificationwidget.h" #include #include @@ -145,6 +147,13 @@ void CaptureLauncher::captureTaken(uint id, QPixmap p) m_imageLabel->setScreenshot(p); show(); } + + auto mode = static_cast( + m_captureType->currentData().toInt()); + + if (mode == CaptureRequest::FULLSCREEN_MODE) { + ScreenshotSaver().saveToFilesystemGUI(p); + } } void CaptureLauncher::captureFailed(uint id) diff --git a/src/widgets/draggablewidgetmaker.cpp b/src/widgets/draggablewidgetmaker.cpp new file mode 100644 index 00000000..c738dc62 --- /dev/null +++ b/src/widgets/draggablewidgetmaker.cpp @@ -0,0 +1,79 @@ +// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors +// +// This file is part of Flameshot. +// +// Flameshot 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 3 of the License, or +// (at your option) any later version. +// +// Flameshot 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 Flameshot. If not, see . + +#include "draggablewidgetmaker.h" +#include + +DraggableWidgetMaker::DraggableWidgetMaker(QObject* parent) + : QObject(parent) +{} + +void DraggableWidgetMaker::makeDraggable(QWidget* widget) +{ + widget->installEventFilter(this); +} + +bool DraggableWidgetMaker::eventFilter(QObject* obj, QEvent* event) +{ + auto widget = static_cast(obj); + + // based on https://stackoverflow.com/a/12221360/964478 + switch (event->type()) { + case QEvent::MouseButtonPress: { + auto mouseEvent = static_cast(event); + + m_isPressing = false; + m_isDragging = false; + if (mouseEvent->button() == Qt::LeftButton) { + m_isPressing = true; + m_mousePressPos = mouseEvent->globalPos(); + m_mouseMovePos = m_mousePressPos; + } + } break; + case QEvent::MouseMove: { + auto mouseEvent = static_cast(event); + + if (m_isPressing) { + QPoint widgetPos = widget->mapToGlobal(widget->pos()); + QPoint eventPos = mouseEvent->globalPos(); + QPoint diff = eventPos - m_mouseMovePos; + QPoint newPos = widgetPos + diff; + + widget->move(widget->mapFromGlobal(newPos)); + + if (!m_isDragging) { + QPoint totalMovedDiff = eventPos - m_mousePressPos; + if (totalMovedDiff.manhattanLength() > 3) { + m_isDragging = true; + } + } + + m_mouseMovePos = eventPos; + } + } break; + case QEvent::MouseButtonRelease: { + if (m_isDragging) { + m_isPressing = false; + m_isDragging = false; + event->ignore(); + return true; + } + } break; + } + + return QObject::eventFilter(obj, event); +} diff --git a/src/widgets/draggablewidgetmaker.h b/src/widgets/draggablewidgetmaker.h new file mode 100644 index 00000000..7f99893e --- /dev/null +++ b/src/widgets/draggablewidgetmaker.h @@ -0,0 +1,41 @@ +// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors +// +// This file is part of Flameshot. +// +// Flameshot 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 3 of the License, or +// (at your option) any later version. +// +// Flameshot 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 Flameshot. If not, see . + +#pragma once + +#include +#include +#include +#include + +class DraggableWidgetMaker : public QObject +{ + Q_OBJECT +public: + DraggableWidgetMaker(QObject* parent = nullptr); + + void makeDraggable(QWidget* widget); + +protected: + bool eventFilter(QObject* obj, QEvent* event) override; + +private: + bool m_isPressing = false; + bool m_isDragging = false; + QPoint m_mouseMovePos; + QPoint m_mousePressPos; +}; diff --git a/src/widgets/orientablepushbutton.cpp b/src/widgets/orientablepushbutton.cpp new file mode 100644 index 00000000..f85b66d5 --- /dev/null +++ b/src/widgets/orientablepushbutton.cpp @@ -0,0 +1,83 @@ +// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors +// +// This file is part of Flameshot. +// +// Flameshot 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 3 of the License, or +// (at your option) any later version. +// +// Flameshot 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 Flameshot. If not, see . + +// Based on https://stackoverflow.com/a/53135675/964478 + +#include "orientablepushbutton.h" +#include +#include +#include +#include + +OrientablePushButton::OrientablePushButton(QWidget* parent) + : CaptureButton(parent) +{} + +OrientablePushButton::OrientablePushButton(const QString& text, QWidget* parent) + : CaptureButton(text, parent) +{} + +OrientablePushButton::OrientablePushButton(const QIcon& icon, + const QString& text, + QWidget* parent) + : CaptureButton(icon, text, parent) +{} + +QSize OrientablePushButton::sizeHint() const +{ + QSize sh = QPushButton::sizeHint(); + + if (m_orientation != OrientablePushButton::Horizontal) { + sh.transpose(); + } + + return sh; +} + +void OrientablePushButton::paintEvent(QPaintEvent* event) +{ + Q_UNUSED(event) + + QStylePainter painter(this); + QStyleOptionButton option; + initStyleOption(&option); + + if (m_orientation == OrientablePushButton::VerticalTopToBottom) { + painter.rotate(90); + painter.translate(0, -1 * width()); + option.rect = option.rect.transposed(); + } + + else if (m_orientation == OrientablePushButton::VerticalBottomToTop) { + painter.rotate(-90); + painter.translate(-1 * height(), 0); + option.rect = option.rect.transposed(); + } + + painter.drawControl(QStyle::CE_PushButton, option); +} + +OrientablePushButton::Orientation OrientablePushButton::orientation() const +{ + return m_orientation; +} + +void OrientablePushButton::setOrientation( + const OrientablePushButton::Orientation& orientation) +{ + m_orientation = orientation; +} diff --git a/src/widgets/orientablepushbutton.h b/src/widgets/orientablepushbutton.h new file mode 100644 index 00000000..ffac4477 --- /dev/null +++ b/src/widgets/orientablepushbutton.h @@ -0,0 +1,52 @@ +// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors +// +// This file is part of Flameshot. +// +// Flameshot 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 3 of the License, or +// (at your option) any later version. +// +// Flameshot 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 Flameshot. If not, see . + +// Based on https://stackoverflow.com/a/53135675/964478 + +#pragma once + +#include "capture/capturebutton.h" +#include + +class OrientablePushButton : public CaptureButton +{ + Q_OBJECT +public: + enum Orientation + { + Horizontal, + VerticalTopToBottom, + VerticalBottomToTop + }; + + OrientablePushButton(QWidget* parent = nullptr); + OrientablePushButton(const QString& text, QWidget* parent = nullptr); + OrientablePushButton(const QIcon& icon, + const QString& text, + QWidget* parent = nullptr); + + QSize sizeHint() const; + + OrientablePushButton::Orientation orientation() const; + void setOrientation(const OrientablePushButton::Orientation& orientation); + +protected: + void paintEvent(QPaintEvent* event); + +private: + Orientation m_orientation = Horizontal; +}; diff --git a/src/widgets/panel/CMakeLists.txt b/src/widgets/panel/CMakeLists.txt new file mode 100644 index 00000000..eeb4de27 --- /dev/null +++ b/src/widgets/panel/CMakeLists.txt @@ -0,0 +1,4 @@ +# Required to generate MOC +target_sources(flameshot PRIVATE sidepanelwidget.h utilitypanel.h) + +target_sources(flameshot PRIVATE sidepanelwidget.cpp utilitypanel.cpp) diff --git a/src/widgets/panel/sidepanelwidget.cpp b/src/widgets/panel/sidepanelwidget.cpp index 6b4b6ae6..ef115167 100644 --- a/src/widgets/panel/sidepanelwidget.cpp +++ b/src/widgets/panel/sidepanelwidget.cpp @@ -82,7 +82,7 @@ SidePanelWidget::SidePanelWidget(QPixmap* p, QWidget* parent) this, &SidePanelWidget::updateThickness); - QColor background = this->palette().background().color(); + QColor background = this->palette().window().color(); bool isDark = ColorUtils::colorIsDark(background); QString modifier = isDark ? PathInfo::whiteIconPath() : PathInfo::blackIconPath(); diff --git a/src/widgets/panel/utilitypanel.cpp b/src/widgets/panel/utilitypanel.cpp index 6f626ac3..28f5b80d 100644 --- a/src/widgets/panel/utilitypanel.cpp +++ b/src/widgets/panel/utilitypanel.cpp @@ -56,6 +56,8 @@ void UtilityPanel::addToolWidget(QWidget* w) } if (w) { m_toolWidget = w; + m_toolWidget->setSizePolicy(QSizePolicy::Ignored, + QSizePolicy::Preferred); m_upLayout->addWidget(w); } } @@ -69,7 +71,7 @@ void UtilityPanel::clearToolWidget() void UtilityPanel::pushWidget(QWidget* w) { - m_layout->addWidget(w); + m_layout->insertWidget(m_layout->count() - 1, w); } void UtilityPanel::show() @@ -111,10 +113,17 @@ void UtilityPanel::initInternalPanel() m_layout = new QVBoxLayout(); m_upLayout = new QVBoxLayout(); + m_bottomLayout = new QVBoxLayout(); m_layout->addLayout(m_upLayout); + m_layout->addLayout(m_bottomLayout); widget->setLayout(m_layout); - QColor bgColor = palette().background().color(); + QPushButton* closeButton = new QPushButton(this); + closeButton->setText(tr("Close")); + connect(closeButton, &QPushButton::clicked, this, &UtilityPanel::toggle); + m_bottomLayout->addWidget(closeButton); + + QColor bgColor = palette().window().color(); bgColor.setAlphaF(0.0); m_internalPanel->setStyleSheet( QStringLiteral("QScrollArea {background-color: %1}").arg(bgColor.name())); diff --git a/src/widgets/panel/utilitypanel.h b/src/widgets/panel/utilitypanel.h index 245c3a07..7a340bf9 100644 --- a/src/widgets/panel/utilitypanel.h +++ b/src/widgets/panel/utilitypanel.h @@ -52,6 +52,7 @@ private: QPointer m_toolWidget; QScrollArea* m_internalPanel; QVBoxLayout* m_upLayout; + QVBoxLayout* m_bottomLayout; QVBoxLayout* m_layout; QPropertyAnimation* m_showAnimation; QPropertyAnimation* m_hideAnimation; diff --git a/translations/Internationalization_pl.ts b/translations/Internationalization_pl.ts deleted file mode 100644 index ce7d7dde..00000000 --- a/translations/Internationalization_pl.ts +++ /dev/null @@ -1,1354 +0,0 @@ - - - - - AppLauncher - - - App Launcher - Uruchamianie aplikacji - - - - Choose an app to open the capture - Wybierz aplikację do otwierania zrzutu - - - - AppLauncherWidget - - - Open With - Otwórz w - - - - Launch in terminal - Otwórz w terminalu - - - - Keep open after selection - Pozostaw otwarte po zaznaczeniu - - - - - Error - Błąd - - - - Unable to write in - Nie można zapisać - - - - Unable to launch in terminal. - Nie można uruchomić w terminalu. - - - - ArrowTool - - - Arrow - Strzałka - - - - Set the Arrow as the paint tool - Rysowanie strzałek - - - - BlurTool - - - Blur - Rozmycie - - - - Set Blur as the paint tool - Rozmywanie obszarów - - - - CaptureLauncher - - - <b>Capture Mode</b> - - - - - Rectangular Region - - - - - Full Screen (All Monitors) - - - - - No Delay - - - - - second - - - - - seconds - - - - - Take new screenshot - - - - - Area: - - - - - Delay: - - - - - CaptureWidget - - - Unable to capture screen - Nie można przechwycić ekranu - - - - Select an area with the mouse, or press Esc to exit. -Press Enter to capture the screen. -Press Right Click to show the color picker. -Use the Mouse Wheel to change the thickness of your tool. -Press Space to open the side panel. - Wybierz obszar za pomocą myszy lub wciśnij Esc aby wyjść. -Wciśnij Enter, aby wykonać zrzut ekranu. -Prawy klik, aby pokazać próbnik kolorów. -Spacja, aby pokazać panel boczny. - - - - CircleTool - - - Circle - Okręgi - - - - Set the Circle as the paint tool - Rysowanie okręgów i elips - - - - ConfigWindow - - - Configuration - Konfiguracja - - - - Interface - Interfejs - - - - Filename Editor - Edytor nazw plików - - - - Shortcuts - - - - - General - Ogólne - - - - Controller - - - &Take Screenshot - &Zrzut ekranu - - - - &Open Launcher - - - - - &Configuration - &Konfiguracja - - - - &Information - &Informacje - - - - &Quit - &Wyjdź - - - - &Latest Uploads - - - - - CopyTool - - - Copy - Kopiuj - - - - Copy the selection into the clipboard - - - - - DBusUtils - - - Unable to connect via DBus - Nie można się połączyć za pomocą DBus - - - - ExitTool - - - Exit - Wyjdź - - - - Leave the capture screen - Opuść ekran przechwytywania - - - - FileNameEditor - - - Edit the name of your captures: - Edycja wzorca nazwy plików: - - - - Edit: - Edytuj: - - - - Preview: - Podgląd: - - - - Save - Zapisz - - - - Saves the pattern - Zapisuje wzorzec - - - - Reset - Reset - - - - Restores the saved pattern - Resetuje wzorzec - - - - Clear - Wyczyść - - - - Deletes the name - Czyści wzorzec - - - - FilePathConfiguration - - - Screenshot path default: - - - - - Use fixed path for screenshots to save - - - - - Browse - - - - - Clear - Wyczyść - - - - Select default path for Screenshots - - - - - GeneneralConf - - - - Import - Import - - - - - - Error - Błąd - - - - Unable to read file. - Nie można odczytać pliku. - - - - - Unable to write file. - Nie można zapisać pliku. - - - - Save File - Zapisz plik - - - - Confirm Reset - Potwierdź Reset - - - - Are you sure you want to reset the configuration? - Czy na pewno chcesz zresetować konfigurację? - - - - Show help message - Pokaż podpowiedzi - - - - Show the help message at the beginning in the capture mode. - Pokaż podpowiedzi na początku trybu przechwytywania. - - - - - Show desktop notifications - Pokaż powiadomienia ekranowe - - - - Show tray icon - Pokaż ikonę w trayu - - - - Show the systemtray icon - Pokaż ikonę w zasobniku systemowym - - - - Configuration File - Plik konfiguracyjny - - - - Export - Export - - - - Reset - Reset - - - - Launch at startup - Uruchom podczas startu - - - - - Launch Flameshot - Uruchom Flameshot - - - - Show welcome message on launch - - - - - Close application after capture - - - - - Close after taking a screenshot - - - - - Copy URL after upload - - - - - Copy URL and close window after upload - - - - - - Copy file path after save - - - - - Upload storage - - - - - Imgur storage - - - - - S3 storage (require config.ini file with s3 credentials) - - - - - HistoryWidget - - - Latest Uploads - - - - - Screenshots history is empty - - - - - Copy URL - Kopiuj URL - - - - URL copied to clipboard. - URL skopiowany do schowka. - - - - Open in browser - - - - - ImgS3Uploader - - - Uploading Image - Wysyłanie obrazka - - - - Upload image to S3 - - - - - Delete image from S3 - - - - - Unable to remove screenshot from the remote storage. - - - - - Network error - - - - - Possibly it doesn't exist anymore - - - - - Do you want to remove screenshot from local history anyway? - - - - - S3 Creds URL is not found in your configuration file - - - - Copy URL - Kopiuj URL - - - Open URL - Otwórz URL - - - Delete image - Usuń obrazek - - - Image to Clipboard. - Obrazek do schowka. - - - Unable to open the URL. - Nie można otworzyć adresu URL. - - - - URL copied to clipboard. - URL skopiowany do schowka. - - - - Deleting image... - - - - - Remove screenshot from history? - - - - Screenshot copied to clipboard. - Zrzut ekranu skopiowany do schowka. - - - - ImgS3UploaderTool - - - Image Uploader - Uploader obrazów - - - - Upload the selection to S3 bucket - - - - - ImgUploader - - - Upload image to S3 - - - - - - Uploading Image - Wysyłanie obrazka - - - - Upload image - - - - - Unable to open the URL. - Nie można otworzyć adresu URL. - - - - URL copied to clipboard. - URL skopiowany do schowka. - - - - Screenshot copied to clipboard. - Zrzut ekranu skopiowany do schowka. - - - - Deleting image... - - - - - Copy URL - Kopiuj URL - - - - Open URL - Otwórz URL - - - - Delete image - Usuń obrazek - - - - Image to Clipboard. - Obrazek do schowka. - - - - ImgurUploader - - - Upload to Imgur - Wyślij do Imgur - - - Uploading Image - Wysyłanie obrazka - - - Copy URL - Kopiuj URL - - - Open URL - Otwórz URL - - - Delete image - Usuń obrazek - - - Image to Clipboard. - Obrazek do schowka. - - - - Unable to open the URL. - Nie można otworzyć adresu URL. - - - URL copied to clipboard. - URL skopiowany do schowka. - - - Screenshot copied to clipboard. - Zrzut ekranu skopiowany do schowka. - - - - ImgurUploaderTool - - - Image Uploader - Uploader obrazów - - - - Upload the selection to Imgur - Wyślij zaznaczenie do Imgur - - - - InfoWindow - - - About - O programie - - - Right Click - Prawy klik - - - Mouse Wheel - Kółko myszy - - - Move selection 1px - Przesuń zaznaczenie o 1px - - - Resize selection 1px - Zmień rozmiar zaznaczenia o 1px - - - Quit capture - Zakończ przechwytywanie - - - Copy to clipboard - Kopiuj do schowka - - - Save selection as a file - Zapisz zaznaczenie jako plik - - - Undo the last modification - Cofnij ostatnią modyfikację - - - Show color picker - Pokaż próbnik kolorów - - - Change the tool's thickness - Zmień grubość narzędzia - - - Available shortcuts in the screen capture mode. - Dostępne skróty w trybie przechwytywania obrazu. - - - Key - Klawisz - - - Description - Działanie - - - - <u><b>License</b></u> - <u><b>Licencja</b></u> - - - - <u><b>Version</b></u> - <u><b>Wersja</b></u> - - - <u><b>Shortcuts</b></u> - <u><b>Skróty klawiszowe</b></u> - - - - LineTool - - - Line - Linia - - - - Set the Line as the paint tool - Ustawia linię jako narzędzie do rysowania - - - - MarkerTool - - - Marker - Marker - - - - Set the Marker as the paint tool - Ustawia Marker jako narzędzie rysowania - - - - MoveTool - - - Move - Przesuwanie - - - - Move the selection area - Przesuwa zaznaczenie - - - - PencilTool - - - Pencil - Ołówek - - - - Set the Pencil as the paint tool - Ustawia ołówek jako narzędzie do rysowania - - - - PinTool - - - Pin Tool - Narzędzie przypinania - - - - Pin image on the desktop - Przypnij obrazek do pulpitu - - - - QObject - - - Save Error - Błąd zapisu - - - - - Capture saved as - Zaznaczenie zapisano jako - - - - Capture saved to clipboard - Zrzut skopiowano do schowka - - - - - Error trying to save as - Błąd przy próbie zapisu jako - - - - Save screenshot - - - - - Capture saved and copied to the clipboard as - - - - - - - - - Unable to connect via DBus - Nie udało się połączyć za pomocą DBus - - - - Error - Błąd - - - - Unable to write in - Nie można zapisać w - - - - URL copied to clipboard. - URL skopiowany do schowka. - - - - Hi, I'm already running! -You can find me in the system tray. - - - - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. - - - - - Resize selection right 1px - - - - - Resize selection left 1px - - - - - Resize selection up 1px - - - - - Resize selection down 1px - - - - - Toggle side panel - - - - - Move selection left 1px - - - - - Move selection right 1px - - - - - Move selection up 1px - - - - - Move selection down 1px - - - - - Quit capture - Zakończ przechwytywanie - - - - Screenshot history - - - - - Capture screen - - - - Move selection 1px - Przesuń zaznaczenie o 1px - - - - Show color picker - Pokaż próbnik kolorów - - - - Change the tool's thickness - Zmień grubość narzędzia - - - - RectangleTool - - - Rectangle - Prostokąt - - - - Set the Rectangle as the paint tool - Ustawia prostokąt jako narzędzie do rysowania - - - - RedoTool - - - Redo - Cofnij - - - - Redo the next modification - - - - - SaveTool - - - Save - Zapisz - - - - Save the capture - Zapisz zaznaczenie - - - - ScreenGrabber - - - Unable to capture screen - Nie można przechwycić ekranu - - - - SelectionTool - - - Rectangular Selection - Zaznaczenie prostokątne - - - - Set Selection as the paint tool - Ustawia zaznaczenie prostokątne jako narzędzie do rysowania - - - - SetShortcutDialog - - - Set Shortcut - - - - - Enter new shortcut to change - - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - - - - - ShortcutsWidget - - - Hot Keys - - - - - Available shortcuts in the screen capture mode. - Dostępne skróty w trybie przechwytywania obrazu. - - - - Description - Działanie - - - - Key - Klawisz - - - - SidePanelWidget - - - Active thickness: - - - - - Active color: - Aktywny kolor: - - - - Press ESC to cancel - Wciśnij ESC, aby anulować - - - - Grab Color - Pobierz kolor - - - - SizeIndicatorTool - - - Selection Size Indicator - Miernik zaznaczenia - - - - Show the dimensions of the selection (X Y) - Pokazuje wymiary zaznaczenia (X Y) - - - - StrftimeChooserWidget - - - Century (00-99) - Wiek (00-99) - - - - Year (00-99) - Rok (00-99) - - - - Year (2000) - Rok (2000) - - - - Month Name (jan) - Nazwa miesiąca (cze) - - - - Month Name (january) - Nazwa miesiąca (czerwiec) - - - - Month (01-12) - Miesiąc (01-12) - - - - Week Day (1-7) - Dzień tygodnia (1-7) - - - - Week (01-53) - Tydzień (01-53) - - - - Day Name (mon) - Nazwa dniaa (pią) - - - - Day Name (monday) - Nazwa dnia (piątek) - - - - Day (01-31) - Dzień (01-31) - - - - Day of Month (1-31) - Dzień miesiąca (1-31) - - - - Day (001-366) - Dzień (001-366) - - - - Time (%H-%M-%S) - Czas (%H-%M-%S) - - - - Time (%H-%M) - Czas (%H-%M) - - - - Hour (00-23) - Godzina (00-23) - - - - Hour (01-12) - Godzina (01-12) - - - - Minute (00-59) - Minuta (00-59) - - - - Second (00-59) - Sekunda (00-59) - - - - Full Date (%m/%d/%y) - Data (%m/%d/%y) - - - - Full Date (%Y-%m-%d) - Data (%Y-%m-%d) - - - - SystemNotification - - - Flameshot Info - Flameshot Info - - - - TextConfig - - - StrikeOut - Przekreślenie - - - - Underline - Podkreślenie - - - - Bold - Pogrubienie - - - - Italic - Kursywa - - - - TextTool - - - Text - Tekst - - - - Add text to your capture - Dodaje tekst do zrzutu - - - - UIcolorEditor - - - UI Color Editor - Edytor kolorów interfejsu - - - - Change the color moving the selectors and see the changes in the preview buttons. - Zmień kolor przesuwając selektory i obserwując podgląd przycisków. - - - - Select a Button to modify it - Wybierz przycisk do zmodyfikowania - - - - Main Color - Kolor główny - - - - Click on this button to set the edition mode of the main color. - Kliknij na przycisk aby móc modyfikować kolor główny. - - - - Contrast Color - Kolor kontrastowy - - - - Click on this button to set the edition mode of the contrast color. - Kliknij na przycisk aby móc modyfikować kolor kontrastowy. - - - - UndoTool - - - Undo - Cofnij - - - - Undo the last modification - Cofnij ostatnią zmianę - - - - UtilityPanel - - - Hide - - - - - VisualsEditor - - - Opacity of area outside selection: - Przezroczystość obszaru poza zaznaczeniem: - - - - Button Selection - Wybór przycisków - - - - Select All - Wybierz wszystkie - - - diff --git a/translations/Internationalization_pt_br.ts b/translations/Internationalization_pt_br.ts deleted file mode 100644 index 42683eb5..00000000 --- a/translations/Internationalization_pt_br.ts +++ /dev/null @@ -1,1355 +0,0 @@ - - - - - AppLauncher - - - App Launcher - App Launcher - - - - Choose an app to open the capture - Escolha uma aplicação para abrir a captura - - - - AppLauncherWidget - - - Open With - Abrir Com - - - - Launch in terminal - Abrir no terminal - - - - Keep open after selection - Manter aberto após seleção - - - - - Error - Erro - - - - Unable to write in - Não é possível escrever em - - - - Unable to launch in terminal. - Não foi possível abrir no terminal. - - - - ArrowTool - - - Arrow - Flecha - - - - Set the Arrow as the paint tool - Usa a Flecha como ferramenta de desenho - - - - BlurTool - - - Blur - Desfoque - - - - Set Blur as the paint tool - Usa o Desfoque como ferramenta de desenho - - - - CaptureLauncher - - - <b>Capture Mode</b> - - - - - Rectangular Region - - - - - Full Screen (All Monitors) - - - - - No Delay - - - - - second - - - - - seconds - - - - - Take new screenshot - - - - - Area: - - - - - Delay: - - - - - CaptureWidget - - - Unable to capture screen - Não foi possível capturar a tela - - - - Select an area with the mouse, or press Esc to exit. -Press Enter to capture the screen. -Press Right Click to show the color picker. -Use the Mouse Wheel to change the thickness of your tool. -Press Space to open the side panel. - Selecione uma área com o mouse, ou precione Esc para sair. -Pressione Enter para capturar a tela. -Pressione o botão direito do mouse para abrir o seletor de cores. -Use a roda do mouse para aumentar a grossura do pincel. -Pressione espaço abrir o painel lateral. - - - - CircleTool - - - Circle - Círculo - - - - Set the Circle as the paint tool - Usa o Círculo como ferramenta de desenho - - - - ConfigWindow - - - Configuration - Configuração - - - - Interface - Interface - - - - Filename Editor - Editor de nome de arquivo - - - - Shortcuts - - - - - General - Geral - - - - Controller - - - &Take Screenshot - &Tirar Screenshot - - - - &Open Launcher - - - - - &Configuration - &Configuração - - - - &Information - &Informações - - - - &Quit - &Sair - - - - &Latest Uploads - - - - - CopyTool - - - Copy - Copiar - - - - Copy the selection into the clipboard - Copia a seleção para o clipboard - - - - DBusUtils - - - Unable to connect via DBus - Não foi possível conectar via DBus - - - - ExitTool - - - Exit - Sair - - - - Leave the capture screen - Sair da ferramenta de captura - - - - FileNameEditor - - - Edit the name of your captures: - Edite o nome das suas capturas: - - - - Edit: - Editar: - - - - Preview: - Preview: - - - - Save - Salvar - - - - Saves the pattern - Salva o padrão - - - - Reset - Reiniciar - - - - Restores the saved pattern - Restaura o padrão salvo - - - - Clear - Limpar - - - - Deletes the name - Deleta o nome - - - - FilePathConfiguration - - - Screenshot path default: - - - - - Use fixed path for screenshots to save - - - - - Browse - - - - - Clear - Limpar - - - - Select default path for Screenshots - - - - - GeneneralConf - - - - Import - Importar - - - - - - Error - Erro - - - - Unable to read file. - Não foi possível ler o arquivo. - - - - - Unable to write file. - Não foi possível escrever no arquivo. - - - - Save File - Salvar Arquivo - - - - Confirm Reset - Confirmar Reset - - - - Are you sure you want to reset the configuration? - Tem certeza que deseja resetar a configuração? - - - - Show help message - Mostrar mensagem de ajuda - - - - Show the help message at the beginning in the capture mode. - Mostrar mensagem de ajuda no início do modo de captura. - - - - - Show desktop notifications - Mostrar notificações de Desktop - - - - Show tray icon - Mostrar ícone de tray - - - - Show the systemtray icon - Mosrar ícone na barra de aplicações - - - - Configuration File - Arquivo de Configurações - - - - Export - Exportar - - - - Reset - Reset - - - - Launch at startup - Iniciar junto com o sistema - - - - - Launch Flameshot - Iniciar Flameshot - - - - Show welcome message on launch - - - - - Close application after capture - - - - - Close after taking a screenshot - - - - - Copy URL after upload - - - - - Copy URL and close window after upload - - - - - - Copy file path after save - - - - - Upload storage - - - - - Imgur storage - - - - - S3 storage (require config.ini file with s3 credentials) - - - - - HistoryWidget - - - Latest Uploads - - - - - Screenshots history is empty - - - - - Copy URL - Copiar URL - - - - URL copied to clipboard. - URL copiada para o clipboard. - - - - Open in browser - - - - - ImgS3Uploader - - - Uploading Image - Upando Imagem - - - - Upload image to S3 - - - - - Delete image from S3 - - - - - Unable to remove screenshot from the remote storage. - - - - - Network error - - - - - Possibly it doesn't exist anymore - - - - - Do you want to remove screenshot from local history anyway? - - - - - S3 Creds URL is not found in your configuration file - - - - Copy URL - Copiar URL - - - Open URL - Abrir URL - - - Delete image - Deletar imagem - - - Image to Clipboard. - Imagem no Clipboard. - - - Unable to open the URL. - Não foi possível abrir a URL. - - - - URL copied to clipboard. - URL copiada para o clipboard. - - - - Deleting image... - - - - - Remove screenshot from history? - - - - Screenshot copied to clipboard. - Screenshot copiada para o clipboard. - - - - ImgS3UploaderTool - - - Image Uploader - Uploader de imagens - - - - Upload the selection to S3 bucket - - - - - ImgUploader - - - Upload image to S3 - - - - - - Uploading Image - Upando Imagem - - - - Upload image - - - - - Unable to open the URL. - Não foi possível abrir a URL. - - - - URL copied to clipboard. - URL copiada para o clipboard. - - - - Screenshot copied to clipboard. - Screenshot copiada para o clipboard. - - - - Deleting image... - - - - - Copy URL - Copiar URL - - - - Open URL - Abrir URL - - - - Delete image - Deletar imagem - - - - Image to Clipboard. - Imagem no Clipboard. - - - - ImgurUploader - - - Upload to Imgur - Upload no Imgur - - - Uploading Image - Upando Imagem - - - Copy URL - Copiar URL - - - Open URL - Abrir URL - - - Delete image - Deletar imagem - - - Image to Clipboard. - Imagem no Clipboard. - - - - Unable to open the URL. - Não foi possível abrir a URL. - - - URL copied to clipboard. - URL copiada para o clipboard. - - - Screenshot copied to clipboard. - Screenshot copiada para o clipboard. - - - - ImgurUploaderTool - - - Image Uploader - Uploader de imagens - - - - Upload the selection to Imgur - Upa a seleção no Imgur - - - - InfoWindow - - - About - Sobre - - - Right Click - Botão Direito - - - Mouse Wheel - Roda do mouse - - - Move selection 1px - Move a seleção em 1px - - - Resize selection 1px - Redimensiona a seleção em 1px - - - Quit capture - Sair da captura - - - Copy to clipboard - Copiar ao clipboard - - - Save selection as a file - Salva seleção em um arquivo - - - Undo the last modification - Desfazer última modificação - - - Show color picker - Mostra seletor de cores - - - Change the tool's thickness - Muda a grossura do pincel - - - Available shortcuts in the screen capture mode. - Atalhos disponívels na tela de captura. - - - Key - Tecla - - - Description - Descrição - - - - <u><b>License</b></u> - <u><b>Licença</b></u> - - - - <u><b>Version</b></u> - <u><b>Versão</b></u> - - - <u><b>Shortcuts</b></u> - <u><b>Atalhos</b></u> - - - - LineTool - - - Line - Linha - - - - Set the Line as the paint tool - Usa a Linha como ferramenta de desenho - - - - MarkerTool - - - Marker - Marcador - - - - Set the Marker as the paint tool - Usa o marcador como ferramenta de desenho - - - - MoveTool - - - Move - Mover - - - - Move the selection area - Move a área de seleção - - - - PencilTool - - - Pencil - Pincel - - - - Set the Pencil as the paint tool - Usa o Lápis como ferramenta de desenho - - - - PinTool - - - Pin Tool - Ferramenta de Pin - - - - Pin image on the desktop - Pinnar imagem no desktop - - - - QObject - - - Save Error - Salvar erro - - - - - Capture saved as - Captura salva como - - - - Capture saved to clipboard - Captura salva no clipboard - - - - - Error trying to save as - Erro tentando salvar como - - - - Save screenshot - - - - - Capture saved and copied to the clipboard as - - - - - - - - - Unable to connect via DBus - Não foi possível conectar via DBus - - - - Error - Erro - - - - Unable to write in - Não foi possível escrever em - - - - URL copied to clipboard. - URL copiada para o clipboard. - - - - Hi, I'm already running! -You can find me in the system tray. - - - - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. - - - - - Resize selection right 1px - - - - - Resize selection left 1px - - - - - Resize selection up 1px - - - - - Resize selection down 1px - - - - - Toggle side panel - - - - - Move selection left 1px - - - - - Move selection right 1px - - - - - Move selection up 1px - - - - - Move selection down 1px - - - - - Quit capture - Sair da captura - - - - Screenshot history - - - - - Capture screen - - - - Move selection 1px - Move a seleção em 1px - - - - Show color picker - Mostra seletor de cores - - - - Change the tool's thickness - Muda a grossura do pincel - - - - RectangleTool - - - Rectangle - Retângulo - - - - Set the Rectangle as the paint tool - Seta o Retângulo como ferramenta de desenho - - - - RedoTool - - - Redo - Refazer - - - - Redo the next modification - Refazer última modificação - - - - SaveTool - - - Save - Salvar - - - - Save the capture - Salva a captura - - - - ScreenGrabber - - - Unable to capture screen - Não foi possível capturar a tela - - - - SelectionTool - - - Rectangular Selection - Seleção Retangular - - - - Set Selection as the paint tool - Estabelece o Selecionador como ferramenta de desenho - - - - SetShortcutDialog - - - Set Shortcut - - - - - Enter new shortcut to change - - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - - - - - ShortcutsWidget - - - Hot Keys - - - - - Available shortcuts in the screen capture mode. - Atalhos disponívels na tela de captura. - - - - Description - Descrição - - - - Key - Tecla - - - - SidePanelWidget - - - Active thickness: - - - - - Active color: - Cor ativa: - - - - Press ESC to cancel - Presione Esc para cancelar - - - - Grab Color - Usar Cor - - - - SizeIndicatorTool - - - Selection Size Indicator - Indicador do Tamanho da Seleção - - - - Show the dimensions of the selection (X Y) - Mostra a dimensão da seleção (X Y) - - - - StrftimeChooserWidget - - - Century (00-99) - Século (00-99) - - - - Year (00-99) - Ano (00-99) - - - - Year (2000) - Ano (2000) - - - - Month Name (jan) - Nome do mês (jan) - - - - Month Name (january) - Nome do mês (janeiro) - - - - Month (01-12) - Mês (01-12) - - - - Week Day (1-7) - Dia da semana (1-7) - - - - Week (01-53) - Semana (01-53) - - - - Day Name (mon) - Nome do dia (seg) - - - - Day Name (monday) - Nome do dia (segunda) - - - - Day (01-31) - Dia (01-31) - - - - Day of Month (1-31) - Dia do Mês (1-31) - - - - Day (001-366) - Dia (001-366) - - - - Time (%H-%M-%S) - Tempo (%H-%M-%S) - - - - Time (%H-%M) - Tempo (%H-%M) - - - - Hour (00-23) - Hora (00-23) - - - - Hour (01-12) - Hora (01-12) - - - - Minute (00-59) - Minuto (00-59) - - - - Second (00-59) - Segundo (00-59) - - - - Full Date (%m/%d/%y) - Data Completa (%m/%d/%y) - - - - Full Date (%Y-%m-%d) - Data Completa (%Y-%m-%d) - - - - SystemNotification - - - Flameshot Info - Informações do Flameshot - - - - TextConfig - - - StrikeOut - Sobrescrito - - - - Underline - Sublinhado - - - - Bold - Negrito - - - - Italic - Itálico - - - - TextTool - - - Text - Texto - - - - Add text to your capture - Adicionar texto à captura - - - - UIcolorEditor - - - UI Color Editor - Interface de Edição de Cores - - - - Change the color moving the selectors and see the changes in the preview buttons. - Modifique a cor movendo os seletores e veja as mudanças nos botões de preview. - - - - Select a Button to modify it - Selecione um botão para modificá-lo - - - - Main Color - Cor Principal - - - - Click on this button to set the edition mode of the main color. - Clique neste botão para setar o modo de edição da cor principal. - - - - Contrast Color - Cor de Contraste - - - - Click on this button to set the edition mode of the contrast color. - Clique neste botão para setar o modo de edição da cor de contraste. - - - - UndoTool - - - Undo - Desfazer - - - - Undo the last modification - Desfaz a última modificação - - - - UtilityPanel - - - Hide - - - - - VisualsEditor - - - Opacity of area outside selection: - Opacidade da área de seleção: - - - - Button Selection - Botão de seleção - - - - Select All - Selecionar Todos - - - diff --git a/translations/Internationalization_ru.ts b/translations/Internationalization_ru.ts deleted file mode 100644 index f5c374f9..00000000 --- a/translations/Internationalization_ru.ts +++ /dev/null @@ -1,1407 +0,0 @@ - - - - - AppLauncher - - - App Launcher - Запуск приложения - - - - Choose an app to open the capture - Выберите приложение, которым открыть снимок - - - - AppLauncherWidget - - - Open With - Открыть с помощью - - - - Launch in terminal - Запустить в терминале - - - - Keep open after selection - Оставить запущенным после выделения - - - - - Error - Ошибка - - - - Unable to write in - Не удалось сохранить - - - - Unable to launch in terminal. - Не удалось запустить в терминале. - - - - ArrowTool - - - Arrow - Стрелка - - - - Set the Arrow as the paint tool - Выбрать Стрелку инструментом для рисования - - - - BlurTool - - - Blur - Размытие - - - - Set Blur as the paint tool - Выбрать Размытие инструментом для рисования - - - - CaptureLauncher - - - <b>Capture Mode</b> - <b>Режим захвата</b> - - - - Rectangular Region - Квадратная область - - - - Full Screen (All Monitors) - Весь экран (все мониторы) - - - - No Delay - Без задержки - - - - second - секунда - - - - seconds - секунд - - - - Take new screenshot - Сделать скриншот - - - - Area: - Область: - - - - Delay: - Задержка: - - - - CaptureWidget - - - Unable to capture screen - Не удалось захватить экран - - - - Select an area with the mouse, or press Esc to exit. -Press Enter to capture the screen. -Press Right Click to show the color picker. -Use the Mouse Wheel to change the thickness of your tool. -Press Space to open the side panel. - Выберите область с помощью мыши или нажмите Esc чтобы выйти. -Нажмите Enter чтобы скопировать выделенную область в буфер обмена. -Нажмите правую кнопку мыши чтобы показать выбор цвета. -Используйте колесо мыши чтобы выбрать толщину текущего инструмента. -Нажмите Пробел чтобы открыть боковую панель. - - - - CircleTool - - - Circle - Окружность - - - - Set the Circle as the paint tool - Выбрать Окружность инструментом для рисования - - - - ConfigWindow - - - Configuration - Настройка - - - - Interface - Интерфейс - - - - Filename Editor - Редактор имен файлов - - - - Shortcuts - Горячие клавиши - - - Path Default - Путь - - - - General - Общие - - - - Controller - - - &Take Screenshot - &Сделать снимок - - - - &Open Launcher - &Открыть - - - - &Configuration - &Настройка - - - - &Information - &Информация - - - - &Quit - &Выход - - - - &Latest Uploads - Последние загрузки - - - &Recent Screenshots - Последние скриншоты - - - &Recent Screenshot - &Недавние скриншоты - - - - CopyTool - - - Copy - Скопировать - - - - Copy the selection into the clipboard - Скопировать выделение в буфер обмена - - - - DBusUtils - - - Unable to connect via DBus - Не удалось подключиться через DBus - - - - ExitTool - - - Exit - Выход - - - - Leave the capture screen - Покинуть захват экрана - - - - FileNameEditor - - - Edit the name of your captures: - Отредактируйте имя ваших снимков: - - - - Edit: - Шаблон: - - - - Preview: - Предпросмотр: - - - - Save - Сохранить - - - - Saves the pattern - Сохранить шаблон - - - - Reset - Сбросить - - - - Restores the saved pattern - Восстанавливает сохраненный шаблон - - - - Clear - Очистить - - - - Deletes the name - Удаляет имя - - - - FilePathConfiguration - - - Screenshot path default: - Путь скриншотов по умолчанию - - - - Use fixed path for screenshots to save - Использовать фиксированный путь для скриншотов - - - - Browse - Обзор - - - - Clear - Очистить - - - - Select default path for Screenshots - Выбрать путь по умлочанию для скриншотов - - - - GeneneralConf - - - - Import - Импорт - - - - - - Error - Ошибка - - - - Unable to read file. - Не удалось прочитать файл. - - - - - Unable to write file. - Не удалось записать файл. - - - - Save File - Сохранить файл - - - - Confirm Reset - Подтвердить сброс - - - - Are you sure you want to reset the configuration? - Вы действительно хотите сбросить настройки? - - - - Show help message - Показывать справочное сообщение - - - - Show the help message at the beginning in the capture mode. - Показывать справочное сообщение перед началом захвата экрана. - - - - - Show desktop notifications - Показывать уведомления - - - - Show tray icon - Показывать значок в трее - - - - Show the systemtray icon - Показать значок в системном трее - - - - Configuration File - Файл конфигурации - - - - Export - Экспорт - - - - Reset - Сброс - - - - Launch at startup - Запускать при старте системы - - - - - Launch Flameshot - Запустить Flameshot - - - - Show welcome message on launch - Показывать приветствие при запуске - - - - Close application after capture - Закрыть приложение после захвата - - - - Close after taking a screenshot - Закрыть после получения скриншота - - - - Copy URL after upload - Скопировать URL после загрузки - - - - Copy URL and close window after upload - Скопировать URL после загрузки и закрыть окно - - - - - Copy file path after save - Копировать путь к сохраненному файлу - - - - Upload storage - Хранилище скриншотов - - - - Imgur storage - Хранилище Imgur - - - - S3 storage (require config.ini file with s3 credentials) - Хранилище S3 (необходим файл config.ini с параметрами доступа) - - - - HistoryWidget - - Screenshots history - История скриншотов - - - Screenshots history is epmty - История скриншотов пустая - - - - Latest Uploads - Последние загрузки - - - - Screenshots history is empty - История скриншотов пуста - - - - Copy URL - Скопировать URL - - - - URL copied to clipboard. - URL скопирован в буфер обмена. - - - - Open in browser - Открыть в браузере - - - - ImgS3Uploader - - Upload to ImgS3 - Загрузить на S3 - - - - Uploading Image - Загрузка изображения - - - - Upload image to S3 - Загрузить на S3 - - - - Delete image from S3 - Удалить скриншот с S3 - - - Deleting Image - Удалить скриншот - - - - Remove screenshot from history? - Удалить скриншот из истории? - - - - S3 Creds URL is not found in your configuration file - Параметры доступов к S3 не найдены в конфигурационном файле - - - Copy URL - Скопировать URL - - - Open URL - Открыть URL - - - Delete image - Удалить изображение - - - Image to Clipboard. - Изображение в буфер обмена. - - - Unable to open the URL. - Не удалось открыть URL. - - - - URL copied to clipboard. - URL скопирован в буфер обмена. - - - - Deleting image... - Удаление скриншота... - - - - Unable to remove screenshot from the remote storage. - Невозможно удалить снимок экрана из удаленного хранилища. - - - - Network error - Ошибка сети - - - - Possibly it doesn't exist anymore - Возможно, его больше не существует - - - - Do you want to remove screenshot from local history anyway? - Вы все равно хотите удалить скриншот из локальной истории? - - - Screenshot copied to clipboard. - Снимок скопирован в буфер обмена. - - - - ImgS3UploaderTool - - - Image Uploader - Отправка изображений - - - - Upload the selection to S3 bucket - Загрузить выделение на S3 - - - Upload the selection to ImgS3 - Загрузить выделение на S3 - - - - ImgUploader - - - Upload image to S3 - Загрузить на S3 - - - - - Uploading Image - Загрузка изображения - - - - Upload image - Загрузить изображение - - - - Unable to open the URL. - Не удалось открыть URL. - - - - URL copied to clipboard. - URL скопирован в буфер обмена. - - - - Screenshot copied to clipboard. - Снимок скопирован в буфер обмена. - - - - Deleting image... - Удаление скриншота... - - - - Copy URL - Скопировать URL - - - - Open URL - Открыть URL - - - - Delete image - Удалить изображение - - - - Image to Clipboard. - Изображение в буфер обмена. - - - - ImgurUploader - - - Upload to Imgur - Загрузить в Imgur - - - Uploading Image - Загрузка изображения - - - Copy URL - Скопировать URL - - - Open URL - Открыть URL - - - Delete image - Удалить изображение - - - Image to Clipboard. - Изображение в буфер обмена. - - - - Unable to open the URL. - Не удалось открыть URL. - - - URL copied to clipboard. - URL скопирован в буфер обмена. - - - Screenshot copied to clipboard. - Снимок скопирован в буфер обмена. - - - - ImgurUploaderTool - - - Image Uploader - Отправка изображений - - - - Upload the selection to Imgur - Загрузить выделение на Imgur - - - - InfoWindow - - - About - Информация - - - SPACEBAR - ПРОБЕЛ - - - Right Click - Правый клик - - - Mouse Wheel - Колесико мыши - - - Move selection 1px - Переместить выделение на 1px - - - Resize selection 1px - Изменить размер выделения на 1px - - - Quit capture - Выйти из захвата экрана - - - Copy to clipboard - Скопировать в буфер обмена - - - Save selection as a file - Сохранить выделение в файл - - - Undo the last modification - Отменить последнее изменение - - - Toggle visibility of sidebar with options of the selected tool - Показать боковую панель с настройками выбранного инструмента - - - Show color picker - Показать выбор цвета - - - Change the tool's thickness - Изменить толщину инструмента - - - Capture screen - Захватить экран - - - Screenshot history - История скриншотов - - - Available shortcuts in the screen capture mode. - Доступные горячие клавиши в режиме захвата экрана. - - - Key - Клавиша - - - Description - Описание - - - - <u><b>License</b></u> - <u><b>Лицензия</b></u> - - - - <u><b>Version</b></u> - <u><b>Версия</b></u> - - - <u><b>Shortcuts</b></u> - <u><b>Горячие клавиши</b></u> - - - - LineTool - - - Line - Линия - - - - Set the Line as the paint tool - Выбрать Линию инструментом для рисования - - - - MarkerTool - - - Marker - Маркер - - - - Set the Marker as the paint tool - Выбрать Маркер инструментом для рисования - - - - MoveTool - - - Move - Перемещение - - - - Move the selection area - Выбрать Перемещение инструментом для рисования - - - - PencilTool - - - Pencil - Карандаш - - - - Set the Pencil as the paint tool - Выбрать Карандаш инструментом для рисования - - - - PinTool - - - Pin Tool - Булавка - - - - Pin image on the desktop - Прикрепить изображение к рабочему столу - - - - QObject - - - Save Error - Ошибка сохранения - - - - - Capture saved as - Снимок сохранён как - - - - Capture saved to clipboard - Снимок сохранён в буфер обмена - - - - - Error trying to save as - Ошибка при попытке сохранить как - - - - Save screenshot - Сохранить скриншот - - - - Capture saved and copied to the clipboard as - Файл сохранен и путь к нему скопирован как - - - - - - - - Unable to connect via DBus - Не удалось подключиться через DBus - - - - Error - Ошибка - - - - Unable to write in - Не удалось сохранить - - - - URL copied to clipboard. - URL скопирован в буфер обмена. - - - File is deleted from S3 - Файл удален с S3 - - - - Hi, I'm already running! -You can find me in the system tray. - Привет, а я уже работаю!\nВы можете найти меня в системном трэе. - - - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. - Привет я тут! Щелкните значок на панели задач, чтобы сделать снимок экрана, или щелкните правой кнопкой, чтобы увидеть дополнительные параметры. - - - - Resize selection right 1px - Изменить размер выделения вправо на 1 пиксель - - - - Resize selection left 1px - Изменить размер выделения влево на 1 пиксель - - - - Resize selection up 1px - Изменить размер выделения вверх на 1 пиксель - - - - Resize selection down 1px - Изменить размер выделения вниз на 1 пиксель - - - - Toggle side panel - Вызвать боковую панель - - - - Move selection left 1px - Переместить выделение влево на 1 пиксель - - - - Move selection right 1px - Переместить выделение вправо на 1 пиксель - - - - Move selection up 1px - Переместить выделение вверх на 1 пиксель - - - - Move selection down 1px - Переместить выделение вниз на 1 пиксель - - - - Quit capture - Выйти из захвата экрана - - - - Screenshot history - История скриншотов - - - - Capture screen - Захватить экран - - - Move selection 1px - Переместить выделение на 1px - - - - Show color picker - Показать выбор цвета - - - - Change the tool's thickness - Изменить толщину инструмента - - - - RectangleTool - - - Rectangle - Прямоугольник - - - - Set the Rectangle as the paint tool - Выбрать Прямоугольник инструментом для рисования - - - - RedoTool - - - Redo - Повторить - - - - Redo the next modification - Повторить последнее изменение - - - - SaveTool - - - Save - Сохранить - - - - Save the capture - Сохранить снимок - - - - ScreenGrabber - - - Unable to capture screen - Не удалось захватить экран - - - - SelectionTool - - - Rectangular Selection - Прямоугольное выделение - - - - Set Selection as the paint tool - Выбрать Прямоугольное выделение инструментом для рисования - - - - SetShortcutDialog - - - Set Shortcut - Выбрать горячую клавишу - - - - Enter new shortcut to change - Выберите новую горячую клавишу - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - Нажмите Esc для отмены или Backspace для удаления горячей клавиши - - - - ShortcutsWidget - - - Hot Keys - Горячие клавиши - - - - Available shortcuts in the screen capture mode. - Доступные горячие клавиши в режиме захвата экрана. - - - - Description - Описание - - - - Key - Клавиша - - - - SidePanelWidget - - - Active thickness: - Активная толщина: - - - - Active color: - Активный цвет: - - - - Press ESC to cancel - Нажмите Esc для отмены - - - - Grab Color - Захватить цвет с экрана - - - - SizeIndicatorTool - - - Selection Size Indicator - Индикатор размера выделения - - - - Show the dimensions of the selection (X Y) - Показывает размер выделения (X Y) - - - - StrftimeChooserWidget - - - Century (00-99) - Век (00-99) - - - - Year (00-99) - Год (00-99) - - - - Year (2000) - Год (2000) - - - - Month Name (jan) - Название месяца (янв) - - - - Month Name (january) - Название месяца (январь) - - - - Month (01-12) - Месяц (01-12) - - - - Week Day (1-7) - День недели (1-7) - - - - Week (01-53) - Неделя (01-53) - - - - Day Name (mon) - День недели (пн) - - - - Day Name (monday) - День недели (понедельник) - - - - Day (01-31) - День (01-31) - - - - Day of Month (1-31) - День месяца (1-31) - - - - Day (001-366) - День (001-366) - - - - Time (%H-%M-%S) - Время (%H-%M-%S) - - - - Time (%H-%M) - Время (%H-%M) - - - - Hour (00-23) - Час (00-23) - - - - Hour (01-12) - Час (01-12) - - - - Minute (00-59) - Минута (00-59) - - - - Second (00-59) - Секунда (00-59) - - - - Full Date (%m/%d/%y) - Полная дата (%m/%d/%y) - - - - Full Date (%Y-%m-%d) - Полная дата (%Y-%m-%d) - - - - SystemNotification - - - Flameshot Info - Flameshot Инфо - - - - TextConfig - - - StrikeOut - Зачеркнутый - - - - Underline - Подчеркнутый - - - - Bold - Полужирный - - - - Italic - Курсив - - - - TextTool - - - Text - Текст - - - - Add text to your capture - Добавить текст на снимок - - - - UIcolorEditor - - - UI Color Editor - Редактор цвета интерфейса - - - - Change the color moving the selectors and see the changes in the preview buttons. - Измените цвет, перемещая выделение, и посмотрите изменения в кнопках предварительного просмотра. - - - - Select a Button to modify it - Выберите кнопку, чтобы изменить ее - - - - Main Color - Основной цвет - - - - Click on this button to set the edition mode of the main color. - Нажмите на эту кнопку, чтобы перейти в режим редактирования основного цвета. - - - - Contrast Color - Контрастный цвет - - - - Click on this button to set the edition mode of the contrast color. - Нажмите на эту кнопку, чтобы перейти в режим редактирования контрастного цвета. - - - - UndoTool - - - Undo - Отменить - - - - Undo the last modification - Отменить последнее изменение - - - - UtilityPanel - - - Hide - Спрятать - - - - VisualsEditor - - - Opacity of area outside selection: - Затемнение невыделенной области: - - - - Button Selection - Выбор кнопок - - - - Select All - Выбрать все - - - diff --git a/translations/Internationalization_sk.ts b/translations/Internationalization_sk.ts deleted file mode 100644 index 0b3c057d..00000000 --- a/translations/Internationalization_sk.ts +++ /dev/null @@ -1,1363 +0,0 @@ - - - - - AppLauncher - - - App Launcher - Spúšťač aplikácií - - - - Choose an app to open the capture - Vyberte aplikáciu na otvorenie snímky obrazovky - - - - AppLauncherWidget - - - Open With - Otvoriť s - - - - Launch in terminal - Otvoriť v termináli - - - - Keep open after selection - Nechať otvorené po výbere - - - - - Error - Chyba - - - - Unable to write in - Zlyhal zápis do - - - - Unable to launch in terminal. - Nepodarilo sa spustiť v termináli. - - - - ArrowTool - - - Arrow - Šípka - - - - Set the Arrow as the paint tool - Nastaviť Šípku ako nástroj pre úpravy - - - - BlurTool - - - Blur - Rozmazanie - - - - Set Blur as the paint tool - Nastaviť Rozmazanie ako nástroj pre úpravy - - - - CaptureLauncher - - - <b>Capture Mode</b> - <b>Režim zachytávania</b> - - - - Rectangular Region - Pravouhlá oblasť - - - - Full Screen (All Monitors) - Celá obrazovka (všetky monitory) - - - - No Delay - Bez oneskorenia - - - - second - sekunda - - - - seconds - sekundy - - - - Take new screenshot - Urobiť novú snímku - - - - Area: - Oblasť: - - - - Delay: - Oneskorenie: - - - - CaptureWidget - - - Unable to capture screen - Nepodarilo sa zachytiť obrazovku - - - - Select an area with the mouse, or press Esc to exit. -Press Enter to capture the screen. -Press Right Click to show the color picker. -Use the Mouse Wheel to change the thickness of your tool. -Press Space to open the side panel. - Vyberte oblasť snímania pomocou myši alebo stlačte Esc pre ukončenie. -Stlačte Enter pre zachytenie obrazovky. -Kliknite pravým tlačidlom pre zobrazenie nástroja pre výber farby. -Použite kolečko myši pre zmenu hrúbky vybraného nástroja. -Stlačte medzerník pre otvorenie postranného panelu. - - - - CircleTool - - - Circle - Kruh - - - - Set the Circle as the paint tool - - - - - ConfigWindow - - - Configuration - Konfigurácia - - - - Interface - Interfejs - - - - Filename Editor - Editor názvov súborov - - - - Shortcuts - - - - - General - Všeobecné - - - - Controller - - - &Take Screenshot - &Vytvoriť snímku - - - - &Open Launcher - - - - - &Configuration - &Konfigurácia - - - - &Information - &Informácie - - - - &Quit - &Ukončiť - - - - &Latest Uploads - - - - - CopyTool - - - Copy - Kopírovať - - - - Copy the selection into the clipboard - Kopírovať výber do schránky - - - - DBusUtils - - - Unable to connect via DBus - Nie je možné pripojiť sa prostredníctvom DBus - - - - ExitTool - - - Exit - Ukončiť - - - - Leave the capture screen - Opustiť obrazovku so zachytávaním obrazovky - - - - FileNameEditor - - - Edit the name of your captures: - Upraviť meno vašich snímok obrazovky: - - - - Edit: - Upraviť: - - - - Preview: - Náhľad: - - - - Save - Uložiť - - - - Saves the pattern - Uloží vzor - - - - Reset - Resetovať - - - - Restores the saved pattern - Vráti zmeny - - - - Clear - Vyčistiť - - - - Deletes the name - Vymaže meno - - - - FilePathConfiguration - - - Screenshot path default: - - - - - Use fixed path for screenshots to save - - - - - Browse - - - - - Clear - Vyčistiť - - - - Select default path for Screenshots - - - - - GeneneralConf - - - - Import - Importovať - - - - - - Error - Chyba - - - - Unable to read file. - Zlyhalo čítanie súboru. - - - - - Unable to write file. - Zlyhal zápis do súboru. - - - - Save File - Uložiť súbor - - - - Confirm Reset - Potvrdiť Reset - - - - Are you sure you want to reset the configuration? - Naozaj si želáte resetovať aktuálnu konfiguráciu? - - - - Show help message - Zobraziť nápovedu - - - - Show the help message at the beginning in the capture mode. - Zobraziť nápovedu na začiatku počas režimu zachytávania obrazovky. - - - - - Show desktop notifications - Zobraziť systémové upozornenia - - - - Show tray icon - Zobraziť stavovú ikonu - - - - Show the systemtray icon - Zobraziť ikonu v stavovej oblasti - - - - Configuration File - Súbor s konfiguráciou - - - - Export - Exportovať - - - - Reset - Resetovať - - - - Launch at startup - Spúšťať pri štarte - - - - - Launch Flameshot - Spustiť Flameshot - - - - Show welcome message on launch - - - - - Close application after capture - Zavrieť po vytvorení snímky - - - - Close after taking a screenshot - Zatvoriť po vytvorení snímky obrazovky - - - - Copy URL after upload - - - - - Copy URL and close window after upload - - - - - - Copy file path after save - - - - - Upload storage - - - - - Imgur storage - - - - - S3 storage (require config.ini file with s3 credentials) - - - - - HistoryWidget - - - Latest Uploads - - - - - Screenshots history is empty - - - - - Copy URL - Kopírovať URL - - - - URL copied to clipboard. - URL skopírovaná do schránky. - - - - Open in browser - - - - - ImgS3Uploader - - - Uploading Image - Nahrávam obrázok - - - - Upload image to S3 - - - - - Delete image from S3 - - - - - Unable to remove screenshot from the remote storage. - - - - - Network error - - - - - Possibly it doesn't exist anymore - - - - - Do you want to remove screenshot from local history anyway? - - - - - S3 Creds URL is not found in your configuration file - - - - Copy URL - Kopírovať URL - - - Open URL - Otvoriť URL - - - Delete image - Vymazať obrázok - - - Image to Clipboard. - Obrázok do schránky. - - - Unable to open the URL. - Nepodarilo sa otvoriť URL. - - - - URL copied to clipboard. - URL skopírovaná do schránky. - - - - Deleting image... - - - - - Remove screenshot from history? - - - - Screenshot copied to clipboard. - Snímka obrazovky bola skopírovaná do schránky. - - - - ImgS3UploaderTool - - - Image Uploader - Uploader obrázkov - - - - Upload the selection to S3 bucket - - - - - ImgUploader - - - Upload image to S3 - - - - - - Uploading Image - Nahrávam obrázok - - - - Upload image - - - - - Unable to open the URL. - Nepodarilo sa otvoriť URL. - - - - URL copied to clipboard. - URL skopírovaná do schránky. - - - - Screenshot copied to clipboard. - Snímka obrazovky bola skopírovaná do schránky. - - - - Deleting image... - - - - - Copy URL - Kopírovať URL - - - - Open URL - Otvoriť URL - - - - Delete image - Vymazať obrázok - - - - Image to Clipboard. - Obrázok do schránky. - - - - ImgurUploader - - - Upload to Imgur - Nahrať na Imgur - - - Uploading Image - Nahrávam obrázok - - - Copy URL - Kopírovať URL - - - Open URL - Otvoriť URL - - - Delete image - Vymazať obrázok - - - Image to Clipboard. - Obrázok do schránky. - - - - Unable to open the URL. - Nepodarilo sa otvoriť URL. - - - URL copied to clipboard. - URL skopírovaná do schránky. - - - Screenshot copied to clipboard. - Snímka obrazovky bola skopírovaná do schránky. - - - - ImgurUploaderTool - - - Image Uploader - Uploader obrázkov - - - - Upload the selection to Imgur - Nahrať výber na Imgur - - - - InfoWindow - - - About - O programe - - - SPACEBAR - MEDZERNÍK - - - Right Click - Kliknutie pravým tlačidlom - - - Mouse Wheel - Kolečko myši - - - Move selection 1px - Presunúť výber o 1 px - - - Resize selection 1px - Zmeniť rozmery výberu o 1 px - - - Quit capture - Ukončiť zachytávanie obrazovky - - - Copy to clipboard - Kopírovať do schránky - - - Save selection as a file - Zapísať výber do súboru - - - Undo the last modification - Vrátiť poslednú úpravu - - - Toggle visibility of sidebar with options of the selected tool - Prepnúť viditeľnosť bočnej lišty s možnosťami vybraného nástroja - - - Show color picker - Zobraziť dialóg na výber farby - - - Change the tool's thickness - Zmena hrúbky nástroja - - - Available shortcuts in the screen capture mode. - Dostupné klávesové skratky v režime zachytávania obrazovky. - - - Key - Kláves - - - Description - Popis - - - - <u><b>License</b></u> - <u><b>Licencia</b></u> - - - - <u><b>Version</b></u> - <u><b>Verzia</b></u> - - - <u><b>Shortcuts</b></u> - <u><b>Klávesové skratky</b></u> - - - - LineTool - - - Line - Čiara - - - - Set the Line as the paint tool - Nastaviť Čiaru ako nástroj pre úpravy - - - - MarkerTool - - - Marker - Fixka - - - - Set the Marker as the paint tool - Nastaviť Fixku ako nástroj pre úpravy - - - - MoveTool - - - Move - Presun - - - - Move the selection area - Presunúť oblasť výberu - - - - PencilTool - - - Pencil - Ceruzka - - - - Set the Pencil as the paint tool - Nastaviť Ceruzku ako nástroj pre úpravy - - - - PinTool - - - Pin Tool - Špendlík - - - - Pin image on the desktop - Pripnúť obrázok na plochu - - - - QObject - - - - - - - Unable to connect via DBus - Nie je možné pripojiť sa prostredníctvom DBus - - - - Error - Chyba - - - - Unable to write in - Zlyhal zápis do - - - - Capture saved to clipboard - Snímka uložená do schránky - - - - - Capture saved as - Snímka uložená ako - - - - - Error trying to save as - Chyba pri ukladaní do - - - - Save screenshot - - - - - Capture saved and copied to the clipboard as - - - - - Save Error - Chyba pri ukladaní - - - - URL copied to clipboard. - URL skopírovaná do schránky. - - - - Hi, I'm already running! -You can find me in the system tray. - - - - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. - - - - - Resize selection right 1px - - - - - Resize selection left 1px - - - - - Resize selection up 1px - - - - - Resize selection down 1px - - - - - Toggle side panel - - - - - Move selection left 1px - - - - - Move selection right 1px - - - - - Move selection up 1px - - - - - Move selection down 1px - - - - - Quit capture - Ukončiť zachytávanie obrazovky - - - - Screenshot history - - - - - Capture screen - - - - Move selection 1px - Presunúť výber o 1 px - - - - Show color picker - Zobraziť dialóg na výber farby - - - - Change the tool's thickness - Zmena hrúbky nástroja - - - - RectangleTool - - - Rectangle - Obdĺžnik - - - - Set the Rectangle as the paint tool - Nastaviť Obdĺžnik ako nástroj pre úpravy - - - - RedoTool - - - Redo - Znova - - - - Redo the next modification - Zopakovať úpravu - - - - SaveTool - - - Save - Uložiť - - - - Save the capture - Uložiť snímku obrazovky - - - - ScreenGrabber - - - Unable to capture screen - Nepodarilo sa zachytiť obrazovku - - - - SelectionTool - - - Rectangular Selection - Obdĺžnikový výber - - - - Set Selection as the paint tool - Nastaviť Výber ako nástroj pre úpravy - - - - SetShortcutDialog - - - Set Shortcut - - - - - Enter new shortcut to change - - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - - - - - ShortcutsWidget - - - Hot Keys - - - - - Available shortcuts in the screen capture mode. - Dostupné klávesové skratky v režime zachytávania obrazovky. - - - - Description - Popis - - - - Key - Kláves - - - - SidePanelWidget - - - Active thickness: - Aktívna hrúbka: - - - - Active color: - Aktívna farba: - - - - Press ESC to cancel - Stlačte ESC pre zrušenie - - - - Grab Color - Snímať farbu - - - - SizeIndicatorTool - - - Selection Size Indicator - Ukazovateľ veľkosti výberu - - - - Show the dimensions of the selection (X Y) - Zobraziť rozmery výberu (X Y) - - - - StrftimeChooserWidget - - - Century (00-99) - Storočie (00-99) - - - - Year (00-99) - Rok (00-99) - - - - Year (2000) - Rok (2000) - - - - Month Name (jan) - Meno mesiaca (jan) - - - - Month Name (january) - Meno mesiaca (január) - - - - Month (01-12) - Mesiac (01-12) - - - - Week Day (1-7) - Deň v týždni (1-7) - - - - Week (01-53) - Týždeň (01-53) - - - - Day Name (mon) - Meno dňa (pon) - - - - Day Name (monday) - Meno dňa (pondelok) - - - - Day (01-31) - Deň (01-31) - - - - Day of Month (1-31) - Deň v mesiaci (1-31) - - - - Day (001-366) - Deň (001-366) - - - - Time (%H-%M-%S) - Čas (%H-%M-%S) - - - - Time (%H-%M) - Čas (%H-%M) - - - - Hour (00-23) - Hodina (00-23) - - - - Hour (01-12) - Hodina (01-12) - - - - Minute (00-59) - Minúta (00-59) - - - - Second (00-59) - Sekunda (00-59) - - - - Full Date (%m/%d/%y) - Celý dátum (%m/%d/%y) - - - - Full Date (%Y-%m-%d) - Celý dátum (%Y-%m-%d) - - - - SystemNotification - - - Flameshot Info - Informácie o programe Flameshot - - - - TextConfig - - - StrikeOut - Preškrtnuté - - - - Underline - Podčiarknuté - - - - Bold - Tučné - - - - Italic - Kurzíva - - - - TextTool - - - Text - Text - - - - Add text to your capture - Pridať text do snímky - - - - UIcolorEditor - - - UI Color Editor - Editor farieb interfejsu - - - - Change the color moving the selectors and see the changes in the preview buttons. - Presunom bežcov nastavte farbu a sledujte tieto zmeny v náhľade. - - - - Select a Button to modify it - Kliknite na tlačidlo pre jeho úpravu - - - - Main Color - Hlavná farba - - - - Click on this button to set the edition mode of the main color. - Pre nastavenie hlavnej farby kliknite na toto tlačidlo. - - - - Contrast Color - Kontrastná farba - - - - Click on this button to set the edition mode of the contrast color. - Pre nastavenie kontrastnej farby kliknite na toto tlačidlo. - - - - UndoTool - - - Undo - Späť - - - - Undo the last modification - Vrátiť poslednú úpravu - - - - UtilityPanel - - - Hide - - - - - VisualsEditor - - - Opacity of area outside selection: - Priehľadnosť oblasti mimo výberu: - - - - Button Selection - Výber tlačidiel - - - - Select All - Vybrať všetky - - - diff --git a/translations/Internationalization_uk.ts b/translations/Internationalization_uk.ts deleted file mode 100644 index f9e007d3..00000000 --- a/translations/Internationalization_uk.ts +++ /dev/null @@ -1,1407 +0,0 @@ - - - - - AppLauncher - - - App Launcher - Запуск програми - - - - Choose an app to open the capture - Виберіть програму, щоб відкрити знімок - - - - AppLauncherWidget - - - Open With - Відкрити у - - - - Launch in terminal - Запустити у терміналі - - - - Keep open after selection - Не закривати після вибору - - - - - Error - Помилка - - - - Unable to write in - Не вдалось записати - - - - Unable to launch in terminal. - Не вдалось запустити у терміналі. - - - - ArrowTool - - - Arrow - Стрілка - - - - Set the Arrow as the paint tool - Вибрати стрілку інструментом малювання - - - - BlurTool - - - Blur - Розмиття - - - - Set Blur as the paint tool - Вибрати розмиття інструментом малювання - - - - CaptureLauncher - - - <b>Capture Mode</b> - <b>Режим захвату</b> - - - - Rectangular Region - Квадратна область - - - - Full Screen (All Monitors) - Увесь екран (усі монітори) - - - - No Delay - Без затримки - - - - second - секунда - - - - seconds - секунд - - - - Take new screenshot - Зробити новий скріншот - - - - Area: - Область: - - - - Delay: - Затримка: - - - - CaptureWidget - - - Unable to capture screen - Не вдалось захопити екран - - - - Select an area with the mouse, or press Esc to exit. -Press Enter to capture the screen. -Press Right Click to show the color picker. -Use the Mouse Wheel to change the thickness of your tool. -Press Space to open the side panel. - Виберіть область мишкою або натисніть Esc для виходу. -Натисніть Enter щоб захопити екран. -Натисніть праву кнопку миші, щоб показати вибір кольору. -Використовуйте колесо миші для зміни товщини вибраного інструменту. -Натисніть Пробіл, щоб відкрити бічну панель. - - - - CircleTool - - - Circle - Коло - - - - Set the Circle as the paint tool - Вибрати коло інструментом малювання - - - - ConfigWindow - - - Configuration - Налаштування - - - - Interface - Інтерфейс - - - - Filename Editor - Редактор імені файлів - - - - Shortcuts - Гарячі клавіші - - - Path Default - Шлях - - - - General - Загальне - - - - Controller - - - &Take Screenshot - &Зробити знімок - - - - &Open Launcher - &Відчинити - - - - &Configuration - &Налаштування - - - - &Information - &Інформація - - - - &Quit - Ви&йти - - - - &Latest Uploads - Останні завантаження - - - &Recent Screenshots - Нещодавні скріншоти - - - &Recent Screenshot - Нещодавні скріншоти - - - - CopyTool - - - Copy - Копіювати - - - - Copy the selection into the clipboard - Копіювати вибране до буферу обміну - - - - DBusUtils - - - Unable to connect via DBus - Не вдалось підключитись через DBus - - - - ExitTool - - - Exit - Вийти - - - - Leave the capture screen - Вийти із захоплення екрану - - - - FileNameEditor - - - Edit the name of your captures: - Відредагуйте ім'я ваших знімків: - - - - Edit: - Шаблон: - - - - Preview: - Перегляд: - - - - Save - Зберегти - - - - Saves the pattern - Зберегти шаблон - - - - Reset - Скинути - - - - Restores the saved pattern - Відновлює збережений шаблон - - - - Clear - Очистити - - - - Deletes the name - Видаляє ім'я - - - - FilePathConfiguration - - - Screenshot path default: - Шлях за замовчуванням - - - - Use fixed path for screenshots to save - Використовувати шлях за замовчуванням - - - - Browse - Обрати - - - - Clear - Очистити - - - - Select default path for Screenshots - Обрати шлях за замовчуванням - - - - GeneneralConf - - - - Import - Імпорт - - - - - - Error - Помилка - - - - Unable to read file. - Не вдалось прочитати файл. - - - - - Unable to write file. - Не вдалось записати файл. - - - - Save File - Зберегти файл - - - - Confirm Reset - Підтвердити скидання - - - - Are you sure you want to reset the configuration? - Ви дійсно хочете скинути налаштування? - - - - Show help message - Показувати повідомлення довідки - - - - Show the help message at the beginning in the capture mode. - Показувати повідомлення довідки на початку режиму захоплення. - - - - - Show desktop notifications - Показувати повідомлення - - - - Show tray icon - Показувати значок на панелі - - - - Show the systemtray icon - Показувати значок на панелі повідомленнь - - - - Configuration File - Файл налаштувань - - - - Export - Експорт - - - - Reset - Скинути - - - - Launch at startup - Запускати при старті системи - - - - - Launch Flameshot - Запускати Flameshot - - - - Show welcome message on launch - Показувати привітання при запуску - - - - Close application after capture - Закрити прогрму після захвату - - - - Close after taking a screenshot - Закрити програму після отримання скріншоту - - - - Copy URL after upload - Копіювати URL після завантаження - - - - Copy URL and close window after upload - Копіювати URL та закрити вікно після завантаження - - - - - Copy file path after save - Копіювати шлях до збереженного файлу - - - - Upload storage - Cховище скріншотів - - - - Imgur storage - Сховище Imgur - - - - S3 storage (require config.ini file with s3 credentials) - Сховище S3 (потрібен файл config.ini із параметрами доступу) - - - - HistoryWidget - - Screenshots history - Історія скріншотів - - - Screenshots history is epmty - Історія скріншотів пуста - - - - Latest Uploads - Останні завантаження - - - - Screenshots history is empty - Історія скріншотів пуста - - - - Copy URL - Скопіювати URL - - - - URL copied to clipboard. - URL скопійовано до буферу обміну. - - - - Open in browser - Відкрити у браузері - - - - ImgS3Uploader - - Upload to ImgS3 - Вивантажити на S3 - - - - Uploading Image - Вивантаження зображення - - - - Upload image to S3 - Завантажити на S3 - - - - Delete image from S3 - Видалити скріншот з S3 - - - Deleting Image - Видалити скіншот - - - - Remove screenshot from history? - Видалити скріншот із історії? - - - - S3 Creds URL is not found in your configuration file - Параметри доступів до S3 не знайдені у конфігураціонному файлі - - - Copy URL - Скопіювати URL - - - Open URL - Відкрити URL - - - Delete image - Видалити зображення - - - Image to Clipboard. - Зображення до буферу обміну. - - - Unable to open the URL. - Не вдалось відкрити URL. - - - - URL copied to clipboard. - URL скопійовано до буферу обміну. - - - - Deleting image... - Видалення скріншоту... - - - - Unable to remove screenshot from the remote storage. - Не вдалося видалити скріншот із віддаленого сховища. - - - - Network error - Помилка мережі - - - - Possibly it doesn't exist anymore - Можливо, його більше не існує - - - - Do you want to remove screenshot from local history anyway? - Ви все одно хочете видалити скріншот із локальної історії? - - - Screenshot copied to clipboard. - Знімок скопійовано до буферу обміну. - - - - ImgS3UploaderTool - - - Image Uploader - Вивантаження зображень - - - - Upload the selection to S3 bucket - Вивантажити виділення на S3 - - - Upload the selection to ImgS3 - Вивантажити виділення на S3 - - - - ImgUploader - - - Upload image to S3 - Завантажити на S3 - - - - - Uploading Image - Вивантаження зображення - - - - Upload image - Вивантажити зображення - - - - Unable to open the URL. - Не вдалось відкрити URL. - - - - URL copied to clipboard. - URL скопійовано до буферу обміну. - - - - Screenshot copied to clipboard. - Знімок скопійовано до буферу обміну. - - - - Deleting image... - Видалення скріншоту... - - - - Copy URL - Скопіювати URL - - - - Open URL - Відкрити URL - - - - Delete image - Видалити зображення - - - - Image to Clipboard. - Зображення до буферу обміну. - - - - ImgurUploader - - - Upload to Imgur - Вивантажити до Imgur - - - Uploading Image - Вивантаження зображення - - - Copy URL - Скопіювати URL - - - Open URL - Відкрити URL - - - Delete image - Видалити зображення - - - Image to Clipboard. - Зображення до буферу обміну. - - - - Unable to open the URL. - Не вдалось відкрити URL. - - - URL copied to clipboard. - URL скопійовано до буферу обміну. - - - Screenshot copied to clipboard. - Знімок скопійовано до буферу обміну. - - - - ImgurUploaderTool - - - Image Uploader - Вивантаження зображень - - - - Upload the selection to Imgur - Вивантажити вибране до Imgur - - - - InfoWindow - - - About - Про... - - - SPACEBAR - ПРОБІЛ - - - Right Click - Права кнопка миші - - - Mouse Wheel - Колесо миші - - - Move selection 1px - Перемістити виділення на 1px - - - Resize selection 1px - Змінити розмір виділення на 1px - - - Quit capture - Вийти із захоплення екрану - - - Copy to clipboard - Копіювати до буферу обміну - - - Save selection as a file - Зберегти вибране до файлу - - - Undo the last modification - Скасувати останню зміну - - - Toggle visibility of sidebar with options of the selected tool - Переключити видимість бічної панелі - - - Show color picker - Показати вибір кольору - - - Change the tool's thickness - Змінити товщину інструменту - - - Capture screen - Захватити екран - - - Screenshot history - Історія скріншотів - - - Available shortcuts in the screen capture mode. - Доступні комбінації клавіш у режимі захоплення екрану. - - - Key - Клавіша - - - Description - Опис - - - - <u><b>License</b></u> - <u><b>Ліцензія</b></u> - - - - <u><b>Version</b></u> - <u><b>Версія</b></u> - - - <u><b>Shortcuts</b></u> - <u><b>Комбінації клавіш</b></u> - - - - LineTool - - - Line - Лінія - - - - Set the Line as the paint tool - Вибрати лінію інструментом малювання - - - - MarkerTool - - - Marker - Маркер - - - - Set the Marker as the paint tool - Вибрати маркер інструментом малювання - - - - MoveTool - - - Move - Переміщення - - - - Move the selection area - Перемістити вибір - - - - PencilTool - - - Pencil - Олівець - - - - Set the Pencil as the paint tool - Вибрати олівець інструментом малювання - - - - PinTool - - - Pin Tool - Прикріплення - - - - Pin image on the desktop - Прикріпити зображення до робочого столу - - - - QObject - - - Save Error - Помилка збереження - - - - - Capture saved as - Знімок збережено як - - - - Capture saved to clipboard - Знімок збережено до буферу обміну - - - - - Error trying to save as - Помилка під час збереження як - - - - Save screenshot - Зберегти скріншот - - - - Capture saved and copied to the clipboard as - Файл збережено та шлях до нього скопійовано як - - - - - - - - Unable to connect via DBus - Не вдалось підключитись через DBus - - - - Error - Помилка - - - - Unable to write in - Не вдалось зберегти - - - - URL copied to clipboard. - URL скопійовано до буферу обміну. - - - File is deleted from S3 - Файл видален з S3 - - - - Hi, I'm already running! -You can find me in the system tray. - Привіт, а я вже працюю!\nВи можете знайти мене у системному трэї. - - - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. - Привіт, я тут! Клацніть піктограму в лотку, щоб зробити знімок екрана, або натисніть правою кнопкою, щоб переглянути додаткові параметри. - - - - Resize selection right 1px - Змінити розмір виділення праворуч 1 піксель - - - - Resize selection left 1px - Змінити розмір виділення ліворуч 1 пікс - - - - Resize selection up 1px - Змінити розмір виділення вгору 1 пікс - - - - Resize selection down 1px - Змінити розмір виділення вниз 1 пікс - - - - Toggle side panel - Визвати бічну панель - - - - Move selection left 1px - Перемістити виділення вліво на 1 пікс - - - - Move selection right 1px - Перемістити виділення вправо на 1 пікс - - - - Move selection up 1px - Перемістіть виділення вгору на 1 пікс - - - - Move selection down 1px - Перемістіть виділення вниз на 1 пікс - - - - Quit capture - Вийти із захоплення екрану - - - - Screenshot history - Історія скріншотів - - - - Capture screen - Захватити екран - - - Move selection 1px - Перемістити виділення на 1px - - - - Show color picker - Показати вибір кольору - - - - Change the tool's thickness - Змінити товщину інструменту - - - - RectangleTool - - - Rectangle - Прямокутник - - - - Set the Rectangle as the paint tool - Вибрати прямокутник інструментом малювання - - - - RedoTool - - - Redo - Повторити - - - - Redo the next modification - Повторити наступну зміну - - - - SaveTool - - - Save - Зберегти - - - - Save the capture - Зберегти знімок - - - - ScreenGrabber - - - Unable to capture screen - Не вдалось захопити екран - - - - SelectionTool - - - Rectangular Selection - Прямокутне виділення - - - - Set Selection as the paint tool - Вибрати прямокутне виділення інструментом малювання - - - - SetShortcutDialog - - - Set Shortcut - Вибрати гарячу клавішу - - - - Enter new shortcut to change - Оберіть нову гарячу клавішу - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - Натисніть Esc для відміни або Backspace для видалення гарячої клавіші - - - - ShortcutsWidget - - - Hot Keys - Гарячі клавіші - - - - Available shortcuts in the screen capture mode. - Доступні комбінації клавіш у режимі захоплення екрану. - - - - Description - Опис - - - - Key - Клавіша - - - - SidePanelWidget - - - Active thickness: - Активна товщина: - - - - Active color: - Активний колір: - - - - Press ESC to cancel - Натисніть Esc для скасування - - - - Grab Color - Визначити колір з екрану - - - - SizeIndicatorTool - - - Selection Size Indicator - Індикатор розміру виділення - - - - Show the dimensions of the selection (X Y) - Показує розмір виділення (X Y) - - - - StrftimeChooserWidget - - - Century (00-99) - Століття (00-99) - - - - Year (00-99) - Рік (00-99) - - - - Year (2000) - Рік (2000) - - - - Month Name (jan) - Назва місяця (січ) - - - - Month Name (january) - Назва місяця (січень) - - - - Month (01-12) - Місяць (01-12) - - - - Week Day (1-7) - День тижня (1-7) - - - - Week (01-53) - Тиждень (01-53) - - - - Day Name (mon) - Назва дня тижня (пн) - - - - Day Name (monday) - Назва дня тижня (понеділок) - - - - Day (01-31) - День (01-31) - - - - Day of Month (1-31) - День місяця (1-31) - - - - Day (001-366) - День (001-366) - - - - Time (%H-%M-%S) - Час (%H-%M-%S) - - - - Time (%H-%M) - Час (%H-%M) - - - - Hour (00-23) - Година (00-23) - - - - Hour (01-12) - Година (01-12) - - - - Minute (00-59) - Хвилина (00-59) - - - - Second (00-59) - Секунда (00-59) - - - - Full Date (%m/%d/%y) - Повна дата (%m/%d/%y) - - - - Full Date (%Y-%m-%d) - Повна дата (%Y-%m-%d) - - - - SystemNotification - - - Flameshot Info - Довідка Flameshot - - - - TextConfig - - - StrikeOut - Перекреслення - - - - Underline - Підкреслення - - - - Bold - Жирний - - - - Italic - Курсив - - - - TextTool - - - Text - Текст - - - - Add text to your capture - Додати текст на знімок - - - - UIcolorEditor - - - UI Color Editor - Редактор кольору інтерфейсу - - - - Change the color moving the selectors and see the changes in the preview buttons. - Змініть колір пересуваючи виділення та перегляньте зміни у кнопках перегляду. - - - - Select a Button to modify it - Виберіть кнопку, щоб змінити її - - - - Main Color - Основний колір - - - - Click on this button to set the edition mode of the main color. - Натисніть на цю кнопку, щоб включити режим редагування основного кольору. - - - - Contrast Color - Контрасний колір - - - - Click on this button to set the edition mode of the contrast color. - Натисніть на цю кнопку, щоб включити режим редагування контрасного кольору. - - - - UndoTool - - - Undo - Скасувати - - - - Undo the last modification - Скасувати останню зміну - - - - UtilityPanel - - - Hide - Сховати - - - - VisualsEditor - - - Opacity of area outside selection: - Нерозорість області за межами вибору: - - - - Button Selection - Вибір кнопок - - - - Select All - Вибрати все - - - diff --git a/translations/Internationalization_zh_CN.ts b/translations/Internationalization_zh_CN.ts deleted file mode 100644 index 8522e035..00000000 --- a/translations/Internationalization_zh_CN.ts +++ /dev/null @@ -1,1364 +0,0 @@ - - - - - AppLauncher - - - App Launcher - 应用启动器 - - - - Choose an app to open the capture - 选择一个应用打开此截图 - - - - AppLauncherWidget - - - Open With - 打开 - - - - Launch in terminal - 在终端中启动 - - - - Keep open after selection - 选择后保持此窗口打开 - - - - - Error - 错误 - - - - Unable to launch in terminal. - 无法在终端中启动。 - - - - Unable to write in - 无法写入 - - - - ArrowTool - - - Arrow - 箭头 - - - - Set the Arrow as the paint tool - 选择箭头作为绘画工具 - - - - BlurTool - - - Blur - 模糊 - - - - Set Blur as the paint tool - 选择模糊作为绘画工具 - - - - CaptureLauncher - - - <b>Capture Mode</b> - <b>捕获模式</b> - - - - Rectangular Region - 方形区域 - - - - Full Screen (All Monitors) - 全屏(所有显示器) - - - - No Delay - 无延迟 - - - - second - - - - - seconds - - - - - Take new screenshot - 获取新屏幕截图 - - - - Area: - 区域: - - - - Delay: - 延迟: - - - - CaptureWidget - - - Unable to capture screen - 无法捕获屏幕 - 无法捕获屏幕 - - - - Select an area with the mouse, or press Esc to exit. -Press Enter to capture the screen. -Press Right Click to show the color picker. -Use the Mouse Wheel to change the thickness of your tool. -Press Space to open the side panel. - 用鼠标选择一个区域,或按 Esc 退出。 -按 Enter 键捕捉屏幕。 -按住鼠标右键显示颜色选择器。 -使用鼠标滚轮来改变绘画工具的宽度。 -按下空格键以打开侧边面板。 - - - - CircleTool - - - Circle - 圆环 - - - - Set the Circle as the paint tool - 选择圆环作为绘画工具 - - - - ConfigWindow - - - Configuration - 配置 - - - - Interface - 界面 - - - - Filename Editor - 文件名编辑器 - - - - Shortcuts - - - - - General - 常规 - - - - Controller - - - &Take Screenshot - 进行截图(&T) - - - - &Open Launcher - 打开启动器(&O) - - - - &Configuration - 配置(&C) - - - - &Information - 信息(&I) - - - - &Quit - 退出(&Q) - - - - &Latest Uploads - - - - - CopyTool - - - Copy - 复制 - - - - Copy the selection into the clipboard - 复制选择到剪贴板 - - - - DBusUtils - - - Unable to connect via DBus - 无法通过 DBus 进行连接 - - - - ExitTool - - - Exit - 退出 - - - - Leave the capture screen - 离开屏幕捕获 - - - - FileNameEditor - - - Edit the name of your captures: - 编辑您的截图名称: - - - - Edit: - 编辑器: - - - - Preview: - 预览: - - - - Save - 保存 - - - - Saves the pattern - 保存样式 - - - - Reset - 恢复 - - - - Restores the saved pattern - 恢复保存的样式 - - - - Clear - 清空 - - - - Deletes the name - 删除这个名字 - - - - FilePathConfiguration - - - Screenshot path default: - - - - - Use fixed path for screenshots to save - - - - - Browse - - - - - Clear - 清空 - - - - Select default path for Screenshots - - - - - GeneneralConf - - - Show help message - 显示帮助文档 - - - - Show the help message at the beginning in the capture mode. - 在捕获之前显示帮助信息。 - - - - - Show desktop notifications - 显示桌面通知 - - - - Show tray icon - 显示托盘图标 - - - - Show the systemtray icon - 显示任务栏图标 - - - - - Import - 导入 - - - - - - Error - 错误 - - - - Unable to read file. - 无法读取文件。 - - - - - Unable to write file. - 无法写入文件。 - - - - Save File - 保存到文件 - - - - Confirm Reset - 确定重置 - - - - Are you sure you want to reset the configuration? - 你确定你想要重置配置? - - - - Configuration File - 配置文件 - - - - Export - 导出 - - - - Reset - 重置 - - - - Launch at startup - 开机时启动 - - - - - Launch Flameshot - 启动 Flameshot - - - - Show welcome message on launch - - - - - Close application after capture - 捕获后关闭 - - - - Close after taking a screenshot - 获取屏幕截图后关闭 - - - - Copy URL after upload - - - - - Copy URL and close window after upload - - - - - - Copy file path after save - - - - - Upload storage - - - - - Imgur storage - - - - - S3 storage (require config.ini file with s3 credentials) - - - - - HistoryWidget - - - Latest Uploads - - - - - Screenshots history is empty - - - - - Copy URL - 复制链接 - - - - URL copied to clipboard. - 复制链接到剪贴板。 - - - - Open in browser - - - - - ImgS3Uploader - - - Uploading Image - 正在上传 - - - - Upload image to S3 - - - - - Delete image from S3 - - - - - Unable to remove screenshot from the remote storage. - - - - - Network error - - - - - Possibly it doesn't exist anymore - - - - - Do you want to remove screenshot from local history anyway? - - - - - S3 Creds URL is not found in your configuration file - - - - Copy URL - 复制链接 - - - Open URL - 打开链接 - - - Delete image - 删除图像 - - - Image to Clipboard. - 保存文件到剪贴板。 - - - Unable to open the URL. - 无法打开此链接。 - - - - URL copied to clipboard. - 复制链接到剪贴板。 - - - - Deleting image... - - - - - Remove screenshot from history? - - - - Screenshot copied to clipboard. - 截图复制到剪贴板。 - - - - ImgS3UploaderTool - - - Image Uploader - 上传图片 - - - - Upload the selection to S3 bucket - - - - - ImgUploader - - - Upload image to S3 - - - - - - Uploading Image - 正在上传 - - - - Upload image - - - - - Unable to open the URL. - 无法打开此链接。 - - - - URL copied to clipboard. - 复制链接到剪贴板。 - - - - Screenshot copied to clipboard. - 截图复制到剪贴板。 - - - - Deleting image... - - - - - Copy URL - 复制链接 - - - - Open URL - 打开链接 - - - - Delete image - 删除图像 - - - - Image to Clipboard. - 保存文件到剪贴板。 - - - - ImgurUploader - - - Upload to Imgur - 上传到Imgur - - - Uploading Image - 正在上传 - - - Copy URL - 复制链接 - - - Open URL - 打开链接 - - - Delete image - 删除图像 - - - Image to Clipboard. - 保存文件到剪贴板。 - - - - Unable to open the URL. - 无法打开此链接。 - - - URL copied to clipboard. - 复制链接到剪贴板。 - - - Screenshot copied to clipboard. - 截图复制到剪贴板。 - - - - ImgurUploaderTool - - - Image Uploader - 上传图片 - - - - Upload the selection to Imgur - 上传选择到 Imgur - - - - InfoWindow - - - About - 关于 - - - SPACEBAR - 空格 - - - Right Click - 右键 - - - Mouse Wheel - 鼠标滑轮 - - - Move selection 1px - 移动选择 1 px - - - Resize selection 1px - 调整选择大小 1 px - - - Quit capture - 退出捕获 - - - Copy to clipboard - 复制到剪贴板 - - - Save selection as a file - 将选择保存为文件 - - - Undo the last modification - 撤消上次修改 - - - Toggle visibility of sidebar with options of the selected tool - 切换侧边栏可见性 - - - Show color picker - 显示颜色选择器 - - - Change the tool's thickness - 改变工具的厚度 - - - Key - - - - Description - 描述 - - - - <u><b>License</b></u> - <u><b>许可证</b></u> - - - - <u><b>Version</b></u> - <u><b>版本</b></u> - - - <u><b>Shortcuts</b></u> - <u><b>快捷键</b></u> - - - Available shortcuts in the screen capture mode. - 屏幕捕捉模式中的可用快捷键。 - - - - LineTool - - - Line - 直线 - - - - Set the Line as the paint tool - 将直线线设置为绘画工具 - - - - MarkerTool - - - Marker - 标记 - - - - Set the Marker as the paint tool - 将标记设置为绘画工具 - - - - MoveTool - - - Move - 移动 - - - - Move the selection area - 移动选择区域 - - - - PencilTool - - - Pencil - 铅笔 - - - - Set the Pencil as the paint tool - 将铅笔设置为绘画工具 - - - - PinTool - - - Pin Tool - 贴图工具 - - - - Pin image on the desktop - 在桌面上固定图像 - - - - QObject - - - Save Error - 保存错误 - - - - - Capture saved as - 捕获已保存为 - - - - Capture saved to clipboard - 捕获已保存至剪贴板 - - - - - Error trying to save as - 尝试另存为时出错 - - - - Save screenshot - - - - - Capture saved and copied to the clipboard as - - - - - - - - - Unable to connect via DBus - 无法通过DBus进行连接 - - - - Error - 错误 - - - - Unable to write in - 无法写入 - - - - URL copied to clipboard. - 复制链接到剪贴板。 - - - - Hi, I'm already running! -You can find me in the system tray. - - - - - Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options. - - - - - Resize selection right 1px - - - - - Resize selection left 1px - - - - - Resize selection up 1px - - - - - Resize selection down 1px - - - - - Toggle side panel - - - - - Move selection left 1px - - - - - Move selection right 1px - - - - - Move selection up 1px - - - - - Move selection down 1px - - - - - Quit capture - 退出捕获 - - - - Screenshot history - - - - - Capture screen - - - - Move selection 1px - 移动选择 1 px - - - - Show color picker - 显示颜色选择器 - - - - Change the tool's thickness - 改变工具的厚度 - - - - RectangleTool - - - Rectangle - 实心矩形 - - - - Set the Rectangle as the paint tool - 将实心矩形设置为绘画工具 - - - - RedoTool - - - Redo - 重做 - - - - Redo the next modification - 重做上次修改 - - - - SaveTool - - - Save - 保存 - - - - Save the capture - 保存捕获 - - - - ScreenGrabber - - - Unable to capture screen - 无法捕获屏幕 - - - - SelectionTool - - - Rectangular Selection - 矩形选择 - - - - Set Selection as the paint tool - 将矩形选择设置为绘画工具 - - - - SetShortcutDialog - - - Set Shortcut - - - - - Enter new shortcut to change - - - - - Press Esc to cancel or Backspace to disable the keyboard shortcut. - - - - - ShortcutsWidget - - - Hot Keys - - - - - Available shortcuts in the screen capture mode. - 屏幕捕捉模式中的可用快捷键。 - - - - Description - 描述 - - - - Key - - - - - SidePanelWidget - - - Active thickness: - 当前宽度: - - - - Active color: - 活动颜色: - - - - Press ESC to cancel - 按下 ESC 键以取消 - - - - Grab Color - 获取颜色 - - - - SizeIndicatorTool - - - Selection Size Indicator - 选择尺寸指示 - - - - Show the dimensions of the selection (X Y) - 显示选择的尺寸 (X Y) - - - - StrftimeChooserWidget - - - Century (00-99) - 世纪(00-99) - - - - Year (00-99) - 年(00-99) - - - - Year (2000) - 年(2000) - - - - Month Name (jan) - 月(1月 - 12月) - - - - Month Name (january) - 月(一月 - 十二月) - - - - Month (01-12) - 月 (01-12) - - - - Week Day (1-7) - 周内的日(1-7) - - - - Week (01-53) - 周(01-53) - - - - Day Name (mon) - 星期(一 - 七) - - - - Day Name (monday) - 星期(星期一 - 星期日) - - - - Day (01-31) - 天(01-31) - - - - Day of Month (1-31) - 一月中的某天(1-31) - - - - Day (001-366) - 天(001-366) - - - - Time (%H-%M-%S) - 时间(%H-%M-%S) - - - - Time (%H-%M) - 时间(%H-%M) - - - - Hour (00-23) - 小时(00-23) - - - - Hour (01-12) - 小时(01-12) - - - - Minute (00-59) - 分钟(00-59) - - - - Second (00-59) - 秒(00-59) - - - - Full Date (%m/%d/%y) - 完整日期(%m/%d/%y) - - - - Full Date (%Y-%m-%d) - 完整日期(%Y-%m-%d) - - - - SystemNotification - - - Flameshot Info - Flameshot 消息 - - - - TextConfig - - - StrikeOut - 删除线 - - - - Underline - 下划线 - - - - Bold - 粗体 - - - - Italic - 斜体 - - - - TextTool - - - Text - 文本 - - - - Add text to your capture - 在您的捕获中添加文本 - - - - UIcolorEditor - - - UI Color Editor - 用户界面颜色编辑器 - - - - Change the color moving the selectors and see the changes in the preview buttons. - 移动颜色选择并在预览按钮查看。 - - - - Select a Button to modify it - 选择一个按钮以进行修改 - - - - Main Color - 主色 - - - - Click on this button to set the edition mode of the main color. - 点击按钮设置主色。 - - - - Contrast Color - 对比色 - - - - Click on this button to set the edition mode of the contrast color. - 点击按钮设置对比色。 - - - - UndoTool - - - Undo - 撤消 - - - - Undo the last modification - 撤消上次修改 - - - - UtilityPanel - - - Hide - - - - - VisualsEditor - - - Opacity of area outside selection: - 选中区域之外的不透明度: - - - - Button Selection - 按钮选择 - - - - Select All - 全选 - - -