├── .flatpak-manifest.json ├── .flatpak-manifest.json.license ├── .git-blame-ignore-revs ├── .gitignore ├── .gitlab-ci.yml ├── .kde-ci.yml ├── CMakeLists.txt ├── CMakePresets.json ├── LICENSES ├── GPL-2.0-only.txt ├── GPL-3.0-only.txt └── LicenseRef-KDE-Accepted-GPL.txt ├── autotests └── CMakeLists.txt ├── doc ├── CMakeLists.txt ├── buttons-main.png ├── choose-scanner.png ├── final-button.png ├── index.docbook ├── main-window.png ├── multiple-selections.png ├── no-scanner-found.png ├── other-options.png ├── preview-button.png ├── preview.png ├── save-location.png ├── scanning.png ├── settings.png ├── zoom-in.png └── zoom-to-fit.png ├── hotkeys_and_scripts ├── endless_scan.sh ├── hw_btn_scan.sh ├── post_processing.sh └── skanlite.khotkeys ├── logo.png ├── po ├── ar │ └── skanlite.po ├── az │ └── skanlite.po ├── be │ └── skanlite.po ├── bg │ └── skanlite.po ├── bs │ └── skanlite.po ├── ca │ ├── docs │ │ └── skanlite │ │ │ ├── buttons-main.png │ │ │ ├── choose-scanner.png │ │ │ ├── final-button.png │ │ │ ├── index.docbook │ │ │ ├── main-window.png │ │ │ ├── no-scanner-found.png │ │ │ ├── other-options.png │ │ │ ├── preview-button.png │ │ │ ├── scanning.png │ │ │ ├── settings.png │ │ │ └── zoom-to-fit.png │ └── skanlite.po ├── ca@valencia │ └── skanlite.po ├── cs │ └── skanlite.po ├── da │ └── skanlite.po ├── de │ ├── docs │ │ └── skanlite │ │ │ ├── buttons-main.png │ │ │ ├── final-button.png │ │ │ ├── index.docbook │ │ │ ├── main-window.png │ │ │ ├── no-scanner-found.png │ │ │ ├── other-options.png │ │ │ ├── preview-button.png │ │ │ └── zoom-to-fit.png │ └── skanlite.po ├── el │ └── skanlite.po ├── en_GB │ └── skanlite.po ├── eo │ └── skanlite.po ├── es │ ├── docs │ │ └── skanlite │ │ │ └── index.docbook │ └── skanlite.po ├── et │ └── skanlite.po ├── eu │ └── skanlite.po ├── fi │ └── skanlite.po ├── fr │ ├── docs │ │ └── skanlite │ │ │ └── index.docbook │ └── skanlite.po ├── ga │ └── skanlite.po ├── gl │ └── skanlite.po ├── he │ └── skanlite.po ├── hi │ └── skanlite.po ├── hr │ └── skanlite.po ├── hu │ └── skanlite.po ├── ia │ └── skanlite.po ├── id │ ├── docs │ │ └── skanlite │ │ │ └── index.docbook │ └── skanlite.po ├── ie │ └── skanlite.po ├── is │ └── skanlite.po ├── it │ ├── docs │ │ └── skanlite │ │ │ └── index.docbook │ └── skanlite.po ├── ja │ └── skanlite.po ├── ka │ └── skanlite.po ├── km │ └── skanlite.po ├── ko │ └── skanlite.po ├── lt │ └── skanlite.po ├── lv │ └── skanlite.po ├── mai │ └── skanlite.po ├── mr │ └── skanlite.po ├── nb │ └── skanlite.po ├── nds │ └── skanlite.po ├── nl │ ├── docs │ │ └── skanlite │ │ │ └── index.docbook │ └── skanlite.po ├── nn │ └── skanlite.po ├── pa │ └── skanlite.po ├── pl │ └── skanlite.po ├── pt │ ├── docs │ │ └── skanlite │ │ │ └── index.docbook │ └── skanlite.po ├── pt_BR │ ├── docs │ │ └── skanlite │ │ │ └── index.docbook │ └── skanlite.po ├── ro │ └── skanlite.po ├── ru │ ├── docs │ │ └── skanlite │ │ │ └── index.docbook │ └── skanlite.po ├── sa │ └── skanlite.po ├── sk │ └── skanlite.po ├── sl │ ├── docs │ │ └── skanlite │ │ │ └── index.docbook │ └── skanlite.po ├── sq │ └── skanlite.po ├── sv │ ├── docs │ │ └── skanlite │ │ │ └── index.docbook │ └── skanlite.po ├── tr │ └── skanlite.po ├── ug │ └── skanlite.po ├── uk │ ├── docs │ │ └── skanlite │ │ │ ├── buttons-main.png │ │ │ ├── choose-scanner.png │ │ │ ├── final-button.png │ │ │ ├── index.docbook │ │ │ ├── main-window.png │ │ │ ├── multiple-selections.png │ │ │ ├── no-scanner-found.png │ │ │ ├── other-options.png │ │ │ ├── preview-button.png │ │ │ ├── preview.png │ │ │ ├── save-location.png │ │ │ ├── scanning.png │ │ │ ├── settings.png │ │ │ ├── zoom-in.png │ │ │ └── zoom-to-fit.png │ └── skanlite.po ├── wa │ └── skanlite.po ├── zh_CN │ └── skanlite.po └── zh_TW │ └── skanlite.po ├── sc-apps-org.kde.skanlite.svg ├── snapcraft.yaml ├── src ├── CMakeLists.txt ├── DBusInterface.cpp ├── DBusInterface.h ├── ImageViewer.cpp ├── ImageViewer.h ├── Messages.sh ├── SaveLocation.cpp ├── SaveLocation.h ├── SaveLocation.ui ├── SkanliteImageSaver.cpp ├── SkanliteImageSaver.h ├── TODO ├── main.cpp ├── org.kde.skanlite.appdata.xml ├── org.kde.skanlite.desktop ├── settings.ui ├── showimagedialog.cpp ├── showimagedialog.h ├── skanlite.cpp └── skanlite.h └── tests └── CMakeLists.txt /.flatpak-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "org.kde.skanlite", 3 | "branch": "master", 4 | "runtime": "org.kde.Platform", 5 | "runtime-version": "6.8", 6 | "sdk": "org.kde.Sdk", 7 | "command": "skanlite", 8 | "tags": ["nightly"], 9 | "desktop-file-name-suffix": " (Nightly)", 10 | "finish-args": ["--share=ipc", "--socket=x11", "--socket=wayland", "--filesystem=home", "--device=all", 11 | "--share=network", "--system-talk-name=org.freedesktop.Avahi" ], 12 | "separate-locales": false, 13 | 14 | "modules": [ 15 | { 16 | "name": "ksane-dependencies", 17 | "buildsystem": null, 18 | "modules": [ 19 | { 20 | "name": "libusb1", 21 | "sources": [ 22 | { 23 | "type": "archive", 24 | "url": "https://github.com/libusb/libusb/releases/download/v1.0.25/libusb-1.0.25.tar.bz2", 25 | "sha256": "8a28ef197a797ebac2702f095e81975e2b02b2eeff2774fa909c78a74ef50849", 26 | "x-checker-data": { 27 | "type": "anitya", 28 | "project-id": 1749, 29 | "stable-only": true, 30 | "url-template": "https://github.com/libusb/libusb/releases/download/v$version/libusb-$version.tar.bz2" 31 | } 32 | } 33 | ] 34 | }, 35 | { 36 | "name": "avahi", 37 | "buildsystem": "autotools", 38 | "config-opts": [ 39 | "--disable-gtk", 40 | "--disable-qt3", 41 | "--disable-qt4", 42 | "--disable-qt5", 43 | "--disable-mono", 44 | "--disable-monodoc", 45 | "--with-distro=none", 46 | "--disable-pygobject", 47 | "--disable-python-dbus", 48 | "--disable-python", 49 | "--disable-manpages", 50 | "--disable-libdaemon", 51 | "--disable-daemon", 52 | "--enable-compat-libdns_sd", 53 | "--disable-libevent" 54 | ], 55 | "sources": [ 56 | { 57 | "type": "git", 58 | "url": "https://github.com/lathiat/avahi", 59 | "tag": "v0.8", 60 | "x-checker-data": { 61 | "type": "git", 62 | "tag-pattern": "^v([\\d.]+)$" 63 | }, 64 | "commit": "f060abee2807c943821d88839c013ce15db17b58" 65 | } 66 | ] 67 | }, 68 | { 69 | "name": "sane", 70 | "buildsystem": "autotools", 71 | "config-opts": [ 72 | "--with-usb", 73 | "--with-v4l", 74 | "--with-gphoto2", 75 | "--enable-pthread", 76 | "--enable-pnm-backend", 77 | "--enable-pthread", 78 | "--enable-avahi" 79 | ], 80 | "sources": [ 81 | { 82 | "type": "git", 83 | "url": "https://gitlab.com/sane-project/backends", 84 | "tag": "1.1.1", 85 | "x-checker-data": { 86 | "type": "git", 87 | "tag-pattern": "^([\\d.]+)$" 88 | }, 89 | "commit": "332edc8b7ce642bb06132cf204a8c2dd57720bce" 90 | } 91 | ] 92 | }, 93 | { 94 | "name": "sane-airscan", 95 | "buildsystem": "meson", 96 | "sources": [ 97 | { 98 | "type": "archive", 99 | "url": "https://github.com/alexpevzner/sane-airscan/archive/refs/tags/0.99.31.tar.gz", 100 | "sha256": "67782be6a4fd36e753fc4766b8989d75f806bc6d1d2e92f617ea686be2924c14", 101 | "x-checker-data": { 102 | "type": "anitya", 103 | "project-id": 121086, 104 | "stable-only": true, 105 | "url-template": "https://github.com/alexpevzner/sane-airscan/archive/refs/tags/$version.tar.gz" 106 | } 107 | } 108 | ] 109 | }, 110 | { 111 | "name": "libksanecore", 112 | "buildsystem": "cmake-ninja", 113 | "config-opts": [ 114 | "-DQT_MAJOR_VERSION=6" 115 | ], 116 | "sources": [ { "type": "git", "url": "https://invent.kde.org/libraries/ksanecore" } ] 117 | }, 118 | { 119 | "name": "libksane", 120 | "config-opts": [ 121 | "-DQT_MAJOR_VERSION=6" 122 | ], 123 | "buildsystem": "cmake-ninja", 124 | "sources": [ { "type": "git", "url": "https://invent.kde.org/graphics/libksane" } ] 125 | } 126 | ] 127 | }, 128 | { 129 | "name": "skanlite", 130 | "buildsystem": "cmake-ninja", 131 | "builddir": true, 132 | "sources": [ { "type": "dir", "path": "." } ] 133 | } 134 | ] 135 | } 136 | -------------------------------------------------------------------------------- /.flatpak-manifest.json.license: -------------------------------------------------------------------------------- 1 | SPDX-License-Identifier: CC0-1.0 2 | SPDX-FileCopyrightText: none 3 | -------------------------------------------------------------------------------- /.git-blame-ignore-revs: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: CC0-1.0 2 | # SPDX-FileCopyrightText: none 3 | # clang-format 4 | a5574411a1e4282b0556b1c9ee3b558db6e365b0 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .directory 2 | .kdev4/ 3 | /build*/ 4 | skanlite.kdev4 5 | src/.kdev_include_paths 6 | CMakeLists.txt.user 7 | .clang-format 8 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: None 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | include: 5 | - project: sysadmin/ci-utilities 6 | file: 7 | - /gitlab-templates/linux-qt6.yml 8 | - /gitlab-templates/linux-qt6-next.yml 9 | - /gitlab-templates/freebsd-qt6.yml 10 | - /gitlab-templates/flatpak.yml 11 | - /gitlab-templates/xml-lint.yml 12 | - /gitlab-templates/yaml-lint.yml 13 | -------------------------------------------------------------------------------- /.kde-ci.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: None 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | Dependencies: 5 | - 'on': ['Linux', 'FreeBSD'] 6 | 'require': 7 | 'frameworks/extra-cmake-modules': '@latest-kf6' 8 | 'frameworks/kcoreaddons': '@latest-kf6' 9 | 'frameworks/kdoctools': '@latest-kf6' 10 | 'frameworks/ki18n': '@latest-kf6' 11 | 'frameworks/kio': '@latest-kf6' 12 | 'frameworks/kxmlgui': '@latest-kf6' 13 | 'frameworks/kcrash': '@latest-kf6' 14 | 'graphics/libksane': '@same' 15 | 16 | Options: 17 | require-passing-tests-on: ['Linux', 'FreeBSD', 'Windows'] 18 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.16) 2 | 3 | # KDE Application Version, managed by release script 4 | set (RELEASE_SERVICE_VERSION_MAJOR "25") 5 | set (RELEASE_SERVICE_VERSION_MINOR "07") 6 | set (RELEASE_SERVICE_VERSION_MICRO "70") 7 | 8 | set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") 9 | 10 | set(SKANLITE_VERSION_STRING "${RELEASE_SERVICE_VERSION}") 11 | 12 | project(skanlite VERSION ${RELEASE_SERVICE_VERSION}) 13 | 14 | set(REQUIRED_QT_VERSION "6.4.0") 15 | set(KF_MIN_VERSION "6.0.0") 16 | 17 | # ECM setup (Extended Cmake Modules) 18 | find_package(ECM ${KF_MIN_VERSION} QUIET REQUIRED NO_MODULE) 19 | # ECM setup2 and include find same cmake module (copied from /usr/share/kde4/apps/cmake/modules/FindSane.cmake) 20 | set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake-modules) 21 | 22 | include(KDEInstallDirs) # yields ${XDG_APPS_INSTALL_DIR} 23 | include(KDECMakeSettings) 24 | include(KDECompilerSettings NO_POLICY_SCOPE) 25 | 26 | include(FeatureSummary) 27 | include(ECMSetupVersion) # yiels ecm_setup_version 28 | include(ECMGenerateHeaders) 29 | include(CMakePackageConfigHelpers) 30 | include(CheckFunctionExists) 31 | include(GenerateExportHeader) 32 | include(ECMQtDeclareLoggingCategory) 33 | include(ECMInstallIcons) 34 | include(ECMDeprecationSettings) 35 | include(KDEClangFormat) 36 | include(KDEGitCommitHooks) 37 | 38 | ecm_setup_version( 39 | ${SKANLITE_VERSION_STRING} 40 | VARIABLE_PREFIX SKANLITE 41 | VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/src/skanlite_version.h" 42 | ) 43 | 44 | # Dependencies 45 | find_package(Qt6 ${REQUIRED_QT_VERSION} NO_MODULE REQUIRED Core Widgets) 46 | 47 | find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS 48 | CoreAddons # KAboutData 49 | I18n 50 | KIO # contains the KIOWidgets which we use in target_link_libraries 51 | XmlGui # KAboutApplicationDialog 52 | Crash 53 | ) 54 | 55 | find_package(KF6DocTools ${KF_MIN_VERSION}) # yields kdoctools_create_handbook 56 | set_package_properties(KF6DocTools PROPERTIES DESCRIPTION 57 | "Tools to generate documentation" 58 | TYPE OPTIONAL 59 | ) 60 | 61 | find_package(KSaneWidgets6 "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}" REQUIRED) 62 | 63 | ecm_set_disabled_deprecation_versions(QT 6.7.2 64 | KF 6.7.0 65 | ) 66 | 67 | 68 | # Subdirectories 69 | add_subdirectory(src) 70 | 71 | ki18n_install(po) 72 | if (KF6DocTools_FOUND) 73 | kdoctools_install(po) 74 | add_subdirectory(doc) 75 | endif() 76 | 77 | if(BUILD_TESTING) 78 | add_subdirectory(autotests) 79 | add_subdirectory(tests) 80 | endif() 81 | ecm_install_icons(ICONS sc-apps-org.kde.skanlite.svg DESTINATION ${KDE_INSTALL_ICONDIR}) 82 | 83 | feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) 84 | # add clang-format target for all our real source files 85 | file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h) 86 | kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) 87 | kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) 88 | 89 | -------------------------------------------------------------------------------- /CMakePresets.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "configurePresets": [ 4 | { 5 | "name": "dev", 6 | "displayName": "Build as debug", 7 | "generator": "Ninja", 8 | "binaryDir": "${sourceDir}/build", 9 | "cacheVariables": { 10 | "CMAKE_BUILD_TYPE": "Debug", 11 | "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" 12 | }, 13 | "installDir": "$env{KF5}" 14 | }, 15 | { 16 | "name": "dev-disable-deprecated", 17 | "displayName": "Build as without deprecated methods", 18 | "generator": "Ninja", 19 | "binaryDir": "${sourceDir}/build-disable-deprecated", 20 | "cacheVariables": { 21 | "CMAKE_BUILD_TYPE": "Debug", 22 | "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", 23 | "CMAKE_CXX_FLAGS_INIT": "-DQT_DISABLE_DEPRECATED_BEFORE=0x060000 -DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x060000" 24 | }, 25 | "installDir": "$env{KF5}" 26 | }, 27 | { 28 | "name": "asan", 29 | "displayName": "Build with Asan support.", 30 | "generator": "Ninja", 31 | "binaryDir": "${sourceDir}/build-asan", 32 | "cacheVariables": { 33 | "CMAKE_BUILD_TYPE": "Debug", 34 | "ECM_ENABLE_SANITIZERS" : "'address;undefined'", 35 | "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" 36 | }, 37 | "installDir": "$env{KF5}" 38 | }, 39 | { 40 | "name": "dev-clang", 41 | "displayName": "dev-clang", 42 | "generator": "Ninja", 43 | "binaryDir": "${sourceDir}/build-clang", 44 | "cacheVariables": { 45 | "CMAKE_BUILD_TYPE": "Debug", 46 | "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" 47 | }, 48 | "environment": { 49 | "CXX": "clang++", 50 | "CCACHE_DISABLE": "ON" 51 | }, 52 | "installDir": "$env{KF5}" 53 | }, 54 | { 55 | "name": "unity", 56 | "displayName": "Build with CMake unity support.", 57 | "generator": "Ninja", 58 | "binaryDir": "${sourceDir}/build-unity", 59 | "cacheVariables": { 60 | "CMAKE_BUILD_TYPE": "Debug", 61 | "USE_UNITY_CMAKE_SUPPORT": "ON", 62 | "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" 63 | }, 64 | "installDir": "$env{KF5}" 65 | }, 66 | { 67 | "name": "release", 68 | "displayName": "Build as release mode.", 69 | "generator": "Ninja", 70 | "binaryDir": "${sourceDir}/build-release", 71 | "cacheVariables": { 72 | "CMAKE_BUILD_TYPE": "Release" 73 | }, 74 | "installDir": "$env{KF5}" 75 | }, 76 | { 77 | "name": "profile", 78 | "displayName": "profile", 79 | "generator": "Ninja", 80 | "binaryDir": "${sourceDir}/build-profile", 81 | "cacheVariables": { 82 | "CMAKE_BUILD_TYPE": "RelWithDebInfo", 83 | "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" 84 | }, 85 | "installDir": "$env{KF5}" 86 | }, 87 | { 88 | "name": "clazy", 89 | "displayName": "clazy", 90 | "generator": "Ninja", 91 | "binaryDir": "${sourceDir}/build-clazy", 92 | "cacheVariables": { 93 | "CMAKE_BUILD_TYPE": "Debug" 94 | }, 95 | "environment": { 96 | "CXX": "clazy", 97 | "CCACHE_DISABLE": "ON" 98 | }, 99 | "installDir": "$env{KF5}" 100 | } 101 | 102 | ], 103 | "buildPresets": [ 104 | { 105 | "name": "dev", 106 | "configurePreset": "dev" 107 | }, 108 | { 109 | "name": "dev-disable-deprecated", 110 | "configurePreset": "dev-disable-deprecated" 111 | }, 112 | { 113 | "name": "release", 114 | "configurePreset": "release" 115 | }, 116 | { 117 | "name": "dev-clang", 118 | "configurePreset": "dev-clang" 119 | }, 120 | { 121 | "name": "asan", 122 | "configurePreset": "asan" 123 | }, 124 | { 125 | "name": "unity", 126 | "configurePreset": "unity" 127 | }, 128 | { 129 | "name": "clazy", 130 | "configurePreset": "clazy", 131 | "environment": { 132 | "CLAZY_CHECKS" : "level0,level1,detaching-member,ifndef-define-typo,isempty-vs-count,qrequiredresult-candidates,reserve-candidates,signal-with-return-value,unneeded-cast,function-args-by-ref,function-args-by-value,returning-void-expression,no-ctor-missing-parent-argument,isempty-vs-count,qhash-with-char-pointer-key,raw-environment-function,qproperty-type-mismatch,old-style-connect,qstring-allocations,container-inside-loop,heap-allocated-small-trivial-type,inefficient-qlist,qstring-varargs,level2,detaching-member,heap-allocated-small-trivial-type,isempty-vs-count,qstring-varargs,qvariant-template-instantiation,raw-environment-function,reserve-candidates,signal-with-return-value,thread-with-slots,no-ctor-missing-parent-argument,no-missing-typeinfo", 133 | "CCACHE_DISABLE" : "ON" 134 | } 135 | } 136 | ], 137 | "testPresets": [ 138 | { 139 | "name": "dev", 140 | "configurePreset": "dev", 141 | "output": {"outputOnFailure": true}, 142 | "execution": {"noTestsAction": "error", "stopOnFailure": false} 143 | }, 144 | { 145 | "name": "asan", 146 | "configurePreset": "asan", 147 | "output": {"outputOnFailure": true}, 148 | "execution": {"noTestsAction": "error", "stopOnFailure": true} 149 | } 150 | ] 151 | } 152 | -------------------------------------------------------------------------------- /LICENSES/LicenseRef-KDE-Accepted-GPL.txt: -------------------------------------------------------------------------------- 1 | This library is free software; you can redistribute it and/or 2 | modify it under the terms of the GNU General Public License as 3 | published by the Free Software Foundation; either version 3 of 4 | the license or (at your option) at any later version that is 5 | accepted by the membership of KDE e.V. (or its successor 6 | approved by the membership of KDE e.V.), which shall act as a 7 | proxy as defined in Section 14 of version 3 of the license. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | -------------------------------------------------------------------------------- /autotests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Test) 2 | 3 | include(ECMMarkAsTest) 4 | 5 | macro(skanlite_tests) 6 | foreach(_testname ${ARGN}) 7 | add_executable(${_testname} ${_testname}.cpp) 8 | target_link_libraries(${_testname} Qt6::Test KF5skanlite) 9 | add_test(skanlite-${_testname} ${_testname}) 10 | ecm_mark_as_test(${_testname}) 11 | endforeach(_testname) 12 | endmacro() 13 | 14 | #skanlite_tests( 15 | # skanlitetest 16 | #) 17 | -------------------------------------------------------------------------------- /doc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # 2 | kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR skanlite) 3 | -------------------------------------------------------------------------------- /doc/buttons-main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/doc/buttons-main.png -------------------------------------------------------------------------------- /doc/choose-scanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/doc/choose-scanner.png -------------------------------------------------------------------------------- /doc/final-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/doc/final-button.png -------------------------------------------------------------------------------- /doc/main-window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/doc/main-window.png -------------------------------------------------------------------------------- /doc/multiple-selections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/doc/multiple-selections.png -------------------------------------------------------------------------------- /doc/no-scanner-found.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/doc/no-scanner-found.png -------------------------------------------------------------------------------- /doc/other-options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/doc/other-options.png -------------------------------------------------------------------------------- /doc/preview-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/doc/preview-button.png -------------------------------------------------------------------------------- /doc/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/doc/preview.png -------------------------------------------------------------------------------- /doc/save-location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/doc/save-location.png -------------------------------------------------------------------------------- /doc/scanning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/doc/scanning.png -------------------------------------------------------------------------------- /doc/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/doc/settings.png -------------------------------------------------------------------------------- /doc/zoom-in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/doc/zoom-in.png -------------------------------------------------------------------------------- /doc/zoom-to-fit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/doc/zoom-to-fit.png -------------------------------------------------------------------------------- /hotkeys_and_scripts/endless_scan.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Skanlite D-Bus example script 4 | # this script sends 'scan' command to Skanlite via D-Bus 5 | # then listens for scanDone signal and repeats in infinite loop 6 | 7 | interface=org.kde.skanlite 8 | sender=org.kde.skanlite 9 | member=scanDone 10 | command=scan 11 | 12 | 13 | dbus-send --session --dest=$interface --type=method_call / $interface.$command 14 | 15 | dbus-monitor --profile "type='signal',sender='$sender',interface='$interface',member='$member'" --monitor | 16 | while read -r line; do 17 | dbus-send --session --dest=$interface --type=method_call / $interface.$command 18 | done 19 | -------------------------------------------------------------------------------- /hotkeys_and_scripts/hw_btn_scan.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Skanlite D-Bus example script 4 | 5 | # this script listens for D-Bus buttonPressed signal from Skanlite 6 | # checks which button is pressed (default: 'Button 0') and its pressed state 7 | # then sends Skanlite 'scan' command via D-Bus 8 | 9 | # WARNING: buttonPressed signal might work unstable as it's driver dependant 10 | # WARNING: for example my HP 4370 stop sending hw btn events just after first scan 11 | 12 | interface=org.kde.skanlite 13 | sender=org.kde.skanlite 14 | member=buttonPressed 15 | command=scan 16 | 17 | # listen for buttonPressed D-Bus events, 18 | # each time we enter the loop, we just got an event 19 | # so handle the event, e.g. by checking button name and its state. 20 | 21 | dbus-monitor --profile "type='signal',sender='$sender',interface='$interface',member='$member'" --monitor | 22 | while read -r line; do 23 | 24 | # uncomment the line below to output to console all incoming buttonPressed data 25 | # this may be useful to detect proper button names 26 | 27 | # printf "Received line: $line\n" 28 | 29 | if [[ $line == *"button 0"* ]]; then 30 | read -r line; 31 | if [[ $line == *"Scanner button 0"* ]]; then 32 | read -r line; 33 | if [[ $line == *"boolean true"* ]]; then 34 | # printf "\nButton pressed. Performing scan.\n" 35 | dbus-send --session --dest=$interface --type=method_call / $interface.$command 36 | fi 37 | fi 38 | fi 39 | done 40 | -------------------------------------------------------------------------------- /hotkeys_and_scripts/post_processing.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Skanlite D-Bus example script. 4 | # this script listens for D-Bus imageSaved signal from Skanlite then 5 | # postprocesses scanned image with help of gimp application, 6 | # prints it and remove file. (the last two commands are disabled by default) 7 | 8 | # gimp provides much more powerful tools for image processing 9 | # in particulary for color balance correction 10 | # in this example we decreasing Highlights (brightest pixels) gamma's red by 18 11 | 12 | interface=org.kde.skanlite 13 | sender=org.kde.skanlite 14 | member=imageSaved 15 | 16 | # listen for imageSaved D-Bus events, 17 | # each time we enter the loop, we just got an event 18 | 19 | dbus-monitor --profile "type='signal',sender='$sender',interface='$interface',member='$member'" --monitor | 20 | while read -r line; do 21 | 22 | if [[ $line == *"member=imageSaved"* ]]; then 23 | read -r line; 24 | 25 | if [[ $line == *"string \""*"\"" ]]; then 26 | 27 | [[ $line =~ string[[:space:]]\"(.*)\" ]] 28 | 29 | # Here you can apply some additional filters. For example filter out 30 | # grayscale scans with help of identify (from imagemagick package) 31 | # like, identify -verbose $filename | grep 'Type: TrueColor' 32 | 33 | filename=${BASH_REMATCH[1]} 34 | printf "Processing scan: $filename\n" 35 | gimp -i -b '(let* ((filename "'$filename'") 36 | (image (car (gimp-file-load RUN-NONINTERACTIVE 37 | filename filename))) 38 | (drawable (car (gimp-image-get-active-layer image)))) 39 | (gimp-color-balance 40 | drawable 2 1 -18 0 0) ; Change these parameters to adjust color balanse 41 | (gimp-file-save RUN-NONINTERACTIVE 42 | image drawable filename filename) 43 | (gimp-image-delete image))' \ 44 | -b '(gimp-quit 0)' 45 | 46 | #printf "Printing: $filename\n" 47 | #lp $filename # Send to default printer. Configure this command if needed 48 | 49 | #rm $filename # Remove file 50 | fi 51 | fi 52 | done 53 | -------------------------------------------------------------------------------- /hotkeys_and_scripts/skanlite.khotkeys: -------------------------------------------------------------------------------- 1 | [Data] 2 | DataCount=1 3 | 4 | [Data_1] 5 | Comment=Shortcuts for Skanlite 6 | DataCount=7 7 | Enabled=true 8 | Name=Skanlite 9 | SystemGroup=0 10 | Type=ACTION_DATA_GROUP 11 | 12 | [Data_1Conditions] 13 | Comment= 14 | ConditionsCount=0 15 | 16 | [Data_1_1] 17 | Comment=Global hotkey: Alt+S to start scanning. Skanlite must be up and running. 18 | Enabled=true 19 | Name=Scan 20 | Type=SIMPLE_ACTION_DATA 21 | 22 | [Data_1_1Actions] 23 | ActionsCount=1 24 | 25 | [Data_1_1Actions0] 26 | Arguments= 27 | Call=scan 28 | RemoteApp=org.kde.skanlite 29 | RemoteObj=/ 30 | Type=DBUS 31 | 32 | [Data_1_1Conditions] 33 | Comment= 34 | ConditionsCount=0 35 | 36 | [Data_1_1Triggers] 37 | Comment=Simple_action 38 | TriggersCount=1 39 | 40 | [Data_1_1Triggers0] 41 | Key=Alt+S 42 | Type=SHORTCUT 43 | Uuid={3c04e4ea-1f6e-430e-82bb-0e4adb79a6a3} 44 | 45 | [Data_1_2] 46 | Comment=Global hotkey: Alt+C to cancel scanning while it's performing. Do nothing otherwise. 47 | Enabled=true 48 | Name=Cancel Scan 49 | Type=SIMPLE_ACTION_DATA 50 | 51 | [Data_1_2Actions] 52 | ActionsCount=1 53 | 54 | [Data_1_2Actions0] 55 | Arguments= 56 | Call=scanCancel 57 | RemoteApp=org.kde.skanlite 58 | RemoteObj=/ 59 | Type=DBUS 60 | 61 | [Data_1_2Conditions] 62 | Comment= 63 | ConditionsCount=0 64 | 65 | [Data_1_2Triggers] 66 | Comment=Simple_action 67 | TriggersCount=1 68 | 69 | [Data_1_2Triggers0] 70 | Key=Alt+C 71 | Type=SHORTCUT 72 | Uuid={aaed7bc1-a7bc-4abc-b319-9b95abb5216b} 73 | 74 | [Data_1_3] 75 | Comment=Global hotkey: press Ctrl+Alt+1 to save current Skanlite scanner settings as Profile 1. You can switch to this profile later with Alt+1. 76 | Enabled=true 77 | Name=Save Profile 1 78 | Type=SIMPLE_ACTION_DATA 79 | 80 | [Data_1_3Actions] 81 | ActionsCount=1 82 | 83 | [Data_1_3Actions0] 84 | Arguments=1 85 | Call=saveCurrentScannerOptionsToProfile 86 | RemoteApp=org.kde.skanlite 87 | RemoteObj=/ 88 | Type=DBUS 89 | 90 | [Data_1_3Conditions] 91 | Comment= 92 | ConditionsCount=0 93 | 94 | [Data_1_3Triggers] 95 | Comment=Simple_action 96 | TriggersCount=1 97 | 98 | [Data_1_3Triggers0] 99 | Key=Ctrl+Alt+1 100 | Type=SHORTCUT 101 | Uuid={5d4c37a6-d8b3-40b0-aa6a-92f325302538} 102 | 103 | [Data_1_4] 104 | Comment=Global hotkey: press Alt+1 to restore scanner settings from Profile 1 in Skanlite. If profile doesn't exists - restore default settings. 105 | Enabled=true 106 | Name=Load Profile 1 107 | Type=SIMPLE_ACTION_DATA 108 | 109 | [Data_1_4Actions] 110 | ActionsCount=1 111 | 112 | [Data_1_4Actions0] 113 | Arguments=1 114 | Call=switchToProfile 115 | RemoteApp=org.kde.skanlite 116 | RemoteObj=/ 117 | Type=DBUS 118 | 119 | [Data_1_4Conditions] 120 | Comment= 121 | ConditionsCount=0 122 | 123 | [Data_1_4Triggers] 124 | Comment=Simple_action 125 | TriggersCount=1 126 | 127 | [Data_1_4Triggers0] 128 | Key=Alt+1 129 | Type=SHORTCUT 130 | Uuid={81787487-f07d-4111-b1cf-9da1406075ca} 131 | 132 | [Data_1_5] 133 | Comment=Global hotkey: press Ctrl+Alt+2 to save current Skanlite scanner settings as Profile 2. You can switch to this profile later with Alt+2. 134 | Enabled=true 135 | Name=Save Profile 2 136 | Type=SIMPLE_ACTION_DATA 137 | 138 | [Data_1_5Actions] 139 | ActionsCount=1 140 | 141 | [Data_1_5Actions0] 142 | Arguments=2 143 | Call=saveCurrentScannerOptionsToProfile 144 | RemoteApp=org.kde.skanlite 145 | RemoteObj=/ 146 | Type=DBUS 147 | 148 | [Data_1_5Conditions] 149 | Comment= 150 | ConditionsCount=0 151 | 152 | [Data_1_5Triggers] 153 | Comment=Simple_action 154 | TriggersCount=1 155 | 156 | [Data_1_5Triggers0] 157 | Key=Ctrl+Alt+2 158 | Type=SHORTCUT 159 | Uuid={e74b442f-47db-4314-a0e0-a56e1b753804} 160 | 161 | [Data_1_6] 162 | Comment=Global hotkey: press Alt+2 to restore scanner settings from Profile 2 in Skanlite. If profile doesn't exists - restore default settings. 163 | Enabled=true 164 | Name=Load Profile 2 165 | Type=SIMPLE_ACTION_DATA 166 | 167 | [Data_1_6Actions] 168 | ActionsCount=1 169 | 170 | [Data_1_6Actions0] 171 | Arguments=2 172 | Call=switchToProfile 173 | RemoteApp=org.kde.skanlite 174 | RemoteObj=/ 175 | Type=DBUS 176 | 177 | [Data_1_6Conditions] 178 | Comment= 179 | ConditionsCount=0 180 | 181 | [Data_1_6Triggers] 182 | Comment=Simple_action 183 | TriggersCount=1 184 | 185 | [Data_1_6Triggers0] 186 | Key=Alt+2 187 | Type=SHORTCUT 188 | Uuid={9f894206-fbcf-48f1-9fb3-df9cec37bacb} 189 | 190 | [Data_1_7] 191 | Comment=Global hotkey: Alt+P to start scanning preview. Skanlite must be up and running. 192 | Enabled=true 193 | Name=Preview 194 | Type=SIMPLE_ACTION_DATA 195 | 196 | [Data_1_7Actions] 197 | ActionsCount=1 198 | 199 | [Data_1_7Actions0] 200 | Arguments= 201 | Call=preview 202 | RemoteApp=org.kde.skanlite 203 | RemoteObj=/ 204 | Type=DBUS 205 | 206 | [Data_1_7Conditions] 207 | Comment= 208 | ConditionsCount=0 209 | 210 | [Data_1_7Triggers] 211 | Comment=Simple_action 212 | TriggersCount=1 213 | 214 | [Data_1_7Triggers0] 215 | Key=Alt+P 216 | Type=SHORTCUT 217 | Uuid={96c0b3ae-9d0d-45dd-b275-c11c01424ff7} 218 | 219 | [Main] 220 | AllowMerge=true 221 | ImportId=skanlite 222 | Version=2 223 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/logo.png -------------------------------------------------------------------------------- /po/ca/docs/skanlite/buttons-main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/ca/docs/skanlite/buttons-main.png -------------------------------------------------------------------------------- /po/ca/docs/skanlite/choose-scanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/ca/docs/skanlite/choose-scanner.png -------------------------------------------------------------------------------- /po/ca/docs/skanlite/final-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/ca/docs/skanlite/final-button.png -------------------------------------------------------------------------------- /po/ca/docs/skanlite/main-window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/ca/docs/skanlite/main-window.png -------------------------------------------------------------------------------- /po/ca/docs/skanlite/no-scanner-found.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/ca/docs/skanlite/no-scanner-found.png -------------------------------------------------------------------------------- /po/ca/docs/skanlite/other-options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/ca/docs/skanlite/other-options.png -------------------------------------------------------------------------------- /po/ca/docs/skanlite/preview-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/ca/docs/skanlite/preview-button.png -------------------------------------------------------------------------------- /po/ca/docs/skanlite/scanning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/ca/docs/skanlite/scanning.png -------------------------------------------------------------------------------- /po/ca/docs/skanlite/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/ca/docs/skanlite/settings.png -------------------------------------------------------------------------------- /po/ca/docs/skanlite/zoom-to-fit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/ca/docs/skanlite/zoom-to-fit.png -------------------------------------------------------------------------------- /po/de/docs/skanlite/buttons-main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/de/docs/skanlite/buttons-main.png -------------------------------------------------------------------------------- /po/de/docs/skanlite/final-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/de/docs/skanlite/final-button.png -------------------------------------------------------------------------------- /po/de/docs/skanlite/main-window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/de/docs/skanlite/main-window.png -------------------------------------------------------------------------------- /po/de/docs/skanlite/no-scanner-found.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/de/docs/skanlite/no-scanner-found.png -------------------------------------------------------------------------------- /po/de/docs/skanlite/other-options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/de/docs/skanlite/other-options.png -------------------------------------------------------------------------------- /po/de/docs/skanlite/preview-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/de/docs/skanlite/preview-button.png -------------------------------------------------------------------------------- /po/de/docs/skanlite/zoom-to-fit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/de/docs/skanlite/zoom-to-fit.png -------------------------------------------------------------------------------- /po/he/skanlite.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024 This file is copyright: 2 | # This file is distributed under the same license as the skanlite package. 3 | # 4 | # SPDX-FileCopyrightText: 2024 Yaron Shahrabani 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: skanlite\n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2024-10-12 00:38+0000\n" 10 | "PO-Revision-Date: 2024-09-12 11:17+0300\n" 11 | "Last-Translator: Yaron Shahrabani \n" 12 | "Language-Team: צוות התרגום של KDE ישראל\n" 13 | "Language: he\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " 18 | "n % 10 == 0) ? 2 : 3));\n" 19 | "X-Generator: Lokalize 24.05.2\n" 20 | 21 | #: ImageViewer.cpp:45 22 | #, kde-format 23 | msgid "Zoom In" 24 | msgstr "התקרבות" 25 | 26 | #: ImageViewer.cpp:48 27 | #, kde-format 28 | msgid "Zoom Out" 29 | msgstr "התרחקות" 30 | 31 | #: ImageViewer.cpp:51 32 | #, kde-format 33 | msgid "Zoom to Actual size" 34 | msgstr "תקריב לגודל בפועל" 35 | 36 | #: ImageViewer.cpp:54 37 | #, kde-format 38 | msgid "Zoom to Fit" 39 | msgstr "תקריב לפי גודל המסך" 40 | 41 | #: main.cpp:30 skanlite.cpp:762 42 | #, kde-format 43 | msgid "Skanlite" 44 | msgstr "Skanlite" 45 | 46 | #: main.cpp:32 47 | #, kde-format 48 | msgid "Scanning application by KDE based on libksane." 49 | msgstr "יישום סריקה מבית KDE על בסיס libksane." 50 | 51 | #: main.cpp:34 52 | #, kde-format 53 | msgid "(C) 2008-2020 Kåre Särs" 54 | msgstr "(C) 2008‏-2020 קורה סיירס" 55 | 56 | #: main.cpp:39 57 | #, kde-format 58 | msgid "Kåre Särs" 59 | msgstr "קורה סיירס" 60 | 61 | #: main.cpp:39 62 | #, kde-format 63 | msgid "developer" 64 | msgstr "מפתח" 65 | 66 | #: main.cpp:41 67 | #, kde-format 68 | msgid "Gregor Mi" 69 | msgstr "גרגור מי" 70 | 71 | #: main.cpp:41 main.cpp:43 72 | #, kde-format 73 | msgid "contributor" 74 | msgstr "תורם" 75 | 76 | #: main.cpp:43 77 | #, kde-format 78 | msgid "Arseniy Lartsev" 79 | msgstr "ארסני לארטסב" 80 | 81 | #: main.cpp:45 82 | #, kde-format 83 | msgid "Gilles Caulier" 84 | msgstr "ז׳יל קולייה" 85 | 86 | #: main.cpp:45 main.cpp:49 87 | #, kde-format 88 | msgid "Importing libksane to extragear" 89 | msgstr "ייבא מ־libksane ל־extragera" 90 | 91 | #: main.cpp:47 92 | #, kde-format 93 | msgid "Anne-Marie Mahfouf" 94 | msgstr "אן־מרי מחפוף" 95 | 96 | #: main.cpp:47 97 | #, kde-format 98 | msgid "Writing the user manual" 99 | msgstr "כתיבת המדריך למשתמש" 100 | 101 | #: main.cpp:49 102 | #, kde-format 103 | msgid "Laurent Montel" 104 | msgstr "לורנט מונטל" 105 | 106 | #: main.cpp:51 107 | #, kde-format 108 | msgid "Chusslove Illich" 109 | msgstr "צ׳אסלאב איליץ׳" 110 | 111 | #: main.cpp:51 main.cpp:53 112 | #, kde-format 113 | msgid "Help with translations" 114 | msgstr "עזרה עם תרגומים" 115 | 116 | #: main.cpp:53 117 | #, kde-format 118 | msgid "Albert Astals Cid" 119 | msgstr "אלברט אסטלס סיד" 120 | 121 | #: main.cpp:56 122 | #, kde-format 123 | msgctxt "NAME OF TRANSLATORS" 124 | msgid "Your names" 125 | msgstr "צוות התרגום של KDE ישראל" 126 | 127 | #: main.cpp:56 128 | #, kde-format 129 | msgctxt "EMAIL OF TRANSLATORS" 130 | msgid "Your emails" 131 | msgstr "kde-l10n-he@kde.org" 132 | 133 | #: main.cpp:66 134 | #, kde-format 135 | msgid "Sane scanner device name. Use 'test' for test device." 136 | msgstr "שם התקן סורק Sane. יש להשתמש ב־‚test’ להתקן בדיקה." 137 | 138 | #: main.cpp:67 139 | #, kde-format 140 | msgid "device" 141 | msgstr "התקן" 142 | 143 | #. i18n: ectx: property (windowTitle), widget (QDialog, SaveLocation) 144 | #: SaveLocation.ui:20 145 | #, kde-format 146 | msgid "Save Location" 147 | msgstr "מקום שמירה" 148 | 149 | #. i18n: ectx: property (text), widget (QLabel, locationLabel) 150 | #. i18n: ectx: property (text), widget (QLabel, label) 151 | #: SaveLocation.ui:28 settings.ui:80 152 | #, kde-format 153 | msgid "Save Location:" 154 | msgstr "מקום שמירה:" 155 | 156 | #. i18n: ectx: property (text), widget (QLabel, namePrefixLabel) 157 | #: SaveLocation.ui:55 158 | #, kde-format 159 | msgid "Name & Format:" 160 | msgstr "שם ותבנית:" 161 | 162 | #. i18n: ectx: property (text), widget (QLabel, numberLabel) 163 | #. i18n: ectx: property (text), widget (QLabel, label_3) 164 | #: SaveLocation.ui:74 settings.ui:112 165 | #, kde-format 166 | msgid "####." 167 | msgstr "####." 168 | 169 | #. i18n: ectx: property (text), widget (QLabel, numStartFromLabel) 170 | #: SaveLocation.ui:86 171 | #, kde-format 172 | msgid "Start numbering from:" 173 | msgstr "התחלת מספור מ־:" 174 | 175 | #. i18n: ectx: property (text), widget (QLabel, u_resultLabel) 176 | #: SaveLocation.ui:123 177 | #, kde-format 178 | msgid "Example:" 179 | msgstr "דוגמה:" 180 | 181 | #. i18n: ectx: property (text), widget (QLabel, u_resultValue) 182 | #: SaveLocation.ui:130 183 | #, kde-format 184 | msgid "/home/joe/example.png" 185 | msgstr "/home/yossi/dugma.png" 186 | 187 | #. i18n: ectx: property (windowTitle), widget (QWidget, SkanliteSettings) 188 | #: settings.ui:14 189 | #, kde-format 190 | msgid "Settings" 191 | msgstr "הגדרות" 192 | 193 | #. i18n: ectx: property (title), widget (QGroupBox, groupBox) 194 | #: settings.ui:20 195 | #, kde-format 196 | msgid "Image saving" 197 | msgstr "שמירת תמונות" 198 | 199 | #. i18n: ectx: property (text), widget (QLabel, label_7) 200 | #: settings.ui:26 201 | #, kde-format 202 | msgid "Preview before saving:" 203 | msgstr "תצוגה מקדימה לפני השמירה:" 204 | 205 | #. i18n: ectx: property (text), widget (QLabel, label_6) 206 | #: settings.ui:46 207 | #, kde-format 208 | msgid "Save mode:" 209 | msgstr "מצב שמירה:" 210 | 211 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 212 | #: settings.ui:60 213 | #, kde-format 214 | msgid "Open the save dialog for every image" 215 | msgstr "פתיחת חלונית השמירה עבור כל תמונה" 216 | 217 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 218 | #: settings.ui:65 219 | #, kde-format 220 | msgid "Open the save dialog for the first image only" 221 | msgstr "פתיחת חלונית השמירה עבור התמונה הראשונה בלבד" 222 | 223 | #. i18n: ectx: property (text), widget (QLabel, label_2) 224 | #: settings.ui:90 225 | #, kde-format 226 | msgid "Name && Format:" 227 | msgstr "שם ותבנית:" 228 | 229 | #. i18n: ectx: property (text), widget (QLineEdit, imgPrefix) 230 | #: settings.ui:105 231 | #, kde-format 232 | msgid "Image" 233 | msgstr "תמונה" 234 | 235 | #. i18n: ectx: property (text), widget (QLabel, label_4) 236 | #: settings.ui:124 237 | #, kde-format 238 | msgid "Specify save quality:" 239 | msgstr "ציון איכות שמירה:" 240 | 241 | #. i18n: ectx: property (suffix), widget (QSpinBox, imgQuality) 242 | #: settings.ui:192 243 | #, no-c-format, kde-format 244 | msgid "%" 245 | msgstr "%" 246 | 247 | #. i18n: ectx: property (title), widget (QGroupBox, generalGB) 248 | #: settings.ui:233 249 | #, kde-format 250 | msgid "General" 251 | msgstr "כללי" 252 | 253 | #. i18n: ectx: property (text), widget (QCheckBox, setPreviewDPI) 254 | #: settings.ui:239 255 | #, kde-format 256 | msgid "Set preview resolution (DPI)" 257 | msgstr "הגדרת רזולוציית תצוגה מקדימה (נק׳ לאינטש/DPI)" 258 | 259 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 260 | #: settings.ui:253 261 | #, kde-format 262 | msgid "50" 263 | msgstr "50" 264 | 265 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 266 | #: settings.ui:258 267 | #, kde-format 268 | msgid "75" 269 | msgstr "75" 270 | 271 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 272 | #: settings.ui:263 273 | #, kde-format 274 | msgid "100" 275 | msgstr "100" 276 | 277 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 278 | #: settings.ui:268 279 | #, kde-format 280 | msgid "150" 281 | msgstr "150" 282 | 283 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 284 | #: settings.ui:273 285 | #, kde-format 286 | msgid "300" 287 | msgstr "300" 288 | 289 | #. i18n: ectx: property (text), widget (QCheckBox, u_disableSelections) 290 | #: settings.ui:286 291 | #, kde-format 292 | msgid "Disable automatic selections" 293 | msgstr "כיבוי בחירות אוטומטיות" 294 | 295 | #. i18n: ectx: property (text), widget (QPushButton, revertOptions) 296 | #: settings.ui:319 297 | #, kde-format 298 | msgid "Revert scanner options to default values" 299 | msgstr "החזרת אפשרויות הסורק לערכי ברירות המחדל" 300 | 301 | #: skanlite.cpp:64 302 | #, kde-format 303 | msgid "Configure..." 304 | msgstr "הגדרה…" 305 | 306 | #: skanlite.cpp:68 307 | #, kde-format 308 | msgid "Reselect scanner device" 309 | msgstr "בחירת התקן סריקה מחדש" 310 | 311 | #: skanlite.cpp:92 312 | #, kde-format 313 | msgid "Saving: %v kB" 314 | msgstr "שמירה: %v ק״ב" 315 | 316 | #: skanlite.cpp:188 317 | #, kde-format 318 | msgid "Skanlite Settings" 319 | msgstr "הגדרות Skanlite" 320 | 321 | #: skanlite.cpp:208 skanlite.cpp:304 322 | #, kde-format 323 | msgid "Opening the selected scanner failed." 324 | msgstr "פתיחת הסורק הנבחר נכשלה." 325 | 326 | #: skanlite.cpp:318 327 | #, kde-format 328 | msgid "%1: %2" 329 | msgstr "%1: %2" 330 | 331 | #: skanlite.cpp:337 332 | #, kde-format 333 | msgctxt "prefix for auto naming" 334 | msgid "Image-" 335 | msgstr "תמונה-" 336 | 337 | #: skanlite.cpp:472 338 | #, kde-format 339 | msgid "" 340 | "The image will be saved in the PNG format, as the selected image type does " 341 | "not support saving 16 bit color images." 342 | msgstr "" 343 | "התמונה תישמר בתצורת PNG, כיוון שסוג התמונה הנבחר לא תומך בשמירת תמונות של 16 " 344 | "סיביות." 345 | 346 | #: skanlite.cpp:494 347 | #, kde-format 348 | msgid "New Image File Name" 349 | msgstr "שם קובץ לתמונה החדשה" 350 | 351 | #: skanlite.cpp:594 352 | #, kde-format 353 | msgid "Failed to save image" 354 | msgstr "שמירת התמונה נכשלה" 355 | 356 | #: skanlite.cpp:607 357 | #, kde-format 358 | msgid "Failed to upload image" 359 | msgstr "העלאת התמונה נכשלה" 360 | 361 | #: skanlite.cpp:758 362 | #, kde-format 363 | msgctxt "@title:window %1 = scanner maker, %2 = scanner model" 364 | msgid "%1 %2 - Skanlite" 365 | msgstr "%1 %2 - Skanlite" 366 | 367 | #: skanlite.cpp:760 368 | #, kde-format 369 | msgctxt "@title:window %1 = scanner device" 370 | msgid "%1 - Skanlite" 371 | msgstr "%1 - Skanlite" 372 | -------------------------------------------------------------------------------- /po/hi/skanlite.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This file is copyright: 2 | # This file is distributed under the same license as the skanlite package. 3 | # 4 | # Raghavendra Kamath , 2021, 2022. 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: skanlite\n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2024-10-12 00:38+0000\n" 10 | "PO-Revision-Date: 2022-02-17 23:01+0530\n" 11 | "Last-Translator: Raghavendra Kamath \n" 12 | "Language-Team: Hindi \n" 13 | "Language: hi\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=2; plural=(n!=1);\n" 18 | "X-Generator: Lokalize 21.12.2\n" 19 | 20 | #: ImageViewer.cpp:45 21 | #, kde-format 22 | msgid "Zoom In" 23 | msgstr "ज़ूम इन" 24 | 25 | #: ImageViewer.cpp:48 26 | #, kde-format 27 | msgid "Zoom Out" 28 | msgstr "ज़ूम आउट" 29 | 30 | #: ImageViewer.cpp:51 31 | #, kde-format 32 | msgid "Zoom to Actual size" 33 | msgstr "वास्तविक आकार पर ज़ूम करें" 34 | 35 | #: ImageViewer.cpp:54 36 | #, kde-format 37 | msgid "Zoom to Fit" 38 | msgstr "आकार के अनुरूप ज़ूम" 39 | 40 | #: main.cpp:30 skanlite.cpp:762 41 | #, kde-format 42 | msgid "Skanlite" 43 | msgstr "स्कैनलाइट" 44 | 45 | #: main.cpp:32 46 | #, kde-format 47 | msgid "Scanning application by KDE based on libksane." 48 | msgstr "केडीई द्वारा लिबकेसेन पर आधारित छवि स्कैन करने का अनुप्रयोग।" 49 | 50 | #: main.cpp:34 51 | #, kde-format 52 | msgid "(C) 2008-2020 Kåre Särs" 53 | msgstr "(C) २००८-२०२० कारे सार्स" 54 | 55 | #: main.cpp:39 56 | #, kde-format 57 | msgid "Kåre Särs" 58 | msgstr "कारे सार्स" 59 | 60 | #: main.cpp:39 61 | #, kde-format 62 | msgid "developer" 63 | msgstr "विकासकर्ता" 64 | 65 | #: main.cpp:41 66 | #, kde-format 67 | msgid "Gregor Mi" 68 | msgstr "ग्रेगर मी" 69 | 70 | #: main.cpp:41 main.cpp:43 71 | #, kde-format 72 | msgid "contributor" 73 | msgstr "सहयोगी" 74 | 75 | #: main.cpp:43 76 | #, kde-format 77 | msgid "Arseniy Lartsev" 78 | msgstr "अरसेनिय लार्तसेव" 79 | 80 | #: main.cpp:45 81 | #, kde-format 82 | msgid "Gilles Caulier" 83 | msgstr "गिल्स काउलिएर" 84 | 85 | #: main.cpp:45 main.cpp:49 86 | #, kde-format 87 | msgid "Importing libksane to extragear" 88 | msgstr "एक्स्ट्रा गियर में लिबकेसेन को आयात करना" 89 | 90 | #: main.cpp:47 91 | #, kde-format 92 | msgid "Anne-Marie Mahfouf" 93 | msgstr "एन्ने मैरी मेहफोफ" 94 | 95 | #: main.cpp:47 96 | #, kde-format 97 | msgid "Writing the user manual" 98 | msgstr "सहाय्य पुस्तिका लिखना" 99 | 100 | #: main.cpp:49 101 | #, kde-format 102 | msgid "Laurent Montel" 103 | msgstr "लारेंट मोंटेल" 104 | 105 | #: main.cpp:51 106 | #, kde-format 107 | msgid "Chusslove Illich" 108 | msgstr "चुसलोव इलिच" 109 | 110 | #: main.cpp:51 main.cpp:53 111 | #, kde-format 112 | msgid "Help with translations" 113 | msgstr "अनुवादों में सहायक" 114 | 115 | #: main.cpp:53 116 | #, kde-format 117 | msgid "Albert Astals Cid" 118 | msgstr "अलबर्ट एस्टल्स सिड" 119 | 120 | #: main.cpp:56 121 | #, kde-format 122 | msgctxt "NAME OF TRANSLATORS" 123 | msgid "Your names" 124 | msgstr "राघवेंद्र कामत" 125 | 126 | #: main.cpp:56 127 | #, kde-format 128 | msgctxt "EMAIL OF TRANSLATORS" 129 | msgid "Your emails" 130 | msgstr "raghu@raghukamath.com" 131 | 132 | #: main.cpp:66 133 | #, kde-format 134 | msgid "Sane scanner device name. Use 'test' for test device." 135 | msgstr "सेन स्कैन उपकरण का नाम। परीक्षण उपकरण के लिए 'test' का प्रयोग करें।" 136 | 137 | #: main.cpp:67 138 | #, kde-format 139 | msgid "device" 140 | msgstr "उपकरण" 141 | 142 | #. i18n: ectx: property (windowTitle), widget (QDialog, SaveLocation) 143 | #: SaveLocation.ui:20 144 | #, kde-format 145 | msgid "Save Location" 146 | msgstr "सहेजने के लिए स्थान" 147 | 148 | #. i18n: ectx: property (text), widget (QLabel, locationLabel) 149 | #. i18n: ectx: property (text), widget (QLabel, label) 150 | #: SaveLocation.ui:28 settings.ui:80 151 | #, kde-format 152 | msgid "Save Location:" 153 | msgstr "सहेजने के लिए स्थान :" 154 | 155 | #. i18n: ectx: property (text), widget (QLabel, namePrefixLabel) 156 | #: SaveLocation.ui:55 157 | #, kde-format 158 | msgid "Name & Format:" 159 | msgstr "नाम का प्रारूप :" 160 | 161 | #. i18n: ectx: property (text), widget (QLabel, numberLabel) 162 | #. i18n: ectx: property (text), widget (QLabel, label_3) 163 | #: SaveLocation.ui:74 settings.ui:112 164 | #, kde-format 165 | msgid "####." 166 | msgstr "####." 167 | 168 | #. i18n: ectx: property (text), widget (QLabel, numStartFromLabel) 169 | #: SaveLocation.ui:86 170 | #, kde-format 171 | msgid "Start numbering from:" 172 | msgstr "इस से क्रमांकन प्रारंभ करें :" 173 | 174 | #. i18n: ectx: property (text), widget (QLabel, u_resultLabel) 175 | #: SaveLocation.ui:123 176 | #, kde-format 177 | msgid "Example:" 178 | msgstr "उदाहरण :" 179 | 180 | #. i18n: ectx: property (text), widget (QLabel, u_resultValue) 181 | #: SaveLocation.ui:130 182 | #, kde-format 183 | msgid "/home/joe/example.png" 184 | msgstr "/धर/नाम/उदाहरण.png" 185 | 186 | #. i18n: ectx: property (windowTitle), widget (QWidget, SkanliteSettings) 187 | #: settings.ui:14 188 | #, kde-format 189 | msgid "Settings" 190 | msgstr "सेटिंग्स" 191 | 192 | #. i18n: ectx: property (title), widget (QGroupBox, groupBox) 193 | #: settings.ui:20 194 | #, kde-format 195 | msgid "Image saving" 196 | msgstr "छवि सहेजना" 197 | 198 | #. i18n: ectx: property (text), widget (QLabel, label_7) 199 | #: settings.ui:26 200 | #, kde-format 201 | msgid "Preview before saving:" 202 | msgstr "सहेजने से पहले पूर्वावलोकन :" 203 | 204 | #. i18n: ectx: property (text), widget (QLabel, label_6) 205 | #: settings.ui:46 206 | #, kde-format 207 | msgid "Save mode:" 208 | msgstr "सहेजने की रीति :" 209 | 210 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 211 | #: settings.ui:60 212 | #, kde-format 213 | msgid "Open the save dialog for every image" 214 | msgstr "प्रत्येक छवि के लिए सहेजने का संवाद खोलें" 215 | 216 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 217 | #: settings.ui:65 218 | #, kde-format 219 | msgid "Open the save dialog for the first image only" 220 | msgstr "केवल पहली छवि के लिए सहेजने का संवाद खोलें" 221 | 222 | #. i18n: ectx: property (text), widget (QLabel, label_2) 223 | #: settings.ui:90 224 | #, kde-format 225 | msgid "Name && Format:" 226 | msgstr "नाम का प्रारूप (&&):" 227 | 228 | #. i18n: ectx: property (text), widget (QLineEdit, imgPrefix) 229 | #: settings.ui:105 230 | #, kde-format 231 | msgid "Image" 232 | msgstr "छवि" 233 | 234 | #. i18n: ectx: property (text), widget (QLabel, label_4) 235 | #: settings.ui:124 236 | #, kde-format 237 | msgid "Specify save quality:" 238 | msgstr "सहेजने की गुणवत्ता निर्दिष्ट करें" 239 | 240 | #. i18n: ectx: property (suffix), widget (QSpinBox, imgQuality) 241 | #: settings.ui:192 242 | #, no-c-format, kde-format 243 | msgid "%" 244 | msgstr "%" 245 | 246 | #. i18n: ectx: property (title), widget (QGroupBox, generalGB) 247 | #: settings.ui:233 248 | #, kde-format 249 | msgid "General" 250 | msgstr "साधारण" 251 | 252 | #. i18n: ectx: property (text), widget (QCheckBox, setPreviewDPI) 253 | #: settings.ui:239 254 | #, kde-format 255 | msgid "Set preview resolution (DPI)" 256 | msgstr "पूर्वावलोकन का रेज़ोल्यूशन (डीपीआई) नियत करें" 257 | 258 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 259 | #: settings.ui:253 260 | #, kde-format 261 | msgid "50" 262 | msgstr "५०" 263 | 264 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 265 | #: settings.ui:258 266 | #, kde-format 267 | msgid "75" 268 | msgstr "७५" 269 | 270 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 271 | #: settings.ui:263 272 | #, kde-format 273 | msgid "100" 274 | msgstr "१००" 275 | 276 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 277 | #: settings.ui:268 278 | #, kde-format 279 | msgid "150" 280 | msgstr "१५०" 281 | 282 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 283 | #: settings.ui:273 284 | #, kde-format 285 | msgid "300" 286 | msgstr "३००" 287 | 288 | #. i18n: ectx: property (text), widget (QCheckBox, u_disableSelections) 289 | #: settings.ui:286 290 | #, kde-format 291 | msgid "Disable automatic selections" 292 | msgstr "स्वचलित चयनों को अक्षम करें" 293 | 294 | #. i18n: ectx: property (text), widget (QPushButton, revertOptions) 295 | #: settings.ui:319 296 | #, kde-format 297 | msgid "Revert scanner options to default values" 298 | msgstr "स्कैनर विकल्पों को पूर्वन्यस्त मानों पर वापस लाएं" 299 | 300 | #: skanlite.cpp:64 301 | #, kde-format 302 | msgid "Configure..." 303 | msgstr "विन्यस्त करें..." 304 | 305 | #: skanlite.cpp:68 306 | #, kde-format 307 | msgid "Reselect scanner device" 308 | msgstr "स्कैनर उपकरण को फिर से चुनें" 309 | 310 | #: skanlite.cpp:92 311 | #, kde-format 312 | msgid "Saving: %v kB" 313 | msgstr "सहेजा जा रहा है : %v केबी" 314 | 315 | #: skanlite.cpp:188 316 | #, kde-format 317 | msgid "Skanlite Settings" 318 | msgstr "स्कैनलाइट विन्यास" 319 | 320 | #: skanlite.cpp:208 skanlite.cpp:304 321 | #, kde-format 322 | msgid "Opening the selected scanner failed." 323 | msgstr "चयनित स्कैनर को खोलना विफल रहा।" 324 | 325 | #: skanlite.cpp:318 326 | #, kde-format 327 | msgid "%1: %2" 328 | msgstr "%1: %2" 329 | 330 | #: skanlite.cpp:337 331 | #, kde-format 332 | msgctxt "prefix for auto naming" 333 | msgid "Image-" 334 | msgstr "छवि-" 335 | 336 | #: skanlite.cpp:472 337 | #, kde-format 338 | msgid "" 339 | "The image will be saved in the PNG format, as the selected image type does " 340 | "not support saving 16 bit color images." 341 | msgstr "" 342 | "छवि पीएनजी प्रारूप में सहेजी जाएगी, क्योंकि चयनित छवि का प्रकार १६ बिट रंग की छवियों " 343 | "को सहेजने में असमर्थ है।" 344 | 345 | #: skanlite.cpp:494 346 | #, kde-format 347 | msgid "New Image File Name" 348 | msgstr "नया छवि फ़ाइल नाम" 349 | 350 | #: skanlite.cpp:594 351 | #, kde-format 352 | msgid "Failed to save image" 353 | msgstr "छवि सहेजनें में असफल" 354 | 355 | #: skanlite.cpp:607 356 | #, kde-format 357 | msgid "Failed to upload image" 358 | msgstr "छवि को अपलोड करने में असफल" 359 | 360 | #: skanlite.cpp:758 361 | #, kde-format 362 | msgctxt "@title:window %1 = scanner maker, %2 = scanner model" 363 | msgid "%1 %2 - Skanlite" 364 | msgstr "%1 %2 - स्कैनलाइट" 365 | 366 | #: skanlite.cpp:760 367 | #, kde-format 368 | msgctxt "@title:window %1 = scanner device" 369 | msgid "%1 - Skanlite" 370 | msgstr "%1 - स्कैनलाइट" 371 | 372 | #~ msgid "About" 373 | #~ msgstr "परिचय" 374 | -------------------------------------------------------------------------------- /po/hr/skanlite.po: -------------------------------------------------------------------------------- 1 | # Translation of skanlite to Croatian 2 | # 3 | # Andrej Dundovic , 2010. 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: \n" 7 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 8 | "POT-Creation-Date: 2024-10-12 00:38+0000\n" 9 | "PO-Revision-Date: 2010-01-24 16:27+0100\n" 10 | "Last-Translator: Andrej Dundovic \n" 11 | "Language-Team: Croatian \n" 12 | "Language: hr\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "X-Generator: Lokalize 1.0\n" 17 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" 18 | "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" 19 | "X-Environment: kde\n" 20 | "X-Accelerator-Marker: &\n" 21 | "X-Text-Markup: kde4\n" 22 | 23 | #: ImageViewer.cpp:45 24 | #, kde-format 25 | msgid "Zoom In" 26 | msgstr "" 27 | 28 | #: ImageViewer.cpp:48 29 | #, kde-format 30 | msgid "Zoom Out" 31 | msgstr "" 32 | 33 | #: ImageViewer.cpp:51 34 | #, kde-format 35 | msgid "Zoom to Actual size" 36 | msgstr "" 37 | 38 | #: ImageViewer.cpp:54 39 | #, kde-format 40 | msgid "Zoom to Fit" 41 | msgstr "" 42 | 43 | #: main.cpp:30 skanlite.cpp:762 44 | #, kde-format 45 | msgid "Skanlite" 46 | msgstr "Skanlite" 47 | 48 | #: main.cpp:32 49 | #, kde-format 50 | msgid "Scanning application by KDE based on libksane." 51 | msgstr "" 52 | 53 | #: main.cpp:34 54 | #, fuzzy, kde-format 55 | #| msgid "(C) 2008 Kåre Särs" 56 | msgid "(C) 2008-2020 Kåre Särs" 57 | msgstr "© 2008 Kåre Särs" 58 | 59 | #: main.cpp:39 60 | #, kde-format 61 | msgid "Kåre Särs" 62 | msgstr "Kåre Särs" 63 | 64 | #: main.cpp:39 65 | #, kde-format 66 | msgid "developer" 67 | msgstr "" 68 | 69 | #: main.cpp:41 70 | #, kde-format 71 | msgid "Gregor Mi" 72 | msgstr "" 73 | 74 | #: main.cpp:41 main.cpp:43 75 | #, kde-format 76 | msgid "contributor" 77 | msgstr "" 78 | 79 | #: main.cpp:43 80 | #, kde-format 81 | msgid "Arseniy Lartsev" 82 | msgstr "" 83 | 84 | #: main.cpp:45 85 | #, kde-format 86 | msgid "Gilles Caulier" 87 | msgstr "" 88 | 89 | #: main.cpp:45 main.cpp:49 90 | #, kde-format 91 | msgid "Importing libksane to extragear" 92 | msgstr "" 93 | 94 | #: main.cpp:47 95 | #, kde-format 96 | msgid "Anne-Marie Mahfouf" 97 | msgstr "" 98 | 99 | #: main.cpp:47 100 | #, kde-format 101 | msgid "Writing the user manual" 102 | msgstr "" 103 | 104 | #: main.cpp:49 105 | #, kde-format 106 | msgid "Laurent Montel" 107 | msgstr "" 108 | 109 | #: main.cpp:51 110 | #, kde-format 111 | msgid "Chusslove Illich" 112 | msgstr "" 113 | 114 | #: main.cpp:51 main.cpp:53 115 | #, kde-format 116 | msgid "Help with translations" 117 | msgstr "" 118 | 119 | #: main.cpp:53 120 | #, kde-format 121 | msgid "Albert Astals Cid" 122 | msgstr "" 123 | 124 | #: main.cpp:56 125 | #, kde-format 126 | msgctxt "NAME OF TRANSLATORS" 127 | msgid "Your names" 128 | msgstr "" 129 | 130 | #: main.cpp:56 131 | #, kde-format 132 | msgctxt "EMAIL OF TRANSLATORS" 133 | msgid "Your emails" 134 | msgstr "" 135 | 136 | #: main.cpp:66 137 | #, kde-format 138 | msgid "Sane scanner device name. Use 'test' for test device." 139 | msgstr "" 140 | 141 | #: main.cpp:67 142 | #, kde-format 143 | msgid "device" 144 | msgstr "" 145 | 146 | #. i18n: ectx: property (windowTitle), widget (QDialog, SaveLocation) 147 | #: SaveLocation.ui:20 148 | #, kde-format 149 | msgid "Save Location" 150 | msgstr "" 151 | 152 | #. i18n: ectx: property (text), widget (QLabel, locationLabel) 153 | #. i18n: ectx: property (text), widget (QLabel, label) 154 | #: SaveLocation.ui:28 settings.ui:80 155 | #, kde-format 156 | msgid "Save Location:" 157 | msgstr "" 158 | 159 | #. i18n: ectx: property (text), widget (QLabel, namePrefixLabel) 160 | #: SaveLocation.ui:55 161 | #, kde-format 162 | msgid "Name & Format:" 163 | msgstr "" 164 | 165 | #. i18n: ectx: property (text), widget (QLabel, numberLabel) 166 | #. i18n: ectx: property (text), widget (QLabel, label_3) 167 | #: SaveLocation.ui:74 settings.ui:112 168 | #, kde-format 169 | msgid "####." 170 | msgstr "" 171 | 172 | #. i18n: ectx: property (text), widget (QLabel, numStartFromLabel) 173 | #: SaveLocation.ui:86 174 | #, kde-format 175 | msgid "Start numbering from:" 176 | msgstr "" 177 | 178 | #. i18n: ectx: property (text), widget (QLabel, u_resultLabel) 179 | #: SaveLocation.ui:123 180 | #, kde-format 181 | msgid "Example:" 182 | msgstr "" 183 | 184 | #. i18n: ectx: property (text), widget (QLabel, u_resultValue) 185 | #: SaveLocation.ui:130 186 | #, kde-format 187 | msgid "/home/joe/example.png" 188 | msgstr "" 189 | 190 | #. i18n: ectx: property (windowTitle), widget (QWidget, SkanliteSettings) 191 | #: settings.ui:14 192 | #, kde-format 193 | msgid "Settings" 194 | msgstr "" 195 | 196 | #. i18n: ectx: property (title), widget (QGroupBox, groupBox) 197 | #: settings.ui:20 198 | #, kde-format 199 | msgid "Image saving" 200 | msgstr "" 201 | 202 | #. i18n: ectx: property (text), widget (QLabel, label_7) 203 | #: settings.ui:26 204 | #, kde-format 205 | msgid "Preview before saving:" 206 | msgstr "" 207 | 208 | #. i18n: ectx: property (text), widget (QLabel, label_6) 209 | #: settings.ui:46 210 | #, kde-format 211 | msgid "Save mode:" 212 | msgstr "" 213 | 214 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 215 | #: settings.ui:60 216 | #, kde-format 217 | msgid "Open the save dialog for every image" 218 | msgstr "" 219 | 220 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 221 | #: settings.ui:65 222 | #, kde-format 223 | msgid "Open the save dialog for the first image only" 224 | msgstr "" 225 | 226 | #. i18n: ectx: property (text), widget (QLabel, label_2) 227 | #: settings.ui:90 228 | #, kde-format 229 | msgid "Name && Format:" 230 | msgstr "" 231 | 232 | #. i18n: ectx: property (text), widget (QLineEdit, imgPrefix) 233 | #: settings.ui:105 234 | #, kde-format 235 | msgid "Image" 236 | msgstr "" 237 | 238 | #. i18n: ectx: property (text), widget (QLabel, label_4) 239 | #: settings.ui:124 240 | #, kde-format 241 | msgid "Specify save quality:" 242 | msgstr "" 243 | 244 | #. i18n: ectx: property (suffix), widget (QSpinBox, imgQuality) 245 | #: settings.ui:192 246 | #, no-c-format, kde-format 247 | msgid "%" 248 | msgstr "" 249 | 250 | #. i18n: ectx: property (title), widget (QGroupBox, generalGB) 251 | #: settings.ui:233 252 | #, kde-format 253 | msgid "General" 254 | msgstr "" 255 | 256 | #. i18n: ectx: property (text), widget (QCheckBox, setPreviewDPI) 257 | #: settings.ui:239 258 | #, kde-format 259 | msgid "Set preview resolution (DPI)" 260 | msgstr "" 261 | 262 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 263 | #: settings.ui:253 264 | #, kde-format 265 | msgid "50" 266 | msgstr "" 267 | 268 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 269 | #: settings.ui:258 270 | #, kde-format 271 | msgid "75" 272 | msgstr "" 273 | 274 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 275 | #: settings.ui:263 276 | #, kde-format 277 | msgid "100" 278 | msgstr "" 279 | 280 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 281 | #: settings.ui:268 282 | #, kde-format 283 | msgid "150" 284 | msgstr "" 285 | 286 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 287 | #: settings.ui:273 288 | #, kde-format 289 | msgid "300" 290 | msgstr "" 291 | 292 | #. i18n: ectx: property (text), widget (QCheckBox, u_disableSelections) 293 | #: settings.ui:286 294 | #, kde-format 295 | msgid "Disable automatic selections" 296 | msgstr "" 297 | 298 | #. i18n: ectx: property (text), widget (QPushButton, revertOptions) 299 | #: settings.ui:319 300 | #, kde-format 301 | msgid "Revert scanner options to default values" 302 | msgstr "" 303 | 304 | #: skanlite.cpp:64 305 | #, kde-format 306 | msgid "Configure..." 307 | msgstr "" 308 | 309 | #: skanlite.cpp:68 310 | #, kde-format 311 | msgid "Reselect scanner device" 312 | msgstr "" 313 | 314 | #: skanlite.cpp:92 315 | #, kde-format 316 | msgid "Saving: %v kB" 317 | msgstr "" 318 | 319 | #: skanlite.cpp:188 320 | #, kde-format 321 | msgid "Skanlite Settings" 322 | msgstr "" 323 | 324 | #: skanlite.cpp:208 skanlite.cpp:304 325 | #, kde-format 326 | msgid "Opening the selected scanner failed." 327 | msgstr "" 328 | 329 | #: skanlite.cpp:318 330 | #, kde-format 331 | msgid "%1: %2" 332 | msgstr "" 333 | 334 | #: skanlite.cpp:337 335 | #, kde-format 336 | msgctxt "prefix for auto naming" 337 | msgid "Image-" 338 | msgstr "" 339 | 340 | #: skanlite.cpp:472 341 | #, kde-format 342 | msgid "" 343 | "The image will be saved in the PNG format, as the selected image type does " 344 | "not support saving 16 bit color images." 345 | msgstr "" 346 | 347 | #: skanlite.cpp:494 348 | #, kde-format 349 | msgid "New Image File Name" 350 | msgstr "" 351 | 352 | #: skanlite.cpp:594 353 | #, kde-format 354 | msgid "Failed to save image" 355 | msgstr "" 356 | 357 | #: skanlite.cpp:607 358 | #, kde-format 359 | msgid "Failed to upload image" 360 | msgstr "" 361 | 362 | #: skanlite.cpp:758 363 | #, fuzzy, kde-format 364 | #| msgid "Skanlite" 365 | msgctxt "@title:window %1 = scanner maker, %2 = scanner model" 366 | msgid "%1 %2 - Skanlite" 367 | msgstr "Skanlite" 368 | 369 | #: skanlite.cpp:760 370 | #, fuzzy, kde-format 371 | #| msgid "Skanlite" 372 | msgctxt "@title:window %1 = scanner device" 373 | msgid "%1 - Skanlite" 374 | msgstr "Skanlite" 375 | -------------------------------------------------------------------------------- /po/ie/skanlite.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR This file is copyright: 3 | # This file is distributed under the same license as the skanlite package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: skanlite\n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2024-10-12 00:38+0000\n" 11 | "PO-Revision-Date: 2022-11-01 10:50+0700\n" 12 | "Last-Translator: OIS \n" 13 | "Language-Team: Interlingue \n" 14 | "Language: ie\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | "X-Generator: Poedit 1.8.12\n" 20 | 21 | #: ImageViewer.cpp:45 22 | #, kde-format 23 | msgid "Zoom In" 24 | msgstr "Agrandar" 25 | 26 | #: ImageViewer.cpp:48 27 | #, kde-format 28 | msgid "Zoom Out" 29 | msgstr "Diminuer" 30 | 31 | #: ImageViewer.cpp:51 32 | #, kde-format 33 | msgid "Zoom to Actual size" 34 | msgstr "Adjustar al dimension real" 35 | 36 | #: ImageViewer.cpp:54 37 | #, kde-format 38 | msgid "Zoom to Fit" 39 | msgstr "Adjustar dimension" 40 | 41 | #: main.cpp:30 skanlite.cpp:762 42 | #, kde-format 43 | msgid "Skanlite" 44 | msgstr "Skanlite" 45 | 46 | #: main.cpp:32 47 | #, kde-format 48 | msgid "Scanning application by KDE based on libksane." 49 | msgstr "Un application de scannation por KDE basat sur libksane." 50 | 51 | #: main.cpp:34 52 | #, kde-format 53 | msgid "(C) 2008-2020 Kåre Särs" 54 | msgstr "(C) 2008-2020 Kåre Särs" 55 | 56 | #: main.cpp:39 57 | #, kde-format 58 | msgid "Kåre Särs" 59 | msgstr "Kåre Särs" 60 | 61 | #: main.cpp:39 62 | #, kde-format 63 | msgid "developer" 64 | msgstr "developator" 65 | 66 | #: main.cpp:41 67 | #, kde-format 68 | msgid "Gregor Mi" 69 | msgstr "Gregor Mi" 70 | 71 | #: main.cpp:41 main.cpp:43 72 | #, kde-format 73 | msgid "contributor" 74 | msgstr "contributor" 75 | 76 | #: main.cpp:43 77 | #, kde-format 78 | msgid "Arseniy Lartsev" 79 | msgstr "Arseniy Lartsev" 80 | 81 | #: main.cpp:45 82 | #, kde-format 83 | msgid "Gilles Caulier" 84 | msgstr "Gilles Caulier" 85 | 86 | #: main.cpp:45 main.cpp:49 87 | #, kde-format 88 | msgid "Importing libksane to extragear" 89 | msgstr "Importation de libksane a extragear" 90 | 91 | #: main.cpp:47 92 | #, kde-format 93 | msgid "Anne-Marie Mahfouf" 94 | msgstr "Anne-Marie Mahfouf" 95 | 96 | #: main.cpp:47 97 | #, kde-format 98 | msgid "Writing the user manual" 99 | msgstr "Scrition del manuale de usator" 100 | 101 | #: main.cpp:49 102 | #, kde-format 103 | msgid "Laurent Montel" 104 | msgstr "Laurent Montel" 105 | 106 | #: main.cpp:51 107 | #, kde-format 108 | msgid "Chusslove Illich" 109 | msgstr "Chusslove Illich" 110 | 111 | #: main.cpp:51 main.cpp:53 112 | #, kde-format 113 | msgid "Help with translations" 114 | msgstr "Auxilie con traductiones" 115 | 116 | #: main.cpp:53 117 | #, kde-format 118 | msgid "Albert Astals Cid" 119 | msgstr "Albert Astals Cid" 120 | 121 | #: main.cpp:56 122 | #, kde-format 123 | msgctxt "NAME OF TRANSLATORS" 124 | msgid "Your names" 125 | msgstr "OIS" 126 | 127 | #: main.cpp:56 128 | #, kde-format 129 | msgctxt "EMAIL OF TRANSLATORS" 130 | msgid "Your emails" 131 | msgstr "mistresssilvara@hotmail.com" 132 | 133 | #: main.cpp:66 134 | #, kde-format 135 | msgid "Sane scanner device name. Use 'test' for test device." 136 | msgstr "Nómine de scannator de sane. Usa «test» por un aparate de prova." 137 | 138 | #: main.cpp:67 139 | #, kde-format 140 | msgid "device" 141 | msgstr "aparate" 142 | 143 | #. i18n: ectx: property (windowTitle), widget (QDialog, SaveLocation) 144 | #: SaveLocation.ui:20 145 | #, kde-format 146 | msgid "Save Location" 147 | msgstr "Gardar a un loc" 148 | 149 | #. i18n: ectx: property (text), widget (QLabel, locationLabel) 150 | #. i18n: ectx: property (text), widget (QLabel, label) 151 | #: SaveLocation.ui:28 settings.ui:80 152 | #, kde-format 153 | msgid "Save Location:" 154 | msgstr "Gardar a:" 155 | 156 | #. i18n: ectx: property (text), widget (QLabel, namePrefixLabel) 157 | #: SaveLocation.ui:55 158 | #, kde-format 159 | msgid "Name & Format:" 160 | msgstr "Nómine e formate:" 161 | 162 | #. i18n: ectx: property (text), widget (QLabel, numberLabel) 163 | #. i18n: ectx: property (text), widget (QLabel, label_3) 164 | #: SaveLocation.ui:74 settings.ui:112 165 | #, kde-format 166 | msgid "####." 167 | msgstr "####." 168 | 169 | #. i18n: ectx: property (text), widget (QLabel, numStartFromLabel) 170 | #: SaveLocation.ui:86 171 | #, kde-format 172 | msgid "Start numbering from:" 173 | msgstr "Numeration de:" 174 | 175 | #. i18n: ectx: property (text), widget (QLabel, u_resultLabel) 176 | #: SaveLocation.ui:123 177 | #, kde-format 178 | msgid "Example:" 179 | msgstr "Exemple:" 180 | 181 | #. i18n: ectx: property (text), widget (QLabel, u_resultValue) 182 | #: SaveLocation.ui:130 183 | #, kde-format 184 | msgid "/home/joe/example.png" 185 | msgstr "/home/joe/exemple.png" 186 | 187 | #. i18n: ectx: property (windowTitle), widget (QWidget, SkanliteSettings) 188 | #: settings.ui:14 189 | #, kde-format 190 | msgid "Settings" 191 | msgstr "Parametres" 192 | 193 | #. i18n: ectx: property (title), widget (QGroupBox, groupBox) 194 | #: settings.ui:20 195 | #, kde-format 196 | msgid "Image saving" 197 | msgstr "Gardation de images" 198 | 199 | #. i18n: ectx: property (text), widget (QLabel, label_7) 200 | #: settings.ui:26 201 | #, kde-format 202 | msgid "Preview before saving:" 203 | msgstr "Previder ante que gardar:" 204 | 205 | #. i18n: ectx: property (text), widget (QLabel, label_6) 206 | #: settings.ui:46 207 | #, kde-format 208 | msgid "Save mode:" 209 | msgstr "Mode de gardation:" 210 | 211 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 212 | #: settings.ui:60 213 | #, kde-format 214 | msgid "Open the save dialog for every image" 215 | msgstr "Aperter li dialog «Gardar» por chascun image" 216 | 217 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 218 | #: settings.ui:65 219 | #, kde-format 220 | msgid "Open the save dialog for the first image only" 221 | msgstr "Aperter li dialog «Gardar» solmen por prim image" 222 | 223 | #. i18n: ectx: property (text), widget (QLabel, label_2) 224 | #: settings.ui:90 225 | #, kde-format 226 | msgid "Name && Format:" 227 | msgstr "Nómine e formate:" 228 | 229 | #. i18n: ectx: property (text), widget (QLineEdit, imgPrefix) 230 | #: settings.ui:105 231 | #, kde-format 232 | msgid "Image" 233 | msgstr "Image" 234 | 235 | #. i18n: ectx: property (text), widget (QLabel, label_4) 236 | #: settings.ui:124 237 | #, kde-format 238 | msgid "Specify save quality:" 239 | msgstr "Qualitá del gardat image:" 240 | 241 | #. i18n: ectx: property (suffix), widget (QSpinBox, imgQuality) 242 | #: settings.ui:192 243 | #, no-c-format, kde-format 244 | msgid "%" 245 | msgstr "%" 246 | 247 | #. i18n: ectx: property (title), widget (QGroupBox, generalGB) 248 | #: settings.ui:233 249 | #, kde-format 250 | msgid "General" 251 | msgstr "General" 252 | 253 | #. i18n: ectx: property (text), widget (QCheckBox, setPreviewDPI) 254 | #: settings.ui:239 255 | #, kde-format 256 | msgid "Set preview resolution (DPI)" 257 | msgstr "Resolution de prevision (DPI)" 258 | 259 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 260 | #: settings.ui:253 261 | #, kde-format 262 | msgid "50" 263 | msgstr "50" 264 | 265 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 266 | #: settings.ui:258 267 | #, kde-format 268 | msgid "75" 269 | msgstr "75" 270 | 271 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 272 | #: settings.ui:263 273 | #, kde-format 274 | msgid "100" 275 | msgstr "100" 276 | 277 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 278 | #: settings.ui:268 279 | #, kde-format 280 | msgid "150" 281 | msgstr "150" 282 | 283 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 284 | #: settings.ui:273 285 | #, kde-format 286 | msgid "300" 287 | msgstr "300" 288 | 289 | #. i18n: ectx: property (text), widget (QCheckBox, u_disableSelections) 290 | #: settings.ui:286 291 | #, fuzzy, kde-format 292 | msgid "Disable automatic selections" 293 | msgstr "Selectiones" 294 | 295 | #. i18n: ectx: property (text), widget (QPushButton, revertOptions) 296 | #: settings.ui:319 297 | #, kde-format 298 | msgid "Revert scanner options to default values" 299 | msgstr "" 300 | 301 | #: skanlite.cpp:64 302 | #, kde-format 303 | msgid "Configure..." 304 | msgstr "Configurar..." 305 | 306 | #: skanlite.cpp:68 307 | #, kde-format 308 | msgid "Reselect scanner device" 309 | msgstr "Re-selecter li aparate de scannator" 310 | 311 | #: skanlite.cpp:92 312 | #, kde-format 313 | msgid "Saving: %v kB" 314 | msgstr "Gardante: %v ko" 315 | 316 | #: skanlite.cpp:188 317 | #, kde-format 318 | msgid "Skanlite Settings" 319 | msgstr "Parametres de Skanlite" 320 | 321 | #: skanlite.cpp:208 skanlite.cpp:304 322 | #, kde-format 323 | msgid "Opening the selected scanner failed." 324 | msgstr "Ne successat aperter li selectet scannator." 325 | 326 | #: skanlite.cpp:318 327 | #, kde-format 328 | msgid "%1: %2" 329 | msgstr "%1: %2" 330 | 331 | #: skanlite.cpp:337 332 | #, kde-format 333 | msgctxt "prefix for auto naming" 334 | msgid "Image-" 335 | msgstr "Image-" 336 | 337 | #: skanlite.cpp:472 338 | #, kde-format 339 | msgid "" 340 | "The image will be saved in the PNG format, as the selected image type does " 341 | "not support saving 16 bit color images." 342 | msgstr "" 343 | "Li image va esser gardat in li formate, pro que li selectet tip de image ne " 344 | "supporta images de 16 bit color." 345 | 346 | #: skanlite.cpp:494 347 | #, kde-format 348 | msgid "New Image File Name" 349 | msgstr "Nómine de file del nov image" 350 | 351 | #: skanlite.cpp:594 352 | #, kde-format 353 | msgid "Failed to save image" 354 | msgstr "Ne successat gardar un image" 355 | 356 | #: skanlite.cpp:607 357 | #, kde-format 358 | msgid "Failed to upload image" 359 | msgstr "Ne successat cargar un image" 360 | 361 | #: skanlite.cpp:758 362 | #, kde-format 363 | msgctxt "@title:window %1 = scanner maker, %2 = scanner model" 364 | msgid "%1 %2 - Skanlite" 365 | msgstr "%1 %2 - Skanlite" 366 | 367 | #: skanlite.cpp:760 368 | #, kde-format 369 | msgctxt "@title:window %1 = scanner device" 370 | msgid "%1 - Skanlite" 371 | msgstr "%1 - Skanlite" 372 | -------------------------------------------------------------------------------- /po/ja/skanlite.po: -------------------------------------------------------------------------------- 1 | # Translation of skanlite into Japanese. 2 | # This file is distributed under the same license as the kdegraphics package. 3 | # Yukiko Bando , 2008, 2014. 4 | # Fumiaki Okushi , 2014. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: skanlite\n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2024-10-12 00:38+0000\n" 11 | "PO-Revision-Date: 2014-11-15 18:07-0800\n" 12 | "Last-Translator: Fumiaki Okushi \n" 13 | "Language-Team: Japanese \n" 14 | "Language: ja\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=1; plural=0;\n" 19 | "X-Accelerator-Marker: &\n" 20 | "X-Text-Markup: kde4\n" 21 | "X-Generator: Lokalize 1.5\n" 22 | 23 | #: ImageViewer.cpp:45 24 | #, kde-format 25 | msgid "Zoom In" 26 | msgstr "ズームイン" 27 | 28 | #: ImageViewer.cpp:48 29 | #, kde-format 30 | msgid "Zoom Out" 31 | msgstr "ズームアウト" 32 | 33 | #: ImageViewer.cpp:51 34 | #, kde-format 35 | msgid "Zoom to Actual size" 36 | msgstr "実際のサイズにズーム" 37 | 38 | #: ImageViewer.cpp:54 39 | #, kde-format 40 | msgid "Zoom to Fit" 41 | msgstr "" 42 | 43 | #: main.cpp:30 skanlite.cpp:762 44 | #, kde-format 45 | msgid "Skanlite" 46 | msgstr "Skanlite" 47 | 48 | #: main.cpp:32 49 | #, fuzzy, kde-format 50 | #| msgid "This is a scanning application for KDE based on libksane." 51 | msgid "Scanning application by KDE based on libksane." 52 | msgstr "libksane をベースにした KDE のスキャンソフト" 53 | 54 | #: main.cpp:34 55 | #, fuzzy, kde-format 56 | #| msgid "(C) 2008-2014 Kåre Särs" 57 | msgid "(C) 2008-2020 Kåre Särs" 58 | msgstr "(C) 2008-2014 Kåre Särs" 59 | 60 | #: main.cpp:39 61 | #, kde-format 62 | msgid "Kåre Särs" 63 | msgstr "Kåre Särs" 64 | 65 | #: main.cpp:39 66 | #, kde-format 67 | msgid "developer" 68 | msgstr "開発者" 69 | 70 | #: main.cpp:41 71 | #, kde-format 72 | msgid "Gregor Mi" 73 | msgstr "" 74 | 75 | #: main.cpp:41 main.cpp:43 76 | #, kde-format 77 | msgid "contributor" 78 | msgstr "協力者" 79 | 80 | #: main.cpp:43 81 | #, kde-format 82 | msgid "Arseniy Lartsev" 83 | msgstr "Arseniy Lartsev" 84 | 85 | #: main.cpp:45 86 | #, kde-format 87 | msgid "Gilles Caulier" 88 | msgstr "Gilles Caulier" 89 | 90 | #: main.cpp:45 main.cpp:49 91 | #, kde-format 92 | msgid "Importing libksane to extragear" 93 | msgstr "libksane を extragear にインポート" 94 | 95 | #: main.cpp:47 96 | #, kde-format 97 | msgid "Anne-Marie Mahfouf" 98 | msgstr "Anne-Marie Mahfouf" 99 | 100 | #: main.cpp:47 101 | #, kde-format 102 | msgid "Writing the user manual" 103 | msgstr "ユーザマニュアルを執筆" 104 | 105 | #: main.cpp:49 106 | #, kde-format 107 | msgid "Laurent Montel" 108 | msgstr "Laurent Montel" 109 | 110 | #: main.cpp:51 111 | #, kde-format 112 | msgid "Chusslove Illich" 113 | msgstr "Chusslove Illich" 114 | 115 | #: main.cpp:51 main.cpp:53 116 | #, kde-format 117 | msgid "Help with translations" 118 | msgstr "ローカライゼーションのための手助け" 119 | 120 | #: main.cpp:53 121 | #, kde-format 122 | msgid "Albert Astals Cid" 123 | msgstr "Albert Astals Cid" 124 | 125 | #: main.cpp:56 126 | #, kde-format 127 | msgctxt "NAME OF TRANSLATORS" 128 | msgid "Your names" 129 | msgstr "Yukiko Bando" 130 | 131 | #: main.cpp:56 132 | #, kde-format 133 | msgctxt "EMAIL OF TRANSLATORS" 134 | msgid "Your emails" 135 | msgstr "ybando@k6.dion.ne.jp" 136 | 137 | # KCmdLineOptions 138 | #: main.cpp:66 139 | #, fuzzy, kde-format 140 | #| msgid "Sane scanner device name." 141 | msgid "Sane scanner device name. Use 'test' for test device." 142 | msgstr "SANE のスキャナデバイスの名前" 143 | 144 | #: main.cpp:67 145 | #, kde-format 146 | msgid "device" 147 | msgstr "" 148 | 149 | #. i18n: ectx: property (windowTitle), widget (QDialog, SaveLocation) 150 | #: SaveLocation.ui:20 151 | #, kde-format 152 | msgid "Save Location" 153 | msgstr "保存場所" 154 | 155 | #. i18n: ectx: property (text), widget (QLabel, locationLabel) 156 | #. i18n: ectx: property (text), widget (QLabel, label) 157 | #: SaveLocation.ui:28 settings.ui:80 158 | #, kde-format 159 | msgid "Save Location:" 160 | msgstr "保存場所:" 161 | 162 | #. i18n: ectx: property (text), widget (QLabel, namePrefixLabel) 163 | #: SaveLocation.ui:55 164 | #, kde-format 165 | msgid "Name & Format:" 166 | msgstr "名前とフォーマット:" 167 | 168 | #. i18n: ectx: property (text), widget (QLabel, numberLabel) 169 | #. i18n: ectx: property (text), widget (QLabel, label_3) 170 | #: SaveLocation.ui:74 settings.ui:112 171 | #, fuzzy, kde-format 172 | #| msgid "###." 173 | msgid "####." 174 | msgstr "###." 175 | 176 | #. i18n: ectx: property (text), widget (QLabel, numStartFromLabel) 177 | #: SaveLocation.ui:86 178 | #, kde-format 179 | msgid "Start numbering from:" 180 | msgstr "開始番号:" 181 | 182 | #. i18n: ectx: property (text), widget (QLabel, u_resultLabel) 183 | #: SaveLocation.ui:123 184 | #, kde-format 185 | msgid "Example:" 186 | msgstr "例:" 187 | 188 | #. i18n: ectx: property (text), widget (QLabel, u_resultValue) 189 | #: SaveLocation.ui:130 190 | #, kde-format 191 | msgid "/home/joe/example.png" 192 | msgstr "" 193 | 194 | #. i18n: ectx: property (windowTitle), widget (QWidget, SkanliteSettings) 195 | #: settings.ui:14 196 | #, kde-format 197 | msgid "Settings" 198 | msgstr "設定" 199 | 200 | #. i18n: ectx: property (title), widget (QGroupBox, groupBox) 201 | #: settings.ui:20 202 | #, kde-format 203 | msgid "Image saving" 204 | msgstr "" 205 | 206 | #. i18n: ectx: property (text), widget (QLabel, label_7) 207 | #: settings.ui:26 208 | #, kde-format 209 | msgid "Preview before saving:" 210 | msgstr "保存する前に画像のプレビューを表示:" 211 | 212 | #. i18n: ectx: property (text), widget (QLabel, label_6) 213 | #: settings.ui:46 214 | #, kde-format 215 | msgid "Save mode:" 216 | msgstr "保存モード:" 217 | 218 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 219 | #: settings.ui:60 220 | #, kde-format 221 | msgid "Open the save dialog for every image" 222 | msgstr "画像ごとに保存ダイアログを開く" 223 | 224 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 225 | #: settings.ui:65 226 | #, kde-format 227 | msgid "Open the save dialog for the first image only" 228 | msgstr "最初の画像にのみ保存ダイアログを開く" 229 | 230 | #. i18n: ectx: property (text), widget (QLabel, label_2) 231 | #: settings.ui:90 232 | #, kde-format 233 | msgid "Name && Format:" 234 | msgstr "名前とフォーマット:" 235 | 236 | #. i18n: ectx: property (text), widget (QLineEdit, imgPrefix) 237 | #: settings.ui:105 238 | #, kde-format 239 | msgid "Image" 240 | msgstr "画像" 241 | 242 | #. i18n: ectx: property (text), widget (QLabel, label_4) 243 | #: settings.ui:124 244 | #, kde-format 245 | msgid "Specify save quality:" 246 | msgstr "画質を指定:" 247 | 248 | #. i18n: ectx: property (suffix), widget (QSpinBox, imgQuality) 249 | #: settings.ui:192 250 | #, no-c-format, kde-format 251 | msgid "%" 252 | msgstr "%" 253 | 254 | #. i18n: ectx: property (title), widget (QGroupBox, generalGB) 255 | #: settings.ui:233 256 | #, kde-format 257 | msgid "General" 258 | msgstr "" 259 | 260 | #. i18n: ectx: property (text), widget (QCheckBox, setPreviewDPI) 261 | #: settings.ui:239 262 | #, kde-format 263 | msgid "Set preview resolution (DPI)" 264 | msgstr "プレビューの解像度 (DPI) を指定" 265 | 266 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 267 | #: settings.ui:253 268 | #, kde-format 269 | msgid "50" 270 | msgstr "50" 271 | 272 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 273 | #: settings.ui:258 274 | #, kde-format 275 | msgid "75" 276 | msgstr "75" 277 | 278 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 279 | #: settings.ui:263 280 | #, kde-format 281 | msgid "100" 282 | msgstr "100" 283 | 284 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 285 | #: settings.ui:268 286 | #, kde-format 287 | msgid "150" 288 | msgstr "150" 289 | 290 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 291 | #: settings.ui:273 292 | #, kde-format 293 | msgid "300" 294 | msgstr "300" 295 | 296 | #. i18n: ectx: property (text), widget (QCheckBox, u_disableSelections) 297 | #: settings.ui:286 298 | #, kde-format 299 | msgid "Disable automatic selections" 300 | msgstr "" 301 | 302 | #. i18n: ectx: property (text), widget (QPushButton, revertOptions) 303 | #: settings.ui:319 304 | #, kde-format 305 | msgid "Revert scanner options to default values" 306 | msgstr "スキャナのオプションを既定値に戻す" 307 | 308 | #: skanlite.cpp:64 309 | #, kde-format 310 | msgid "Configure..." 311 | msgstr "" 312 | 313 | #: skanlite.cpp:68 314 | #, fuzzy, kde-format 315 | #| msgid "Opening the selected scanner failed." 316 | msgid "Reselect scanner device" 317 | msgstr "選択されたスキャナを開けませんでした" 318 | 319 | #: skanlite.cpp:92 320 | #, kde-format 321 | msgid "Saving: %v kB" 322 | msgstr "" 323 | 324 | #: skanlite.cpp:188 325 | #, kde-format 326 | msgid "Skanlite Settings" 327 | msgstr "Skanlite の設定" 328 | 329 | #: skanlite.cpp:208 skanlite.cpp:304 330 | #, kde-format 331 | msgid "Opening the selected scanner failed." 332 | msgstr "選択されたスキャナを開けませんでした" 333 | 334 | #: skanlite.cpp:318 335 | #, kde-format 336 | msgid "%1: %2" 337 | msgstr "" 338 | 339 | #: skanlite.cpp:337 340 | #, kde-format 341 | msgctxt "prefix for auto naming" 342 | msgid "Image-" 343 | msgstr "画像" 344 | 345 | #: skanlite.cpp:472 346 | #, kde-format 347 | msgid "" 348 | "The image will be saved in the PNG format, as the selected image type does " 349 | "not support saving 16 bit color images." 350 | msgstr "" 351 | 352 | #: skanlite.cpp:494 353 | #, kde-format 354 | msgid "New Image File Name" 355 | msgstr "" 356 | 357 | #: skanlite.cpp:594 358 | #, kde-format 359 | msgid "Failed to save image" 360 | msgstr "画像を保存できませんでした" 361 | 362 | #: skanlite.cpp:607 363 | #, kde-format 364 | msgid "Failed to upload image" 365 | msgstr "画像をアップロードできませんでした" 366 | 367 | #: skanlite.cpp:758 368 | #, kde-format 369 | msgctxt "@title:window %1 = scanner maker, %2 = scanner model" 370 | msgid "%1 %2 - Skanlite" 371 | msgstr "%1 %2 - Skanlite" 372 | 373 | #: skanlite.cpp:760 374 | #, kde-format 375 | msgctxt "@title:window %1 = scanner device" 376 | msgid "%1 - Skanlite" 377 | msgstr "%1 - Skanlite" 378 | -------------------------------------------------------------------------------- /po/ko/skanlite.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # Shinjo Park , 2009, 2010, 2014, 2017, 2019, 2020, 2021, 2022. 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: \n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2024-10-12 00:38+0000\n" 10 | "PO-Revision-Date: 2022-02-20 21:09+0100\n" 11 | "Last-Translator: Shinjo Park \n" 12 | "Language-Team: Korean \n" 13 | "Language: ko\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=1; plural=0;\n" 18 | "X-Generator: Lokalize 21.08.1\n" 19 | 20 | #: ImageViewer.cpp:45 21 | #, kde-format 22 | msgid "Zoom In" 23 | msgstr "확대" 24 | 25 | #: ImageViewer.cpp:48 26 | #, kde-format 27 | msgid "Zoom Out" 28 | msgstr "축소" 29 | 30 | #: ImageViewer.cpp:51 31 | #, kde-format 32 | msgid "Zoom to Actual size" 33 | msgstr "실제 크기" 34 | 35 | #: ImageViewer.cpp:54 36 | #, kde-format 37 | msgid "Zoom to Fit" 38 | msgstr "맞추기" 39 | 40 | #: main.cpp:30 skanlite.cpp:762 41 | #, kde-format 42 | msgid "Skanlite" 43 | msgstr "Skanlite" 44 | 45 | #: main.cpp:32 46 | #, kde-format 47 | msgid "Scanning application by KDE based on libksane." 48 | msgstr "libksane을 사용하는 KDE 스캔 앱입니다." 49 | 50 | #: main.cpp:34 51 | #, kde-format 52 | msgid "(C) 2008-2020 Kåre Särs" 53 | msgstr "(C) 2008-2020 Kåre Särs" 54 | 55 | #: main.cpp:39 56 | #, kde-format 57 | msgid "Kåre Särs" 58 | msgstr "Kåre Särs" 59 | 60 | #: main.cpp:39 61 | #, kde-format 62 | msgid "developer" 63 | msgstr "개발자" 64 | 65 | #: main.cpp:41 66 | #, kde-format 67 | msgid "Gregor Mi" 68 | msgstr "Gregor Mi" 69 | 70 | #: main.cpp:41 main.cpp:43 71 | #, kde-format 72 | msgid "contributor" 73 | msgstr "기여자" 74 | 75 | #: main.cpp:43 76 | #, kde-format 77 | msgid "Arseniy Lartsev" 78 | msgstr "Arseniy Lartsev" 79 | 80 | #: main.cpp:45 81 | #, kde-format 82 | msgid "Gilles Caulier" 83 | msgstr "Gilles Caulier" 84 | 85 | #: main.cpp:45 main.cpp:49 86 | #, kde-format 87 | msgid "Importing libksane to extragear" 88 | msgstr "libksane을 extragear로 가져옴" 89 | 90 | #: main.cpp:47 91 | #, kde-format 92 | msgid "Anne-Marie Mahfouf" 93 | msgstr "Anne-Marie Mahfouf" 94 | 95 | #: main.cpp:47 96 | #, kde-format 97 | msgid "Writing the user manual" 98 | msgstr "사용자 설명서 작성" 99 | 100 | #: main.cpp:49 101 | #, kde-format 102 | msgid "Laurent Montel" 103 | msgstr "Laurent Montel" 104 | 105 | #: main.cpp:51 106 | #, kde-format 107 | msgid "Chusslove Illich" 108 | msgstr "Chusslove Illich" 109 | 110 | #: main.cpp:51 main.cpp:53 111 | #, kde-format 112 | msgid "Help with translations" 113 | msgstr "번역 도움" 114 | 115 | #: main.cpp:53 116 | #, kde-format 117 | msgid "Albert Astals Cid" 118 | msgstr "Albert Astals Cid" 119 | 120 | #: main.cpp:56 121 | #, kde-format 122 | msgctxt "NAME OF TRANSLATORS" 123 | msgid "Your names" 124 | msgstr "박신조" 125 | 126 | #: main.cpp:56 127 | #, kde-format 128 | msgctxt "EMAIL OF TRANSLATORS" 129 | msgid "Your emails" 130 | msgstr "kde@peremen.name" 131 | 132 | #: main.cpp:66 133 | #, kde-format 134 | msgid "Sane scanner device name. Use 'test' for test device." 135 | msgstr "" 136 | "SANE 스캐너 장치 이름입니다. 테스트 장치를 사용하려면 'test'를 입력하십시오." 137 | 138 | #: main.cpp:67 139 | #, kde-format 140 | msgid "device" 141 | msgstr "장치" 142 | 143 | #. i18n: ectx: property (windowTitle), widget (QDialog, SaveLocation) 144 | #: SaveLocation.ui:20 145 | #, kde-format 146 | msgid "Save Location" 147 | msgstr "저장 위치" 148 | 149 | #. i18n: ectx: property (text), widget (QLabel, locationLabel) 150 | #. i18n: ectx: property (text), widget (QLabel, label) 151 | #: SaveLocation.ui:28 settings.ui:80 152 | #, kde-format 153 | msgid "Save Location:" 154 | msgstr "저장 위치:" 155 | 156 | #. i18n: ectx: property (text), widget (QLabel, namePrefixLabel) 157 | #: SaveLocation.ui:55 158 | #, kde-format 159 | msgid "Name & Format:" 160 | msgstr "이름과 형식:" 161 | 162 | #. i18n: ectx: property (text), widget (QLabel, numberLabel) 163 | #. i18n: ectx: property (text), widget (QLabel, label_3) 164 | #: SaveLocation.ui:74 settings.ui:112 165 | #, kde-format 166 | msgid "####." 167 | msgstr "####." 168 | 169 | #. i18n: ectx: property (text), widget (QLabel, numStartFromLabel) 170 | #: SaveLocation.ui:86 171 | #, kde-format 172 | msgid "Start numbering from:" 173 | msgstr "번호 시작:" 174 | 175 | #. i18n: ectx: property (text), widget (QLabel, u_resultLabel) 176 | #: SaveLocation.ui:123 177 | #, kde-format 178 | msgid "Example:" 179 | msgstr "예제:" 180 | 181 | #. i18n: ectx: property (text), widget (QLabel, u_resultValue) 182 | #: SaveLocation.ui:130 183 | #, kde-format 184 | msgid "/home/joe/example.png" 185 | msgstr "/home/joe/example.png" 186 | 187 | #. i18n: ectx: property (windowTitle), widget (QWidget, SkanliteSettings) 188 | #: settings.ui:14 189 | #, kde-format 190 | msgid "Settings" 191 | msgstr "설정" 192 | 193 | #. i18n: ectx: property (title), widget (QGroupBox, groupBox) 194 | #: settings.ui:20 195 | #, kde-format 196 | msgid "Image saving" 197 | msgstr "그림 저장" 198 | 199 | #. i18n: ectx: property (text), widget (QLabel, label_7) 200 | #: settings.ui:26 201 | #, kde-format 202 | msgid "Preview before saving:" 203 | msgstr "저장하기 전에 미리 보기:" 204 | 205 | #. i18n: ectx: property (text), widget (QLabel, label_6) 206 | #: settings.ui:46 207 | #, kde-format 208 | msgid "Save mode:" 209 | msgstr "저장 모드:" 210 | 211 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 212 | #: settings.ui:60 213 | #, kde-format 214 | msgid "Open the save dialog for every image" 215 | msgstr "그림마다 저장 대화 상자 열기" 216 | 217 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 218 | #: settings.ui:65 219 | #, kde-format 220 | msgid "Open the save dialog for the first image only" 221 | msgstr "첫 그림만 저장 대화 상자 열기" 222 | 223 | #. i18n: ectx: property (text), widget (QLabel, label_2) 224 | #: settings.ui:90 225 | #, kde-format 226 | msgid "Name && Format:" 227 | msgstr "이름과 형식:" 228 | 229 | #. i18n: ectx: property (text), widget (QLineEdit, imgPrefix) 230 | #: settings.ui:105 231 | #, kde-format 232 | msgid "Image" 233 | msgstr "그림" 234 | 235 | #. i18n: ectx: property (text), widget (QLabel, label_4) 236 | #: settings.ui:124 237 | #, kde-format 238 | msgid "Specify save quality:" 239 | msgstr "품질:" 240 | 241 | #. i18n: ectx: property (suffix), widget (QSpinBox, imgQuality) 242 | #: settings.ui:192 243 | #, no-c-format, kde-format 244 | msgid "%" 245 | msgstr "%" 246 | 247 | #. i18n: ectx: property (title), widget (QGroupBox, generalGB) 248 | #: settings.ui:233 249 | #, kde-format 250 | msgid "General" 251 | msgstr "일반" 252 | 253 | #. i18n: ectx: property (text), widget (QCheckBox, setPreviewDPI) 254 | #: settings.ui:239 255 | #, kde-format 256 | msgid "Set preview resolution (DPI)" 257 | msgstr "미리 보기 해상도 지정 (DPI)" 258 | 259 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 260 | #: settings.ui:253 261 | #, kde-format 262 | msgid "50" 263 | msgstr "50" 264 | 265 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 266 | #: settings.ui:258 267 | #, kde-format 268 | msgid "75" 269 | msgstr "75" 270 | 271 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 272 | #: settings.ui:263 273 | #, kde-format 274 | msgid "100" 275 | msgstr "100" 276 | 277 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 278 | #: settings.ui:268 279 | #, kde-format 280 | msgid "150" 281 | msgstr "150" 282 | 283 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 284 | #: settings.ui:273 285 | #, kde-format 286 | msgid "300" 287 | msgstr "300" 288 | 289 | #. i18n: ectx: property (text), widget (QCheckBox, u_disableSelections) 290 | #: settings.ui:286 291 | #, kde-format 292 | msgid "Disable automatic selections" 293 | msgstr "자동 선택 비활성화" 294 | 295 | #. i18n: ectx: property (text), widget (QPushButton, revertOptions) 296 | #: settings.ui:319 297 | #, kde-format 298 | msgid "Revert scanner options to default values" 299 | msgstr "스캐너 옵션 초기화" 300 | 301 | #: skanlite.cpp:64 302 | #, kde-format 303 | msgid "Configure..." 304 | msgstr "설정..." 305 | 306 | #: skanlite.cpp:68 307 | #, kde-format 308 | msgid "Reselect scanner device" 309 | msgstr "스캐너 장치 다시 선택" 310 | 311 | #: skanlite.cpp:92 312 | #, kde-format 313 | msgid "Saving: %v kB" 314 | msgstr "저장: %v kB" 315 | 316 | #: skanlite.cpp:188 317 | #, kde-format 318 | msgid "Skanlite Settings" 319 | msgstr "Skanlite 설정" 320 | 321 | #: skanlite.cpp:208 skanlite.cpp:304 322 | #, kde-format 323 | msgid "Opening the selected scanner failed." 324 | msgstr "선택한 스캐너를 여는 데 실패했습니다." 325 | 326 | #: skanlite.cpp:318 327 | #, kde-format 328 | msgid "%1: %2" 329 | msgstr "%1: %2" 330 | 331 | #: skanlite.cpp:337 332 | #, kde-format 333 | msgctxt "prefix for auto naming" 334 | msgid "Image-" 335 | msgstr "그림-" 336 | 337 | #: skanlite.cpp:472 338 | #, kde-format 339 | msgid "" 340 | "The image will be saved in the PNG format, as the selected image type does " 341 | "not support saving 16 bit color images." 342 | msgstr "" 343 | "선택한 그림 형식은 16비트 그림을 저장할 수 없으므로, 이 그림은 PNG로 저장됩니" 344 | "다." 345 | 346 | #: skanlite.cpp:494 347 | #, kde-format 348 | msgid "New Image File Name" 349 | msgstr "새 그림 파일 이름" 350 | 351 | #: skanlite.cpp:594 352 | #, kde-format 353 | msgid "Failed to save image" 354 | msgstr "그림을 저장할 수 없습니다" 355 | 356 | #: skanlite.cpp:607 357 | #, kde-format 358 | msgid "Failed to upload image" 359 | msgstr "그림을 업로드할 수 없습니다" 360 | 361 | #: skanlite.cpp:758 362 | #, kde-format 363 | msgctxt "@title:window %1 = scanner maker, %2 = scanner model" 364 | msgid "%1 %2 - Skanlite" 365 | msgstr "%1 %2 - Skanlite" 366 | 367 | #: skanlite.cpp:760 368 | #, kde-format 369 | msgctxt "@title:window %1 = scanner device" 370 | msgid "%1 - Skanlite" 371 | msgstr "%1 - Skanlite" 372 | 373 | #~ msgid "About" 374 | #~ msgstr "정보" 375 | 376 | #~ msgid "..." 377 | #~ msgstr "..." 378 | 379 | #~ msgid "Directory doesn't exist, do you wish to create it?" 380 | #~ msgstr "디렉터리가 없습니다. 만드시겠습니까?" 381 | 382 | #~ msgid "Could not create directory %1" 383 | #~ msgstr "디렉터리 %1을(를) 만들 수 없음" 384 | 385 | #~ msgid "Do you want to overwrite \"%1\"?" 386 | #~ msgstr "\"%1\"에 덮어쓰시겠습니까?" 387 | 388 | #~ msgid "Overwrite" 389 | #~ msgstr "덮어쓰기" 390 | 391 | #~ msgid "Save" 392 | #~ msgstr "저장" 393 | -------------------------------------------------------------------------------- /po/mai/skanlite.po: -------------------------------------------------------------------------------- 1 | # translation of skanlite.po to Maithili 2 | # Copyright (C) YEAR This_file_is_part_of_KDE 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # 5 | # Rajesh Ranjan , 2010. 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: skanlite\n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2024-10-12 00:38+0000\n" 11 | "PO-Revision-Date: 2010-09-24 12:19+0530\n" 12 | "Last-Translator: Rajesh Ranjan \n" 13 | "Language-Team: Maithili \n" 14 | "Language: mai\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: KBabel 1.11.4\n" 19 | "Plural-Forms: nplurals=2; plural=(n!=1);\n" 20 | 21 | #: ImageViewer.cpp:45 22 | #, kde-format 23 | msgid "Zoom In" 24 | msgstr "ज़ूम इन" 25 | 26 | #: ImageViewer.cpp:48 27 | #, kde-format 28 | msgid "Zoom Out" 29 | msgstr "ज़ूम आउट" 30 | 31 | #: ImageViewer.cpp:51 32 | #, kde-format 33 | msgid "Zoom to Actual size" 34 | msgstr "" 35 | 36 | #: ImageViewer.cpp:54 37 | #, kde-format 38 | msgid "Zoom to Fit" 39 | msgstr "सटीक जूम" 40 | 41 | #: main.cpp:30 skanlite.cpp:762 42 | #, kde-format 43 | msgid "Skanlite" 44 | msgstr "" 45 | 46 | #: main.cpp:32 47 | #, kde-format 48 | msgid "Scanning application by KDE based on libksane." 49 | msgstr "" 50 | 51 | #: main.cpp:34 52 | #, fuzzy, kde-format 53 | #| msgid "(C) 2008 Kåre Särs" 54 | msgid "(C) 2008-2020 Kåre Särs" 55 | msgstr "(C) 2008 Kåre Särs" 56 | 57 | #: main.cpp:39 58 | #, kde-format 59 | msgid "Kåre Särs" 60 | msgstr "Kåre Särs" 61 | 62 | #: main.cpp:39 63 | #, kde-format 64 | msgid "developer" 65 | msgstr "विकास कएनिहार" 66 | 67 | #: main.cpp:41 68 | #, kde-format 69 | msgid "Gregor Mi" 70 | msgstr "" 71 | 72 | #: main.cpp:41 main.cpp:43 73 | #, kde-format 74 | msgid "contributor" 75 | msgstr "" 76 | 77 | #: main.cpp:43 78 | #, kde-format 79 | msgid "Arseniy Lartsev" 80 | msgstr "Arseniy Lartsev" 81 | 82 | #: main.cpp:45 83 | #, kde-format 84 | msgid "Gilles Caulier" 85 | msgstr "Gilles Caulier" 86 | 87 | #: main.cpp:45 main.cpp:49 88 | #, kde-format 89 | msgid "Importing libksane to extragear" 90 | msgstr "" 91 | 92 | #: main.cpp:47 93 | #, kde-format 94 | msgid "Anne-Marie Mahfouf" 95 | msgstr "Anne-Marie Mahfouf" 96 | 97 | #: main.cpp:47 98 | #, kde-format 99 | msgid "Writing the user manual" 100 | msgstr "" 101 | 102 | #: main.cpp:49 103 | #, kde-format 104 | msgid "Laurent Montel" 105 | msgstr "" 106 | 107 | #: main.cpp:51 108 | #, kde-format 109 | msgid "Chusslove Illich" 110 | msgstr "Chusslove Illich" 111 | 112 | #: main.cpp:51 main.cpp:53 113 | #, kde-format 114 | msgid "Help with translations" 115 | msgstr "" 116 | 117 | #: main.cpp:53 118 | #, kde-format 119 | msgid "Albert Astals Cid" 120 | msgstr "Albert Astals Cid" 121 | 122 | #: main.cpp:56 123 | #, kde-format 124 | msgctxt "NAME OF TRANSLATORS" 125 | msgid "Your names" 126 | msgstr "संगीता कुमारी" 127 | 128 | #: main.cpp:56 129 | #, kde-format 130 | msgctxt "EMAIL OF TRANSLATORS" 131 | msgid "Your emails" 132 | msgstr "sangeeta09@gmail.com" 133 | 134 | #: main.cpp:66 135 | #, kde-format 136 | msgid "Sane scanner device name. Use 'test' for test device." 137 | msgstr "" 138 | 139 | #: main.cpp:67 140 | #, kde-format 141 | msgid "device" 142 | msgstr "" 143 | 144 | #. i18n: ectx: property (windowTitle), widget (QDialog, SaveLocation) 145 | #: SaveLocation.ui:20 146 | #, kde-format 147 | msgid "Save Location" 148 | msgstr "" 149 | 150 | #. i18n: ectx: property (text), widget (QLabel, locationLabel) 151 | #. i18n: ectx: property (text), widget (QLabel, label) 152 | #: SaveLocation.ui:28 settings.ui:80 153 | #, kde-format 154 | msgid "Save Location:" 155 | msgstr "" 156 | 157 | #. i18n: ectx: property (text), widget (QLabel, namePrefixLabel) 158 | #: SaveLocation.ui:55 159 | #, kde-format 160 | msgid "Name & Format:" 161 | msgstr "" 162 | 163 | #. i18n: ectx: property (text), widget (QLabel, numberLabel) 164 | #. i18n: ectx: property (text), widget (QLabel, label_3) 165 | #: SaveLocation.ui:74 settings.ui:112 166 | #, kde-format 167 | msgid "####." 168 | msgstr "" 169 | 170 | #. i18n: ectx: property (text), widget (QLabel, numStartFromLabel) 171 | #: SaveLocation.ui:86 172 | #, kde-format 173 | msgid "Start numbering from:" 174 | msgstr "" 175 | 176 | #. i18n: ectx: property (text), widget (QLabel, u_resultLabel) 177 | #: SaveLocation.ui:123 178 | #, kde-format 179 | msgid "Example:" 180 | msgstr "उदाहरण:" 181 | 182 | #. i18n: ectx: property (text), widget (QLabel, u_resultValue) 183 | #: SaveLocation.ui:130 184 | #, kde-format 185 | msgid "/home/joe/example.png" 186 | msgstr "" 187 | 188 | #. i18n: ectx: property (windowTitle), widget (QWidget, SkanliteSettings) 189 | #: settings.ui:14 190 | #, kde-format 191 | msgid "Settings" 192 | msgstr "जमावट" 193 | 194 | #. i18n: ectx: property (title), widget (QGroupBox, groupBox) 195 | #: settings.ui:20 196 | #, kde-format 197 | msgid "Image saving" 198 | msgstr "" 199 | 200 | #. i18n: ectx: property (text), widget (QLabel, label_7) 201 | #: settings.ui:26 202 | #, kde-format 203 | msgid "Preview before saving:" 204 | msgstr "" 205 | 206 | #. i18n: ectx: property (text), widget (QLabel, label_6) 207 | #: settings.ui:46 208 | #, kde-format 209 | msgid "Save mode:" 210 | msgstr "" 211 | 212 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 213 | #: settings.ui:60 214 | #, kde-format 215 | msgid "Open the save dialog for every image" 216 | msgstr "" 217 | 218 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 219 | #: settings.ui:65 220 | #, kde-format 221 | msgid "Open the save dialog for the first image only" 222 | msgstr "" 223 | 224 | #. i18n: ectx: property (text), widget (QLabel, label_2) 225 | #: settings.ui:90 226 | #, kde-format 227 | msgid "Name && Format:" 228 | msgstr "" 229 | 230 | #. i18n: ectx: property (text), widget (QLineEdit, imgPrefix) 231 | #: settings.ui:105 232 | #, kde-format 233 | msgid "Image" 234 | msgstr "चित्र" 235 | 236 | #. i18n: ectx: property (text), widget (QLabel, label_4) 237 | #: settings.ui:124 238 | #, kde-format 239 | msgid "Specify save quality:" 240 | msgstr "" 241 | 242 | #. i18n: ectx: property (suffix), widget (QSpinBox, imgQuality) 243 | #: settings.ui:192 244 | #, no-c-format, kde-format 245 | msgid "%" 246 | msgstr "%" 247 | 248 | #. i18n: ectx: property (title), widget (QGroupBox, generalGB) 249 | #: settings.ui:233 250 | #, kde-format 251 | msgid "General" 252 | msgstr "सामान्य" 253 | 254 | #. i18n: ectx: property (text), widget (QCheckBox, setPreviewDPI) 255 | #: settings.ui:239 256 | #, kde-format 257 | msgid "Set preview resolution (DPI)" 258 | msgstr "" 259 | 260 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 261 | #: settings.ui:253 262 | #, kde-format 263 | msgid "50" 264 | msgstr "50" 265 | 266 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 267 | #: settings.ui:258 268 | #, kde-format 269 | msgid "75" 270 | msgstr "75" 271 | 272 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 273 | #: settings.ui:263 274 | #, kde-format 275 | msgid "100" 276 | msgstr "100" 277 | 278 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 279 | #: settings.ui:268 280 | #, kde-format 281 | msgid "150" 282 | msgstr "150" 283 | 284 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 285 | #: settings.ui:273 286 | #, kde-format 287 | msgid "300" 288 | msgstr "300" 289 | 290 | #. i18n: ectx: property (text), widget (QCheckBox, u_disableSelections) 291 | #: settings.ui:286 292 | #, kde-format 293 | msgid "Disable automatic selections" 294 | msgstr "" 295 | 296 | #. i18n: ectx: property (text), widget (QPushButton, revertOptions) 297 | #: settings.ui:319 298 | #, kde-format 299 | msgid "Revert scanner options to default values" 300 | msgstr "" 301 | 302 | #: skanlite.cpp:64 303 | #, kde-format 304 | msgid "Configure..." 305 | msgstr "" 306 | 307 | #: skanlite.cpp:68 308 | #, kde-format 309 | msgid "Reselect scanner device" 310 | msgstr "" 311 | 312 | #: skanlite.cpp:92 313 | #, kde-format 314 | msgid "Saving: %v kB" 315 | msgstr "" 316 | 317 | #: skanlite.cpp:188 318 | #, kde-format 319 | msgid "Skanlite Settings" 320 | msgstr "" 321 | 322 | #: skanlite.cpp:208 skanlite.cpp:304 323 | #, kde-format 324 | msgid "Opening the selected scanner failed." 325 | msgstr "" 326 | 327 | #: skanlite.cpp:318 328 | #, kde-format 329 | msgid "%1: %2" 330 | msgstr "" 331 | 332 | #: skanlite.cpp:337 333 | #, fuzzy, kde-format 334 | #| msgid "Image" 335 | msgctxt "prefix for auto naming" 336 | msgid "Image-" 337 | msgstr "चित्र" 338 | 339 | #: skanlite.cpp:472 340 | #, kde-format 341 | msgid "" 342 | "The image will be saved in the PNG format, as the selected image type does " 343 | "not support saving 16 bit color images." 344 | msgstr "" 345 | 346 | #: skanlite.cpp:494 347 | #, kde-format 348 | msgid "New Image File Name" 349 | msgstr "" 350 | 351 | #: skanlite.cpp:594 352 | #, kde-format 353 | msgid "Failed to save image" 354 | msgstr "" 355 | 356 | #: skanlite.cpp:607 357 | #, kde-format 358 | msgid "Failed to upload image" 359 | msgstr "" 360 | 361 | #: skanlite.cpp:758 362 | #, kde-format 363 | msgctxt "@title:window %1 = scanner maker, %2 = scanner model" 364 | msgid "%1 %2 - Skanlite" 365 | msgstr "" 366 | 367 | #: skanlite.cpp:760 368 | #, kde-format 369 | msgctxt "@title:window %1 = scanner device" 370 | msgid "%1 - Skanlite" 371 | msgstr "" 372 | 373 | #~ msgid "About" 374 | #~ msgstr "क' बारेमे" 375 | 376 | #~ msgid "..." 377 | #~ msgstr "..." 378 | 379 | #~ msgid "Overwrite" 380 | #~ msgstr "एकरासँ उप्पर लिखू" 381 | 382 | #~ msgid "Save" 383 | #~ msgstr "सहेजू" 384 | -------------------------------------------------------------------------------- /po/nb/skanlite.po: -------------------------------------------------------------------------------- 1 | # Translation of skanlite to Norwegian Bokmål 2 | # 3 | # Bjørn Steensrud , 2009, 2010, 2011, 2012, 2013, 2014. 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: KDE 4\n" 7 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 8 | "POT-Creation-Date: 2024-10-12 00:38+0000\n" 9 | "PO-Revision-Date: 2014-03-15 17:18+0100\n" 10 | "Last-Translator: Bjørn Steensrud \n" 11 | "Language-Team: Norwegian Bokmål \n" 12 | "Language: nb\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 17 | "X-Generator: Lokalize 1.5\n" 18 | "X-Environment: kde\n" 19 | "X-Accelerator-Marker: &\n" 20 | "X-Text-Markup: kde4\n" 21 | 22 | #: ImageViewer.cpp:45 23 | #, kde-format 24 | msgid "Zoom In" 25 | msgstr "Forstørr" 26 | 27 | #: ImageViewer.cpp:48 28 | #, kde-format 29 | msgid "Zoom Out" 30 | msgstr "Forminsk" 31 | 32 | #: ImageViewer.cpp:51 33 | #, kde-format 34 | msgid "Zoom to Actual size" 35 | msgstr "Virkelig størrelse" 36 | 37 | #: ImageViewer.cpp:54 38 | #, kde-format 39 | msgid "Zoom to Fit" 40 | msgstr "Zoom til passende størrelse" 41 | 42 | #: main.cpp:30 skanlite.cpp:762 43 | #, kde-format 44 | msgid "Skanlite" 45 | msgstr "Skanlite" 46 | 47 | #: main.cpp:32 48 | #, kde-format 49 | msgid "Scanning application by KDE based on libksane." 50 | msgstr "" 51 | 52 | #: main.cpp:34 53 | #, kde-format 54 | msgid "(C) 2008-2020 Kåre Särs" 55 | msgstr "" 56 | 57 | #: main.cpp:39 58 | #, kde-format 59 | msgid "Kåre Särs" 60 | msgstr "Kåre Särs" 61 | 62 | #: main.cpp:39 63 | #, kde-format 64 | msgid "developer" 65 | msgstr "utvikler" 66 | 67 | #: main.cpp:41 68 | #, kde-format 69 | msgid "Gregor Mi" 70 | msgstr "" 71 | 72 | #: main.cpp:41 main.cpp:43 73 | #, kde-format 74 | msgid "contributor" 75 | msgstr "bidragsyter" 76 | 77 | #: main.cpp:43 78 | #, kde-format 79 | msgid "Arseniy Lartsev" 80 | msgstr "Arseniy Lartsev" 81 | 82 | #: main.cpp:45 83 | #, kde-format 84 | msgid "Gilles Caulier" 85 | msgstr "Gilles Caulier" 86 | 87 | #: main.cpp:45 main.cpp:49 88 | #, kde-format 89 | msgid "Importing libksane to extragear" 90 | msgstr "Importerte libksane til extragear" 91 | 92 | #: main.cpp:47 93 | #, kde-format 94 | msgid "Anne-Marie Mahfouf" 95 | msgstr "Anne-Marie Mahfouf" 96 | 97 | #: main.cpp:47 98 | #, kde-format 99 | msgid "Writing the user manual" 100 | msgstr "Skrev brukerhåndboka" 101 | 102 | #: main.cpp:49 103 | #, kde-format 104 | msgid "Laurent Montel" 105 | msgstr "Laurent Montel" 106 | 107 | #: main.cpp:51 108 | #, kde-format 109 | msgid "Chusslove Illich" 110 | msgstr "Chusslove Illich" 111 | 112 | #: main.cpp:51 main.cpp:53 113 | #, kde-format 114 | msgid "Help with translations" 115 | msgstr "Hjelp med oversettelser" 116 | 117 | #: main.cpp:53 118 | #, kde-format 119 | msgid "Albert Astals Cid" 120 | msgstr "Albert Astals Cid" 121 | 122 | #: main.cpp:56 123 | #, kde-format 124 | msgctxt "NAME OF TRANSLATORS" 125 | msgid "Your names" 126 | msgstr "Bjørn Steensrud" 127 | 128 | #: main.cpp:56 129 | #, kde-format 130 | msgctxt "EMAIL OF TRANSLATORS" 131 | msgid "Your emails" 132 | msgstr "bjornst@skogkatt.homelinux.org" 133 | 134 | #: main.cpp:66 135 | #, kde-format 136 | msgid "Sane scanner device name. Use 'test' for test device." 137 | msgstr "" 138 | 139 | #: main.cpp:67 140 | #, kde-format 141 | msgid "device" 142 | msgstr "" 143 | 144 | #. i18n: ectx: property (windowTitle), widget (QDialog, SaveLocation) 145 | #: SaveLocation.ui:20 146 | #, kde-format 147 | msgid "Save Location" 148 | msgstr "Lagre til" 149 | 150 | #. i18n: ectx: property (text), widget (QLabel, locationLabel) 151 | #. i18n: ectx: property (text), widget (QLabel, label) 152 | #: SaveLocation.ui:28 settings.ui:80 153 | #, kde-format 154 | msgid "Save Location:" 155 | msgstr "Lagre til:" 156 | 157 | #. i18n: ectx: property (text), widget (QLabel, namePrefixLabel) 158 | #: SaveLocation.ui:55 159 | #, kde-format 160 | msgid "Name & Format:" 161 | msgstr "Navn og format:" 162 | 163 | #. i18n: ectx: property (text), widget (QLabel, numberLabel) 164 | #. i18n: ectx: property (text), widget (QLabel, label_3) 165 | #: SaveLocation.ui:74 settings.ui:112 166 | #, kde-format 167 | msgid "####." 168 | msgstr "" 169 | 170 | #. i18n: ectx: property (text), widget (QLabel, numStartFromLabel) 171 | #: SaveLocation.ui:86 172 | #, kde-format 173 | msgid "Start numbering from:" 174 | msgstr "Start nummerering fra:" 175 | 176 | #. i18n: ectx: property (text), widget (QLabel, u_resultLabel) 177 | #: SaveLocation.ui:123 178 | #, kde-format 179 | msgid "Example:" 180 | msgstr "Eksempel:" 181 | 182 | #. i18n: ectx: property (text), widget (QLabel, u_resultValue) 183 | #: SaveLocation.ui:130 184 | #, kde-format 185 | msgid "/home/joe/example.png" 186 | msgstr "/home/per/eksempel.png" 187 | 188 | #. i18n: ectx: property (windowTitle), widget (QWidget, SkanliteSettings) 189 | #: settings.ui:14 190 | #, kde-format 191 | msgid "Settings" 192 | msgstr "Innstillinger" 193 | 194 | #. i18n: ectx: property (title), widget (QGroupBox, groupBox) 195 | #: settings.ui:20 196 | #, kde-format 197 | msgid "Image saving" 198 | msgstr "Bildelagring" 199 | 200 | #. i18n: ectx: property (text), widget (QLabel, label_7) 201 | #: settings.ui:26 202 | #, kde-format 203 | msgid "Preview before saving:" 204 | msgstr "Forhåndsvis før lagring." 205 | 206 | #. i18n: ectx: property (text), widget (QLabel, label_6) 207 | #: settings.ui:46 208 | #, kde-format 209 | msgid "Save mode:" 210 | msgstr "Lagringsmodus:" 211 | 212 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 213 | #: settings.ui:60 214 | #, kde-format 215 | msgid "Open the save dialog for every image" 216 | msgstr "Åpne lagringsdialogen for hvert bilde" 217 | 218 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 219 | #: settings.ui:65 220 | #, kde-format 221 | msgid "Open the save dialog for the first image only" 222 | msgstr "Åpne lagringsdialogen bare for det første bildet" 223 | 224 | #. i18n: ectx: property (text), widget (QLabel, label_2) 225 | #: settings.ui:90 226 | #, kde-format 227 | msgid "Name && Format:" 228 | msgstr "Navn og format:" 229 | 230 | #. i18n: ectx: property (text), widget (QLineEdit, imgPrefix) 231 | #: settings.ui:105 232 | #, kde-format 233 | msgid "Image" 234 | msgstr "Bilde" 235 | 236 | #. i18n: ectx: property (text), widget (QLabel, label_4) 237 | #: settings.ui:124 238 | #, kde-format 239 | msgid "Specify save quality:" 240 | msgstr "Oppgi lagringskvalitet:" 241 | 242 | #. i18n: ectx: property (suffix), widget (QSpinBox, imgQuality) 243 | #: settings.ui:192 244 | #, no-c-format, kde-format 245 | msgid "%" 246 | msgstr "%" 247 | 248 | #. i18n: ectx: property (title), widget (QGroupBox, generalGB) 249 | #: settings.ui:233 250 | #, kde-format 251 | msgid "General" 252 | msgstr "Generelt" 253 | 254 | #. i18n: ectx: property (text), widget (QCheckBox, setPreviewDPI) 255 | #: settings.ui:239 256 | #, kde-format 257 | msgid "Set preview resolution (DPI)" 258 | msgstr "Sett oppløsning i forhåndsvisning (DPI)" 259 | 260 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 261 | #: settings.ui:253 262 | #, kde-format 263 | msgid "50" 264 | msgstr "50" 265 | 266 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 267 | #: settings.ui:258 268 | #, kde-format 269 | msgid "75" 270 | msgstr "75" 271 | 272 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 273 | #: settings.ui:263 274 | #, kde-format 275 | msgid "100" 276 | msgstr "100" 277 | 278 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 279 | #: settings.ui:268 280 | #, kde-format 281 | msgid "150" 282 | msgstr "150" 283 | 284 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 285 | #: settings.ui:273 286 | #, kde-format 287 | msgid "300" 288 | msgstr "300" 289 | 290 | #. i18n: ectx: property (text), widget (QCheckBox, u_disableSelections) 291 | #: settings.ui:286 292 | #, kde-format 293 | msgid "Disable automatic selections" 294 | msgstr "Slå av automatiske utvalg" 295 | 296 | #. i18n: ectx: property (text), widget (QPushButton, revertOptions) 297 | #: settings.ui:319 298 | #, kde-format 299 | msgid "Revert scanner options to default values" 300 | msgstr "Tilbakestill skannervalg til standardverdier" 301 | 302 | #: skanlite.cpp:64 303 | #, kde-format 304 | msgid "Configure..." 305 | msgstr "" 306 | 307 | #: skanlite.cpp:68 308 | #, kde-format 309 | msgid "Reselect scanner device" 310 | msgstr "" 311 | 312 | #: skanlite.cpp:92 313 | #, kde-format 314 | msgid "Saving: %v kB" 315 | msgstr "" 316 | 317 | #: skanlite.cpp:188 318 | #, kde-format 319 | msgid "Skanlite Settings" 320 | msgstr "Skanlite-innstillinger" 321 | 322 | #: skanlite.cpp:208 skanlite.cpp:304 323 | #, kde-format 324 | msgid "Opening the selected scanner failed." 325 | msgstr "Klarte ikke åpne den valgte skanneren." 326 | 327 | #: skanlite.cpp:318 328 | #, kde-format 329 | msgid "%1: %2" 330 | msgstr "%1 %2" 331 | 332 | #: skanlite.cpp:337 333 | #, kde-format 334 | msgctxt "prefix for auto naming" 335 | msgid "Image-" 336 | msgstr "Bilde-" 337 | 338 | #: skanlite.cpp:472 339 | #, kde-format 340 | msgid "" 341 | "The image will be saved in the PNG format, as the selected image type does " 342 | "not support saving 16 bit color images." 343 | msgstr "" 344 | 345 | #: skanlite.cpp:494 346 | #, kde-format 347 | msgid "New Image File Name" 348 | msgstr "Filnavn for ny bildefil" 349 | 350 | #: skanlite.cpp:594 351 | #, kde-format 352 | msgid "Failed to save image" 353 | msgstr "Klarte ikke lagre bilde" 354 | 355 | #: skanlite.cpp:607 356 | #, kde-format 357 | msgid "Failed to upload image" 358 | msgstr "" 359 | 360 | #: skanlite.cpp:758 361 | #, kde-format 362 | msgctxt "@title:window %1 = scanner maker, %2 = scanner model" 363 | msgid "%1 %2 - Skanlite" 364 | msgstr "%1 %2 – Skanlite" 365 | 366 | #: skanlite.cpp:760 367 | #, kde-format 368 | msgctxt "@title:window %1 = scanner device" 369 | msgid "%1 - Skanlite" 370 | msgstr "%1 – Skanlite" 371 | -------------------------------------------------------------------------------- /po/nn/skanlite.po: -------------------------------------------------------------------------------- 1 | # Translation of skanlite to Norwegian Nynorsk 2 | # 3 | # Karl Ove Hufthammer , 2016, 2017, 2019, 2020, 2022. 4 | # Øystein Steffensen-Alværvik , 2018. 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: KDE 4\n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2024-10-12 00:38+0000\n" 10 | "PO-Revision-Date: 2022-06-19 13:47+0200\n" 11 | "Last-Translator: Karl Ove Hufthammer \n" 12 | "Language-Team: Norwegian Nynorsk \n" 13 | "Language: nn\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 18 | "X-Environment: kde\n" 19 | "X-Accelerator-Marker: &\n" 20 | "X-Text-Markup: kde4\n" 21 | "X-Generator: Lokalize 22.04.2\n" 22 | 23 | #: ImageViewer.cpp:45 24 | #, kde-format 25 | msgid "Zoom In" 26 | msgstr "Forstørr" 27 | 28 | #: ImageViewer.cpp:48 29 | #, kde-format 30 | msgid "Zoom Out" 31 | msgstr "Forminsk" 32 | 33 | #: ImageViewer.cpp:51 34 | #, kde-format 35 | msgid "Zoom to Actual size" 36 | msgstr "Vis verkeleg storleik" 37 | 38 | #: ImageViewer.cpp:54 39 | #, kde-format 40 | msgid "Zoom to Fit" 41 | msgstr "Forstørr til ledig plass" 42 | 43 | #: main.cpp:30 skanlite.cpp:762 44 | #, kde-format 45 | msgid "Skanlite" 46 | msgstr "Skanlite" 47 | 48 | #: main.cpp:32 49 | #, kde-format 50 | msgid "Scanning application by KDE based on libksane." 51 | msgstr "Skanneprogram frå KDE basert på libksane." 52 | 53 | #: main.cpp:34 54 | #, kde-format 55 | msgid "(C) 2008-2020 Kåre Särs" 56 | msgstr "© 2008–2020 Kåre Särs" 57 | 58 | #: main.cpp:39 59 | #, kde-format 60 | msgid "Kåre Särs" 61 | msgstr "Kåre Särs" 62 | 63 | #: main.cpp:39 64 | #, kde-format 65 | msgid "developer" 66 | msgstr "utviklar" 67 | 68 | #: main.cpp:41 69 | #, kde-format 70 | msgid "Gregor Mi" 71 | msgstr "Gregor Mi" 72 | 73 | #: main.cpp:41 main.cpp:43 74 | #, kde-format 75 | msgid "contributor" 76 | msgstr "bidragsytar" 77 | 78 | #: main.cpp:43 79 | #, kde-format 80 | msgid "Arseniy Lartsev" 81 | msgstr "Arseniy Lartsev" 82 | 83 | #: main.cpp:45 84 | #, kde-format 85 | msgid "Gilles Caulier" 86 | msgstr "Gilles Caulier" 87 | 88 | #: main.cpp:45 main.cpp:49 89 | #, kde-format 90 | msgid "Importing libksane to extragear" 91 | msgstr "Import av libksane til extragear" 92 | 93 | #: main.cpp:47 94 | #, kde-format 95 | msgid "Anne-Marie Mahfouf" 96 | msgstr "Anne-Marie Mahfouf" 97 | 98 | #: main.cpp:47 99 | #, kde-format 100 | msgid "Writing the user manual" 101 | msgstr "Skreiv brukarhandboka" 102 | 103 | #: main.cpp:49 104 | #, kde-format 105 | msgid "Laurent Montel" 106 | msgstr "Laurent Montel" 107 | 108 | #: main.cpp:51 109 | #, kde-format 110 | msgid "Chusslove Illich" 111 | msgstr "Chusslove Illich" 112 | 113 | #: main.cpp:51 main.cpp:53 114 | #, kde-format 115 | msgid "Help with translations" 116 | msgstr "Hjelp med omsetjing" 117 | 118 | #: main.cpp:53 119 | #, kde-format 120 | msgid "Albert Astals Cid" 121 | msgstr "Albert Astals Cid" 122 | 123 | #: main.cpp:56 124 | #, kde-format 125 | msgctxt "NAME OF TRANSLATORS" 126 | msgid "Your names" 127 | msgstr "Karl Ove Hufthammer" 128 | 129 | #: main.cpp:56 130 | #, kde-format 131 | msgctxt "EMAIL OF TRANSLATORS" 132 | msgid "Your emails" 133 | msgstr "karl@huftis.org" 134 | 135 | #: main.cpp:66 136 | #, kde-format 137 | msgid "Sane scanner device name. Use 'test' for test device." 138 | msgstr "Einingsnamn for Sane-skannar. Bruk «test» for ei testeining." 139 | 140 | #: main.cpp:67 141 | #, kde-format 142 | msgid "device" 143 | msgstr "eining" 144 | 145 | #. i18n: ectx: property (windowTitle), widget (QDialog, SaveLocation) 146 | #: SaveLocation.ui:20 147 | #, kde-format 148 | msgid "Save Location" 149 | msgstr "Lagringsmappe" 150 | 151 | #. i18n: ectx: property (text), widget (QLabel, locationLabel) 152 | #. i18n: ectx: property (text), widget (QLabel, label) 153 | #: SaveLocation.ui:28 settings.ui:80 154 | #, kde-format 155 | msgid "Save Location:" 156 | msgstr "Lagra i:" 157 | 158 | #. i18n: ectx: property (text), widget (QLabel, namePrefixLabel) 159 | #: SaveLocation.ui:55 160 | #, kde-format 161 | msgid "Name & Format:" 162 | msgstr "Namn og format:" 163 | 164 | #. i18n: ectx: property (text), widget (QLabel, numberLabel) 165 | #. i18n: ectx: property (text), widget (QLabel, label_3) 166 | #: SaveLocation.ui:74 settings.ui:112 167 | #, kde-format 168 | msgid "####." 169 | msgstr "####." 170 | 171 | #. i18n: ectx: property (text), widget (QLabel, numStartFromLabel) 172 | #: SaveLocation.ui:86 173 | #, kde-format 174 | msgid "Start numbering from:" 175 | msgstr "Start nummerering frå:" 176 | 177 | #. i18n: ectx: property (text), widget (QLabel, u_resultLabel) 178 | #: SaveLocation.ui:123 179 | #, kde-format 180 | msgid "Example:" 181 | msgstr "Eksempel:" 182 | 183 | #. i18n: ectx: property (text), widget (QLabel, u_resultValue) 184 | #: SaveLocation.ui:130 185 | #, kde-format 186 | msgid "/home/joe/example.png" 187 | msgstr "/home/joe/eksempel.png" 188 | 189 | #. i18n: ectx: property (windowTitle), widget (QWidget, SkanliteSettings) 190 | #: settings.ui:14 191 | #, kde-format 192 | msgid "Settings" 193 | msgstr "Innstillingar" 194 | 195 | #. i18n: ectx: property (title), widget (QGroupBox, groupBox) 196 | #: settings.ui:20 197 | #, kde-format 198 | msgid "Image saving" 199 | msgstr "Biletlagring" 200 | 201 | #. i18n: ectx: property (text), widget (QLabel, label_7) 202 | #: settings.ui:26 203 | #, kde-format 204 | msgid "Preview before saving:" 205 | msgstr "Førehandsvis før lagring:" 206 | 207 | #. i18n: ectx: property (text), widget (QLabel, label_6) 208 | #: settings.ui:46 209 | #, kde-format 210 | msgid "Save mode:" 211 | msgstr "Lagringsmodus:" 212 | 213 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 214 | #: settings.ui:60 215 | #, kde-format 216 | msgid "Open the save dialog for every image" 217 | msgstr "Opna lagringsvindauget for kvart bilete" 218 | 219 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 220 | #: settings.ui:65 221 | #, kde-format 222 | msgid "Open the save dialog for the first image only" 223 | msgstr "Opna lagringsvindauget berre for det første biletet" 224 | 225 | #. i18n: ectx: property (text), widget (QLabel, label_2) 226 | #: settings.ui:90 227 | #, kde-format 228 | msgid "Name && Format:" 229 | msgstr "Namn og format:" 230 | 231 | #. i18n: ectx: property (text), widget (QLineEdit, imgPrefix) 232 | #: settings.ui:105 233 | #, kde-format 234 | msgid "Image" 235 | msgstr "Bilete" 236 | 237 | #. i18n: ectx: property (text), widget (QLabel, label_4) 238 | #: settings.ui:124 239 | #, kde-format 240 | msgid "Specify save quality:" 241 | msgstr "Vel lagringskvalitet:" 242 | 243 | #. i18n: ectx: property (suffix), widget (QSpinBox, imgQuality) 244 | #: settings.ui:192 245 | #, no-c-format, kde-format 246 | msgid "%" 247 | msgstr " %" 248 | 249 | #. i18n: ectx: property (title), widget (QGroupBox, generalGB) 250 | #: settings.ui:233 251 | #, kde-format 252 | msgid "General" 253 | msgstr "Generelt" 254 | 255 | #. i18n: ectx: property (text), widget (QCheckBox, setPreviewDPI) 256 | #: settings.ui:239 257 | #, kde-format 258 | msgid "Set preview resolution (DPI)" 259 | msgstr "Vel oppløysing for førehandvising (ppt.)" 260 | 261 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 262 | #: settings.ui:253 263 | #, kde-format 264 | msgid "50" 265 | msgstr "50" 266 | 267 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 268 | #: settings.ui:258 269 | #, kde-format 270 | msgid "75" 271 | msgstr "75" 272 | 273 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 274 | #: settings.ui:263 275 | #, kde-format 276 | msgid "100" 277 | msgstr "100" 278 | 279 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 280 | #: settings.ui:268 281 | #, kde-format 282 | msgid "150" 283 | msgstr "150" 284 | 285 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 286 | #: settings.ui:273 287 | #, kde-format 288 | msgid "300" 289 | msgstr "300" 290 | 291 | #. i18n: ectx: property (text), widget (QCheckBox, u_disableSelections) 292 | #: settings.ui:286 293 | #, kde-format 294 | msgid "Disable automatic selections" 295 | msgstr "Ikkje vel utsnitt automatisk" 296 | 297 | #. i18n: ectx: property (text), widget (QPushButton, revertOptions) 298 | #: settings.ui:319 299 | #, kde-format 300 | msgid "Revert scanner options to default values" 301 | msgstr "Tilbakestill skannarvala til standardverdiar" 302 | 303 | #: skanlite.cpp:64 304 | #, kde-format 305 | msgid "Configure..." 306 | msgstr "Set opp …" 307 | 308 | #: skanlite.cpp:68 309 | #, kde-format 310 | msgid "Reselect scanner device" 311 | msgstr "Vel skanneeining på nytt" 312 | 313 | #: skanlite.cpp:92 314 | #, kde-format 315 | msgid "Saving: %v kB" 316 | msgstr "Lagrar: %v kB" 317 | 318 | #: skanlite.cpp:188 319 | #, kde-format 320 | msgid "Skanlite Settings" 321 | msgstr "Skanlite-innstillingar" 322 | 323 | #: skanlite.cpp:208 skanlite.cpp:304 324 | #, kde-format 325 | msgid "Opening the selected scanner failed." 326 | msgstr "Klarte ikkje opna den valde skannaren." 327 | 328 | #: skanlite.cpp:318 329 | #, kde-format 330 | msgid "%1: %2" 331 | msgstr "%1: %2" 332 | 333 | #: skanlite.cpp:337 334 | #, kde-format 335 | msgctxt "prefix for auto naming" 336 | msgid "Image-" 337 | msgstr "Bilete-" 338 | 339 | #: skanlite.cpp:472 340 | #, kde-format 341 | msgid "" 342 | "The image will be saved in the PNG format, as the selected image type does " 343 | "not support saving 16 bit color images." 344 | msgstr "" 345 | "Biletet vert lagra i PNG-format, då den valde bilettypen ikkje støttar 16-" 346 | "bits fargebilete." 347 | 348 | #: skanlite.cpp:494 349 | #, kde-format 350 | msgid "New Image File Name" 351 | msgstr "Filnamn for ny biletfil" 352 | 353 | #: skanlite.cpp:594 354 | #, kde-format 355 | msgid "Failed to save image" 356 | msgstr "Klarte ikkje lagra biletet" 357 | 358 | #: skanlite.cpp:607 359 | #, kde-format 360 | msgid "Failed to upload image" 361 | msgstr "Klarte ikkje lasta opp biletet" 362 | 363 | #: skanlite.cpp:758 364 | #, kde-format 365 | msgctxt "@title:window %1 = scanner maker, %2 = scanner model" 366 | msgid "%1 %2 - Skanlite" 367 | msgstr "%1 %2 – Skanlite" 368 | 369 | #: skanlite.cpp:760 370 | #, kde-format 371 | msgctxt "@title:window %1 = scanner device" 372 | msgid "%1 - Skanlite" 373 | msgstr "%1 – Skanlite" 374 | -------------------------------------------------------------------------------- /po/ug/skanlite.po: -------------------------------------------------------------------------------- 1 | # Uyghur translation for skanlite. 2 | # Copyright (C) YEAR This_file_is_part_of_KDE 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # Sahran , 2011. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: skanlite\n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2024-10-12 00:38+0000\n" 11 | "PO-Revision-Date: 2013-09-08 07:04+0900\n" 12 | "Last-Translator: Gheyret Kenji \n" 13 | "Language-Team: Uyghur Computer Science Association \n" 14 | "Language: ug\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=1; plural=0;\n" 19 | 20 | #: ImageViewer.cpp:45 21 | #, kde-format 22 | msgid "Zoom In" 23 | msgstr "چوڭايت" 24 | 25 | #: ImageViewer.cpp:48 26 | #, kde-format 27 | msgid "Zoom Out" 28 | msgstr "كىچىكلىتىش" 29 | 30 | #: ImageViewer.cpp:51 31 | #, kde-format 32 | msgid "Zoom to Actual size" 33 | msgstr "" 34 | 35 | #: ImageViewer.cpp:54 36 | #, kde-format 37 | msgid "Zoom to Fit" 38 | msgstr "بەتكە ماسلاشتۇر" 39 | 40 | #: main.cpp:30 skanlite.cpp:762 41 | #, kde-format 42 | msgid "Skanlite" 43 | msgstr "Skanlite" 44 | 45 | #: main.cpp:32 46 | #, kde-format 47 | msgid "Scanning application by KDE based on libksane." 48 | msgstr "" 49 | 50 | #: main.cpp:34 51 | #, fuzzy, kde-format 52 | #| msgid "Kåre Särs" 53 | msgid "(C) 2008-2020 Kåre Särs" 54 | msgstr "Kåre Särs" 55 | 56 | #: main.cpp:39 57 | #, kde-format 58 | msgid "Kåre Särs" 59 | msgstr "Kåre Särs" 60 | 61 | #: main.cpp:39 62 | #, kde-format 63 | msgid "developer" 64 | msgstr "ئىجادىيەتچى" 65 | 66 | #: main.cpp:41 67 | #, kde-format 68 | msgid "Gregor Mi" 69 | msgstr "" 70 | 71 | #: main.cpp:41 main.cpp:43 72 | #, kde-format 73 | msgid "contributor" 74 | msgstr "تۆھپىكار" 75 | 76 | #: main.cpp:43 77 | #, kde-format 78 | msgid "Arseniy Lartsev" 79 | msgstr "Arseniy Lartsev" 80 | 81 | #: main.cpp:45 82 | #, kde-format 83 | msgid "Gilles Caulier" 84 | msgstr "Gilles Caulier" 85 | 86 | #: main.cpp:45 main.cpp:49 87 | #, kde-format 88 | msgid "Importing libksane to extragear" 89 | msgstr "" 90 | 91 | #: main.cpp:47 92 | #, kde-format 93 | msgid "Anne-Marie Mahfouf" 94 | msgstr "Anne-Marie Mahfouf" 95 | 96 | #: main.cpp:47 97 | #, kde-format 98 | msgid "Writing the user manual" 99 | msgstr "ئىشلەتكۈچى قوللانمىسىنى يازغۇچى" 100 | 101 | #: main.cpp:49 102 | #, kde-format 103 | msgid "Laurent Montel" 104 | msgstr "Laurent Montel" 105 | 106 | #: main.cpp:51 107 | #, kde-format 108 | msgid "Chusslove Illich" 109 | msgstr "Chusslove Illich" 110 | 111 | #: main.cpp:51 main.cpp:53 112 | #, kde-format 113 | msgid "Help with translations" 114 | msgstr "تەرجىمىگە ياردەملەشكۈچى" 115 | 116 | #: main.cpp:53 117 | #, kde-format 118 | msgid "Albert Astals Cid" 119 | msgstr "Albert Astals Cid" 120 | 121 | #: main.cpp:56 122 | #, kde-format 123 | msgctxt "NAME OF TRANSLATORS" 124 | msgid "Your names" 125 | msgstr "ئابدۇقادىر ئابلىز, غەيرەت كەنجى" 126 | 127 | #: main.cpp:56 128 | #, kde-format 129 | msgctxt "EMAIL OF TRANSLATORS" 130 | msgid "Your emails" 131 | msgstr "sahran.ug@gmail.com, gheyret@gmail.com" 132 | 133 | #: main.cpp:66 134 | #, kde-format 135 | msgid "Sane scanner device name. Use 'test' for test device." 136 | msgstr "" 137 | 138 | #: main.cpp:67 139 | #, kde-format 140 | msgid "device" 141 | msgstr "" 142 | 143 | #. i18n: ectx: property (windowTitle), widget (QDialog, SaveLocation) 144 | #: SaveLocation.ui:20 145 | #, kde-format 146 | msgid "Save Location" 147 | msgstr "ساقلاش ئورنى" 148 | 149 | #. i18n: ectx: property (text), widget (QLabel, locationLabel) 150 | #. i18n: ectx: property (text), widget (QLabel, label) 151 | #: SaveLocation.ui:28 settings.ui:80 152 | #, kde-format 153 | msgid "Save Location:" 154 | msgstr "ساقلاش ئورنى:" 155 | 156 | #. i18n: ectx: property (text), widget (QLabel, namePrefixLabel) 157 | #: SaveLocation.ui:55 158 | #, kde-format 159 | msgid "Name & Format:" 160 | msgstr "ئارى ۋە پىچىمى:" 161 | 162 | #. i18n: ectx: property (text), widget (QLabel, numberLabel) 163 | #. i18n: ectx: property (text), widget (QLabel, label_3) 164 | #: SaveLocation.ui:74 settings.ui:112 165 | #, fuzzy, kde-format 166 | #| msgid "###." 167 | msgid "####." 168 | msgstr "###." 169 | 170 | #. i18n: ectx: property (text), widget (QLabel, numStartFromLabel) 171 | #: SaveLocation.ui:86 172 | #, kde-format 173 | msgid "Start numbering from:" 174 | msgstr "" 175 | 176 | #. i18n: ectx: property (text), widget (QLabel, u_resultLabel) 177 | #: SaveLocation.ui:123 178 | #, kde-format 179 | msgid "Example:" 180 | msgstr "مىسال:" 181 | 182 | #. i18n: ectx: property (text), widget (QLabel, u_resultValue) 183 | #: SaveLocation.ui:130 184 | #, kde-format 185 | msgid "/home/joe/example.png" 186 | msgstr "/home/joe/example.png" 187 | 188 | #. i18n: ectx: property (windowTitle), widget (QWidget, SkanliteSettings) 189 | #: settings.ui:14 190 | #, kde-format 191 | msgid "Settings" 192 | msgstr "تەڭشەكلەر" 193 | 194 | #. i18n: ectx: property (title), widget (QGroupBox, groupBox) 195 | #: settings.ui:20 196 | #, kde-format 197 | msgid "Image saving" 198 | msgstr "سۈرەت ساقلاش" 199 | 200 | #. i18n: ectx: property (text), widget (QLabel, label_7) 201 | #: settings.ui:26 202 | #, kde-format 203 | msgid "Preview before saving:" 204 | msgstr "" 205 | 206 | #. i18n: ectx: property (text), widget (QLabel, label_6) 207 | #: settings.ui:46 208 | #, kde-format 209 | msgid "Save mode:" 210 | msgstr "ساقلاش شەكلى:" 211 | 212 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 213 | #: settings.ui:60 214 | #, kde-format 215 | msgid "Open the save dialog for every image" 216 | msgstr "ھەر بىر سۈرەت ئۈچۈن ساقلاش سۆزلەشكۈسىنى ئېچىش" 217 | 218 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 219 | #: settings.ui:65 220 | #, kde-format 221 | msgid "Open the save dialog for the first image only" 222 | msgstr "" 223 | 224 | #. i18n: ectx: property (text), widget (QLabel, label_2) 225 | #: settings.ui:90 226 | #, kde-format 227 | msgid "Name && Format:" 228 | msgstr "" 229 | 230 | #. i18n: ectx: property (text), widget (QLineEdit, imgPrefix) 231 | #: settings.ui:105 232 | #, kde-format 233 | msgid "Image" 234 | msgstr "سۈرەت" 235 | 236 | #. i18n: ectx: property (text), widget (QLabel, label_4) 237 | #: settings.ui:124 238 | #, kde-format 239 | msgid "Specify save quality:" 240 | msgstr "" 241 | 242 | #. i18n: ectx: property (suffix), widget (QSpinBox, imgQuality) 243 | #: settings.ui:192 244 | #, no-c-format, kde-format 245 | msgid "%" 246 | msgstr "%" 247 | 248 | #. i18n: ectx: property (title), widget (QGroupBox, generalGB) 249 | #: settings.ui:233 250 | #, kde-format 251 | msgid "General" 252 | msgstr "ئادەتتىكى" 253 | 254 | #. i18n: ectx: property (text), widget (QCheckBox, setPreviewDPI) 255 | #: settings.ui:239 256 | #, kde-format 257 | msgid "Set preview resolution (DPI)" 258 | msgstr "" 259 | 260 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 261 | #: settings.ui:253 262 | #, kde-format 263 | msgid "50" 264 | msgstr "50" 265 | 266 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 267 | #: settings.ui:258 268 | #, kde-format 269 | msgid "75" 270 | msgstr "75" 271 | 272 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 273 | #: settings.ui:263 274 | #, kde-format 275 | msgid "100" 276 | msgstr "100" 277 | 278 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 279 | #: settings.ui:268 280 | #, kde-format 281 | msgid "150" 282 | msgstr "150" 283 | 284 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 285 | #: settings.ui:273 286 | #, kde-format 287 | msgid "300" 288 | msgstr "300" 289 | 290 | #. i18n: ectx: property (text), widget (QCheckBox, u_disableSelections) 291 | #: settings.ui:286 292 | #, kde-format 293 | msgid "Disable automatic selections" 294 | msgstr "" 295 | 296 | #. i18n: ectx: property (text), widget (QPushButton, revertOptions) 297 | #: settings.ui:319 298 | #, kde-format 299 | msgid "Revert scanner options to default values" 300 | msgstr "" 301 | 302 | #: skanlite.cpp:64 303 | #, kde-format 304 | msgid "Configure..." 305 | msgstr "" 306 | 307 | #: skanlite.cpp:68 308 | #, fuzzy, kde-format 309 | #| msgid "Opening the selected scanner failed." 310 | msgid "Reselect scanner device" 311 | msgstr "تاللانغان شولىلىغۇچنى ئېچىش مەغلۇپ بولدى." 312 | 313 | #: skanlite.cpp:92 314 | #, kde-format 315 | msgid "Saving: %v kB" 316 | msgstr "" 317 | 318 | #: skanlite.cpp:188 319 | #, kde-format 320 | msgid "Skanlite Settings" 321 | msgstr "" 322 | 323 | #: skanlite.cpp:208 skanlite.cpp:304 324 | #, kde-format 325 | msgid "Opening the selected scanner failed." 326 | msgstr "تاللانغان شولىلىغۇچنى ئېچىش مەغلۇپ بولدى." 327 | 328 | #: skanlite.cpp:318 329 | #, kde-format 330 | msgid "%1: %2" 331 | msgstr "%1: %2" 332 | 333 | #: skanlite.cpp:337 334 | #, kde-format 335 | msgctxt "prefix for auto naming" 336 | msgid "Image-" 337 | msgstr "" 338 | 339 | #: skanlite.cpp:472 340 | #, kde-format 341 | msgid "" 342 | "The image will be saved in the PNG format, as the selected image type does " 343 | "not support saving 16 bit color images." 344 | msgstr "" 345 | 346 | #: skanlite.cpp:494 347 | #, kde-format 348 | msgid "New Image File Name" 349 | msgstr "يېڭى سۈرەت ھۆججەت ئاتى" 350 | 351 | #: skanlite.cpp:594 352 | #, kde-format 353 | msgid "Failed to save image" 354 | msgstr "سۈرەتنى ساقلاش مەغلۇپ بولدى." 355 | 356 | #: skanlite.cpp:607 357 | #, fuzzy, kde-format 358 | #| msgid "Failed to save image" 359 | msgid "Failed to upload image" 360 | msgstr "سۈرەتنى ساقلاش مەغلۇپ بولدى." 361 | 362 | #: skanlite.cpp:758 363 | #, kde-format 364 | msgctxt "@title:window %1 = scanner maker, %2 = scanner model" 365 | msgid "%1 %2 - Skanlite" 366 | msgstr "" 367 | 368 | #: skanlite.cpp:760 369 | #, kde-format 370 | msgctxt "@title:window %1 = scanner device" 371 | msgid "%1 - Skanlite" 372 | msgstr "" 373 | 374 | #~ msgid "About" 375 | #~ msgstr "ھەققىدە" 376 | 377 | #~ msgid "..." 378 | #~ msgstr "…" 379 | 380 | #~ msgid "Do you want to overwrite \"%1\"?" 381 | #~ msgstr "«%1» نى قاپلىۋېتەمسىز؟" 382 | 383 | #~ msgid "Overwrite" 384 | #~ msgstr "قاپلا" 385 | 386 | #~ msgid "Save" 387 | #~ msgstr "ساقلا" 388 | 389 | #~ msgid "Revert" 390 | #~ msgstr "ئەسلىگە ياندۇر" 391 | -------------------------------------------------------------------------------- /po/uk/docs/skanlite/buttons-main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/uk/docs/skanlite/buttons-main.png -------------------------------------------------------------------------------- /po/uk/docs/skanlite/choose-scanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/uk/docs/skanlite/choose-scanner.png -------------------------------------------------------------------------------- /po/uk/docs/skanlite/final-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/uk/docs/skanlite/final-button.png -------------------------------------------------------------------------------- /po/uk/docs/skanlite/main-window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/uk/docs/skanlite/main-window.png -------------------------------------------------------------------------------- /po/uk/docs/skanlite/multiple-selections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/uk/docs/skanlite/multiple-selections.png -------------------------------------------------------------------------------- /po/uk/docs/skanlite/no-scanner-found.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/uk/docs/skanlite/no-scanner-found.png -------------------------------------------------------------------------------- /po/uk/docs/skanlite/other-options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/uk/docs/skanlite/other-options.png -------------------------------------------------------------------------------- /po/uk/docs/skanlite/preview-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/uk/docs/skanlite/preview-button.png -------------------------------------------------------------------------------- /po/uk/docs/skanlite/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/uk/docs/skanlite/preview.png -------------------------------------------------------------------------------- /po/uk/docs/skanlite/save-location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/uk/docs/skanlite/save-location.png -------------------------------------------------------------------------------- /po/uk/docs/skanlite/scanning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/uk/docs/skanlite/scanning.png -------------------------------------------------------------------------------- /po/uk/docs/skanlite/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/uk/docs/skanlite/settings.png -------------------------------------------------------------------------------- /po/uk/docs/skanlite/zoom-in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/uk/docs/skanlite/zoom-in.png -------------------------------------------------------------------------------- /po/uk/docs/skanlite/zoom-to-fit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/skanlite/6fa12d923d40b45b2addc650d13a23f44432dd32/po/uk/docs/skanlite/zoom-to-fit.png -------------------------------------------------------------------------------- /po/zh_CN/skanlite.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: kdeorg\n" 4 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 5 | "POT-Creation-Date: 2024-10-12 00:38+0000\n" 6 | "PO-Revision-Date: 2024-04-22 16:05\n" 7 | "Last-Translator: \n" 8 | "Language-Team: Chinese Simplified\n" 9 | "Language: zh_CN\n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "Plural-Forms: nplurals=1; plural=0;\n" 14 | "X-Crowdin-Project: kdeorg\n" 15 | "X-Crowdin-Project-ID: 269464\n" 16 | "X-Crowdin-Language: zh-CN\n" 17 | "X-Crowdin-File: /kf6-trunk/messages/skanlite/skanlite.pot\n" 18 | "X-Crowdin-File-ID: 55810\n" 19 | 20 | #: ImageViewer.cpp:45 21 | #, kde-format 22 | msgid "Zoom In" 23 | msgstr "放大" 24 | 25 | #: ImageViewer.cpp:48 26 | #, kde-format 27 | msgid "Zoom Out" 28 | msgstr "缩小" 29 | 30 | #: ImageViewer.cpp:51 31 | #, kde-format 32 | msgid "Zoom to Actual size" 33 | msgstr "缩放为实际大小" 34 | 35 | #: ImageViewer.cpp:54 36 | #, kde-format 37 | msgid "Zoom to Fit" 38 | msgstr "缩放以适合内容" 39 | 40 | #: main.cpp:30 skanlite.cpp:762 41 | #, kde-format 42 | msgid "Skanlite" 43 | msgstr "Skanlite" 44 | 45 | #: main.cpp:32 46 | #, kde-format 47 | msgid "Scanning application by KDE based on libksane." 48 | msgstr "基于 libksane 的 KDE 图像扫描程序。" 49 | 50 | #: main.cpp:34 51 | #, kde-format 52 | msgid "(C) 2008-2020 Kåre Särs" 53 | msgstr "(C) 2008-2020 Kåre Särs" 54 | 55 | #: main.cpp:39 56 | #, kde-format 57 | msgid "Kåre Särs" 58 | msgstr "Kåre Särs" 59 | 60 | #: main.cpp:39 61 | #, kde-format 62 | msgid "developer" 63 | msgstr "开发人员" 64 | 65 | #: main.cpp:41 66 | #, kde-format 67 | msgid "Gregor Mi" 68 | msgstr "Gregor Mi" 69 | 70 | #: main.cpp:41 main.cpp:43 71 | #, kde-format 72 | msgid "contributor" 73 | msgstr "贡献人员" 74 | 75 | #: main.cpp:43 76 | #, kde-format 77 | msgid "Arseniy Lartsev" 78 | msgstr "Arseniy Lartsev" 79 | 80 | #: main.cpp:45 81 | #, kde-format 82 | msgid "Gilles Caulier" 83 | msgstr "Gilles Caulier" 84 | 85 | #: main.cpp:45 main.cpp:49 86 | #, kde-format 87 | msgid "Importing libksane to extragear" 88 | msgstr "将 libksane 导入到 extragear" 89 | 90 | #: main.cpp:47 91 | #, kde-format 92 | msgid "Anne-Marie Mahfouf" 93 | msgstr "Anne-Marie Mahfouf" 94 | 95 | #: main.cpp:47 96 | #, kde-format 97 | msgid "Writing the user manual" 98 | msgstr "撰写用户手册" 99 | 100 | #: main.cpp:49 101 | #, kde-format 102 | msgid "Laurent Montel" 103 | msgstr "Laurent Montel" 104 | 105 | #: main.cpp:51 106 | #, kde-format 107 | msgid "Chusslove Illich" 108 | msgstr "Chusslove Illich" 109 | 110 | #: main.cpp:51 main.cpp:53 111 | #, kde-format 112 | msgid "Help with translations" 113 | msgstr "协助翻译工作" 114 | 115 | #: main.cpp:53 116 | #, kde-format 117 | msgid "Albert Astals Cid" 118 | msgstr "Albert Astals Cid" 119 | 120 | #: main.cpp:56 121 | #, kde-format 122 | msgctxt "NAME OF TRANSLATORS" 123 | msgid "Your names" 124 | msgstr "Ni Hui, Boyuan Yang, Tyson Tan" 125 | 126 | #: main.cpp:56 127 | #, kde-format 128 | msgctxt "EMAIL OF TRANSLATORS" 129 | msgid "Your emails" 130 | msgstr "shuizhuyuanluo@126.com,073plan@gmail.com,tysontanx@gmail.com" 131 | 132 | #: main.cpp:66 133 | #, kde-format 134 | msgid "Sane scanner device name. Use 'test' for test device." 135 | msgstr "Sane 扫描仪设备名称。测试设备请使用“test”。" 136 | 137 | #: main.cpp:67 138 | #, kde-format 139 | msgid "device" 140 | msgstr "设备" 141 | 142 | #. i18n: ectx: property (windowTitle), widget (QDialog, SaveLocation) 143 | #: SaveLocation.ui:20 144 | #, kde-format 145 | msgid "Save Location" 146 | msgstr "保存位置" 147 | 148 | #. i18n: ectx: property (text), widget (QLabel, locationLabel) 149 | #. i18n: ectx: property (text), widget (QLabel, label) 150 | #: SaveLocation.ui:28 settings.ui:80 151 | #, kde-format 152 | msgid "Save Location:" 153 | msgstr "保存位置:" 154 | 155 | #. i18n: ectx: property (text), widget (QLabel, namePrefixLabel) 156 | #: SaveLocation.ui:55 157 | #, kde-format 158 | msgid "Name & Format:" 159 | msgstr "文件名和格式:" 160 | 161 | #. i18n: ectx: property (text), widget (QLabel, numberLabel) 162 | #. i18n: ectx: property (text), widget (QLabel, label_3) 163 | #: SaveLocation.ui:74 settings.ui:112 164 | #, kde-format 165 | msgid "####." 166 | msgstr "####." 167 | 168 | #. i18n: ectx: property (text), widget (QLabel, numStartFromLabel) 169 | #: SaveLocation.ui:86 170 | #, kde-format 171 | msgid "Start numbering from:" 172 | msgstr "编号起始于:" 173 | 174 | #. i18n: ectx: property (text), widget (QLabel, u_resultLabel) 175 | #: SaveLocation.ui:123 176 | #, kde-format 177 | msgid "Example:" 178 | msgstr "示例:" 179 | 180 | #. i18n: ectx: property (text), widget (QLabel, u_resultValue) 181 | #: SaveLocation.ui:130 182 | #, kde-format 183 | msgid "/home/joe/example.png" 184 | msgstr "/home/joe/example.png" 185 | 186 | #. i18n: ectx: property (windowTitle), widget (QWidget, SkanliteSettings) 187 | #: settings.ui:14 188 | #, kde-format 189 | msgid "Settings" 190 | msgstr "设置" 191 | 192 | #. i18n: ectx: property (title), widget (QGroupBox, groupBox) 193 | #: settings.ui:20 194 | #, kde-format 195 | msgid "Image saving" 196 | msgstr "图像保存" 197 | 198 | #. i18n: ectx: property (text), widget (QLabel, label_7) 199 | #: settings.ui:26 200 | #, kde-format 201 | msgid "Preview before saving:" 202 | msgstr "保存前预览:" 203 | 204 | #. i18n: ectx: property (text), widget (QLabel, label_6) 205 | #: settings.ui:46 206 | #, kde-format 207 | msgid "Save mode:" 208 | msgstr "保存模式:" 209 | 210 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 211 | #: settings.ui:60 212 | #, kde-format 213 | msgid "Open the save dialog for every image" 214 | msgstr "为每张图像打开保存对话框" 215 | 216 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 217 | #: settings.ui:65 218 | #, kde-format 219 | msgid "Open the save dialog for the first image only" 220 | msgstr "仅为首张图像打开保存对话框" 221 | 222 | #. i18n: ectx: property (text), widget (QLabel, label_2) 223 | #: settings.ui:90 224 | #, kde-format 225 | msgid "Name && Format:" 226 | msgstr "文件名和格式:" 227 | 228 | #. i18n: ectx: property (text), widget (QLineEdit, imgPrefix) 229 | #: settings.ui:105 230 | #, kde-format 231 | msgid "Image" 232 | msgstr "图像" 233 | 234 | #. i18n: ectx: property (text), widget (QLabel, label_4) 235 | #: settings.ui:124 236 | #, kde-format 237 | msgid "Specify save quality:" 238 | msgstr "指定保存画质:" 239 | 240 | #. i18n: ectx: property (suffix), widget (QSpinBox, imgQuality) 241 | #: settings.ui:192 242 | #, no-c-format, kde-format 243 | msgid "%" 244 | msgstr "%" 245 | 246 | #. i18n: ectx: property (title), widget (QGroupBox, generalGB) 247 | #: settings.ui:233 248 | #, kde-format 249 | msgid "General" 250 | msgstr "常规选项" 251 | 252 | #. i18n: ectx: property (text), widget (QCheckBox, setPreviewDPI) 253 | #: settings.ui:239 254 | #, kde-format 255 | msgid "Set preview resolution (DPI)" 256 | msgstr "设定预览分辨率(DPI)" 257 | 258 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 259 | #: settings.ui:253 260 | #, kde-format 261 | msgid "50" 262 | msgstr "50" 263 | 264 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 265 | #: settings.ui:258 266 | #, kde-format 267 | msgid "75" 268 | msgstr "75" 269 | 270 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 271 | #: settings.ui:263 272 | #, kde-format 273 | msgid "100" 274 | msgstr "100" 275 | 276 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 277 | #: settings.ui:268 278 | #, kde-format 279 | msgid "150" 280 | msgstr "150" 281 | 282 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 283 | #: settings.ui:273 284 | #, kde-format 285 | msgid "300" 286 | msgstr "300" 287 | 288 | #. i18n: ectx: property (text), widget (QCheckBox, u_disableSelections) 289 | #: settings.ui:286 290 | #, kde-format 291 | msgid "Disable automatic selections" 292 | msgstr "禁用自动选中扫描区域" 293 | 294 | #. i18n: ectx: property (text), widget (QPushButton, revertOptions) 295 | #: settings.ui:319 296 | #, kde-format 297 | msgid "Revert scanner options to default values" 298 | msgstr "重置扫描仪选项为默认值" 299 | 300 | #: skanlite.cpp:64 301 | #, kde-format 302 | msgid "Configure..." 303 | msgstr "配置..." 304 | 305 | #: skanlite.cpp:68 306 | #, kde-format 307 | msgid "Reselect scanner device" 308 | msgstr "重新选择扫描仪设备" 309 | 310 | #: skanlite.cpp:92 311 | #, kde-format 312 | msgid "Saving: %v kB" 313 | msgstr "正在保存:%v kB" 314 | 315 | #: skanlite.cpp:188 316 | #, kde-format 317 | msgid "Skanlite Settings" 318 | msgstr "Skanlite 设置" 319 | 320 | #: skanlite.cpp:208 skanlite.cpp:304 321 | #, kde-format 322 | msgid "Opening the selected scanner failed." 323 | msgstr "无法打开所选的扫描仪。" 324 | 325 | #: skanlite.cpp:318 326 | #, kde-format 327 | msgid "%1: %2" 328 | msgstr "%1: %2" 329 | 330 | #: skanlite.cpp:337 331 | #, kde-format 332 | msgctxt "prefix for auto naming" 333 | msgid "Image-" 334 | msgstr "图像-" 335 | 336 | #: skanlite.cpp:472 337 | #, kde-format 338 | msgid "" 339 | "The image will be saved in the PNG format, as the selected image type does " 340 | "not support saving 16 bit color images." 341 | msgstr "图像将保存为 PNG 格式,因为选中的图像类型不支持保存为 16 位色彩深度。" 342 | 343 | #: skanlite.cpp:494 344 | #, kde-format 345 | msgid "New Image File Name" 346 | msgstr "新图像文件名" 347 | 348 | #: skanlite.cpp:594 349 | #, kde-format 350 | msgid "Failed to save image" 351 | msgstr "无法保存图像" 352 | 353 | #: skanlite.cpp:607 354 | #, kde-format 355 | msgid "Failed to upload image" 356 | msgstr "无法上传图像" 357 | 358 | #: skanlite.cpp:758 359 | #, kde-format 360 | msgctxt "@title:window %1 = scanner maker, %2 = scanner model" 361 | msgid "%1 %2 - Skanlite" 362 | msgstr "%1 %2 - Skanlite" 363 | 364 | #: skanlite.cpp:760 365 | #, kde-format 366 | msgctxt "@title:window %1 = scanner device" 367 | msgid "%1 - Skanlite" 368 | msgstr "%1 - Skanlite" 369 | -------------------------------------------------------------------------------- /po/zh_TW/skanlite.po: -------------------------------------------------------------------------------- 1 | # translation of skanlite.po to Chinese Traditional 2 | # Copyright (C) YEAR This_file_is_part_of_KDE 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # 5 | # Franklin Weng , 2011, 2012, 2013, 2014. 6 | # pan93412 , 2018, 2019. 7 | # Frank Weng (a.k.a. Franklin) , 2008, 2009, 2010. 8 | # Kisaragi Hiu , 2023. 9 | msgid "" 10 | msgstr "" 11 | "Project-Id-Version: skanlite\n" 12 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 13 | "POT-Creation-Date: 2024-10-12 00:38+0000\n" 14 | "PO-Revision-Date: 2023-02-19 06:16+0900\n" 15 | "Last-Translator: Kisaragi Hiu \n" 16 | "Language-Team: Chinese \n" 17 | "Language: zh_TW\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "X-Generator: Lokalize 22.12.2\n" 22 | "Plural-Forms: nplurals=1; plural=0;\n" 23 | 24 | #: ImageViewer.cpp:45 25 | #, kde-format 26 | msgid "Zoom In" 27 | msgstr "放大" 28 | 29 | #: ImageViewer.cpp:48 30 | #, kde-format 31 | msgid "Zoom Out" 32 | msgstr "縮小" 33 | 34 | #: ImageViewer.cpp:51 35 | #, kde-format 36 | msgid "Zoom to Actual size" 37 | msgstr "縮放到實際大小" 38 | 39 | #: ImageViewer.cpp:54 40 | #, kde-format 41 | msgid "Zoom to Fit" 42 | msgstr "縮放以符合" 43 | 44 | #: main.cpp:30 skanlite.cpp:762 45 | #, kde-format 46 | msgid "Skanlite" 47 | msgstr "Skanlite" 48 | 49 | #: main.cpp:32 50 | #, kde-format 51 | msgid "Scanning application by KDE based on libksane." 52 | msgstr "出自 KDE 的基於 libksane 掃描應用程式" 53 | 54 | #: main.cpp:34 55 | #, kde-format 56 | msgid "(C) 2008-2020 Kåre Särs" 57 | msgstr "(C) 2008-2020 Kåre Särs" 58 | 59 | #: main.cpp:39 60 | #, kde-format 61 | msgid "Kåre Särs" 62 | msgstr "Kåre Särs" 63 | 64 | #: main.cpp:39 65 | #, kde-format 66 | msgid "developer" 67 | msgstr "開發者" 68 | 69 | #: main.cpp:41 70 | #, kde-format 71 | msgid "Gregor Mi" 72 | msgstr "Gregor Mi" 73 | 74 | #: main.cpp:41 main.cpp:43 75 | #, kde-format 76 | msgid "contributor" 77 | msgstr "貢獻者" 78 | 79 | #: main.cpp:43 80 | #, kde-format 81 | msgid "Arseniy Lartsev" 82 | msgstr "Arseniy Lartsev" 83 | 84 | #: main.cpp:45 85 | #, kde-format 86 | msgid "Gilles Caulier" 87 | msgstr "Gilles Caulier" 88 | 89 | #: main.cpp:45 main.cpp:49 90 | #, kde-format 91 | msgid "Importing libksane to extragear" 92 | msgstr "將 libksane 匯入到 extragear" 93 | 94 | #: main.cpp:47 95 | #, kde-format 96 | msgid "Anne-Marie Mahfouf" 97 | msgstr "Anne-Marie Mahfouf" 98 | 99 | #: main.cpp:47 100 | #, kde-format 101 | msgid "Writing the user manual" 102 | msgstr "撰寫使用者手冊" 103 | 104 | #: main.cpp:49 105 | #, kde-format 106 | msgid "Laurent Montel" 107 | msgstr "Laurent Montel" 108 | 109 | #: main.cpp:51 110 | #, kde-format 111 | msgid "Chusslove Illich" 112 | msgstr "Chusslove Illich" 113 | 114 | #: main.cpp:51 main.cpp:53 115 | #, kde-format 116 | msgid "Help with translations" 117 | msgstr "協助翻譯" 118 | 119 | #: main.cpp:53 120 | #, kde-format 121 | msgid "Albert Astals Cid" 122 | msgstr "Albert Astals Cid" 123 | 124 | #: main.cpp:56 125 | #, kde-format 126 | msgctxt "NAME OF TRANSLATORS" 127 | msgid "Your names" 128 | msgstr "Franklin Weng" 129 | 130 | #: main.cpp:56 131 | #, kde-format 132 | msgctxt "EMAIL OF TRANSLATORS" 133 | msgid "Your emails" 134 | msgstr "franklin@goodhorse.idv.tw" 135 | 136 | #: main.cpp:66 137 | #, kde-format 138 | msgid "Sane scanner device name. Use 'test' for test device." 139 | msgstr "Sane 掃描器的裝置名稱。使用「test」代表測試裝置。" 140 | 141 | #: main.cpp:67 142 | #, kde-format 143 | msgid "device" 144 | msgstr "裝置" 145 | 146 | #. i18n: ectx: property (windowTitle), widget (QDialog, SaveLocation) 147 | #: SaveLocation.ui:20 148 | #, kde-format 149 | msgid "Save Location" 150 | msgstr "儲存位置" 151 | 152 | #. i18n: ectx: property (text), widget (QLabel, locationLabel) 153 | #. i18n: ectx: property (text), widget (QLabel, label) 154 | #: SaveLocation.ui:28 settings.ui:80 155 | #, kde-format 156 | msgid "Save Location:" 157 | msgstr "儲存位置:" 158 | 159 | #. i18n: ectx: property (text), widget (QLabel, namePrefixLabel) 160 | #: SaveLocation.ui:55 161 | #, kde-format 162 | msgid "Name & Format:" 163 | msgstr "名稱與格式" 164 | 165 | #. i18n: ectx: property (text), widget (QLabel, numberLabel) 166 | #. i18n: ectx: property (text), widget (QLabel, label_3) 167 | #: SaveLocation.ui:74 settings.ui:112 168 | #, kde-format 169 | msgid "####." 170 | msgstr "####." 171 | 172 | #. i18n: ectx: property (text), widget (QLabel, numStartFromLabel) 173 | #: SaveLocation.ui:86 174 | #, kde-format 175 | msgid "Start numbering from:" 176 | msgstr "開始編號:" 177 | 178 | #. i18n: ectx: property (text), widget (QLabel, u_resultLabel) 179 | #: SaveLocation.ui:123 180 | #, kde-format 181 | msgid "Example:" 182 | msgstr "範例:" 183 | 184 | #. i18n: ectx: property (text), widget (QLabel, u_resultValue) 185 | #: SaveLocation.ui:130 186 | #, kde-format 187 | msgid "/home/joe/example.png" 188 | msgstr "/home/joe/example.png" 189 | 190 | #. i18n: ectx: property (windowTitle), widget (QWidget, SkanliteSettings) 191 | #: settings.ui:14 192 | #, kde-format 193 | msgid "Settings" 194 | msgstr "設定" 195 | 196 | #. i18n: ectx: property (title), widget (QGroupBox, groupBox) 197 | #: settings.ui:20 198 | #, kde-format 199 | msgid "Image saving" 200 | msgstr "儲存影像" 201 | 202 | #. i18n: ectx: property (text), widget (QLabel, label_7) 203 | #: settings.ui:26 204 | #, kde-format 205 | msgid "Preview before saving:" 206 | msgstr "儲存前預覽影像:" 207 | 208 | #. i18n: ectx: property (text), widget (QLabel, label_6) 209 | #: settings.ui:46 210 | #, kde-format 211 | msgid "Save mode:" 212 | msgstr "儲存模式:" 213 | 214 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 215 | #: settings.ui:60 216 | #, kde-format 217 | msgid "Open the save dialog for every image" 218 | msgstr "每張影像都開啟儲存對話框" 219 | 220 | #. i18n: ectx: property (text), item, widget (QComboBox, saveModeCB) 221 | #: settings.ui:65 222 | #, kde-format 223 | msgid "Open the save dialog for the first image only" 224 | msgstr "只在第一張影像開啟儲存對話框" 225 | 226 | #. i18n: ectx: property (text), widget (QLabel, label_2) 227 | #: settings.ui:90 228 | #, kde-format 229 | msgid "Name && Format:" 230 | msgstr "名稱與格式:" 231 | 232 | #. i18n: ectx: property (text), widget (QLineEdit, imgPrefix) 233 | #: settings.ui:105 234 | #, kde-format 235 | msgid "Image" 236 | msgstr "影像" 237 | 238 | #. i18n: ectx: property (text), widget (QLabel, label_4) 239 | #: settings.ui:124 240 | #, kde-format 241 | msgid "Specify save quality:" 242 | msgstr "指定儲存品質:" 243 | 244 | #. i18n: ectx: property (suffix), widget (QSpinBox, imgQuality) 245 | #: settings.ui:192 246 | #, no-c-format, kde-format 247 | msgid "%" 248 | msgstr "%" 249 | 250 | #. i18n: ectx: property (title), widget (QGroupBox, generalGB) 251 | #: settings.ui:233 252 | #, kde-format 253 | msgid "General" 254 | msgstr "一般" 255 | 256 | #. i18n: ectx: property (text), widget (QCheckBox, setPreviewDPI) 257 | #: settings.ui:239 258 | #, kde-format 259 | msgid "Set preview resolution (DPI)" 260 | msgstr "設定預覽解析度(DPI)" 261 | 262 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 263 | #: settings.ui:253 264 | #, kde-format 265 | msgid "50" 266 | msgstr "50" 267 | 268 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 269 | #: settings.ui:258 270 | #, kde-format 271 | msgid "75" 272 | msgstr "75" 273 | 274 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 275 | #: settings.ui:263 276 | #, kde-format 277 | msgid "100" 278 | msgstr "100" 279 | 280 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 281 | #: settings.ui:268 282 | #, kde-format 283 | msgid "150" 284 | msgstr "150" 285 | 286 | #. i18n: ectx: property (text), item, widget (QComboBox, previewDPI) 287 | #: settings.ui:273 288 | #, kde-format 289 | msgid "300" 290 | msgstr "300" 291 | 292 | #. i18n: ectx: property (text), widget (QCheckBox, u_disableSelections) 293 | #: settings.ui:286 294 | #, kde-format 295 | msgid "Disable automatic selections" 296 | msgstr "關閉自動選擇" 297 | 298 | #. i18n: ectx: property (text), widget (QPushButton, revertOptions) 299 | #: settings.ui:319 300 | #, kde-format 301 | msgid "Revert scanner options to default values" 302 | msgstr "將掃描器選項回復到預設值" 303 | 304 | #: skanlite.cpp:64 305 | #, kde-format 306 | msgid "Configure..." 307 | msgstr "設定…" 308 | 309 | #: skanlite.cpp:68 310 | #, kde-format 311 | msgid "Reselect scanner device" 312 | msgstr "重新選取掃描器裝置" 313 | 314 | #: skanlite.cpp:92 315 | #, kde-format 316 | msgid "Saving: %v kB" 317 | msgstr "儲存中:%v kB" 318 | 319 | #: skanlite.cpp:188 320 | #, kde-format 321 | msgid "Skanlite Settings" 322 | msgstr "Skanlite 設定" 323 | 324 | #: skanlite.cpp:208 skanlite.cpp:304 325 | #, kde-format 326 | msgid "Opening the selected scanner failed." 327 | msgstr "開啟選取的掃描器失敗。" 328 | 329 | #: skanlite.cpp:318 330 | #, kde-format 331 | msgid "%1: %2" 332 | msgstr "%1: %2" 333 | 334 | #: skanlite.cpp:337 335 | #, kde-format 336 | msgctxt "prefix for auto naming" 337 | msgid "Image-" 338 | msgstr "Image-" 339 | 340 | #: skanlite.cpp:472 341 | #, kde-format 342 | msgid "" 343 | "The image will be saved in the PNG format, as the selected image type does " 344 | "not support saving 16 bit color images." 345 | msgstr "影像將以 PNG 格式儲存,因為已選的影像格式不支援儲存 16 位元色彩影像。" 346 | 347 | #: skanlite.cpp:494 348 | #, kde-format 349 | msgid "New Image File Name" 350 | msgstr "新的影像檔名" 351 | 352 | #: skanlite.cpp:594 353 | #, kde-format 354 | msgid "Failed to save image" 355 | msgstr "儲存影像失敗" 356 | 357 | #: skanlite.cpp:607 358 | #, kde-format 359 | msgid "Failed to upload image" 360 | msgstr "上傳影像失敗" 361 | 362 | #: skanlite.cpp:758 363 | #, kde-format 364 | msgctxt "@title:window %1 = scanner maker, %2 = scanner model" 365 | msgid "%1 %2 - Skanlite" 366 | msgstr "%1 %2 - Skanlite" 367 | 368 | #: skanlite.cpp:760 369 | #, kde-format 370 | msgctxt "@title:window %1 = scanner device" 371 | msgid "%1 - Skanlite" 372 | msgstr "%1 - Skanlite" 373 | 374 | #~ msgid "About" 375 | #~ msgstr "關於" 376 | 377 | #~ msgid "..." 378 | #~ msgstr "..." 379 | 380 | #~ msgid "Directory doesn't exist, do you wish to create it?" 381 | #~ msgstr "目錄不存在,是否建立?" 382 | 383 | #~ msgid "Could not create directory %1" 384 | #~ msgstr "無法建立 %1 目錄" 385 | 386 | #~ msgid "Do you want to overwrite \"%1\"?" 387 | #~ msgstr "您要覆寫 %1 嗎?" 388 | -------------------------------------------------------------------------------- /sc-apps-org.kde.skanlite.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /snapcraft.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2024 Scarlett Moore 2 | # 3 | # SPDX-License-Identifier: CC0-1.0 4 | --- 5 | name: skanlite 6 | confinement: strict 7 | grade: stable 8 | base: core22 9 | adopt-info: skanlite 10 | apps: 11 | skanlite: 12 | extensions: 13 | - kde-neon-6 14 | common-id: org.kde.skanlite.desktop 15 | desktop: usr/share/applications/org.kde.skanlite.desktop 16 | command: usr/bin/skanlite 17 | plugs: 18 | - audio-record 19 | - home 20 | - avahi-observe 21 | - hardware-observe 22 | - raw-usb 23 | - cups 24 | plugs: 25 | foo-install-cups: 26 | interface: content 27 | content: foo 28 | default-provider: cups 29 | target: $SNAP_DATA/foo 30 | environment: 31 | PYTHONPYCACHEPREFIX: "$SNAP_USER_COMMON/.pycache" 32 | PYTHONUSERBASE: $SNAP_USER_COMMON/.local 33 | PYTHONPATH: "$PYTHONUSERBASE/lib/python3.10/site-packages:$SNAP/lib/python3.10/site-packages:$SNAP/usr/lib/python3/dist-packages" 34 | layout: 35 | /etc: 36 | bind: $SNAP/etc 37 | /usr/lib/sane: 38 | bind: $SNAP/usr/lib/sane 39 | slots: 40 | session-dbus-interface: 41 | interface: dbus 42 | name: org.kde.skanlite 43 | bus: session 44 | package-repositories: 45 | - type: apt 46 | components: 47 | - main 48 | suites: 49 | - jammy 50 | key-id: 444DABCF3667D0283F894EDDE6D4736255751E5D 51 | url: http://origin.archive.neon.kde.org/user 52 | key-server: keyserver.ubuntu.com 53 | parts: 54 | libsane: 55 | source: https://gitlab.com/sane-project/backends.git 56 | source-type: git 57 | source-tag: '1.2.1' 58 | source-depth: 1 59 | plugin: autotools 60 | autotools-configure-parameters: 61 | - --prefix=/usr 62 | - --sysconfdir=/etc 63 | - --with-api-spec=no 64 | - --with-avahi 65 | build-packages: 66 | # Everything of the build dependencies of the sane-backends 67 | # Debian package ... 68 | - libavahi-client-dev 69 | - libcups2-dev 70 | - libcurl4-gnutls-dev 71 | - libgphoto2-dev 72 | - libieee1284-3-dev 73 | - libjpeg-dev 74 | - libltdl3-dev 75 | - libpoppler-glib-dev 76 | - libsnmp-dev 77 | - libtiff-dev 78 | - libusb-1.0-0-dev 79 | - libxml2-dev 80 | - python3-minimal 81 | - autoconf-archive 82 | stage-packages: 83 | - libexif12 84 | - libgphoto2-6 85 | - libgphoto2-port12 86 | - libsnmp40 87 | organize: 88 | snap/skanpage/current/usr: usr 89 | libsane-airscan: 90 | after: [libsane] 91 | source: https://github.com/alexpevzner/sane-airscan 92 | source-type: git 93 | source-tag: 0.99.27 94 | source-depth: 1 95 | plugin: make 96 | make-parameters: 97 | - prefix=/usr 98 | - sysconfdir=/etc 99 | - libdir=/usr/lib 100 | build-packages: 101 | # Everything of the build dependencies of the sane-airscan 102 | # Debian package ... 103 | - libavahi-client-dev 104 | - libavahi-common-dev 105 | - libjpeg-turbo8-dev 106 | - libpng-dev 107 | - libxml2-dev 108 | - libgnutls28-dev 109 | ksanecore: 110 | after: 111 | - libsane 112 | - libsane-airscan 113 | plugin: cmake 114 | source: https://invent.kde.org/libraries/ksanecore.git 115 | source-branch: release/24.08 116 | cmake-parameters: 117 | - -DCMAKE_INSTALL_PREFIX=/usr 118 | - -DCMAKE_BUILD_TYPE=Release 119 | - -DQT_MAJOR_VERSION=6 120 | - -DBUILD_WITH_QT6=ON 121 | - -DBUILD_TESTING=OFF 122 | - -DCMAKE_INSTALL_SYSCONFDIR=/etc 123 | - -DCMAKE_INSTALL_LOCALSTATEDIR=/var 124 | - -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON 125 | - -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF 126 | - -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON 127 | - -DCMAKE_INSTALL_RUNSTATEDIR=/run 128 | - -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON 129 | - -DCMAKE_VERBOSE_MAKEFILE=ON 130 | - -DCMAKE_INSTALL_LIBDIR=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR 131 | - --log-level=STATUS 132 | - -DCMAKE_LIBRARY_PATH=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR 133 | build-environment: 134 | - LDFLAGS: "-L$CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR" 135 | - CFLAGS: "-I$CRAFT_STAGE/usr/include/KF6" 136 | - LD_LIBRARY_PATH: "$CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR" 137 | libksane: 138 | after: 139 | - ksanecore 140 | plugin: cmake 141 | source: https://invent.kde.org/graphics/libksane.git 142 | source-branch: release/24.08 143 | cmake-parameters: 144 | - -DCMAKE_INSTALL_PREFIX=/usr 145 | - -DCMAKE_BUILD_TYPE=Release 146 | - -DQT_MAJOR_VERSION=6 147 | - -DBUILD_WITH_QT6=ON 148 | - -DBUILD_TESTING=OFF 149 | - -DCMAKE_INSTALL_SYSCONFDIR=/etc 150 | - -DCMAKE_INSTALL_LOCALSTATEDIR=/var 151 | - -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON 152 | - -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF 153 | - -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON 154 | - -DCMAKE_INSTALL_RUNSTATEDIR=/run 155 | - -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON 156 | - -DCMAKE_VERBOSE_MAKEFILE=ON 157 | - -DCMAKE_INSTALL_LIBDIR=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR 158 | - --log-level=STATUS 159 | - -DCMAKE_LIBRARY_PATH=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR 160 | build-environment: 161 | - LDFLAGS: "-L$CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR" 162 | - CFLAGS: "-I$CRAFT_STAGE/usr/include/KF6" 163 | - LD_LIBRARY_PATH: "$CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR" 164 | 165 | skanlite: 166 | after: 167 | - libksane 168 | parse-info: 169 | - usr/share/metainfo/org.kde.skanlite.appdata.xml 170 | plugin: cmake 171 | source: . 172 | source-type: local 173 | build-packages: 174 | - libpng-dev 175 | stage-packages: 176 | - avahi-daemon 177 | cmake-parameters: 178 | - -DCMAKE_INSTALL_PREFIX=/usr 179 | - -DCMAKE_BUILD_TYPE=Release 180 | - -DQT_MAJOR_VERSION=6 181 | - -DBUILD_WITH_QT6=ON 182 | - -DBUILD_TESTING=OFF 183 | - -DCMAKE_INSTALL_SYSCONFDIR=/etc 184 | - -DCMAKE_INSTALL_LOCALSTATEDIR=/var 185 | - -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON 186 | - -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF 187 | - -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON 188 | - -DCMAKE_INSTALL_RUNSTATEDIR=/run 189 | - -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON 190 | - -DCMAKE_VERBOSE_MAKEFILE=ON 191 | - -DCMAKE_INSTALL_LIBDIR=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR 192 | - --log-level=STATUS 193 | - -DCMAKE_LIBRARY_PATH=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR 194 | prime: 195 | - -usr/lib/*/cmake/* 196 | - -usr/include/* 197 | - -usr/share/ECM/* 198 | - -usr/share/man/* 199 | - -usr/bin/X11 200 | - -usr/lib/gcc/$CRAFT_ARCH_TRIPLET_BUILD_FOR/6.0.0 201 | - -usr/lib/aspell/* 202 | - -usr/share/lintian 203 | cleanup: 204 | after: 205 | - skanlite 206 | plugin: nil 207 | build-snaps: 208 | - core22 209 | - kf6-core22 210 | - qt-common-themes 211 | override-prime: | 212 | set -eux 213 | for snap in "core22" "kf6-core22" "qt-common-themes"; do 214 | cd "/snap/$snap/current" && find . -type f,l -exec rm -rf "${CRAFT_PRIME}/{}" \; 215 | done 216 | -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(skanlite ${skanlite_SRCS}) 2 | target_sources(skanlite PRIVATE showimagedialog.cpp 3 | skanlite.cpp 4 | ImageViewer.cpp 5 | DBusInterface.h 6 | DBusInterface.cpp 7 | SaveLocation.cpp 8 | SkanliteImageSaver.cpp 9 | ImageViewer.h 10 | skanlite.h 11 | SkanliteImageSaver.h 12 | showimagedialog.h 13 | SaveLocation.h 14 | main.cpp) 15 | 16 | ki18n_wrap_ui(skanlite settings.ui SaveLocation.ui) 17 | 18 | ecm_qt_declare_logging_category(skanlite 19 | HEADER skanlite_debug.h 20 | IDENTIFIER SKANLITE_LOG 21 | CATEGORY_NAME org.kde.skanlite 22 | ) 23 | 24 | 25 | target_link_libraries(skanlite 26 | PUBLIC 27 | Qt6::Core 28 | PRIVATE 29 | KF6::CoreAddons 30 | KF6::I18n 31 | KF6::XmlGui 32 | KF6::KIOWidgets 33 | KF6::Crash 34 | ) 35 | target_link_libraries(skanlite PRIVATE KSaneWidgets6) 36 | 37 | install(TARGETS skanlite ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 38 | install(PROGRAMS org.kde.skanlite.desktop DESTINATION ${KDE_INSTALL_APPDIR}) 39 | install( FILES org.kde.skanlite.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR} ) 40 | -------------------------------------------------------------------------------- /src/DBusInterface.cpp: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * 3 | * SPDX-FileCopyrightText: 2017 Alexander Trufanov 4 | * 5 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 6 | * 7 | * ============================================================ */ 8 | 9 | #include "DBusInterface.h" 10 | 11 | #include 12 | 13 | bool DBusInterface::setupDBusInterface() 14 | { 15 | QDBusConnection session = QDBusConnection::sessionBus(); 16 | 17 | if (!session.isConnected()) { 18 | qCDebug(SKANLITE_LOG) << ("ERROR: Cannot connect to the D-Bus session bus. Continuing..."); 19 | return false; 20 | } 21 | 22 | if (!session.registerObject(QStringLiteral("/"), this, QDBusConnection::ExportScriptableContents)) { 23 | qCDebug(SKANLITE_LOG) << ("ERROR: Cannot register D-Bus object. Continuing..."); 24 | return false; 25 | } 26 | 27 | if (!session.registerService(QStringLiteral("org.kde.skanlite"))) { 28 | qCDebug(SKANLITE_LOG) << ("ERROR: Cannot register D-Bus service. Continuing..."); 29 | return false; 30 | } 31 | 32 | return true; 33 | } 34 | 35 | // QDbusViewer (qttools5-dev-tools) is a very convinient tool to test D-Bus messaging (QTBUG-7341) 36 | // But it can't pass string list parameters. It passes them as one string in following format: 37 | // "{"KSane::InvertColors=false", "blue-gamma-table=0:0:100", "br-x=220", "br-y=300", "button 0=false", "button 1=false", "button 2=false", "button 3=false", 38 | // "depth=8 битов", "green-gamma-table=0:0:100", "mode=Color", "opt_chipid=4", "opt_chipname=RTS8822L-02A", "opt_dbgimages=false", "opt_emulategray=false", 39 | // "opt_model=HP4370", "opt_negative=false", "opt_nogamma=false", "opt_nowarmup=true", "opt_nowshading=true", "opt_realdepth=false", "opt_scancount=12381", 40 | // "red-gamma-table=0:0:100", "resolution=50 DPI", "source=Flatbed", "tl-x=0", "tl-y=0"}" We check for this format and convert string back to string list if 41 | // detected. 42 | const QStringList DBusInterface::ensureStringList(const QStringList &list) 43 | { 44 | if (list.length() == 1) { 45 | QString s = list[0].trimmed(); 46 | if (s.left(2) == QLatin1String("{\"") && s.right(2) == QLatin1String("\"}")) { 47 | return s.remove(QLatin1String("{\"")).remove(QLatin1String("\"}")).split(QStringLiteral("\", \"")); 48 | } 49 | } 50 | 51 | return list; 52 | } 53 | 54 | #include "moc_DBusInterface.cpp" 55 | -------------------------------------------------------------------------------- /src/DBusInterface.h: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * 3 | * SPDX-FileCopyrightText: 2017 Alexander Trufanov 4 | * 5 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 6 | * 7 | * ============================================================ */ 8 | 9 | #ifndef DBusInterface_h 10 | #define DBusInterface_h 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | static const bool defaultSelectionFiltering = true; 17 | static const QLatin1String defaultProfile("1"); 18 | 19 | class DBusInterface : public QObject 20 | { 21 | Q_OBJECT 22 | Q_CLASSINFO("D-Bus Interface", "org.kde.skanlite") 23 | QStringList m_msgBuffer; 24 | 25 | public: 26 | explicit DBusInterface(QObject *parent = nullptr) 27 | : QObject(parent) 28 | { 29 | } 30 | 31 | bool setupDBusInterface(); 32 | 33 | const QStringList &reply() 34 | { 35 | return m_msgBuffer; 36 | } 37 | void setReply(const QStringList &reply) 38 | { 39 | m_msgBuffer = reply; 40 | } 41 | 42 | private: 43 | // helper method for QDbusViewer compatibility. The details are in .cpp 44 | const QStringList ensureStringList(const QStringList &list); 45 | 46 | Q_SIGNALS: 47 | // used to communicate with Skanlite class 48 | void requestedScan(); 49 | void requestedPreview(); 50 | void requestedScanCancel(); 51 | void requestedGetScannerOptions(); 52 | void requestedSetScannerOptions(const QStringList &options, bool ignoreSelection); 53 | void requestedDefaultScannerOptions(); 54 | void requestedDeviceName(); 55 | void requestedSaveScannerOptionsToProfile(const QStringList &options, const QString &profile, bool ignoreSelection); 56 | void requestedSwitchToProfile(const QString &profile, bool ignoreSelection); 57 | void requestedGetSelection(); 58 | void requestedSetSelection(const QStringList &options); 59 | 60 | public Q_SLOTS: 61 | 62 | // called via D-Bus 63 | 64 | // Perform scan operation if is in idle 65 | Q_SCRIPTABLE void scan() 66 | { 67 | Q_EMIT requestedScan(); 68 | } 69 | 70 | // Perform preview operation if is in idle 71 | Q_SCRIPTABLE void preview() 72 | { 73 | Q_EMIT requestedPreview(); 74 | } 75 | 76 | // Cancel any ongoing operation 77 | Q_SCRIPTABLE void scanCancel() 78 | { 79 | Q_EMIT requestedScanCancel(); 80 | } 81 | 82 | // Return device name, like "Hewlett-Packard:Scanjet 4370" 83 | Q_SCRIPTABLE QString getDeviceName() 84 | { 85 | Q_EMIT requestedDeviceName(); 86 | return reply().join(QLatin1String()); 87 | } 88 | 89 | // Return current scanner options as returned by KSaneWidget::getOptVals() 90 | Q_SCRIPTABLE QStringList getScannerOptions() 91 | { 92 | Q_EMIT requestedGetScannerOptions(); 93 | return reply(); 94 | } 95 | 96 | // Replaces current scanner options with argument value. Ignores page selection area info if ignoreSelection is true (by default) 97 | Q_SCRIPTABLE void setScannerOptions(const QStringList &options, bool ignoreSelection = defaultSelectionFiltering) 98 | { 99 | Q_EMIT requestedSetScannerOptions(ensureStringList(options), ignoreSelection); 100 | } 101 | 102 | // Return current scanner options 103 | Q_SCRIPTABLE QStringList getDefaultScannerOptions() 104 | { 105 | Q_EMIT requestedDefaultScannerOptions(); 106 | return reply(); 107 | } 108 | 109 | // Save options to KConfigGroup named ""Options For %Current_Device% - Profile %profile%"" 110 | // Thus it's device specific. Default profile is "1". Could be any string value. 111 | // Ignores page selection area info if ignoreSelection is true (by default) 112 | Q_SCRIPTABLE void 113 | saveScannerOptionsToProfile(const QStringList &options, const QString &profile = defaultProfile, bool ignoreSelection = defaultSelectionFiltering) 114 | { 115 | Q_EMIT requestedSaveScannerOptionsToProfile(ensureStringList(options), profile, ignoreSelection); 116 | } 117 | 118 | // Gets current options via KSaneWidget::getOptVals() and saves them into provile 119 | // Acts as a combination of saveScannerOptionsToProfile and requestedSaveScannerOptionsToProfile 120 | // Made for easy bind both to hotkey in KHotkeys 121 | Q_SCRIPTABLE void saveCurrentScannerOptionsToProfile(const QString &profile = defaultProfile, bool ignoreSelection = defaultSelectionFiltering) 122 | { 123 | Q_EMIT requestedGetScannerOptions(); // put result in m_msgBuffer 124 | Q_EMIT requestedSaveScannerOptionsToProfile(reply(), profile, ignoreSelection); 125 | } 126 | 127 | // Loads options from specified profile and applies them. Ignores page selection area info if ignoreSelection is true (by default) 128 | Q_SCRIPTABLE void switchToProfile(const QString &profile = defaultProfile, bool ignoreSelection = defaultSelectionFiltering) 129 | { 130 | Q_EMIT requestedSwitchToProfile(profile, ignoreSelection); 131 | } 132 | 133 | // Returns current selection area in form "{"tl-x=0", "tl-y=0", "br-x=220", "br-y=248"}" 134 | Q_SCRIPTABLE QStringList getSelection() 135 | { 136 | Q_EMIT requestedGetSelection(); 137 | return reply(); 138 | } 139 | 140 | // Changes current selection area. Argument must be a list of strings in form "{"tl-x=0", "tl-y=0", "br-x=220", "br-y=248"}" 141 | Q_SCRIPTABLE void setSelection(const QStringList &options) 142 | { 143 | Q_EMIT requestedSetSelection(ensureStringList(options)); 144 | } 145 | 146 | Q_SIGNALS: 147 | 148 | Q_SCRIPTABLE void imageSaved(const QString &strFilename); 149 | 150 | // Below are 4 signals which are just forwarded from KSaneWidget. 151 | // You can take a look in KSaneWidget.h for detailed arguments description 152 | 153 | Q_SCRIPTABLE void scanDone(int status, const QString &strStatus); 154 | Q_SCRIPTABLE void userMessage(int type, const QString &strStatus); 155 | Q_SCRIPTABLE void scanProgress(int percent); 156 | Q_SCRIPTABLE void buttonPressed(const QString &optionName, const QString &optionLabel, bool pressed); 157 | }; 158 | 159 | #endif 160 | -------------------------------------------------------------------------------- /src/ImageViewer.cpp: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * Date : 2008-08-26 3 | * Description : Preview image viewer. 4 | * 5 | * SPDX-FileCopyrightText: 2008-2012 Kåre Särs 6 | * 7 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 8 | * 9 | * ============================================================ */ 10 | 11 | #include "ImageViewer.h" 12 | 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | 20 | #include 21 | 22 | struct ImageViewer::Private { 23 | QGraphicsScene *scene = nullptr; 24 | QImage *img = nullptr; 25 | 26 | QAction *zoomInAction = nullptr; 27 | QAction *zoomOutAction = nullptr; 28 | QAction *zoom100Action = nullptr; 29 | QAction *zoom2FitAction = nullptr; 30 | }; 31 | 32 | ImageViewer::ImageViewer(QWidget *parent) 33 | : QGraphicsView(parent) 34 | , d(new Private) 35 | { 36 | // setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); 37 | // setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); 38 | setMouseTracking(true); 39 | 40 | // Init the scene 41 | d->scene = new QGraphicsScene; 42 | setScene(d->scene); 43 | 44 | // create context menu 45 | d->zoomInAction = new QAction(QIcon::fromTheme(QStringLiteral("zoom-in")), i18n("Zoom In"), this); 46 | connect(d->zoomInAction, &QAction::triggered, this, &ImageViewer::zoomIn); 47 | 48 | d->zoomOutAction = new QAction(QIcon::fromTheme(QStringLiteral("zoom-out")), i18n("Zoom Out"), this); 49 | connect(d->zoomOutAction, &QAction::triggered, this, &ImageViewer::zoomOut); 50 | 51 | d->zoom100Action = new QAction(QIcon::fromTheme(QStringLiteral("zoom-original")), i18n("Zoom to Actual size"), this); 52 | connect(d->zoom100Action, &QAction::triggered, this, &ImageViewer::zoomActualSize); 53 | 54 | d->zoom2FitAction = new QAction(QIcon::fromTheme(QStringLiteral("zoom-fit-best")), i18n("Zoom to Fit"), this); 55 | connect(d->zoom2FitAction, &QAction::triggered, this, &ImageViewer::zoom2Fit); 56 | 57 | addAction(d->zoomInAction); 58 | addAction(d->zoomOutAction); 59 | addAction(d->zoom100Action); 60 | addAction(d->zoom2FitAction); 61 | setContextMenuPolicy(Qt::ActionsContextMenu); 62 | } 63 | 64 | // ------------------------------------------------------------------------ 65 | ImageViewer::~ImageViewer() 66 | { 67 | delete d; 68 | } 69 | 70 | // ------------------------------------------------------------------------ 71 | void ImageViewer::setQImage(QImage *img) 72 | { 73 | if (img == nullptr) { 74 | return; 75 | } 76 | 77 | d->img = img; 78 | const auto dpr = devicePixelRatioF(); 79 | d->img->setDevicePixelRatio(dpr); 80 | d->scene->setSceneRect(0, 0, img->width() / dpr, img->height() / dpr); 81 | } 82 | 83 | // ------------------------------------------------------------------------ 84 | void ImageViewer::drawBackground(QPainter *painter, const QRectF &rect) 85 | { 86 | painter->fillRect(rect, QColor(0x70, 0x70, 0x70)); 87 | QRectF r = rect & sceneRect(); 88 | const auto dpr = d->img->devicePixelRatio(); 89 | QRectF srcRect = QRectF(r.topLeft() * dpr, r.size() * dpr); 90 | painter->drawImage(r, *d->img, srcRect); 91 | } 92 | 93 | // ------------------------------------------------------------------------ 94 | void ImageViewer::zoomIn() 95 | { 96 | scale(1.5, 1.5); 97 | } 98 | 99 | // ------------------------------------------------------------------------ 100 | void ImageViewer::zoomOut() 101 | { 102 | scale(1.0 / 1.5, 1.0 / 1.5); 103 | } 104 | 105 | // ------------------------------------------------------------------------ 106 | void ImageViewer::zoomActualSize() 107 | { 108 | resetTransform(); 109 | } 110 | 111 | // ------------------------------------------------------------------------ 112 | void ImageViewer::zoom2Fit() 113 | { 114 | QRectF r = d->img->rect(); 115 | const auto dpr = d->img->devicePixelRatio(); 116 | r = QRectF(r.topLeft() / dpr, r.size() / dpr); 117 | fitInView(r, Qt::KeepAspectRatio); 118 | } 119 | 120 | // ------------------------------------------------------------------------ 121 | void ImageViewer::wheelEvent(QWheelEvent *e) 122 | { 123 | if (e->modifiers() == Qt::ControlModifier) { 124 | if (e->angleDelta().y() > 0) { 125 | zoomIn(); 126 | } else { 127 | zoomOut(); 128 | } 129 | } else { 130 | QGraphicsView::wheelEvent(e); 131 | } 132 | } 133 | 134 | #include "moc_ImageViewer.cpp" 135 | -------------------------------------------------------------------------------- /src/ImageViewer.h: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * Date : 2009-08-26 3 | * Description : Preview image viewer. 4 | * 5 | * SPDX-FileCopyrightText: 2008-2012 Kåre Särs 6 | * 7 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License. 15 | * along with this program. If not, see 16 | * 17 | * ============================================================ */ 18 | 19 | #ifndef IMAGE_VIEWER_H 20 | #define IMAGE_VIEWER_H 21 | 22 | #include 23 | class QWheelEvent; 24 | 25 | class ImageViewer : public QGraphicsView 26 | { 27 | Q_OBJECT 28 | public: 29 | explicit ImageViewer(QWidget *parent = nullptr); 30 | ~ImageViewer() override; 31 | 32 | void setQImage(QImage *img); 33 | 34 | public Q_SLOTS: 35 | void zoomIn(); 36 | void zoomOut(); 37 | void zoom2Fit(); 38 | void zoomActualSize(); 39 | 40 | protected: 41 | void wheelEvent(QWheelEvent *e) override; 42 | void drawBackground(QPainter *painter, const QRectF &rect) override; 43 | 44 | private: 45 | struct Private; 46 | Private *const d; 47 | }; 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /src/Messages.sh: -------------------------------------------------------------------------------- 1 | $EXTRACTRC `find . -name \*.ui` >> rc.cpp 2 | $XGETTEXT *.cpp -o $podir/skanlite.pot 3 | rm -f rc.cpp 4 | -------------------------------------------------------------------------------- /src/SaveLocation.cpp: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * Date : 2010-07-07 3 | * Description : Save location settings dialog. 4 | * 5 | * SPDX-FileCopyrightText: 2010-2012 Kare Sars 6 | * SPDX-FileCopyrightText: 2014 Gregor Mitsch : port to KDE5 frameworks 7 | * 8 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 9 | * 10 | * ============================================================ */ 11 | 12 | #include "SaveLocation.h" 13 | #include "ui_SaveLocation.h" 14 | 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | SaveLocation::SaveLocation(QWidget *parent) 22 | : QDialog(parent) 23 | { 24 | m_ui = new Ui_SaveLocation(); 25 | m_ui->setupUi(this); 26 | 27 | m_ui->u_urlRequester->setMode(KFile::Directory); 28 | connect(m_ui->u_urlRequester, &KUrlRequester::textChanged, this, &SaveLocation::updateGui); 29 | connect(m_ui->u_imgPrefix, &QLineEdit::textChanged, this, &SaveLocation::updateGui); 30 | connect(m_ui->u_imgFormat, static_cast(&QComboBox::textActivated), this, &SaveLocation::updateGui); 31 | connect(m_ui->u_numStartFrom, static_cast(&QSpinBox::valueChanged), this, &SaveLocation::updateGui); 32 | } 33 | 34 | SaveLocation::~SaveLocation() 35 | { 36 | delete m_ui; 37 | } 38 | 39 | void SaveLocation::updateGui() 40 | { 41 | if (sender() != m_ui->u_numStartFrom) { 42 | m_ui->u_numStartFrom->setValue(1); // Reset the counter whenever the directory or the prefix is changed 43 | } 44 | const QString name = QStringLiteral("%1%2.%3") 45 | .arg(m_ui->u_imgPrefix->text()) 46 | .arg(m_ui->u_numStartFrom->value(), 4, 10, QLatin1Char('0')) 47 | .arg(m_ui->u_imgFormat->currentText()); 48 | 49 | QUrl folderUrl = m_ui->u_urlRequester->url(); 50 | folderUrl.setPath(folderUrl.path() + QLatin1Char('/')); 51 | m_ui->u_resultValue->setText(folderUrl.toString(QUrl::PreferLocalFile | QUrl::NormalizePathSegments) + name); 52 | } 53 | 54 | QUrl SaveLocation::folderUrl() const 55 | { 56 | QUrl folderUrl = m_ui->u_urlRequester->url(); 57 | folderUrl.setPath(folderUrl.path() + QLatin1Char('/')); 58 | return folderUrl.adjusted(QUrl::NormalizePathSegments); 59 | } 60 | 61 | QString SaveLocation::imagePrefix() const 62 | { 63 | return m_ui->u_imgPrefix->text(); 64 | } 65 | 66 | QString SaveLocation::imageMimetype() const 67 | { 68 | return m_ui->u_imgFormat->currentData().toString(); 69 | } 70 | 71 | QString SaveLocation::imageSuffix() const 72 | { 73 | return m_ui->u_imgFormat->currentText().toLower(); 74 | } 75 | 76 | int SaveLocation::startNumber() const 77 | { 78 | return m_ui->u_numStartFrom->value(); 79 | } 80 | 81 | int SaveLocation::startNumberMax() const 82 | { 83 | return m_ui->u_numStartFrom->maximum(); 84 | } 85 | 86 | void SaveLocation::setFolderUrl(const QUrl &url) 87 | { 88 | m_ui->u_urlRequester->setUrl(url); 89 | } 90 | 91 | void SaveLocation::setImagePrefix(const QString &prefix) 92 | { 93 | m_ui->u_imgPrefix->setText(prefix); 94 | } 95 | 96 | void SaveLocation::addImageFormat(const QString &suffix, const QString &mimetype) 97 | { 98 | m_ui->u_imgFormat->addItem(suffix, mimetype); 99 | } 100 | 101 | void SaveLocation::setImageFormatIndex(int index) 102 | { 103 | m_ui->u_imgFormat->setCurrentIndex(index); 104 | } 105 | 106 | void SaveLocation::setImageFormat(const QString &suffix) 107 | { 108 | int index = m_ui->u_imgFormat->findText(suffix); 109 | if (index >= 0) { 110 | m_ui->u_imgFormat->setCurrentIndex(index); 111 | } 112 | } 113 | 114 | void SaveLocation::setStartNumber(int number) 115 | { 116 | m_ui->u_numStartFrom->setValue(number); 117 | } 118 | 119 | void SaveLocation::setOpenRequesterOnShow(bool open) 120 | { 121 | m_openRequesterOnShow = open; 122 | } 123 | 124 | void SaveLocation::showEvent(QShowEvent *event) 125 | { 126 | QDialog::showEvent(event); 127 | 128 | if (m_openRequesterOnShow) { 129 | QTimer::singleShot(0, this, [this]() { 130 | m_ui->u_urlRequester->button()->click(); 131 | }); 132 | } 133 | } 134 | 135 | #include "moc_SaveLocation.cpp" 136 | -------------------------------------------------------------------------------- /src/SaveLocation.h: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * Date : 2010-07-07 3 | * Description : Save location settings dialog. 4 | * 5 | * SPDX-FileCopyrightText: 2008-2012 Kåre Särs 6 | * SPDX-FileCopyrightText: 2014 Gregor Mitsch : port to KDE5 frameworks 7 | * 8 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 9 | * 10 | * ============================================================ */ 11 | 12 | #ifndef SAVE_LOCATION_H 13 | #define SAVE_LOCATION_H 14 | 15 | #include 16 | 17 | class Ui_SaveLocation; 18 | class QShowEvent; 19 | 20 | class SaveLocation : public QDialog 21 | { 22 | Q_OBJECT 23 | public: 24 | explicit SaveLocation(QWidget *parent = nullptr); 25 | ~SaveLocation() override; 26 | 27 | QUrl folderUrl() const; 28 | QString imagePrefix() const; 29 | QString imageMimetype() const; 30 | QString imageSuffix() const; 31 | int startNumber() const; 32 | int startNumberMax() const; 33 | 34 | void setFolderUrl(const QUrl &url); 35 | void setImagePrefix(const QString &prefix); 36 | void setImageFormat(const QString &suffix); 37 | void setImageFormatIndex(int index); 38 | void addImageFormat(const QString &type, const QString &mimetype); 39 | void setStartNumber(int number); 40 | 41 | void setOpenRequesterOnShow(bool open); 42 | 43 | protected: 44 | void showEvent(QShowEvent *event) override; 45 | 46 | private Q_SLOTS: 47 | void updateGui(); 48 | 49 | private: 50 | Ui_SaveLocation *m_ui = nullptr; 51 | bool m_openRequesterOnShow = false; 52 | }; 53 | 54 | #endif 55 | -------------------------------------------------------------------------------- /src/SaveLocation.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | SaveLocation 4 | 5 | 6 | 7 | 0 8 | 0 9 | 452 10 | 178 11 | 12 | 13 | 14 | 15 | 0 16 | 0 17 | 18 | 19 | 20 | Save Location 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | Save Location: 29 | 30 | 31 | Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 0 42 | 0 43 | 44 | 45 | 46 | KFile::Directory|KFile::ExistingOnly 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | Name & Format: 56 | 57 | 58 | Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | ####. 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | Start numbering from: 87 | 88 | 89 | Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 0 99 | 100 | 101 | 999999 102 | 103 | 104 | 105 | 106 | 107 | 108 | Qt::Horizontal 109 | 110 | 111 | 112 | 168 113 | 20 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | Example: 124 | 125 | 126 | 127 | 128 | 129 | 130 | /home/joe/example.png 131 | 132 | 133 | Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | Qt::Horizontal 143 | 144 | 145 | QDialogButtonBox::Cancel|QDialogButtonBox::Ok 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | KUrlRequester 154 | QWidget 155 |
kurlrequester.h
156 |
157 |
158 | 159 | 160 | 161 | u_dialogButtonBox 162 | accepted() 163 | SaveLocation 164 | accept() 165 | 166 | 167 | 200 168 | 152 169 | 170 | 171 | 200 172 | 86 173 | 174 | 175 | 176 | 177 | u_dialogButtonBox 178 | rejected() 179 | SaveLocation 180 | reject() 181 | 182 | 183 | 200 184 | 152 185 | 186 | 187 | 200 188 | 86 189 | 190 | 191 | 192 | 193 |
194 | -------------------------------------------------------------------------------- /src/SkanliteImageSaver.cpp: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * Date : 2010-07-02 3 | * Description : Image saver class for libksane image data. 4 | * 5 | * SPDX-FileCopyrightText: 2010-2012 Kåre Särs 6 | * 7 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 8 | * 9 | * ============================================================ */ 10 | 11 | #include "SkanliteImageSaver.h" 12 | 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | struct SkanliteImageSaver::Private { 20 | bool m_savedOk; 21 | QMutex m_runMutex; 22 | 23 | QUrl m_url; 24 | QString m_name; 25 | QImage m_image; 26 | QString m_fileFormat; 27 | int m_quality; 28 | 29 | SkanliteImageSaver *q = nullptr; 30 | 31 | bool saveQImage(); 32 | bool savePDF(); 33 | }; 34 | 35 | // ------------------------------------------------------------------------ 36 | SkanliteImageSaver::SkanliteImageSaver(QObject *parent) 37 | : QThread(parent) 38 | , d(new Private) 39 | { 40 | d->q = this; 41 | } 42 | 43 | // ------------------------------------------------------------------------ 44 | SkanliteImageSaver::~SkanliteImageSaver() 45 | { 46 | delete d; 47 | } 48 | 49 | bool SkanliteImageSaver::saveQImage(const QUrl &url, const QString &name, const QImage &image, const QString &fileFormat, int quality) 50 | { 51 | if (!d->m_runMutex.tryLock()) { 52 | return false; 53 | } 54 | 55 | d->m_url = url; 56 | d->m_name = name; 57 | d->m_image = image; 58 | d->m_fileFormat = fileFormat; 59 | d->m_quality = quality; 60 | 61 | start(); 62 | return true; 63 | } 64 | 65 | void SkanliteImageSaver::run() 66 | { 67 | if (d->m_fileFormat == QLatin1String("pdf")) { 68 | d->m_savedOk = d->savePDF(); 69 | } else { 70 | d->m_savedOk = d->saveQImage(); 71 | } 72 | 73 | Q_EMIT imageSaved(d->m_url, d->m_name, d->m_savedOk); 74 | 75 | d->m_runMutex.unlock(); 76 | } 77 | 78 | bool SkanliteImageSaver::Private::saveQImage() 79 | { 80 | return m_image.save(m_name, qPrintable(m_fileFormat), m_quality); 81 | } 82 | 83 | bool SkanliteImageSaver::Private::savePDF() 84 | { 85 | const QPageSize pageSize = 86 | QPageSize(QSizeF(m_image.width() * 1000.0 / m_image.dotsPerMeterX(), m_image.height() * 1000.0 / m_image.dotsPerMeterY()), QPageSize::Millimeter); 87 | const int dpi = qRound(m_image.dotsPerMeterX() / 1000.0 * 25.4); 88 | 89 | QPainter painter; 90 | QPdfWriter writer(m_name); 91 | writer.setPageOrientation(QPageLayout::Portrait); 92 | writer.setResolution(dpi); 93 | writer.setPageSize(pageSize); 94 | writer.setPageMargins(QMarginsF(0, 0, 0, 0)); 95 | writer.setCreator(QStringLiteral("Skanlite")); 96 | writer.setTitle(m_name); 97 | 98 | QRect paintArea(0, 0, writer.width(), writer.height()); 99 | if (!painter.begin(&writer)) { 100 | return false; 101 | } 102 | 103 | painter.drawImage(paintArea, m_image); 104 | 105 | return painter.end(); 106 | } 107 | 108 | #include "moc_SkanliteImageSaver.cpp" 109 | -------------------------------------------------------------------------------- /src/SkanliteImageSaver.h: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * Date : 2010-07-02 3 | * Description : Image saver class for libksane image data. 4 | * 5 | * SPDX-FileCopyrightText: 2010-2012 Kåre Särs 6 | * SPDX-FileCopyrightText: 2014 Gregor Mitsch : port to KDE5 frameworks 7 | * 8 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 9 | * 10 | * ============================================================ */ 11 | 12 | #ifndef SkanliteImageSaver_h 13 | #define SkanliteImageSaver_h 14 | 15 | #include 16 | #include 17 | #include 18 | 19 | class SkanliteImageSaver : public QThread 20 | { 21 | Q_OBJECT 22 | public: 23 | explicit SkanliteImageSaver(QObject *parent = nullptr); 24 | ~SkanliteImageSaver() override; 25 | 26 | bool saveQImage(const QUrl &url, const QString &name, const QImage &image, const QString &fileFormat, int quality); 27 | Q_SIGNALS: 28 | void imageSaved(const QUrl &url, const QString &name, bool success); 29 | 30 | protected: 31 | void run() override; 32 | 33 | private: 34 | struct Private; 35 | Private *const d; 36 | }; 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /src/TODO: -------------------------------------------------------------------------------- 1 | 2014-01-21 Porting from KDE4 to 5 2 | ================================= 3 | Changes in 1.2.0 (from 1.1.0) 4 | ----------------------------- 5 | * Save Image Dialog: "Close" button is now called "Discard" because it discards the currently scanned image 6 | 7 | Major issues 8 | ------------ 9 | * fix all KIO::NetAccess 10 | * Settings dialog: ...-Button to select target directory shows wrong dialog due to bug in frameworksintegration 11 | * see comments in 'void Skanlite::getDir(void)' 12 | * Save Image Dialog: KDE Save Dialog is borken (see https://git.reviewboard.kde.org/r/115238/) 13 | * probably due to a bug in QFileDialog integration the desired file type filter will not be selected (it defaults to png) 14 | 15 | Questions 16 | --------- 17 | * Difference between "skanlite -d test" and one of the SANE test scanners test:0 or test:1? 18 | 19 | before 2014 20 | =========== 21 | Wishlist 22 | -------- 23 | -Make the final image dialog image zoomable 24 | -Add scan profiles (settings/options) 25 | -Start the file number scanning from a specified number or previously saved. 26 | -Add a copy/print mode. 27 | -------------------------------------------------------------------------------- /src/main.cpp: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * 3 | * SPDX-FileCopyrightText: 2007-2012 Kåre Särs 4 | * SPDX-FileCopyrightText: 2014 Gregor Mitsch : port to KDE5 frameworks 5 | * 6 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 7 | * 8 | * ============================================================ */ 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | #include 15 | #include 16 | #include 17 | 18 | #include "skanlite.h" 19 | 20 | #include 21 | #include 22 | 23 | int main(int argc, char *argv[]) 24 | { 25 | QApplication app(argc, argv); 26 | 27 | KLocalizedString::setApplicationDomain("skanlite"); 28 | 29 | KAboutData aboutData(QStringLiteral("skanlite"), // componentName, k4: appName 30 | i18n("Skanlite"), // displayName, k4: programName 31 | QStringLiteral(SKANLITE_VERSION_STRING), // version 32 | i18n("Scanning application by KDE based on libksane."), // shortDescription 33 | KAboutLicense::GPL, // licenseType 34 | i18n("(C) 2008-2020 Kåre Särs"), // copyrightStatement 35 | QString(), // other Text 36 | QString() // homePageAddress 37 | ); 38 | 39 | aboutData.addAuthor(i18n("Kåre Särs"), i18n("developer"), QStringLiteral("kare.sars@iki.fi")); 40 | 41 | aboutData.addAuthor(i18n("Gregor Mi"), i18n("contributor")); 42 | 43 | aboutData.addAuthor(i18n("Arseniy Lartsev"), i18n("contributor")); 44 | 45 | aboutData.addCredit(i18n("Gilles Caulier"), i18n("Importing libksane to extragear")); 46 | 47 | aboutData.addCredit(i18n("Anne-Marie Mahfouf"), i18n("Writing the user manual")); 48 | 49 | aboutData.addCredit(i18n("Laurent Montel"), i18n("Importing libksane to extragear")); 50 | 51 | aboutData.addCredit(i18n("Chusslove Illich"), i18n("Help with translations")); 52 | 53 | aboutData.addCredit(i18n("Albert Astals Cid"), i18n("Help with translations")); 54 | 55 | // Required for showing the translation list KXmlGui is not used 56 | aboutData.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails")); 57 | 58 | app.setWindowIcon(QIcon::fromTheme(QStringLiteral("skanlite"))); 59 | KAboutData::setApplicationData(aboutData); 60 | 61 | KCrash::initialize(); 62 | 63 | QCommandLineParser parser; 64 | aboutData.setupCommandLine(&parser); 65 | QCommandLineOption deviceOption(QStringList() << QStringLiteral("d") << QStringLiteral("device"), 66 | i18n("Sane scanner device name. Use 'test' for test device."), 67 | i18n("device")); 68 | parser.addOption(deviceOption); 69 | parser.process(app); // the --author and --license is shown anyway but they work only with the following line 70 | aboutData.processCommandLine(&parser); 71 | 72 | const QString deviceName = parser.value(deviceOption); 73 | qCDebug(SKANLITE_LOG) << QStringLiteral("deviceOption value=%1").arg(deviceName); 74 | 75 | Skanlite skanliteDialog(deviceName, nullptr); 76 | 77 | skanliteDialog.show(); 78 | 79 | QShortcut *prevShortcut = new QShortcut(QKeySequence(QStringLiteral("Ctrl+Q")), &skanliteDialog); 80 | QObject::connect(prevShortcut, &QShortcut::activated, &app, &QApplication::quit); 81 | 82 | return app.exec(); 83 | } 84 | -------------------------------------------------------------------------------- /src/org.kde.skanlite.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Exec=skanlite 4 | Icon=org.kde.skanlite 5 | X-DocPath=skanlite/index.html 6 | Terminal=false 7 | Name=Skanlite 8 | Name[ar]=سكانلايت 9 | Name[az]=Skanlite 10 | Name[be]=Skanlite 11 | Name[bg]=Сканиране 12 | Name[bs]=Skanlite 13 | Name[ca]=Skanlite 14 | Name[ca@valencia]=Skanlite 15 | Name[cs]=Skanlite 16 | Name[da]=Skanlite 17 | Name[de]=Skanlite 18 | Name[el]=Skanlite 19 | Name[en_GB]=Skanlite 20 | Name[eo]=Skanlite 21 | Name[es]=Skanlite 22 | Name[et]=Skanlite 23 | Name[eu]=Skanlite 24 | Name[fi]=Skanlite 25 | Name[fr]=Skanlite 26 | Name[ga]=Skanlite 27 | Name[gl]=Skanlite 28 | Name[he]=Skanlite 29 | Name[hi]=स्कैनलाइट 30 | Name[hr]=Skanlite 31 | Name[hu]=Skanlite 32 | Name[ia]=Skanlite 33 | Name[id]=Skanlite 34 | Name[ie]=Skanlite 35 | Name[is]=Skanlite 36 | Name[it]=Skanlite 37 | Name[ja]=Skanlite 38 | Name[ka]=Skanlite 39 | Name[km]=Skanlite 40 | Name[ko]=Skanlite 41 | Name[ku]=Skanlite 42 | Name[lt]=Skanlite 43 | Name[lv]=Skanlite 44 | Name[ml]=സ്കാന്‍ലൈറ്റ് 45 | Name[mr]=स्कॅनलाइट 46 | Name[ms]=Skanlite 47 | Name[nb]=Skanlite 48 | Name[nds]=Skanlite 49 | Name[nl]=Skanlite 50 | Name[nn]=Skanlite 51 | Name[pa]=ਸਕਿਨਲਾਈਟ 52 | Name[pl]=Skanlite 53 | Name[pt]=Skanlite 54 | Name[pt_BR]=Skanlite 55 | Name[ro]=Skanlite 56 | Name[ru]=Skanlite 57 | Name[sa]=स्कैनलाइट् 58 | Name[sk]=Skanlite 59 | Name[sl]=Skanlite 60 | Name[sq]=Skanlite 61 | Name[sv]=Skanlite 62 | Name[tr]=Skanlite 63 | Name[ug]=Skanlite 64 | Name[uk]=Skanlite 65 | Name[x-test]=xxSkanlitexx 66 | Name[zh_CN]=Skanlite 扫描工具 67 | Name[zh_TW]=Skanlite 68 | GenericName=Image Scanning Application 69 | GenericName[ar]=تطبيق لمسح الصّور ضوئيًّا 70 | GenericName[az]=Təsviri tarama tətbiqi 71 | GenericName[be]=Праграма для сканавання выяў 72 | GenericName[bg]=Програма за сканиране на изображения 73 | GenericName[bs]=Program za skeniranje slika 74 | GenericName[ca]=Aplicació de digitalització d'imatges 75 | GenericName[ca@valencia]=Aplicació de digitalització d'imatges 76 | GenericName[cs]=Aplikace pro skenování obrázků 77 | GenericName[da]=Program til scanning af billeder 78 | GenericName[de]=Anwendung zum Scannen von Bildern 79 | GenericName[el]=Εφαρμογή σάρωσης εικόνων 80 | GenericName[en_GB]=Image Scanning Application 81 | GenericName[eo]=Aplikaĵo por skani bildojn 82 | GenericName[es]=Aplicación de escaneo de imágenes 83 | GenericName[et]=Piltide skaneerimise rakendus 84 | GenericName[eu]=Irudiak eskaneatzeko aplikazioa 85 | GenericName[fi]=Kuvien skannaussovellus 86 | GenericName[fr]=Application de numérisation 87 | GenericName[ga]=Feidhmchlár Scanta Íomhánna 88 | GenericName[gl]=Aplicación de dixitalización de imaxes 89 | GenericName[he]=יישום לסריקת תמונות 90 | GenericName[hi]=छवि स्कैन करने का अनुप्रयोग 91 | GenericName[hu]=Képolvasó alkalmazás 92 | GenericName[ia]=Application pro scander imagines 93 | GenericName[id]=Aplikasi Pemindaian Citra 94 | GenericName[ie]=Scannation de images 95 | GenericName[is]=Myndskönnunarforrit 96 | GenericName[it]=Applicazione per la scansione di immagini 97 | GenericName[ja]=画像スキャンソフト 98 | GenericName[ka]=სურათების სკანირების აპლიკაცია 99 | GenericName[km]=កម្មវិធី​ស្កេន​រូបភាព 100 | GenericName[ko]=그림 스캔 앱 101 | GenericName[ku]=Sepana Venihartina Wêneyan 102 | GenericName[lt]=Paveikslų skenavimo programa 103 | GenericName[lv]=Attēlu skenēšanas programma 104 | GenericName[ml]=ചിത്രം പകര്‍ത്തിയെടുക്കാനുള്ള പ്രയോഗം 105 | GenericName[mr]=प्रतिमा स्कॅन करणारा अनुप्रयोग 106 | GenericName[ms]=Aplikasi Pengimbas Imej 107 | GenericName[nb]=Bildeskanningsprogram 108 | GenericName[nds]=Bildinlees-Programm 109 | GenericName[nl]=Afbeeldingscanprogramma 110 | GenericName[nn]=Biletskanningsprogram 111 | GenericName[pa]=ਚਿੱਤਰ ਸਕੈਨ ਕਰਨ ਲਈ ਐਪਲੀਕੇਸ਼ਨ 112 | GenericName[pl]=Program do skanowania 113 | GenericName[pt]=Aplicação de Digitalização de Imagens 114 | GenericName[pt_BR]=Aplicativo para digitalização de imagens 115 | GenericName[ro]=Aplicație de scanare a imaginilor 116 | GenericName[ru]=Сканирование изображений 117 | GenericName[sa]=छवि स्कैनिङ्ग अनुप्रयोग 118 | GenericName[sk]=Aplikácia na skenovanie obrázkov 119 | GenericName[sl]=Program za optično branje slik 120 | GenericName[sq]=Program Për Skanimin e Imazheve 121 | GenericName[sv]=Program för bildinläsning 122 | GenericName[tr]=Görsel Tarama Uygulaması 123 | GenericName[ug]=سۈرەت شويلىلاش پروگراممىسى 124 | GenericName[uk]=Програма для сканування зображень 125 | GenericName[x-test]=xxImage Scanning Applicationxx 126 | GenericName[zh_CN]=图像扫描程序 127 | GenericName[zh_TW]=影像掃描程式 128 | Comment=Scan and save images 129 | Comment[ar]=امسح الصّور ضوئيًّا واحفظها 130 | Comment[az]=Təsvirləri taramaq və saxlamaq 131 | Comment[be]=Сканаванне і захаванне выяў 132 | Comment[bg]=Сканиране и записване на изображения 133 | Comment[bs]=Skenirajte i snimite slike 134 | Comment[ca]=Escaneja i desa imatges 135 | Comment[ca@valencia]=Escaneja i guarda imatges 136 | Comment[cs]=Skenovat a uložit obrázky 137 | Comment[da]=Scan og gem billeder 138 | Comment[de]=Bilder scannen und abspeichern 139 | Comment[el]=Σάρωση και αποθήκευση εικόνων 140 | Comment[en_GB]=Scan and save images 141 | Comment[eo]=Skani kaj konservi bildojn 142 | Comment[es]=Escanear y guardar imágenes 143 | Comment[et]=Piltide skaneerimine ja salvestamine 144 | Comment[eu]=Irudiak eskaneatu eta gorde 145 | Comment[fi]=Skannaa ja tallentaa kuvia 146 | Comment[fr]=Numériser et enregistrer des images 147 | Comment[ga]=Scan agus sábháil íomhánna 148 | Comment[gl]=Dixitaliza e garda imaxes. 149 | Comment[he]=סריקה ושמירה של תמונות 150 | Comment[hi]=छवियों को स्कैन करें और सहेजें 151 | Comment[hu]=Képek beolvasása és mentése 152 | Comment[ia]=Sande e salveguarda imagines 153 | Comment[id]=Pindai dan simpan citra 154 | Comment[ie]=Scannar e gardar images 155 | Comment[is]=Skanna og vista myndir 156 | Comment[it]=Scansiona e salva immagini 157 | Comment[ja]=画像をスキャンして保存します 158 | Comment[ka]=დაასკანერეთ და შეინახეთ გამოსახულებები 159 | Comment[km]=ស្កេន និង​រក្សាទុក​រូបភាព 160 | Comment[ko]=그림 스캔과 저장 161 | Comment[ku]=Wêneyan venihêre û tomar bike 162 | Comment[lt]=Skenuoti ir įrašyti paveikslus 163 | Comment[lv]=Skenē un saglabā attēlu 164 | Comment[ml]=ചിത്രം സ്കാന്‍ ചെയ്തൂ സൂക്ഷിയ്ക്കുക 165 | Comment[mr]=प्रतिमा स्कॅन करा व साठवा 166 | Comment[nb]=Skann og lagre bilder 167 | Comment[nds]=Biller inlesen un sekern 168 | Comment[nl]=Afbeeldingen scannen en opslaan 169 | Comment[nn]=Skann og lagra bilete 170 | Comment[pa]=ਚਿੱਤਰ ਸਕੈਨ ਕਰੋ ਅਤੇ ਸੰਭਾਲੋ 171 | Comment[pl]=Skanuj i zapisuj obrazy 172 | Comment[pt]=Digitalizar e gravar imagens 173 | Comment[pt_BR]=Digitaliza e salva imagens 174 | Comment[ro]=Scanează și salvează imagini 175 | Comment[ru]=Сканировать и сохранить изображения 176 | Comment[sa]=चित्राणि स्कैन कृत्वा रक्षन्तु 177 | Comment[sk]=Skenuje a ukladá obrázky 178 | Comment[sl]=Optično preberite in shranite slike 179 | Comment[sq]=Skano dhe ruaji imazhet 180 | Comment[sv]=Läs in och spara bilder 181 | Comment[tr]=Görseller tarayın ve onları kaydedin 182 | Comment[ug]=شويلىلاپ سۈرەتكە ساقلاش 183 | Comment[uk]=Сканування і збереження зображень 184 | Comment[x-test]=xxScan and save imagesxx 185 | Comment[zh_CN]=扫描和保存图像 186 | Comment[zh_TW]=掃描與儲存影像 187 | Categories=Qt;KDE;Graphics;Scanning; 188 | X-DBUS-ServiceName=org.kde.skanlite 189 | StartupWMClass=skanlite 190 | -------------------------------------------------------------------------------- /src/showimagedialog.cpp: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * 3 | * SPDX-FileCopyrightText: 2007-2012 Kåre Särs 4 | * SPDX-FileCopyrightText: 2009 Arseniy Lartsev 5 | * SPDX-FileCopyrightText: 2014 Gregor Mitsch : port to KDE5 frameworks 6 | * SPDX-FileCopyrightText: 2018 Alexander Volkov 7 | * 8 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 9 | * 10 | * ============================================================ */ 11 | 12 | #include "showimagedialog.h" 13 | #include "ImageViewer.h" 14 | 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | ShowImageDialog::ShowImageDialog(QWidget *parent) 22 | : QDialog(parent) 23 | { 24 | auto *mainLayout = new QVBoxLayout(this); 25 | 26 | m_imageViewer = new ImageViewer; 27 | 28 | auto *buttonBox = new QDialogButtonBox(QDialogButtonBox::Save | QDialogButtonBox::Discard); 29 | connect(buttonBox, &QDialogButtonBox::accepted, this, &ShowImageDialog::saveRequested); 30 | connect(buttonBox->button(QDialogButtonBox::Discard), &QPushButton::clicked, this, &QDialog::reject); 31 | m_saveButton = buttonBox->button(QDialogButtonBox::Save); 32 | 33 | auto *buttonsLayout = new QHBoxLayout; 34 | const auto imageViewerActions = m_imageViewer->actions(); 35 | for (auto *action : imageViewerActions) { 36 | auto *toolButton = new QToolButton; 37 | toolButton->setDefaultAction(action); 38 | buttonsLayout->addWidget(toolButton); 39 | } 40 | buttonsLayout->addWidget(buttonBox); 41 | 42 | mainLayout->addWidget(m_imageViewer); 43 | mainLayout->addLayout(buttonsLayout); 44 | 45 | resize(640, 480); 46 | } 47 | 48 | void ShowImageDialog::setQImage(QImage *img) 49 | { 50 | m_imageViewer->setQImage(img); 51 | } 52 | 53 | void ShowImageDialog::zoom2Fit() 54 | { 55 | m_imageViewer->zoom2Fit(); 56 | } 57 | 58 | void ShowImageDialog::showEvent(QShowEvent *e) 59 | { 60 | m_saveButton->setFocus(); 61 | QDialog::showEvent(e); 62 | } 63 | 64 | #include "moc_showimagedialog.cpp" 65 | -------------------------------------------------------------------------------- /src/showimagedialog.h: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * 3 | * SPDX-FileCopyrightText: 2007-2012 Kåre Särs 4 | * SPDX-FileCopyrightText: 2009 Arseniy Lartsev 5 | * SPDX-FileCopyrightText: 2014 Gregor Mitsch : port to KDE5 frameworks 6 | * SPDX-FileCopyrightText: 2018 Alexander Volkov 7 | * 8 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 9 | * 10 | * ============================================================ */ 11 | 12 | #ifndef SHOWIMAGEDIALOG_H 13 | #define SHOWIMAGEDIALOG_H 14 | 15 | #include 16 | 17 | class ImageViewer; 18 | 19 | class ShowImageDialog : public QDialog 20 | { 21 | Q_OBJECT 22 | public: 23 | explicit ShowImageDialog(QWidget *parent = nullptr); 24 | 25 | void setQImage(QImage *img); 26 | 27 | public Q_SLOTS: 28 | void zoom2Fit(); 29 | 30 | Q_SIGNALS: 31 | void saveRequested(); 32 | 33 | protected: 34 | void showEvent(QShowEvent *e) override; 35 | 36 | private: 37 | QPushButton *m_saveButton = nullptr; 38 | ImageViewer *m_imageViewer = nullptr; 39 | }; 40 | 41 | #endif // SHOWIMAGEDIALOG_H 42 | -------------------------------------------------------------------------------- /src/skanlite.h: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * 3 | * SPDX-FileCopyrightText: 2007-2012 Kåre Särs 4 | * SPDX-FileCopyrightText: 2014 Gregor Mitsch : port to KDE5 frameworks 5 | * 6 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 7 | * 8 | * ============================================================ */ 9 | 10 | #ifndef Skanlite_h 11 | #define Skanlite_h 12 | 13 | #include 14 | #include 15 | #include 16 | 17 | #include "DBusInterface.h" 18 | #include "ui_settings.h" 19 | 20 | class ShowImageDialog; 21 | class SaveLocation; 22 | class QProgressBar; 23 | 24 | namespace KSaneIface 25 | { 26 | class KSaneWidget; 27 | } 28 | 29 | class Skanlite : public QDialog 30 | { 31 | Q_OBJECT 32 | 33 | public: 34 | explicit Skanlite(const QString &device, QWidget *parent); 35 | 36 | private: 37 | // Order of items in save mode combo-box 38 | enum SaveMode { 39 | SaveModeManual = 0, 40 | SaveModeAskFirst = 1, 41 | }; 42 | 43 | void readSettings(); 44 | void loadScannerOptions(); 45 | 46 | void processSelectionOptions(QMap &opts, bool ignoreSelection); 47 | 48 | private Q_SLOTS: 49 | void showSettingsDialog(); 50 | void imageReady(const QImage &image); 51 | void saveImage(); 52 | void updateSaveProgress(); 53 | void imageSaved(const QUrl &url, const QString &name, bool success); 54 | void saveWindowSize(); 55 | void saveScannerDevice(); 56 | 57 | void saveScannerOptions(); 58 | void defaultScannerOptions(); 59 | void applyScannerOptions(const QMap &opts); 60 | 61 | void alertUser(int type, const QString &strStatus); 62 | void buttonPressed(const QString &optionName, const QString &optionLabel, bool pressed); 63 | 64 | void showHelp(); 65 | 66 | // slots to communicate with D-Bus interface 67 | void getScannerOptions(); 68 | void setScannerOptions(const QStringList &options, bool ignoreSelection); 69 | void getDefaultScannerOptions(); 70 | void saveScannerOptionsToProfile(const QStringList &options, const QString &profile, bool ignoreSelection); 71 | void switchToProfile(const QString &profile, bool ignoreSelection); 72 | void getDeviceName(); 73 | void getSelection(); 74 | void setSelection(const QStringList &options); 75 | 76 | void reselectScannerDevice(); 77 | void updateWindowTitle(const QString &deviceName, const QString &deviceVendor = QString(), const QString &deviceModel = QString()); 78 | 79 | protected: 80 | void closeEvent(QCloseEvent *event) override; 81 | 82 | private: 83 | KSaneIface::KSaneWidget *m_ksanew = nullptr; 84 | QProgressBar *m_saveProgressBar = nullptr; 85 | QPushButton *m_btnReselectDevice = nullptr; 86 | QUrl m_currentSaveUrl; 87 | QTimer m_saveUpdateTimer; 88 | Ui::SkanliteSettings m_settingsUi; 89 | QDialog *m_settingsDialog = nullptr; 90 | ShowImageDialog *m_showImgDialog = nullptr; 91 | SaveLocation *m_saveLocation = nullptr; 92 | QString m_deviceName; 93 | QString m_deviceVendor; 94 | QString m_deviceModel; 95 | QMap m_defaultScanOpts; 96 | QMap m_pendingApplyScanOpts; 97 | QImage m_img; 98 | 99 | DBusInterface m_dbusInterface; 100 | QStringList m_filterList; 101 | QStringList m_filter16BitList; 102 | bool m_firstImage; 103 | }; 104 | 105 | #endif 106 | -------------------------------------------------------------------------------- /tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Test) 2 | 3 | include(ECMMarkAsTest) 4 | 5 | macro(skanlite_executable_tests) 6 | foreach(_testname ${ARGN}) 7 | add_executable(${_testname} ${_testname}.cpp) 8 | target_link_libraries(${_testname} Qt6::Test KF5skanlite) 9 | ecm_mark_as_test(${_testname}) 10 | endforeach(_testname) 11 | endmacro() 12 | 13 | #skanlite_executable_tests( 14 | # anothertest 15 | #) 16 | --------------------------------------------------------------------------------